Android/커널

덤프버전 :

파일:나무위키+상위문서.png   상위 문서: Android


1. 개요
2. 상세
2.1. init 프로세스
2.2. Zygote
2.3. 시스템 서버
3. 기타


1. 개요[편집]


Google에서 개발하는 Android의 커널로 리눅스 커널을 기반으로 하고 있다. 리눅스 커널 기반인지라 라이선스도 GPLv2이다.


2. 상세[편집]


리눅스 커널 위에 여러 안드로이드 프레임워크가 씌워진 커널이라고 생각하면 된다.

그래서 Android 부팅 과정은 부트로더 > 리눅스 커널 > init 프로세스 > 안드로이드 프레임워크 순이다. 안드로이드 프레임워크에는 OpenGL, SQLite, SSL, libc 등의 C/C++ 라이브러리, 안드로이드 런타임, 시스템 서버(System Server), 데몬 등이 있다.


2.1. init 프로세스[편집]


리눅스 커널 초기화 후 첫번째로 사용자 영역에서 실행되는 프로세스로 init.rc 파일을 읽어 스크립트를 실행하여 안드로이드 프레임워크 초기화, 디바이스 노드 생성, 데몬 실행 등을 수행한다.


2.2. Zygote[편집]


안드로이드 애플리케이션들을 관리하는 프로세스. 안드로이드 앱은 Java로 만들어져 있기에 코드 실행을 위해서는 먼저 가상머신을 초기화해야 한다. 그런데 앱마다 가상머신을 초기화하고 실행한다면 실행 시간이 오래 걸릴 수 있다.

그래서 Zygote는 실행될 때 가상머신 초기화 및 사용할 클래스들을 미리 메모리에 로딩시켜놓고 자신의 가상머신 및 메모리를 앱들과 공유하여 실행 시간을 단축시키고 성능을 향상시키는 역할을 한다. 또한 시스템 서버를 실행한다.


2.3. 시스템 서버[편집]


안드로이드 프레임워크와 소리, 카메라, 센서 등의 하드웨어의 기능을 담당하는 프로세스.


3. 기타[편집]


모든 운영체제가 그렇듯, 안드로이드에도 커널 패닉이 존재한다. 하지만 커널 패닉이 일어나는 경우는 매우 적은 편이다. 제조사가 모든 기능이 문제 없이 동작하고 테스트를 하기에 안정성이 매우 높다.


파일:CC-white.svg 이 문서의 내용 중 전체 또는 일부는 2024-05-16 23:29:34에 나무위키 Android/커널 문서에서 가져왔습니다.