Android 核心修改了標準Linux核心的那些內容

來源:互聯網
上載者:User

ARCH -- 這是Android修改了arch/arm下面的一些檔案:

arch/arm:

Chg: arch/arm/kernel/entry-armv.S

Chg: arch/arm/kernel/module.c

Chg: arch/arm/kernel/process.c

Chg: arch/arm/kernel/ptrace.c

Chg: arch/arm/kernel/setup.c

Chg: arch/arm/kernel/signal.c

Chg: arch/arm/kernel/traps.c

Chg: arch/arm/mm/cache-v6.S

Chg: arch/arm/vfp/entry.S

Chg: arch/arm/vfp/vfp.h

Chg: arch/arm/vfp/vfphw.S

Chg: arch/arm/vfp/vfpmodule.c

Goldfish -- 這是Android為了模擬器所開發的一個虛擬硬體平台。Goldfish執行arm926T指令(在2.6.29中,goldfish也支援ATMv7指令),但是在實際的裝置中,該虛擬平台的檔案不會被編譯。

arch/arm/mach-goldfish:

New: arch/arm/mach-goldfish/audio.c

New: arch/arm/mach-goldfish/board-goldfish.c

New: arch/arm/mach-goldfish/pdev_bus.c

New: arch/arm/mach-goldfish/pm.c

New: arch/arm/mach-goldfish/switch.c

New: arch/arm/mach-goldfish/timer.c

YAFFS2 -- 和PC把檔案儲存體在硬碟上不一樣, 行動裝置一般把Flash作為存放裝置。尤其是NAND flash應用非常廣泛(絕大多數手機用的都是NAND flash,三星的一些手機使用的是OneNAND)。NAND flash具有低成本和高密度的優點。

YAFFS2 是“Yet Another Flash File System, 2nd edition" 的簡稱。 它提供在Linux核心和NAND flash裝置 之前高效率的介面。 YAFFS2並沒有包含在標準的Linux核心中, Google把它添加到了Android的kernel

fs/yaffs2:

New: fs/yaffs2/devextras.h

New: fs/yaffs2/Kconfig

New: fs/yaffs2/Makefile

New: fs/yaffs2/moduleconfig.h

New: fs/yaffs2/yaffs_checkptrw.c

New: fs/yaffs2/yaffs_checkptrw.h

New: fs/yaffs2/yaffs_ecc.c

New: fs/yaffs2/yaffs_ecc.h

New: fs/yaffs2/yaffs_fs.c

New: fs/yaffs2/yaffs_getblockinfo.h

New: fs/yaffs2/yaffs_guts.c

New: fs/yaffs2/yaffs_guts.h

New: fs/yaffs2/yaffsinterface.h

New: fs/yaffs2/yaffs_mtdif1.c

New: fs/yaffs2/yaffs_mtdif1.h

New: fs/yaffs2/yaffs_mtdif2.c

New: fs/yaffs2/yaffs_mtdif2.h

New: fs/yaffs2/yaffs_mtdif.c

New: fs/yaffs2/yaffs_mtdif.h

New: fs/yaffs2/yaffs_nand.c

New: fs/yaffs2/yaffs_nandemul2k.h

New: fs/yaffs2/yaffs_nand.h

New: fs/yaffs2/yaffs_packedtags1.c

New: fs/yaffs2/yaffs_packedtags1.h

New: fs/yaffs2/yaffs_packedtags2.c

New: fs/yaffs2/yaffs_packedtags2.h

New: fs/yaffs2/yaffs_qsort.c

New: fs/yaffs2/yaffs_qsort.h

New: fs/yaffs2/yaffs_tagscompat.c

New: fs/yaffs2/yaffs_tagscompat.h

New: fs/yaffs2/yaffs_tagsvalidity.c

New: fs/yaffs2/yaffs_tagsvalidity.h

New: fs/yaffs2/yportenv.h

Bluetooth -- Google為Bluetooth打上了patch,fix了一些Bluetooth的bug

drivers/bluetooth:

Chg: drivers/bluetooth/bfusb.c

Chg: drivers/bluetooth/bt3c_cs.c

Chg: drivers/bluetooth/btusb.c

Chg: drivers/bluetooth/hci_h4.c

Chg: drivers/bluetooth/hci_ll.c

Scheduler -- 對於Scheduler的改變非常小,我對它並沒有去研究。

Chg: kernel/sched.c

New Android Functionality -- 除了fix一些bug以及其他一些小的更改,Android增加了一些新的功能,介紹如下:

IPC Binder -- The IPC Binder is an Inter-Process Communication (IPC) mechanism. It allows processes to provide services to other processes via a set of higher-level APIs than are available in standard Linux. An Internet search indicated
that the Binder concept originated at Be, Inc., and then made its way into Palm's software, before Google wrote a new Binder for Android.

New: drivers/staging/android/binder.c

Low Memory Killer -- Android adds a low-memory killer that, each time it's called, scans the list of running Linux processes, and kills one. It was not clear in our cursory examination why Android adds a low-memory killer on top of the already
existing one in the standard Linux kernel.

New: drivers/staging/android/lowmemorykiller.c

Ashmem -- Ashmem is an Anonymous SHared MEMory system that adds interfaces so processes can share named blocks of memory. As an example, the system could use Ashmem to store icons, which multiple processes could then access when drawing
their UI. The advantage of Ashmem over traditional Linux shared memory is that it provides a means for the kernel to reclaim these shared memory blocks if they are not currently in use. If a process then tries to access a shared memory block the kernel has
freed, it will receive an error, and will then need to reallocate the block and reload the data.

New: mm/ashmem.c

RAM Console and Log Device -- To aid in debugging, Android adds the ability to store kernel log messages to a RAM buffer. Additionally, Android adds a separate logging module so that user processes can read and write user log messages.

New: drivers/staging/android/ram_console.c

Android Debug Bridge -- Debugging embedded devices can best be described as challenging. To make debugging easier, Google created the Android Debug Bridge (ADB), which is a protocol that runs over a USB link between a hardware device running
Android and a developer writing applications on a desktop PC.

drivers/usb/gadget:

New: drivers/usb/gadget/android.c

Chg: drivers/usb/gadget/composite.c

Chg: drivers/usb/gadget/f_acm.c

New: drivers/usb/gadget/f_acm.h

New: drivers/usb/gadget/f_adb.c

New: drivers/usb/gadget/f_adb.h

New: drivers/usb/gadget/f_mass_storage.c

New: drivers/usb/gadget/f_mass_storage.h

Android also adds a new real-time clock, switch support, and timed GPIO support. We list the impacted files for these new modules at the end of this document.

Power Management -- Power management is one of the most difficult pieces to get right in mobile devices, so we split it out into a group separate from the other pieces. It's interesting to note that Google added a new power management system
to Linux, rather than reuse what already existed. We list the impacted files at the end of this document.

kernel/power:

New: kernel/power/consoleearlysuspend.c

New: kernel/power/earlysuspend.c

New: kernel/power/fbearlysuspend.c

Chg: kernel/power/main.c

Chg: kernel/power/power.h

Chg: kernel/power/process.c

New: kernel/power/userwakelock.c

New: kernel/power/wakelock.c

Miscellaneous Changes -- In addition to the above, we found a number of changes that could best be described as, 'Miscellaneous.' Among other things, these changes include additional debugging support, keypad light controls, and management
of TCP networking

http://www.linuxfordevices.com/c/a/Linux-For-Devices-Articles/Porting-Android-to-a-new-device/

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.