반응형
SMALL

안드로이드 운영체제 구조는 리눅스 커널을 기반으로 만들어졌다. 안드로이드는 코드를 짜는 것도 중요하지만 os자체는 어떻게 구성되어 있는지, 또 그것이 어떤역할을 하는지에 대해 확실히 알 필요성이 있다. 그만큼 이런 구조도 확실하게 알고 있어야 개발이든 보안이든 둘다 가능하다. 




<안드로이드 os의 구조>


안드로이드 os는 굉장히 무거운 os에 속한다. 리눅스에 htop을 켜봐도 메모리 상태를 보게 되면 안드로이드 스튜디오를 돌리는 것자체로도 2GB씩 차지한다. 하지만 무거운 만한데는 다 이유는 있다. 아래 사진이 안드로이드 OS의 전체적 구조다.





1. Linux Kernel

C,C++언어를 기반으로 이루어져 있으며 리눅스 계열로 이루어진 만큼 보안이 상당히 강력하다. 주로 드라이버로 이루어져 있으며 화면드라이버, 키보드드라이버, 카메라 드라이버 등으로 구성되어져 있다.


2. Library

Linux Kernel과 마찬가지로 C,C++언어를 기반으로 이루어져 있으며, 안드로이드 앱개발에 필요한 중요한 오픈소스 기반의 솔루션들이 다 모여있다. 하지만 취약점이 많아서 보안상에 문제점이 Library쪽에서 많이 발생한다.


3. Android Runtime


구글에서 자체 제작한 Dalvik Virtual Machine, 애플리케이션 제작은 JVM으로 개발한 후에 최종적으로 Dalvik 코드로 변경해서 Target장치에서 구동한다. 안드로이드는 리눅스,라이브러리가 C, C++로 개발되어지고 이루어졌지만 자바로 개발이 가능한 이유가 JVM이라는 자바가상머신이 얹어졌기 때문에 자바로 코딩이 가능하다. 하지만 mySQL, ORACLE과 같은 엔진들은 너무 무겁기때문에 안드로이드에서는 사용하기가 어렵다.


4. Applications Framework


구글에서 JAVA로 자체 제작한 애플리케이션 프레임 페키지다. 주로 활동매니저, 윈도우매니져 등으로 구성되어있다. 말그대로 응용프로그램을 돌리기 위한 프레임워크이다.


5. Applications


이것도 Applications Framework과 마찬가지로 구글에서 JAVA로 자체 제작했다. Application에는 연락처, 전화 브라우저 등등 우리가 주로 일상생활에서 많이 사용하는 휴대폰 앱이 굉장히 많다.







반응형
LIST
블로그 이미지

만년필석사

,