[include(틀:상위 문서, top1=Android)] [목차] == 개요 == [[Google]]에서 개발하는 [[Android]]의 커널로 [[Linux/커널|리눅스 커널]]을 기반으로 하고 있다. 리눅스 커널 기반인지라 라이선스도 [[GPL]]v2이다. == 상세 == 리눅스 커널 위에 여러 안드로이드 프레임워크가 씌워진 커널이라고 생각하면 된다. 그래서 Android 부팅 과정은 부트로더 > 리눅스 커널 > init 프로세스 > 안드로이드 프레임워크 순이다. 안드로이드 프레임워크에는 OpenGL, SQLite, SSL, libc 등의 C/C++ 라이브러리, [[안드로이드 런타임]], 시스템 서버(System Server), 데몬 등이 있다. === init 프로세스 === 리눅스 커널 초기화 후 첫번째로 사용자 영역에서 실행되는 프로세스로 init.rc 파일을 읽어 스크립트를 실행하여 안드로이드 프레임워크 초기화, 디바이스 노드 생성, 데몬 실행 등을 수행한다. === Zygote === 안드로이드 애플리케이션들을 관리하는 프로세스. 안드로이드 앱은 [[Java]]로 만들어져 있기에 코드 실행을 위해서는 먼저 가상머신을 초기화해야 한다. 그런데 앱마다 가상머신을 초기화하고 실행한다면 실행 시간이 오래 걸릴 수 있다. 그래서 Zygote는 실행될 때 가상머신 초기화 및 사용할 클래스들을 미리 메모리에 로딩시켜놓고 자신의 가상머신 및 메모리를 앱들과 공유하여 실행 시간을 단축시키고 성능을 향상시키는 역할을 한다. 또한 시스템 서버를 실행한다. === 시스템 서버 === 안드로이드 프레임워크와 소리, 카메라, 센서 등의 하드웨어의 기능을 담당하는 프로세스. == 기타 == 모든 운영체제가 그렇듯, 안드로이드에도 [[커널 패닉]]이 존재한다. 하지만 커널 패닉이 일어나는 경우는 매우 적은 편이다. 제조사가 모든 기능이 문제 없이 동작하고 테스트를 하기에 안정성이 매우 높다. [[분류:Linux]][[분류:Android]][[분류:커널]]