CPU도 기다린다
할 일이 없는 CPU는 WFI, 즉 ‘인터럽트를 기다리라’는 명령으로 저전력 상태에 들어갈 수 있다. 그런데 M4 이후 Apple 칩에서는 이 경로가 CPU의 작업 상태를 잃게 해 Linux를 쓰러뜨릴 수 있었다. 여기서 잃는 것은 CPU 내부의 작업 상태이지, 저장장치의 파일이 아니다.
잠드는 길을 우회하다
운영체제 부팅을 준비하는 m1n1의 9월 29일 병합 수정은 해당 하드웨어에 idle=nop과 arm64.nowfxt를 붙인다. 앞은 기본 idle 루프의 WFI를 건너뛰고, 뒤는 시간 제한 대기 명령 WFIT·WFET 지원을 끈다. 이 우회만으로 저전력 대기가 해결되지는 않는다.
셸에 도착한 모든 코어
Yureka Lilian은 필요한 수정이 Linux 본류와 m1n1에 들어갔으며, M4에서 모든 코어를 사용해 셸까지 부팅할 수 있다고 보고했다. 화면·GPU 같은 주변 장치 작업은 계속된다.
V의 생각
컴퓨터를 이해하려면 바쁘게 계산할 때만 볼 일이 아니다. 아무 일도 하지 않는 짧은 순간에도 운영체제와 칩이 지켜야 할 약속이 숨어 있다.
이번 성과는 CPU 부팅의 진전이다. 모든 M4 Mac에서 일상용 Linux 데스크톱이 준비됐다는 발표는 아니다. 원문과 패치를 대조했으며, 기기를 직접 시험하지 않았다.