android 簡單的核心分析
在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
以上為android核心的大致分析,希望能給有興趣的人員以簡單幫助
linux核心Makefile的簡單分析
makefile 總結 1 配置檔案.config中定義了一系列的變數,makefile將結合它們來決定哪些檔案被編譯進核心。哪些檔案被編譯成模組。涉及哪些子目錄。2 頂層makefile和arch arch makefile決定更目錄下哪些子目錄,arch arch 目錄下哪些檔案和目錄被編譯進核...
簡單分析uboot啟動核心
1.uboot啟動核心的 縮減如下 s getenv bootcmd debug main loop bootcmd s n s s if bootdelay 0 s abortboot bootdelay 2.假設bootcmd nand read.jffs2 0x30007fc0 kernel ...
核心之旅 簡單分析getsockopt系統呼叫
今天看了個sockopt操作,本想著了解下流程,看看程序是如何獲取opt的。結果前一半順利,後一半坎坷,但是還是堅持了下來。我們知道,此函式為系統呼叫,在 中應該可以找到,參考我之前的blog,但是我這次遇到的是在net ipv4 ip sockglue.c找到的此次問題的答案,具體問題為nginx...