TECH 으로 돌아가기
TECH HACKER NEWS 오늘 8분 읽기 24 READS

'건망증 있는 CPU'와의 씨름 — M4 맥에서 리눅스 돌리기가 유독 어려운 이유

'건망증 있는 CPU'와의 씨름 — M4 맥에서 리눅스 돌리기가 유독 어려운 이유
SOURCE IMAGE · HACKER NEWS
'건망증 있는 CPU'와의 씨름 — M4 맥에서 리눅스 돌리기가 유독 어려운 이유

맥북에 리눅스 깔기, 인텔 시절과는 차원이 달라요

인텔 맥 시절에는 맥북에 리눅스를 까는 게 그렇게 특별한 일이 아니었어요. 그런데 애플이 자체 칩으로 넘어오면서 이야기가 완전히 달라졌거든요. 최근 M4 맥에서 리눅스를 부팅시키려고 씨름한 개발자의 기록이 'The Forgetful CPU(건망증 있는 CPU)'라는 제목으로 공개됐는데요. CPU가 뭔가를 잊어버린다니, 무슨 뜻일까요? 이 제목을 실마리 삼아 애플 실리콘에서 리눅스가 왜 이렇게 어려운지 풀어볼게요.

설명서 없는 기계를 해부하는 일

애플 실리콘에서 리눅스를 돌리는 대표 프로젝트는 Asahi Linux예요. 가장 큰 난관은 애플이 하드웨어 문서를 전혀 공개하지 않는다는 점이에요. GPU가 어떻게 동작하는지, 전원은 어떻게 관리하는지, 인터럽트 컨트롤러(CPU에게 '일 생겼어!' 하고 알려주는 장치)는 어떻게 생겼는지 전부 비밀이죠.

그래서 Asahi 팀은 리버스 엔지니어링으로 하나하나 밝혀냈어요. 리버스 엔지니어링이 뭐냐면, 완성품을 뜯어보면서 동작 원리를 거꾸로 알아내는 방식이에요. 핵심 도구인 m1n1은 부트로더이면서 아주 얇은 하이퍼바이저 역할도 하는데요, macOS를 그 위에서 돌리면서 macOS가 하드웨어를 어떻게 건드리는지 전부 기록해요. 정답을 아는 학생(macOS) 옆에서 풀이 과정을 훔쳐보는 셈이죠. 이렇게 해서 M1·M2 계열은 GPU 가속까지 되는 수준에 도달했지만, M3·M4는 오랫동안 '작업 중'으로 남아 있었어요. 칩 세대가 바뀔 때마다 내부 구조가 달라져서 이전에 알아낸 걸 그대로 쓸 수 없는 부분이 많거든요.

CPU가 '잊어버린다'는 건 무슨 뜻일까?

요즘 CPU는 할 일이 없으면 코어 단위로 잠을 자요. 얕은 잠은 눈만 감은 상태라서 깨우면 하던 일을 바로 이어가요. 반면 깊은 잠은 코어 전원을 아예 끄는 상태예요. 전기는 훨씬 아끼지만 레지스터(CPU가 지금 하던 일을 적어두는 작은 메모장)에 있던 내용이 날아가요. 깨어나서 '내가 뭐 하고 있었지?' 하게 되는, 말 그대로 건망증 상태인 거죠.

그래서 운영체제는 코어를 재우기 전에 중요한 상태를 메모리에 저장해 두고, 깨어나면 다시 복원해 줘야 해요. 그런데 애플 실리콘에서는 이게 유독 어려운 이유가 두 가지 있어요.

첫째, 애플 칩에는 EL3가 없어요. ARM 칩은 권한 등급(Exception Level)이 나뉘어 있는데요, 보통 가장 높은 EL3에서 펌웨어가 돌면서 PSCI라는 표준 창구로 '이 코어 재워줘, 깨워줘'를 대신 처리해 줘요. 다른 ARM 기기에서 리눅스는 이 창구에 요청만 하면 되죠. 애플 칩에는 이 층이 아예 없어서, 원래 펌웨어가 해주던 뒷정리를 커널이 직접 떠안아야 해요.

