一、ramdisk介紹
ramdisk通過直面意思就大概能理解意思,ram disk虛擬記憶體盤,將ram模擬成硬碟來使用的檔案系統,對于傳統的磁盤檔案系統來說,這樣做的好處是可以極大提高檔案訪問速度;但由于是ram,所以 在掉電后,這部分內容不能保存,ramdisk檔案系統是在系統上電后直接從磁盤一次性加載到記憶體,在整個運行期間都不會有寫回操作,所以,任何修改都掉 電后丟失,
二、ramdisk.img介紹
ramdisk.img是android打包生成的,解壓ramdisk.img后對比root根目錄很相似,所以ramdisk是虛擬檔案系統,這里主要講解如何解壓ramdisk.img,
file ramdisk.img
--ramdisk.gz: gzip compressed data, from Unix
-----可知ramdisk.img是gz的檔案
mv ramdisk.img ramdisk.gz
-----更改后綴名
gunzip ramdisk.gz
-----解壓,會生成ramdisk檔案
file ramdisk
--ramdisk: ASCII cpio archive (SVR4 with no CRC)
cpio -i -F ramdisk

三、ramdisk、boot.img、recovery.img之間的關系
ramdisk.img會被打包到boot.img和recovery.img中(不是同一個ramdisk.img).
ramdisk.img中比較重要的檔案是"init","init.rc",其中init是system/core/init/init.c編譯而來,boot.img中ramdisk里的init.rc位于system/core/init/init.rc,而recovery.img中ramdisk里的init.rc位于bootable/recovery/etc/init.rc,
kernel加載結束以后第一個行程是執行init,init會決議init.rc檔案,并起相應的服務,由此可以知道正常開機和進入recovery模式起的行程是不同的,
下面的代碼位于bootable/recovery/etc/init.rc,由此可知,進入recovery模式后會執行sbin/recovery,此檔案是bootable/recovery/recovery.cpp生成(可查看對應目錄的Android.mk查看),
service recovery /sbin/recovery
seclabel u:r:recovery:s0
轉載請註明出處,本文鏈接:https://www.uj5u.com/caozuo/40769.html
標籤:嵌入式
