잘 잊어버리는 CPU(M4에서 Linux 구동하기)
요약
M4 Mac의 CPU 코어를 모두 활용하여 Linux를 성공적으로 부팅하는 방법을 분석했습니다. 특히 M4가 도입한 SPTM(Secure Page Table Monitor) 환경과 초기 부팅 과정에서 발생했던 기술적 난제들을 해결하며, 하드웨어와 소프트웨어 통합의 중요성을 강조합니다.
핵심 포인트
- M4 Mac은 WFI 명령 충돌 문제로 Linux 부팅에 어려움을 겪었으나, 부팅 인자 비활성화 방식으로 해결했습니다.
- M4는 SPTM을 의무화하여 보안이 강화되었으며, 이는 기존 하이퍼바이저 방식보다 더 복잡한 초기화를 요구합니다.
- Linux 부팅 과정에서 레지스터 접근, MMU 활성화, 장치 트리 설정 등 여러 기술적 난제들을 해결했습니다.
- Apple은 수직 통합 모델을 통해 독점적인 사용자 경험과 높은 완성도를 유지하고 있습니다.
M4 Mac에서 모든 CPU 코어를 사용하며 Linux를 셸까지 부팅할 수 있게 됨. WFI/WFIT 명령 실행 시 충돌을 막는 변경이 메인라인 Linux와 m1n1에 병합됨
M4에서는 WFI 실행 시 CPU 상태가 손실되는 동작을 기존 세대처럼 끄기 어려웠음. 이를 제어하던 비트가 잠겼거나 제거된 것으로 보이며, 기본 동작은 ARM64 명세에 부합하지 않음
최종 해결책은 CPU 종류만으로 명령을 자동 패치하는 대신, 부팅 인자로 WFI 유휴 동작을 비활성화하는 방식임. m1n1이 문제가 있는 베어메탈 기기를 판별해 필요한 인자를 추가함
초기 부팅 과정에서는 잠긴 레지스터 접근, MMU 활성화 이후 UART 매핑 부재, 장치 트리의 콘솔 설정 누락을 차례로 해결함
같은 WFI 우회책은 M4 Pro, M4 Max, M5에서도 작동함. 다만 주변장치 역공학은 진행 중이며, 카메라와 디스플레이 컨트롤러, GPU 초기화 등 복잡한 구성요소는 추가 작업이 필요함
M4의 SPTM과 초기 부팅 환경
2024년 11월 시작한 M4 Mac mini의 Linux 부팅 작업은 M1~M3와 유사할 것이라는 기대보다 어려웠음. M4는 macOS의 XNU 커널 취약점에 대한 방어를 강화하는 SPTM(Secure Page Table Monitor) 을 의무화한 첫 Apple Silicon 세대임
이전 세대의 Linux 초기 구동은 m1n1 하이퍼바이저로 수집한 MMIO 추적에 크게 의존했음
macOS의 원래 드라이버와 하드웨어 사이 상호작용을 분석하는 방식임
SPTM 환경에서 macOS를 하이퍼바이저 아래 실행하려면 m1n1에 대규모 변경이 필요함
하이퍼바이저 작업과 별개로 직접 Linux 부팅을 시도하기 위해 엄격한 부팅 보안을 비활성화하고 macOS 복구 환경에서 m1n1을 사용자 지정 부팅 객체로 설치함
Apple이 개방형 하드웨어를 받아들였다면 얼마나 더 커질 수 있었을지 상상해 봄. 하드웨어에는 확실한 경쟁 우위가 있음. macOS는 너무 비대해서 싫지만, 하드웨어는 다른 어떤 제품보다도 훨씬 뛰어남.
Apple은 수직 통합 기업임. 하드웨어나 소프트웨어를 따로 팔고 싶은 게 아니라, 오직 전체 패키지를 팔고 싶어 함.
이를 바꾸라는 건 가톨릭교회에 8트랙 테이프로만 랩 음악을 내는 음반 클럽을 만들라고 요구하는 것만큼이나 실현 가능성이 낮음. Apple에 하드웨어는 목표를 이루기 위한 수단일 뿐임.
그랬다면 파산했을 것임. Apple의 역사를 안다면 과거에 바로 그런 시도를 했다는 것도 알 것임. 대안으로는 이미 Windows·Intel 기반 PC 호환기종이 있으니, 개방성을 중시한다면 Linux OEM 업체를 지원하면 됨.
얼마나 더 커진다는 뜻인지 궁금함. 이미 역사상 가장 큰 기업 중 하나인데, 이미 Mac을 쓰는 시장의 1% 에 더 호소하면 무엇이 달라질까? 그 사용자들까지 지원해야 하는 것 아닌가?
Apple은 이미 알려진 우주에서 가장 큰 기업 중 하나임. 지구상에서 데스크톱 Linux를 원하는 모든 사람이 이를 위해 가장 비싼 Mac을 사더라도, Apple의 기존 규모에 비하면 유의미한 매출이 되지 않을 것임. 자기 주변만 보고 판단하지 말아야 함.
정말 하드웨어 자체가 훨씬 뛰어난 걸까, 아니면 하드웨어·소프트웨어 통합이 뛰어난 걸까? macOS가 비대하더라도 더 효율적일 수 있지 않을까? 내 경험에서 확실히 훨씬 나았던 건 배터리 사용 시간임.
조금 다른 얘기지만, 얼마 전 macOS용 외장 트랙패드를 찾다가 선택지가 적고 품질도 별로라는 걸 알게 됨. 어디서나 Apple Magic Trackpad에 견줄 제품이 없다고 했는데, 알아보니 macOS의 터치패드·제스처 프로토콜이 독점적이고 폐쇄적이라 타사 트랙패드는 사실상 마우스로 동작해야 했음.
컴퓨터부터 운영체제, 액세서리, 소프트웨어 서비스까지 한 회사가 모두 만들면 이런 결과가 나옴. 결국 그 회사의 제품군을 통째로 쓰거나 포기해야 함.
사실이 아님. 프로토콜이나 터치패드 지원 문제가 아니라, Apple이 사용자 경험에서 다른 업체들보다 앞서 있기 때문임. Dell, Lenovo, Microsoft를 비롯한 수많은 회사가 자기 기기에서조차 Apple 수준의 트랙패드를 구현하지 못했는데, 그건 왜일까?
개방적인 것에 적극적으로 적대적인 회사의 기기를 사서 개방형 소프트웨어를 돌리려는 건 이상함.
Apple이 일부러 개방형 소프트웨어를 차단하는 조치를 취하는 건가, 아니면 그냥 철저히 무시한 채 새 하드웨어를 계속 개발하는 건가? 정말 몰라서 묻는 것임. 주로 macOS에 관한 질문이며, 모바일 운영체제는 훨씬 더 폐쇄적임.
Lenovo 노트북에서 절전 모드 복귀 후 트랙패드가 먹통이 되는 펌웨어 버그를 겪었는데, Lenovo는 끝내 고치지 않았음. 사용하기 너무 불편해서 MacBook으로 넘어감. Apple은 지원할 모델 수가 적으니 이런 명백한 결함을 방치하지 않을 거라 봤음.
Windows를 싫어하고, Linux 지원이 부족할 때 macOS를 대안으로 쓸 수 있다는 점도 고려함. Asahi Linux의 빠른 이식을 기대했지만 내 M3에서는 아쉽게도 실현되지 않았고, 다행히 최근에는 진전이 있음.
여기가 어디인지 잊은 것 아닌가? Hacker News라는 이름에는 이유가 있음.
AI로 이 작업을 해낼 수 있을까? 필요한 작업을 AI에 맡겨 본 시도가 있었는지 궁금함.
AI 자동 생성 콘텐츠
본 콘텐츠는 GeekNews의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기