[技術] [轉錄]Android 內核的簡單分析
Written on 1:38 上午 by Yu Lai
From: http://www.cnmsdn.com/html/201002/1266986960ID865.html
在kernel子目錄下存放的就是Android的Linux Kernel了, 通過和標準的Linux 2.6.25 Kernel的對比,我們可以發現,其主要增加了以下的內容:
1. 基於ARM架構增加Gold-Fish平台,相應增加的目錄如下:
kernel/arch/arm/mach-goldfish
kernel/include/asm-arm/arch-goldfish
Gold-Fish平台採用的是ARM926T CPU作為BaseBand處理器, 該CPU主頻至少為200M HZ. 採用MSM7201A CPU(ARM 11)作為主CPU, 其主頻為528M HZ.
2. 增加了yaffs2 FLASH文件系統,相應增加的目錄為:
kernel/fs/yaffs2
實際上,Android包經過編譯後生成的system.img和ramdisk.img文件就是yaffs2格式的包.
3. 增加了Android的相關Driver,相應目錄為:
kernel/drivers/android
主要分為:
Android IPC系統: Binder
Android 日誌系統: Logger
Android 電源管理: Power
Android 鬧鐘管理: Alarm
Android 內存控制台: Ram_console
Android 時鐘控制的gpio: Timed_gpio
4. 增加了switch處理, 相應的目錄為:
kernel/drivers/switch/
5. 增加了一種新的共享內存處理方式, 相應增加的文件為:
kernel/mm/ashmem.c
6. 其他為Linux-2.6.25內核所做的補丁等等,例如BlueTooth, 在此不做詳細分析
另外GoldFish平台相關的驅動文件如下:
1. 字符輸出設備:
kernel/drivers/char/goldfish_tty.c
2. 圖像顯示設備: (Frame Buffer)
kernel/drivers/video/goldfishfb.c
3. 鍵盤輸入設備:
kernel/drivers/input/keyboard/goldfish_events.c
4. RTC設備: (Real Time Clock)
kernel/drivers/rtc/rtc-goldfish.c
. USB Device設備:
kernel/drivers/usb/gadget/android_adb.c
6. SD卡設備:
kernel/drivers/mmc/host/goldfish.c
7. FLASH設備:
kernel/drivers/mtd/devices/goldfish_nand.c
kernel/drivers/mtd/devices/goldfish_nand_reg.h
8. LED設備:
kernel/drivers/leds/ledtrig-sleep.c
9. 電源設備:
kernel/drivers/power/goldfish_battery.c
10. 音頻設備:
kernel/arch/arm/mach-goldfish/audio.c
11. 電源管理:
kernel/arch/arm/mach-goldfish/pm.c
12. 時鐘管理:
kernel/arch/arm/mach-goldfish/timer.c