- Asahi Linux 프로젝트는 Apple M1 및 M2 Mac에서 Linux를 실행 가능하게 하며, 무선, 오디오, 그래픽 가속을 포함한 대부분의 하드웨어 지원을 완료
- 프로젝트는 2020년 12월 Hector Martin이 시작했으며, Alyssa Rosenzweig가 M1 GPU의 셰이더 명령어 세트를 역설계하며 참여
- 2022년 12월 Asahi Linux는 OpenGL 드라이버와 커널 드라이버를 결합해 그래픽 가속을 구현, 3D 게임 실행 가능
- 2023~2024년 Rosenzweig는 OpenGL 4.6 및 Vulkan 1.4 규격을 충족하는 드라이버를 개발, Proton을 통한 Windows 게임 실행 지원
- 이 오픈소스 프로젝트는 Apple의 비규격 드라이버를 넘어 산업 표준을 달성하며, macOS에 Vulkan을 도입하는 계기를 제공
오픈소스 프로젝트의 중요성과 장점
- Asahi Linux는 Apple M1 및 M2 칩에서 Linux를 실행 가능하게 하는 오픈소스 프로젝트로, 독점 소프트웨어에 의존하지 않고 완전한 하드웨어 지원을 제공
- Apple의 독점 드라이버가 OpenGL 및 Vulkan 규격을 준수하지 않는 반면, Asahi Linux는 산업 표준 준수를 목표로 하여 신뢰성과 호환성을 높임
- Panfrost와 같은 다른 오픈소스 그래픽 드라이버 프로젝트와 비교해, Asahi Linux는 역설계를 통해 빠르게 발전하며, Proton을 활용한 게이밍 성능 최적화로 차별화됨
프로젝트 시작과 초기 작업
- 2020년 12월, Hector Martin이 Asahi Linux를 시작하며 Apple M1 GPU의 역설계를 추진
- Alyssa Rosenzweig는 Collabora에서 Panfrost(오픈소스 Arm Mali GPU 드라이버) 작업 중 참여
- 초기에는 간단한 조언을 제공하려 했으나, M1 Mac을 구매해 셰이더 명령어 분석을 시작
- 2021년 초, Rosenzweig는 몇 주 만에 삼각형 렌더링에 성공, 3D 그래픽의 기초를 닦음
- 삼각형 렌더링은 3D 그래픽에서 모든 작업의 시작점으로, 이후 복잡한 그래픽 구현 가능
- 이후 셰이더 컴파일러를 개발, 학기 말 시험 후 OpenGL 드라이버를 구현해 기어 회전을 시연
드라이버 개발과 성과
- 2021~2022년, Rosenzweig는 역설계를 지속하며 OpenGL 드라이버를 개선, macOS에서 3D 게임 실행 가능
- Asahi Lina가 Apple GPU용 커널 드라이버를 작성, 사용자 공간의 OpenGL 드라이버와 결합
- 2022년 12월, Asahi Linux는 그래픽 가속을 지원하며 완전한 그래픽 스택 완성
- 2023년, Rosenzweig는 토론토 대학교 컴퓨터과학 마지막 학기를 보내며 드라이버 개발을 병행
- Panfrost 프로젝트 성공 후, M1 GPU 드라이버를 새로운 도전으로 삼음
- 목표: OpenGL 4.6, Vulkan, Proton 게이밍 지원
OpenGL 및 Vulkan 규격 준수
- 2023년, OpenGL 3.1을 구현하고, OpenGL ES 3.1 규격 인증 획득
- OpenGL ES 3.2는 지오메트리 셰이더를 요구하나, Apple 하드웨어는 이를 지원하지 않아 컴퓨팅 셰이더로 에뮬레이션
- Mesa 드라이버의 공통 코드를 활용해 빠르게 개발, 지오메트리/테셀레이션 에뮬레이션 구현
- 2024년 1월, OpenGL 4.6 규격 인증을 획득, Apple의 비규격 드라이버를 초월
- Vulkan 드라이버 개발은 수개월 만에 Vulkan 1.3 인증을 획득
- 지오메트리/테셀레이션 에뮬레이션을 Vulkan에 통합, Direct3D 및 Proton 게임 지원
- Vulkan 1.4 사양 발표 당일 규격 인증 구현, 즉각 배포
- Karol Herbst는 OpenCL 3.0 인증을 획득, Rosenzweig의 컴파일러와 rusticl 프론트엔드 활용
- 희소 텍스처 지원을 추가해 Direct3D 12 및 Proton을 통해 고급 게임 실행 가능
프로젝트 성과와 영향
- Asahi Linux는 OpenGL 4.6, OpenGL ES 3.2, OpenCL 3.0, Vulkan 1.4를 지원하며 모든 목표 달성
- 드라이버는 Mesa에 완전히 통합, 성능 최적화 완료
- Proton 게이밍을 통해 Windows 게임을 Linux에서 원활히 실행, Steam Deck의 기술 활용
- Apple 하드웨어에서 Vulkan이 부적합하다는 오해를 깨고, LunarG의 KosmicKrisp 프로젝트를 통해 macOS에 Vulkan 도입
- Rosenzweig는 프로젝트 성공 후 Apple 생태계를 떠나며, Asahi Linux 팀이 작업을 이어감
- 다음 도전으로 Intel의 Xe HPG 아키텍처로 전환 계획
결론
- Asahi Linux는 Apple M1 GPU의 역설계를 통해 오픈소스 그래픽 드라이버를 성공적으로 개발
- 산업 표준 준수와 Proton 지원으로 Apple 하드웨어의 Linux 게이밍 가능성을 확장
- 이 프로젝트는 오픈소스 커뮤니티의 협력과 역설계 기술의 힘을 보여주며, 독점 시스템에 대한 대안을 제시