Naver linuxkernel 26 e 2 g 1234naver com
- Slides: 23
구글 안드로이드 개요 Naver linuxkernel 26 운영자 : 박 철 (e 2 g 1234@naver. com)
Android ü Software platform developed by Google for mobile phone p p p Free of charge Open source (Apache License except for kernel) Packaging OS to upper layer applications such as browser Initial screen Browser http: //code. google. com/android/ http: //www. openhandsetalliance. com/ cafe. naver. com/linuxkernel 26 Map
SW platform 별 smart phone cafe. naver. com/linuxkernel 26 출처 : omok. tistory. com
SW platform별 비교 cafe. naver. com/linuxkernel 26 출처 : omok. tistory. com
Program model #include <stdio. h> loading Memory(DDR) CPU(S 3 C 6410) Excute int main() Write back { printf(“Hello~ n”); return 0; } “Stack” Section hello. c (Source) “BSS” Section Reg Memory access arm-gcc (Compiler) excute “Data” Section Decode “Text” Section hello (ELF) cafe. naver. com/linuxkernel 26 PC runtime fetch
Smart phone이 등장하기 까지 전화 삐삐 Smart phone 무선전화 cafe. naver. com/linuxkernel 26 핸드폰
Program model – firmware/muti-thread Firmware “Stack” Section ……… Multi-Thread(RTOS) Stack ……………… BSS “BSS” Section “Data” Section Text “Text” Section scheduler cafe. naver. com/linuxkernel 26 Text
Program model – Multi-process Multi-Process(linux) Multi-Process(android) application application Framework & VM middleware & Library scheduler kernel cafe. naver. com/linuxkernel 26 scheduler kernel
안드로이드 구조 cafe. naver. com/linuxkernel 26
안드로이드 시스템의 구조 Application Area App 1 App 2 App 3 Appn Application framework JAVA Core library Dalvik VM Middle ware Area C/C++ library bionic libc SW Interrupt System Call Interface Virture File System(VFS) Kernel Area Device file system General file system Socket file system Buffer Cache Network Subsystem Network Character Block Device Driver Device Interface Hardware cafe. naver. com/linuxkernel 26 Device Inet(AF_INET) Transport(TCP, UDP ) Network(IP)
bionic libc ü ü 독자적으로 만들어진 linker와 libc 사용 스탠다드 glibc, uclibc를 사용하지 않음 C++ STL(Standard Templete Library) 지원하지 않음 bionic libc의 장점 라이센스: user application에서 GPL문제 회피 p size: 약 200 k, glibc(GNU version of libc)의 절반크기 p speed: 제한된 CPU power에서 동작 p cafe. naver. com/linuxkernel 26
Memory Map of User Space 0 x 00008000 app_process 0 x 40000000 Java apps and resource data etc. ; *. apk, *. jar, *. ttf etc. Shared libraries in native code; libc and libwecore etc. *. so files 0 x. B 0000000 /system/bin/linker Stack 0 x. BEFFFFFF cafe. naver. com/linuxkernel 26 No memory with execution attribute File mapping direction Some memory are of execution attribute File mapping direction
안드로이드 파일시스템 / var tmp 작업용 파일군 system bin Linux로써 사용 할 때의 shell 등의 커맨드군 cafe. naver. com/linuxkernel 26 app 어플리케이션 프로그램 proc framework sys lib Java의 라이브러리군 sbin etc data root usr, fonts, media etc, sounds lost+found system, dalvik, cache drm, logs, download data, app등 네이티브 코드 라이브러리군 저작권 관리정보 로그 다운로드 결과 어플리케이션 데이터
Android on Real target cafe. naver. com/linuxkernel 26
감사합니다. http: //cafe. naver. com/linuxkernel 26