1. 개요
Google에서 개발하는 Android의 커널로 리눅스 커널을 기반으로 하고 있다. 리눅스 커널 기반인지라 라이선스도 GPLv2이다. 안드로이드 기본 커널은 common kernel이라고 부르며 소스 코드는 AOSP에 기본적으로 포함되어 있다.2. 상세
리눅스 커널 위에 여러 안드로이드 프레임워크가 씌워진 커널이라고 생각하면 된다.그래서 Android 부팅 과정은 부트로더 > 리눅스 커널 > init 프로세스 > 안드로이드 프레임워크 순이다. 안드로이드 프레임워크에는 OpenGL, SQLite, SSL, libc 등의 C/C++ 라이브러리, 안드로이드 런타임, 시스템 서버(System Server), 데몬 등이 있다.
2.1. init 프로세스
리눅스 커널 초기화 후 첫번째로 사용자 영역에서 실행되는 프로세스로 init.rc 파일을 읽어 스크립트를 실행하여 안드로이드 프레임워크 초기화, 디바이스 노드 생성, 데몬 실행 등을 수행한다.2.2. Zygote
안드로이드 애플리케이션들을 관리하는 프로세스. 프로세스 이름은 app_process32 또는 app_process64.모든 안드로이드 앱은 Java로 개발되어 있기에 앱 실행을 위해서는 먼저 가상머신을 초기화시켜야 한다. 그런데 앱마다 가상머신을 초기화해야 한다면 실행 시간이 오래 걸릴 수 있다.
그래서 Zygote는 실행될 때 가상머신 초기화 및 사용할 클래스들을 미리 메모리에 로딩시켜놓고 자신의 가상머신 및 메모리를 앱들과 공유하여 실행 시간을 단축시키고 성능을 향상시키는 역할을 한다. 또한 시스템 서버를 실행한다.