1) Kernel
2.6.29 <- eclair(froyo)
2.6.32.9 <- froyo
위의 둘은 API와 자료구조의 차이이다.
2) device driver -> device model
이것을 한번에 묶어주는 것이 toolchain이다. -Montavista社의 것이 좋다.
3) File System type -> yaffs2, jffs2(x), ubifs, ext4 (조사를 해서 제출)
단말기 Type을 선택할 때 가장 중요한 요소가 된다.
*) 용어정리
File system : 저장소
Root file system : /
참고하기 좋은 사이트 : source.android.com
denx.de – 1. uboot 2. eldk
1. 커널 옵션
2. Android kernel -> Android Linux = GNU Linux + Ashmem + binder + logcat
3. Startup => 부팅시간
Fastboot, quickboot
부팅시간이 그 회사 기술의 척도가 된다. 그래서 상당히 중요한 요소이다. 모든것을 컨트롤 할 수 있다는 것을 대변하기 때문이다.
firmware는 IO에서 직접적으로 Device를 컨트롤러하는 것을 위해 필요한 시스템이다.
-GPE
-Buildroot(uclinux, uclibc)
-Android Platform
linphone.org
ekiga.com
LBS(Location Based System) 지리정보시스템.
요즘은 NOR는 쓰지 않는다. NAND를 쓰고 있다. 이것때문에 File system의 영향을 많이 받는다. Ethernet Controller는 거의 필요가 없다. Wireless 위주이기 때문이다.
- Character device - NAND같은 경우에는 이것으로 분류된다.
- block device
- network device
Kernel image
bootloader, firmware초기화, 압축해제, 커널코드
OS-리눅스커널을 이야기 한다.
Platform은 Android관련된 것들.
참고사항으로 Bada플랫폼은 UCLinux OS를 사용한다.
Embedded System의 특징!!
실시간동작의 필요성이 요구된다. 일반PC와 다르게 즉각적인 응답이 필요한 경우가 있다.
(안드로이드에서도 eclair에서 froyo로 가면서 속도가 매우 빨리졌는데, 그 이유는 Kernel의 Vesion up이다.)
Software가 오동작했을 경우 제어시스템(OS)의 경우 더 심각한 증상을 가져올 수 있다.(App보다 매우 영향이 크다.)
전원문제 : 칩에서 PMIC라고 했을 때 PM(ACPI)를 거치고, PM(Wakelock)을 거친다.
tickless kernel?? http://earthfall.egloos.com/1593086
열악한 동작환경 조건인 상황이 많다.
NDK(javah command를 이용) <- GCC를 이용한다.
http://developer.android.com 을 참조
device driver -> module의 단위로 본다면 이렇게 생각하면 된다.
http://oss.sgi.com 가면 SGI에서 Linux kernel open project를 진행중이다. xfs라는 file system을 이용?(file system자체에 RT개념이 들어가있다.)
Vlan(Active/Standby개념), bonding(kernel), teaming(Broadcom+suse. 서버용)
App을 개발하기 위해 Map-API key를 발급받아야 한다.
lwip, uip는 OS내에 넣을 수 있는 protocol이다. stack이 작다. OS내에서 사용하는 것이다.(not socket)
Linux에 대해서 http://lwn.net에 가서 보면 읽어볼만하다.
<<OS>>
Latency : preemption, context switch, interrupt 이 세가지 요소를 정리한 곳이 Monta Vista이다. 이것을 줄이는 것이 보통 최종 issue가 된다.
ARM core에 붙는 심볼중에
VFP(vector Floating Pointing)이 실수연산과 관련하기 때문에 이슈화되고 있고 매우 중요하다.(arm-eabi-linux-gcc)
- VFP
- eabi
- 부팅시 Platform 로딩 IPC(mmap) - sysvipd, Binder
<<Processor>>
적절한 Processor를 결정하는데 필요한 조건은 얼마나 시장에서 검증이 되었냐하는 것이다.
이 글은 스프링노트에서 작성되었습니다.
'[Developer] > Android' 카테고리의 다른 글
Linux4Android 2nd Morning (0) | 2010.11.09 |
---|---|
Linux4Android 1st Afternoon (0) | 2010.11.09 |
getSystemService()의 강력함. (0) | 2010.04.07 |
모토로이 등 일반 안드로이드 폰에 직접 apk 설치 방법 (0) | 2010.02.17 |
TalkBack (1) | 2010.02.08 |
댓글