안드로이드와 같은 임베디드 시스템에서 플래시 메모리를 리눅스의 루트 파일 시스템으로 사용하기 위해서 'MTD(Memory Technology Device) 블럭 디바이스 드라이버'라는 것을 사용합니다.

HTC 기반 안드로이드폰의 기본 MTD 파티션은 아래와 같습니다. (기기에 따라 차이가 있을 수 있습니다)

MISC - CID를 포함한 변수 항목과 특성을 기록한 파티션
RECOVERY - OS의 백업이나 업그레이드 등의 기능을 사용자가 이용할 수 있는 리커버리가 설치되는 파티션
BOOT - OS의 커널과 램디스크가 설치되는 공간으로, 커널은 OS의 가장 핵심적인 부분으로 자원(메모리, 프로세스)을 효율적으로 관리하고 시스템을 제어하는 역할을 합니다.
SYSTEM - OS의 가장 기본적이고 필수적인 소프트웨어가 설치되는 공간으로 시스템의 중요한 부분이기 때문에 일반적으로 쓰기 방지(write protection)가 설정되어 있습니다.
CACHE - 임시파일들이 저장되는 공간으로 실제 기기 사용시에는 영향을 주지 않습니다.
DATA - 실제 사용자의 데이터가 저장되는 공간입니다. 다운받아 설치한 어플이라던가 셋팅 정보, 받은 메시지 등의 사용 중인 데이터가 기록됩니다.

(기본적으로 안드로이드의 플래시 메모리 파일시스템 포맷은 yaffs2를 사용합니다)

실제로 그러한가 확인 해 봅시다!!!

adb shell이나 terminal emulator에서 cat /proc/mtd 명령을 입력하면 아래와 같은 결과값을 확인할 수 있습니다.

mtd0: 00040000 00020000 "misc"
mtd1: 00500000 00020000 "recovery"
mtd2: 00280000 00020000 "boot"
mtd3: 04380000 00020000 "system"
mtd4: 04380000 00020000 "cache"
mtd5: 04ac0000 00020000 "userdata"



'리눅스 & 안드로이드' 카테고리의 다른 글

vmlinux image 구성요소  (0) 2011.02.10
Tips for kernel build  (0) 2011.02.09
fcntl function in the start_property_service()  (0) 2011.02.07
Android Self Q&A (업데이트 중...)  (0) 2011.02.07
Redirect stderr to stdout  (0) 2011.01.31
Posted by 세월의돌