在线看毛片网站电影-亚洲国产欧美日韩精品一区二区三区,国产欧美乱夫不卡无乱码,国产精品欧美久久久天天影视,精品一区二区三区视频在线观看,亚洲国产精品人成乱码天天看,日韩久久久一区,91精品国产91免费

<menu id="6qfwx"><li id="6qfwx"></li></menu>
    1. <menu id="6qfwx"><dl id="6qfwx"></dl></menu>

      <label id="6qfwx"><ol id="6qfwx"></ol></label><menu id="6qfwx"></menu><object id="6qfwx"><strike id="6qfwx"><noscript id="6qfwx"></noscript></strike></object>
        1. <center id="6qfwx"><dl id="6qfwx"></dl></center>

            新聞中心

            Android Linux 內(nèi)核介紹

            作者: 時(shí)間:2016-09-12 來(lái)源:網(wǎng)絡(luò) 收藏

            include/linux/wifi_tiwlan.h

            include/linux/android_alarm.h

            include/linux/keyreset.h

            include/linux/synaptics_i2c_rmi.h

            include/linux/android_pmem.h

            include/linux/kernel_debugger.h

            include/linux/gpio_event.h

            include/linux/wakelock.h

            include/linux/if_pppopns.h

            net/ipv4/sysfs_net_ipv4.c

            net/ipv4/af_inet.c

            net/ipv6/af_inet6.c

            net/bluetooth/af_bluetooth.c

            security/commoncap.c

            fs/proc/base.c

            Android內(nèi)核配置

            Android 是基于 Linux 的 , 對(duì)于一個(gè)新的設(shè)備,我們 首先要 編譯一個(gè)支持 Android 的 Kernel ,那么如何 使 你的 Kernel Android 化呢?除了要移植前面提到的驅(qū)動(dòng)之外,就是如何配置你的 Kernel 來(lái)支持 Android 平臺(tái),這可以參考 Goldfish 的內(nèi)核配置文件 - arch/arm/configs/goldfish_defconfig 。

            一般來(lái)說(shuō),我們會(huì)基于一個(gè)平臺(tái)標(biāo)準(zhǔn)內(nèi)核配置選項(xiàng)來(lái)配置 Android 內(nèi)核,你可以根據(jù)具體的硬件平臺(tái)來(lái)選擇 Android 內(nèi)核的配置選項(xiàng),可以參考下面的 Android 內(nèi)核配置列表:

            一般需要支持的內(nèi)核選項(xiàng)

            ANDROID_PARANOID_NETWORK

            ASHMEM

            CONFIG_FB_MODE_HELPERS

            CONFIG_FONT_8x16

            CONFIG_FONT_8x8

            CONFIG_YAFFS_SHORT_NAMES_IN_RAM

            DAB

            EARLYSUSPEND

            FB

            FB_CFB_COPYAREA

            FB_CFB_FILLRECT

            FB_CFB_IMAGEBLIT

            FB_DEFERRED_IO

            FB_TILEBLITTING

            HIGH_RES_TIMERS

            INOTIFY

            INOTIFY_USER

            INPUT_EVDEV

            INPUT_GPIO

            INPUT_MISC

            LEDS_CLASS

            LEDS_GPIO

            LOCK_KERNEL

            LkOGGER

            LOW_MEMORY_KILLER

            MISC_DEVICES

            NEW_LEDS

            NO_HZ

            POWER_SUPPLY

            PREEMPT

            RAMFS

            RTC_CLASS

            RTC_LIB

            SWITCH

            SWITCH_GPIO

            TMPFS

            UID_STAT

            UID16

            USB_FUNCTION

            USB_FUNCTION_ADB

            USER_WAKELOCK

            VIDEO_OUTPUT_CONTROL

            WAKELOCK

            YAFFS_AUTO_YAFFS2

            YAFFS_FS

            YAFFS_YAFFS1

            YAFFS_YAFFS2

            但是Android推薦不要支持下面兩個(gè)功能:

            CONFIG_YAFFS_DISABLE_LAZY_LOAD

            DNOTIFY

            配置好后,就可以用Toolchain來(lái)編譯內(nèi)核了。編譯內(nèi)核比較簡(jiǎn)單,以Emulator的kernel為例:

            - git clone git://android.kernel.org/kernel/common.git kernel-emulator

            - cd kernel-emulator

            - export ARCH=arm

            - export CROSS_COMPILE=arm-eabi-

            - export PATH= PATH

            - make goldfish_defconfig

            - make

            Google對(duì) 2.6.25 內(nèi)核里做了什么改動(dòng)呢?

            有家公司專門比較了標(biāo)準(zhǔn)內(nèi)核和android 內(nèi)核,發(fā)現(xiàn) google 修改了 75 個(gè)文件,增加了 88 個(gè)文件。改公司還對(duì)這些被修改的和新增的文件做了注解。

            Goldfish -- 44 Files

            Android模擬器運(yùn)行了一個(gè)被 google 叫做 “ 金魚 的虛擬 CPU. 金魚運(yùn)行 arm926t 指令集( arm926t 是屬于 armv5 架構(gòu));并且仿真了輸入輸出:比如鍵盤輸入和 LCD 輸出。這個(gè)模擬器其實(shí)是在 qemu 之上開發(fā)的,輸入輸出基于 libSDL.

            內(nèi)核里這個(gè)Goldfish 接口實(shí)現(xiàn)了這個(gè)虛擬 “ 金魚 ”CPU 的一些接口,如果想在真實(shí)設(shè)備上運(yùn)行 android, 這些接口肯定要去掉的。

            arm926ej的介紹見 http://www.arm.com/products/CPUs/ARM926EJ-S.html

            YAFFS2 -- 35 Files

            不同于PC 機(jī),文件是存儲(chǔ)在硬盤上的;手機(jī)使用 FLASH 作為存儲(chǔ)介質(zhì)。 HTC 的 G1 使用 NANDFLASH—— 這中存儲(chǔ)目前已經(jīng)相當(dāng)普及了 , 而且種類也頗多, (SLC,MLC 等等),存儲(chǔ)密度也越來(lái)越高(已經(jīng)出現(xiàn)幾十 G 大小的 NANDFLASH) ,價(jià)格也越來(lái)越低。

            YAFFS2是專門用在 FLASH 上的文件系統(tǒng), “YAFFS2” 是 Yet Another Flash File System, 2nd edition 的縮寫。 YAFFS2 為 Linux 內(nèi)核提供了一個(gè)高效訪問(wèn) NANDFLASH 的接口。但是 NANDFLASH 的支持并不包含在標(biāo)準(zhǔn)的 2.6.25 內(nèi)核中,所以 Google 在其中添加了對(duì) NANDFLASH 的支持。

            藍(lán)牙 -- 10 files

            在藍(lán)牙通訊協(xié)議棧里Google 修改了 10 個(gè)文件。這些改動(dòng)解決了一些跟藍(lán)牙耳機(jī)相關(guān)的明顯的 bug ,以及一些藍(lán)牙調(diào)試和訪問(wèn)控制相關(guān)的函數(shù)。

            調(diào)度器 -- 5 files

            Android內(nèi)核還修改了進(jìn)程調(diào)度和時(shí)鐘相關(guān)策略,這個(gè)改動(dòng)就比較深入了。其目的和效果估計(jì)在一段時(shí)間后才能找到。

            為android 新增的功能 -- 28 files

            除了修正一些bug 以及其他的改動(dòng), android 還增加了一些新的 “ 子系統(tǒng) ” ,這些系統(tǒng)都比較重要。

            IPC Binder

            IPC Binder是一種 IPC( 進(jìn)程間通信)機(jī)制。它是的進(jìn)程能夠?yàn)槠渌M(jìn)程提供服務(wù) —— 還是通過(guò)標(biāo)準(zhǔn)的 linux 系統(tǒng)調(diào)用 api 。 IPC Binder 的概念起源于一家叫做 “Be.Inc 的公司,在 Google 之前就已經(jīng)被然后被用到 Palm 軟件里去了。

            Low Memory Killer

            其實(shí)內(nèi)核里已經(jīng)有一個(gè)類似的功能, 叫做oom killer, 就是 out of memory killer, 當(dāng)內(nèi)存不夠的時(shí)候,改策略會(huì)試圖結(jié)束一個(gè)進(jìn)程。不知道為什么 Google 重新實(shí)現(xiàn)了這個(gè)策略。

            Ashmem

            Ashmem,全程 Anonymous SHared MEMory, 翻譯成中文就是匿名共享內(nèi)存。這個(gè)功能使得進(jìn)程間能夠共享大塊的內(nèi)存。比如說(shuō),系統(tǒng)可以使用 Ashmem 保存一些圖標(biāo),多個(gè)應(yīng)用程序可以訪問(wèn)這個(gè)共享內(nèi)存來(lái)獲取圖標(biāo)。 Ashmem 為內(nèi)核提供了一種回收這些使用完的共享內(nèi)存塊的辦法 , 如果一個(gè)進(jìn)程試圖訪問(wèn)這些已經(jīng)被回收的內(nèi)存塊,它將會(huì)得到錯(cuò)誤的返回值,以便它重新進(jìn)行內(nèi)存塊分配和數(shù)據(jù)初始化。



            關(guān)鍵詞:

            評(píng)論


            相關(guān)推薦

            技術(shù)專區(qū)

            關(guān)閉