둘째, 무엇을 저장해야 하는지 아무도 안 알려줘요. 애플 코어에는 ARM 표준에 없는 전용 설정 레지스터가 잔뜩 있어요. 성능 튜닝 값이나 하드웨어 버그를 피하는 우회 설정(흔히 '치킨 비트'라고 불러요) 같은 것들이죠. 부팅할 때 한 번 세팅하면 끝인 줄 알았던 값이 깊은 잠을 거치면서 초기화된다면 어떻게 될까요? 시스템은 멀쩡히 돌다가 어느 순간 이상하게 굴기 시작해요. 이런 버그가 무서운 건 재현하기 어렵다는 점이에요. 부팅 직후엔 괜찮다가 한참 뒤에야 증상이 나오고, 어떤 코어가 언제 잠들었느냐에 따라 결과가 달라지거든요.

여기에 더해 M4는 애플 전용 행렬 연산 장치(AMX) 대신 ARM 표준인 SME(Scalable Matrix Extension)를 지원하기 시작했어요. 표준을 따르는 건 반가운 일이지만, 커널이 저장하고 복원해야 할 상태가 몇 KB 단위로 늘어난다는 뜻이기도 해요. '잊어버리면 안 되는 것' 목록이 더 길어진 셈이죠.

다른 ARM 노트북과 비교해 보면

좋은 비교 대상은 퀄컴 스냅드래곤 X 노트북이에요. 이쪽도 리눅스 지원이 완벽하진 않지만, 퀄컴은 커널에 드라이버를 직접 올리고 UEFI 같은 표준 부팅 방식을 따라요. 반면 애플은 '다른 OS 부팅을 막지는 않지만 돕지도 않는다'는 입장이라서, 애플 실리콘 리눅스는 순전히 커뮤니티의 역분석 실력에 기대고 있어요.

ARM 진영에는 'SystemReady' 같은 표준화 흐름이 있어요. 표준 펌웨어 인터페이스만 지키면 리눅스 이미지 하나로 여러 기기를 부팅할 수 있게 하자는 건데, 애플은 그 바깥에 있어요. 그래서 이번 M4 이야기는 표준이 왜 중요한지를 거꾸로 보여줘요. 표준 펌웨어가 있었다면 CPU의 건망증은 펌웨어가 조용히 처리해 줬을 문제니까요.

한국 개발자에게 주는 시사점

M4 맥을 업무용으로 쓰고 있다면, 지금 당장 네이티브 리눅스로 갈아타는 건 추천하지 않아요. 아직 실험 단계거든요. 리눅스 환경이 필요하다면 UTM이나 Parallels 같은 가상머신, OrbStack이나 Colima 같은 경량 도구, 애플이 WWDC 2025에서 공개한 Containerization 프레임워크가 훨씬 안정적이에요.

그래도 시스템 프로그래밍이나 임베디드에 관심이 있다면 이런 글은 최고의 교과서예요. 전원 관리, 문맥 저장과 복원, 권한 레벨 같은 개념도 '왜 한참 뒤에야 시스템이 이상해지지?' 같은 실제 디버깅 이야기와 엮이면 머리에 쏙 들어오거든요. 백엔드 개발자에게도 교훈이 있어요. '한 번 설정하면 계속 유지된다'는 가정은 언제든 깨질 수 있다는 거예요. 컨테이너가 재시작되면 메모리 상태가 날아가고, 서버리스 함수는 콜드 스타트 때마다 처음부터 시작하죠. 상태가 언제 사라질 수 있는지 아는 게 견고한 시스템의 출발점이에요.

마무리

한 줄 정리: 문서 없는 칩에서는 CPU가 '무엇을 잊어버리는지'조차 직접 알아내야 하고, M4 리눅스 포팅은 바로 그런 싸움이에요.

애플 실리콘에서 네이티브 리눅스가 완벽하게 돌아간다면 여러분은 갈아타실 건가요, 아니면 macOS와 가상머신 조합이면 충분하다고 보시나요? '잘 되다가 시간이 지나면 이상해지는' 버그를 잡아본 경험이 있다면 댓글로 나눠주세요!


🔗 출처: Hacker News

SOURCE · HACKER NEWS
원문 전체 보기 → https://yuka.dev/blog-2026-10-02-linux-m4.html
SHARE
NEXT · CHOOSE

변화를 읽었다면,
내가 만들 수익 구조를 고릅니다.

정보를 더 모으는 데서 멈추지 않고, 광고·외주·판매·중개·구독 중 내 상황에 맞는 출발점을 정해보세요.

21가지 수익 구조 살펴보기 →
처리 중...