android 簡單的核心分析

2021-08-25 18:45:07 字數 1840 閱讀 2396

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...