애플 M1 맥에서 리눅스 구동, 실현됐다

컴퓨팅입력 :2021/01/22 13:32

애플의 ARM 기반 M1 CPU에 리눅스를 구동하는 가상화 기술이 현실화됐다.

21일(현지시간) ARM 가상화 전문업체 코렐리엄은 애플의 M1 맥미니에 리눅스를 이식하는데 성공했다고 밝혔다.(☞깃허브 바로가기)

크리스 웨이드 코렐리엄 최고기술책임자(CTO)는 트위터에 "리눅스가 M1 맥미니에서 완벽하게 사용가능해졌다"고 발표했다.

애플 M1 맥미니에서 우분투 리눅스를 부팅한 모습

M1 맥에서 리눅스를 구동하는 건 가능하지만, 완벽하진 않다. 가령 M1의 내장 머신러닝(ML) 코어와 그래픽코어는 사용할 수 없다. 머신러닝이나 게임 이용을 구현하는데 더 많은 시간이 필요할 것으로 보인다.

코렐리엄은 그동안 ARM용 가상화 기술인 'ARM용 코렐리엄 하이퍼바이저(CHARM)'으로 알려진 회사다. CHARM은 베어메탈의 가상머신(VM)으로 리눅스를 구동하는 형태다.

M1에서 리눅스 구동은 CHARM을 쓰지 않는다. 크리스 웨이드 CTO는 "M1 리눅스 이식은 CHARM에서 돌아가는 게 아니라, 베어메탈에서 돌아간다"고 설명했다.

현재로선 리눅스에 해박한 전문가만 시도가능하다. 웨이드는 바이너리 파일과 방법 문서를 작업중이라고 밝혔다. 때문에 이용자가 리눅스M1 코드를 직접 컴파일해야 한다.

컴파일을 한 후 M1 맥미니에 USB 기기를 연결해 완전한 우분투 리눅스 데스크톱을 부팅할 수 있다. 네트워킹은 USB-C 동글을 이용해야 한다. 현재 더 나은 USB와 I2C 직렬통신프로토콜을 포함하기 위한 작업이 진행중이다.

코렐리엄의 M1 리눅스 이식은 '샌드캐슬 프로젝트'의 작업을 기반으로 한다. 샌드캐슬 프로젝트는 아이폰에서 안드로이드와 리눅스를 실행하는 프로젝트였다. 코렐리엄이 이미 아이폰용 칩셋에서 리눅스 구동을 연구해왔기 때문에 새롭게 나온 M1도 쉽게 시도할 수 있었단 얘기다.

웨이드는 "SoC의 많은 장치가 프로그래머 관점에서 변경되지 않았다"고 말했다.

M1 내부에서 진행되는 작업 대부분은 여전히 수수께끼다. 코렐리엄 코드는 애플 AIC 인터럽트 컨트롤러, 애플 UART 드라이버, SMP 지원, PMGR 지원, DART 지원(애플 IOMMU), GPIO, I2C, USB C 컨트롤러, USB C 포트 등의 하드웨어 인터페이스에서 사용할 수 있다.

여러 제약이 있지만, 우분투 데스크톱을 부팅하고 실행하기 충분한 상태다. 초기 M1 맥용 리눅스 코드는 리눅스 커널 개발자에게 업스트림으로 전달됐다.

완성까지 아직 더 많은 작업이 요구된다. 한 개발자는 트위터에 "업스트림에 많은 시간이 걸리겠지만 매우 유망한 이식"이라며 "SoC가 비정형이기 때문에 더 외과적인 커널 변경이 필요하다"고 적었다.

코렐리엄은 크라우드펀딩으로 M1용 리눅스 배포판을 개발하는 '아사히 리눅스' 프로젝트 개발자와 협업한다고 밝혔다. 아사히 리눅스 배포판은 애플 M1 아키텍처에 맞는 리눅스를 개발하고 있다. 크랙 개발자 알리사 로젠츠바이그 아사히가 M1의 폐쇠형 GPU 아키텍처에 접근하는 방법을 고안하고 있다.

개발자들은 리눅스를 M1 맥에서 직접 부팅하기 위해 몇가지 옵션을 고려하고 있다. 현재 가장 주목받는 접근법은 맞춤형 부트로더인 '퐁고OS(PogoOS)' 사용이다. 이는 애플의 기본 iBoot2와 함게 작동한다. iBoot2를 거쳐 퐁고OS로 리눅스를 부팅하는 것이다.

리눅스는 GPLv2 라이선스를 따르고 있어 향후 라이선스 문제가 불거질 수 있다.

관련기사

코렐리엄의 웨이드 CTO는 코드 라이선스에 대해 "M1 리눅스용 코렐리엄 코드는 모두를 허용하는 오픈소스 라이선스로 나올 것이며, 이를 리눅스로 업스트림하는 것을 적극적으로 검토하고 있다"고 밝혔다.

또 다른 문제는 애플이 코렐리엄을 좋아하지 않는다는 점이다. 애플은 작년 코렐리엄을 저작권 위반으로 고소했다. 코렐리엄의 연구원이 잠재적인 보안 버그를 찾기 위해 브라우저에서 가상화된 iOS 기기를 작동시킨 게 문제였다. 애플의 초기 노력은 실패했지만, 소송은 진행중이다.