운영체제를 공부하다가 운영체제의 핵심 서비스를 담당하는 부분을 커널이라고 부른다는 것을 알게 되었다. 그러면 내가 개발하는 안드로이드의 핵심 서비스를 담당하는 부분이 궁금해져서 찾아보게 됐는데 너무 어려워서 이해한 부분을 바탕으로 정리해 봤다.
안드로이드 12에서 구동 가능한 커널 버전은 4.19, 5.4, 5.10으로 GKI 커널이 포함되어 있다.
그런데 GKI 커널은 버전 5.4 이상부터라고 공식사이트에 명시되어 있는데 GKI 출시 프로세스를 보면 안드로이드 12의 5.10 버전에 대해서 GKI 출시라고 설명하고 있어서 뭐가 맞는지 잘 모르겠다..
안드로이드 11은 5.4이상 버전 그리고 Android S(2021) 플랫폼 버전으로 출시되는 기기는 GKI 커널과 함께 제공된다고 한다.
리눅스 커널은 다양한 하드웨어 아키텍처 및 장치를 지원하기 위해 여러 버전으로 변형되거나 수정되면서 유지 관리가 복잡해진다.
이를 쉽게 유지 및 관리하기 위해서 핵심 커널을 통합하고 Vendor마다 다를 수 있는 하드웨어 모듈은 따로 분리하여 로드할 수 있게 만들었는데 이것을 GKI 아키텍처를 통해 구현했다.
Vendor마다 KMI를 개발해서 하드웨어 모듈을 커널에 로드해야 한다.
너무 어려운 내용이라서 찾아서 읽어보는데도 이해가 잘 되지 않았다. . 지금도 잘 이해한 건지는 모르겠다..