두근두근이야기

20130829 본문

IT/IT ::Linux

20130829

골든 2013. 8. 29. 13:48

1. 임베디드 리눅스(안드로이드 리눅스)

android는 jdk6기반

우분투 버전은 12.04

usb설치(unetbootin으로 설치)

jdk(oracle 사이트에서 설치, apt-get으로 설치)

패키지 설치(sudo apt-get)

서버(realtime streaming server 구축, 반드시 소스 빌드를 해서 설치)

opensource.org

http://www.oss.kr


2. 커널

커널버전(2.6.x 와 3.x 버전의 커널이 사용)

커널빌드 시스템 이해(make를 이용한 Makefile 구조)

->커널 이미지가 생성되는 흐름을 이해(zImage)

->커널소스 /arch/arm/boot/zImage(gzip 기반의 압축 이미지)


커널 소스 디렉토리 구조

arch/, fs/, mm/, Documentation/, init/, drivers/, scripts/, sounds/, kernel/ 등등


커널 5가지 컴포넌트(구성요소)

- 프로세스 관리자

- 메모리 관리자

- 파일시스템

- 디바이스 드라이버

- 네트워크 시스템

->POSIX 규정


커널 포팅(CPU, h/w interface(SPI, I2C 등), 주변장치 동작)


커널 디버깅 기법

커널 튜닝(최적화, 스트레스 테스트)


3. Toolchains(컴파일러)

- gcc (cross toolchains)

  . sourcery

  . eldk (denx.de)

  . arm.linux.org.uk

  . google


- glibc /bionic libc

- binutils


4. system software(sym call api programming)

커널소스/arch/arm/kernel/calls.S 시스템 콜 테이블

strace /ltrace

ex) strace ls


5. root file system

android

buildroot.uclibc.org

busybox


- android

application (하이브리드, native app)

application framework(api 제공, manager service가 제공)

library + runtime(dalvik vm, java core library)

  . library -> media framework, sourceflinger, audiofliner...

HAL (Hardware Abstraction Layer)


6. app(응용)

 java

 c

 c++


7. core tech

media framework (stragefright, openmax)

surfaceflinger (open gl es 2.0)

opencv

ffmpeg

xbmc

mplayer (소스를 받아 컴파일 해보기, 자막도 입혀보고)

linphone.org

dlna (upnp)

tethering (hotspot)

adk (arduino)

증강현실

openmax IL (Integration Layer)


8. 부트로더

u-boot (universal boot loader)

denx.de


9. 파일시스템

ext3, ext4

yaffs2

ubifs (범용으로 썼을 때)

파일시스템 porting


10. 과제

heap과 stack구조

dmesg(debug message, 커널 부팅로그)를 이용하여 로그 라인별로 출력하기

'IT > IT ::Linux' 카테고리의 다른 글

swap  (0) 2013.08.29
20130829 개발환경설정  (0) 2013.08.29
vimrc vim 설정  (0) 2013.08.24
우분투 gui로 부팅(text 모드시)  (2) 2013.08.24
MMU(memory management unit)  (0) 2013.08.24