將從google 官網(http://code.google.com/p/android/downloads/list )下載的Android 的Linux Kernel 和標準的Linux 2.6.25 版本的Kernel 比較,Android 系統的Kernel 主要增加如下內容“
1. 基於 ARM 架構增加 Gold-Fish 平台 , 相應增加的目錄如下 :
kernel/arch/arm/mach-goldfish
kernel/include/asm-arm/arch-goldfish
Gold-Fish 平台採用的是 ARM926T CPU 作為 BaseBand 處理器 , 該 CPU 主頻至少為 200MHZ. 而要流暢運行Android 系統的CPU 主頻至少要在400MHZ 以上,也就是說如果你要上Android 系統,最好是選用基於ARM11 及以上平台進行開發。
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
5. 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
下面一段摘自http://www.kandroid.org/android_pdk/intro_source_code.html
Linux Kernel
The Android Linux kernel includes enhancements to the Linux 2.6 kernel that provide additional drivers to support the Android platform, including:
- Binder: an OpenBinder-based driver to facilitate inter-process communication (IPC) in the Android platform.
- Android Power Management: a light weight power management driver built on top of standard Linux power management but optimized for embedded systems.
- Low Memory Killer: Based on hints from the userspace, the low memory killer can kill off processes to free up memory as necessary. It is designed to provide more flexibility than the Out Of Memory (OOM) killer in the standard kernel.
- Logger: A light weight logging device used to capture system, radio, logdata, etc.
- USB Gadget: Uses the USB function framework.
- Android/PMEM: The PMEM (physical memory) driver is used to provide contiguous physical memory regions to userspace libraries that interact with the digital signal processor (DSP) and other hardware that cannot cope with scatter-gather.
- Android Alarm: A driver which provides timers that can wake the device up from sleep and a monotonic timebase that runs while the device is asleep.
Look for Android-specific enhancements in the following directories:
/drivers/android
/drivers/misc
/include/linux