當(dāng)前位置:首頁(yè) > 嵌入式 > 嵌入式軟件
[導(dǎo)讀] 已經(jīng)有一些的文章介紹Android內(nèi)核了,本系列篇將從Linux內(nèi)核的角度來(lái)分析Android的內(nèi)核,希望給初學(xué)者提夠有用的信息。本章將簡(jiǎn)單的介紹 Android內(nèi)核的全貌,起到一個(gè)拋磚

 已經(jīng)有一些的文章介紹Android內(nèi)核了,本系列篇將從Linux內(nèi)核的角度來(lái)分析Android的內(nèi)核,希望給初學(xué)者提夠有用的信息。本章將簡(jiǎn)單的介紹 Android內(nèi)核的全貌,起到一個(gè)拋磚引玉的作用。從下一篇開(kāi)始將詳細(xì)介紹每一個(gè)Android內(nèi)核驅(qū)動(dòng)程序及其作用。

Android內(nèi)核是基于Linux 2.6內(nèi)核的(目前最新開(kāi)發(fā)版本是2.6.31),它是一個(gè)增強(qiáng)內(nèi)核版本,除了修改部分Bug外,它提供了用于支持Android平臺(tái)的設(shè)備驅(qū)動(dòng),其核心驅(qū)動(dòng)主要包括:

Android Binder ,基于OpenBinder框架的一個(gè)驅(qū)動(dòng),用于提供Android平臺(tái)的進(jìn)程間通訊(IPC,inter-process communication)。

源代碼位于drivers/staging/android/binder.c

Android電源管理(PM) ,一個(gè)基于標(biāo)準(zhǔn)Linux電源管理系統(tǒng)的輕量級(jí)的Android電源管理驅(qū)動(dòng),針對(duì)嵌入式設(shè)備做了很多優(yōu)化。

源代碼位于kernel/power/earlysuspend.c

kernel/power/consoleearlysuspend.c

kernel/power/fbearlysuspend.c

kernel/power/wakelock.c

kernel/power/userwakelock.c

低內(nèi)存管理器(Low Memory Killer) ,相對(duì)于Linux標(biāo)準(zhǔn)OOM(Out Of Memory)機(jī)制更加靈活,它可以根據(jù)需要?dú)⑺肋M(jìn)程來(lái)釋放需要的內(nèi)存。

源代碼位于drivers/staging/android/lowmemorykiller.c

匿名共享內(nèi)存(ashmem) ,為進(jìn)程間提供大塊共享內(nèi)存,同時(shí)為內(nèi)核提供回收和管理這個(gè)內(nèi)存的機(jī)制。

源代碼位于mm/ashmem.c

Android PMEM(Physical) ,PMEM用于向用戶空間提供連續(xù)的物理內(nèi)存區(qū)域,DSP和某些設(shè)備只能工作在連續(xù)的物理內(nèi)存上。

源代碼位于drivers/misc/pmem.c

Android Logger ,一個(gè)輕量級(jí)的日志設(shè)備,用于抓取Android系統(tǒng)的各種日志。

源代碼位于drivers/staging/android/logger.c

Android Alarm ,提供了一個(gè)定時(shí)器用于把設(shè)備從睡眠狀態(tài)喚醒,同時(shí)它也提供了一個(gè)即使在設(shè)備睡眠時(shí)也會(huì)運(yùn)行的時(shí)鐘基準(zhǔn),

源代碼位于drivers/rtc/alarm.c

USB Gadget驅(qū)動(dòng) ,一個(gè)基于標(biāo)準(zhǔn)Linux USB gadget驅(qū)動(dòng)框架的設(shè)備驅(qū)動(dòng),Android的USB驅(qū)動(dòng)是基于gaeget框架的,

源代碼位于drivers/usb/gadget/

Android Ram Console ,為了提供調(diào)試功能,Android允許將調(diào)試日志信息寫(xiě)入一個(gè)被稱(chēng)為RAM Console的設(shè)備里,它是一個(gè)基于RAM的Buffer。

源代碼位于drivers/staging/android/ram_console.c。

Android timed device ,提供了對(duì)設(shè)備進(jìn)行定時(shí)控制功能,目前支持vibrator和LED設(shè)備。

源代碼位于drivers/staging/android/timed_output.c(timed_gpio.c)。

Yaffs2文件系統(tǒng) ,Android 采用Yaffs2作為MTD nand flash文件系統(tǒng),源代碼位于fs/yaffs2/目錄下。Yaffs2是一個(gè)快速穩(wěn)定的應(yīng)用于NAND和NOR Flash的跨平臺(tái)的嵌入式設(shè)備文件系統(tǒng),同其他Flash文件系統(tǒng)相比,Yaffs2使用更小的內(nèi)存來(lái)保存他的運(yùn)行狀態(tài),因此它占用內(nèi)存小;Yaffs2的垃圾回收非常簡(jiǎn)單而且快速,因此能達(dá)到更好的性能;Yaffs2在大容量的NAND Flash上性能表現(xiàn)尤為明顯,非常適合大容量的Flash存儲(chǔ)。

Android內(nèi)核添加或修改的文件很多,下面的列表描述了Android Emulator內(nèi)核的文件:

drivers/misc/kernel_debugger.c

drivers/misc/pmem.c

drivers/misc/qemutrace/qemu_trace_sysfs.c

drivers/misc/qemutrace/qemu_trace.c

drivers/misc/qemutrace/qemu_trace.h

drivers/misc/uid_stat.c

drivers/staging/android/lowmemorykiller.c

drivers/staging/android/logger.c

drivers/staging/android/timed_output.h

drivers/staging/android/ram_console.c

drivers/staging/android/timed_gpio.c

drivers/staging/android/logger.h

drivers/staging/android/binder.h

drivers/staging/android/binder.c

drivers/staging/android/timed_output.c

drivers/staging/android/timed_gpio.h

drivers/rtc/alarm.c

drivers/rtc/rtc-goldfish.c

drivers/net/pppolac.c

drivers/net/ppp_mppe.c

drivers/net/pppopns.c

drivers/video/goldfishfb.c

drivers/switch/switch_class.c

drivers/switch/switch_gpio.c

drivers/char/dcc_tty.c

drivers/char/goldfish_tty.c

drivers/watchdog/i6300esb.c

drivers/input/misc/gpio_event.c

drivers/input/misc/gpio_input.c

drivers/input/misc/gpio_output.c

drivers/input/misc/keychord.c

drivers/input/misc/gpio_axis.c

drivers/input/misc/gpio_matrix.c

drivers/input/keyreset.c

drivers/input/keyboard/goldfish_events.c

drivers/input/touchscreen/synaptics_i2c_rmi.c

drivers/usb/gadget/android.c

drivers/usb/gadget/f_adb.h

drivers/usb/gadget/f_mass_storage.h

drivers/usb/gadget/f_adb.c

drivers/usb/gadget/f_mass_storage.c

drivers/mmc/host/goldfish.c

drivers/power/goldfish_battery.c

drivers/leds/ledtrig-sleep.c

drivers/mtd/devices/goldfish_nand_reg.h

drivers/mtd/devices/goldfish_nand.c

kernel/power/earlysuspend.c

kernel/power/consoleearlysuspend.c

kernel/power/fbearlysuspend.c

kernel/power/wakelock.c

kernel/power/userwakelock.c

kernel/cpuset.c

kernel/cgroup_debug.c

kernel/cgroup.c

mm/ashmem.c

include/linux/ashmem.h

include/linux/switch.h

include/linux/keychord.h

include/linux/earlysuspend.h

include/linux/android_aid.h

include/linux/uid_stat.h

include/linux/if_pppolac.h

include/linux/usb/android.h[!--empirenews.page--]

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)呢?

有家公司專(zhuān)門(mén)比較了標(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 叫做 “ 金魚(yú) " 的虛擬 CPU. 金魚(yú)運(yùn)行 arm926t 指令集( arm926t 是屬于 armv5 架構(gòu));并且仿真了輸入輸出:比如鍵盤(pán)輸入和 LCD 輸出。這個(gè)模擬器其實(shí)是在 qemu 之上開(kāi)發(fā)的,輸入輸出基于 libSDL.

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

arm926ej的介紹見(jiàn) http://www.arm.com/products/CPUs/ARM926EJ-S.html

YAFFS2 -- 35 Files

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

YAFFS2是專(zhuān)門(mén)用在 FLASH 上的文件系統(tǒng), “YAFFS2” 是 "Yet Another Flash File System, 2nd edition" 的縮寫(xiě)。 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è)類(lèi)似的功能, 叫做"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ù)初始化。[!--empirenews.page--]

RAM Console and Log Device

為了調(diào)試方便,Android 添加了一個(gè)功能,使得調(diào)試信息可以輸入到一個(gè)內(nèi)存塊中。此外, Android 添加了一個(gè)獨(dú)立的日志模塊,這樣用戶空間的進(jìn)程能夠讀寫(xiě)日志消息,調(diào)試打印信息等。

Android Debug Bridge

嵌入式設(shè)備的調(diào)試的確比較麻煩。為了便于調(diào)試,google 設(shè)計(jì)了這個(gè)調(diào)試工具,可以叫做 "ADB" ,使用 USB 作為連接方式 ,ADB 可以看作是鏈接 android 的設(shè)備和 PC 機(jī)的一套協(xié)議。

Android 還添加了其他的東西,比如 real-time clock, switch , timed GPIO 。

Power Management -- 5 files

電源管理對(duì)于移動(dòng)設(shè)備來(lái)說(shuō)相當(dāng)重要,也是最復(fù)雜,開(kāi)發(fā)難度最高的一個(gè)功能。Google 添加了一個(gè)新的電源管理系統(tǒng),并沒(méi)有原先 apm,dpm 等。

其他修改 -- 36 files

除了上述改動(dòng)之外,還有一些小改動(dòng),比如新增的額外的調(diào)試功能, 鍵盤(pán)背光控制,TCP 網(wǎng)絡(luò)管理等等,共涉及 36 個(gè)文件。

根據(jù)上述,google 對(duì)標(biāo)準(zhǔn)的內(nèi)核做了很大的改動(dòng)。相比其他的項(xiàng)目,比如 Nokia N810,Openmoko 等項(xiàng)目中,內(nèi)核的改動(dòng)僅僅是增加了某個(gè)平臺(tái)的支持。所以移植最快也是最可能的辦法是在 google 使用的 kernel 上增加平臺(tái)支持。

也有一些開(kāi)發(fā)人員將google 對(duì) 2.6.25 內(nèi)核的改動(dòng)做成補(bǔ)丁,直接打在自己開(kāi)發(fā)的內(nèi)核上 —— 當(dāng)然,自己的內(nèi)核也應(yīng)該是 2.6.25 ,否則會(huì)出問(wèn)題。

本文來(lái)自CSDN博客,轉(zhuǎn)載請(qǐng)標(biāo)明出處:http://blog.csdn.net/guoshaobei/archive/2010/08/21/5827399.aspx

Android是基于Linux,而Linux Kernel的目錄結(jié)果如下:

瀏覽內(nèi)核代碼之前,有必要知道內(nèi)核源碼的整體分布情況,按照慣例,內(nèi)核代碼安裝在/usr/src/linux目錄下,該目錄下的每一個(gè)子目錄都代表了一個(gè)特定的內(nèi)核功能性子集,下面針對(duì)2.6.23版本進(jìn)行簡(jiǎn)單描述。

(1)Documentation。

這個(gè)目錄下面沒(méi)有內(nèi)核代碼,只有很多質(zhì)量參差不齊的文檔,但往往能夠給我們提供很多的幫助。

(2)arch。

所有與體系結(jié)構(gòu)相關(guān)的代碼都在這個(gè)目錄以及include/asm-*/目錄中,Linux支持的每種體系結(jié)構(gòu)在arch目錄下都有對(duì)應(yīng)的子目錄,而在每個(gè)體系結(jié)構(gòu)特有的子目錄下又至少包含3個(gè)子目錄。

kernel:存放支持體系結(jié)構(gòu)特有的諸如信號(hào)量處理和SMP之類(lèi)特征的實(shí)現(xiàn)。

lib:存放體系結(jié)構(gòu)特有的對(duì)諸如strlen和memcpy之類(lèi)的通用函數(shù)的實(shí)現(xiàn)。

mm:存放體系結(jié)構(gòu)特有的內(nèi)存管理程序的實(shí)現(xiàn)。

除了這3個(gè)子目錄之外,大多數(shù)體系結(jié)構(gòu)在必要的情況下還有一個(gè)boot子目錄,包含了在這種硬件平臺(tái)上啟動(dòng)內(nèi)核所使用的部分或全部平臺(tái)特有代碼。

此外,大部分體系結(jié)構(gòu)所特有的子目錄還根據(jù)需要包含了供附加特性使用的其他子目錄。比如,i386目錄包含一個(gè)math-emu子目錄,其中包括了在缺少數(shù)學(xué)協(xié)處理器(FPU)的CPU上運(yùn)行模擬FPU的代碼。

(3)drivers。

這個(gè)目錄是內(nèi)核中最龐大的一個(gè)目錄,顯卡、網(wǎng)卡、SCSI適配器、PCI總線、USB總線和其他任何Linux支持的外圍設(shè)備或總線的驅(qū)動(dòng)程序都可以在這里找到。

(4)fs。

虛擬文件系統(tǒng)(VFS,Virtual File System)的代碼,和各個(gè)不同文件系統(tǒng)的代碼都在這個(gè)目錄中。Linux支持的所有文件系統(tǒng)在fs目錄下面都有一個(gè)對(duì)應(yīng)的子目錄。比如ext2文件系統(tǒng)對(duì)應(yīng)的是fs/ext2目錄。

一個(gè)文件系統(tǒng)是存儲(chǔ)設(shè)備和需要訪問(wèn)存儲(chǔ)設(shè)備的進(jìn)程之間的媒介。存儲(chǔ)設(shè)備可能是本地的物理上可訪問(wèn)的,比如硬盤(pán)或CD-ROM驅(qū)動(dòng)器,它們分別使用ext2/ext3和isofs文件系統(tǒng);也可能是通過(guò)網(wǎng)絡(luò)訪問(wèn)的,使用NFS文件系統(tǒng)。

還有一些虛擬文件系統(tǒng),比如proc,它以一個(gè)標(biāo)準(zhǔn)文件系統(tǒng)出現(xiàn),然而,它其中的文件只存在于內(nèi)存中,并不占用磁盤(pán)空間。

(5)include。

這個(gè)目錄包含了內(nèi)核中大部分的頭文件,它們按照下面的子目錄進(jìn)行分組。

include/asm-*/,這樣的子目錄有多個(gè),每一個(gè)都對(duì)應(yīng)著一個(gè)arch的子目錄,比如include/asm-alpha、include/asm-arm、include/asm-i386等。每個(gè)子目錄中的文件都定義了支持給定體系結(jié)構(gòu)所必須的預(yù)處理器宏和內(nèi)聯(lián)函數(shù),這些內(nèi)聯(lián)函數(shù)多數(shù)都是全部或部分使用匯編語(yǔ)言實(shí)現(xiàn)的。

編譯內(nèi)核時(shí),系統(tǒng)會(huì)建立一個(gè)從include/asm目錄到目標(biāo)體系結(jié)構(gòu)特有的目錄的符號(hào)鏈接。比如對(duì)于arm平臺(tái),就是include/asm-arm到include/asm的符號(hào)鏈接。因此,體系結(jié)構(gòu)無(wú)關(guān)部分的內(nèi)核代碼可以使用如下形式包含體系相關(guān)部分的頭文件。

#include

include/linux/,與平臺(tái)無(wú)關(guān)的頭文件都在這個(gè)目錄下面,它通常會(huì)被鏈接到目錄/usr/include/linux(或者它里面的所有文件會(huì)被復(fù)制到/usr/include/linux目錄下面)。因此用戶應(yīng)用程序里和內(nèi)核代碼里的語(yǔ)句:

#include

包含的頭文件的內(nèi)容是一致的。

include目錄下的其他子目錄,在此不做贅述。

(6)init。

內(nèi)核的初始化代碼。包括main.c、創(chuàng)建早期用戶空間的代碼以及其他初始化代碼。

(7)ipc。

IPC,即進(jìn)程間通信(interprocess communication)。它包含了共享內(nèi)存、信號(hào)量以及其他形式IPC的代碼。

(8)kernel。

內(nèi)核中最核心的部分,包括進(jìn)程的調(diào)度(kernel/sched.c),以及進(jìn)程的創(chuàng)建和撤銷(xiāo)(kernel/fork.c和kernel/exit.c)等,和平臺(tái)相關(guān)的另外一部分核心的代碼在arch/*/kernel目錄。

(9)lib。

庫(kù)代碼,實(shí)現(xiàn)了一個(gè)標(biāo)準(zhǔn)C庫(kù)的通用子集,包括字符串和內(nèi)存操作的函數(shù)(strlen、mmcpy和其他類(lèi)似的函數(shù))以及有關(guān)sprintf和atoi的系列函數(shù)。與arch/lib下的代碼不同,這里的庫(kù)代碼都是使用C編寫(xiě)的,在內(nèi)核新的移植版本中可以直接使用。

(10)mm。

包含了體系結(jié)構(gòu)無(wú)關(guān)部分的內(nèi)存管理代碼,體系相關(guān)的部分位于arch/*/mm目錄下。

(11)net。

網(wǎng)絡(luò)相關(guān)代碼,實(shí)現(xiàn)了各種常見(jiàn)的網(wǎng)絡(luò)協(xié)議,如TCP/IP、IPX等。

(12)scripts。

該目錄下沒(méi)有內(nèi)核代碼,只包含了用來(lái)配置內(nèi)核的腳本文件。當(dāng)運(yùn)行make menuconfig或者make xconfig之類(lèi)的命令配置內(nèi)核時(shí),用戶就是和位于這個(gè)目錄下的腳本進(jìn)行交互的。[!--empirenews.page--]

(13)block。

block層的實(shí)現(xiàn)。最初block層的代碼一部分位于drivers目錄,一部分位于fs目錄,從2.6.15開(kāi)始,block層的核心代碼被提取出來(lái)放在了頂層的block目錄。

(14)crypto。

內(nèi)核本身所用的加密API,實(shí)現(xiàn)了常用的加密和散列算法,還有一些壓縮和CRC校驗(yàn)算法。

(15)security。

這個(gè)目錄包括了不同的Linux安全模型的代碼,比如NSA Security-Enhanced Linux。

(16)sound。

聲卡驅(qū)動(dòng)以及其他聲音相關(guān)的代碼。

(17)usr。

實(shí)現(xiàn)了用于打包和壓縮的的cpio等。

本站聲明: 本文章由作者或相關(guān)機(jī)構(gòu)授權(quán)發(fā)布,目的在于傳遞更多信息,并不代表本站贊同其觀點(diǎn),本站亦不保證或承諾內(nèi)容真實(shí)性等。需要轉(zhuǎn)載請(qǐng)聯(lián)系該專(zhuān)欄作者,如若文章內(nèi)容侵犯您的權(quán)益,請(qǐng)及時(shí)聯(lián)系本站刪除。
換一批
延伸閱讀

9月2日消息,不造車(chē)的華為或?qū)⒋呱龈蟮莫?dú)角獸公司,隨著阿維塔和賽力斯的入局,華為引望愈發(fā)顯得引人矚目。

關(guān)鍵字: 阿維塔 塞力斯 華為

倫敦2024年8月29日 /美通社/ -- 英國(guó)汽車(chē)技術(shù)公司SODA.Auto推出其旗艦產(chǎn)品SODA V,這是全球首款涵蓋汽車(chē)工程師從創(chuàng)意到認(rèn)證的所有需求的工具,可用于創(chuàng)建軟件定義汽車(chē)。 SODA V工具的開(kāi)發(fā)耗時(shí)1.5...

關(guān)鍵字: 汽車(chē) 人工智能 智能驅(qū)動(dòng) BSP

北京2024年8月28日 /美通社/ -- 越來(lái)越多用戶希望企業(yè)業(yè)務(wù)能7×24不間斷運(yùn)行,同時(shí)企業(yè)卻面臨越來(lái)越多業(yè)務(wù)中斷的風(fēng)險(xiǎn),如企業(yè)系統(tǒng)復(fù)雜性的增加,頻繁的功能更新和發(fā)布等。如何確保業(yè)務(wù)連續(xù)性,提升韌性,成...

關(guān)鍵字: 亞馬遜 解密 控制平面 BSP

8月30日消息,據(jù)媒體報(bào)道,騰訊和網(wǎng)易近期正在縮減他們對(duì)日本游戲市場(chǎng)的投資。

關(guān)鍵字: 騰訊 編碼器 CPU

8月28日消息,今天上午,2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)開(kāi)幕式在貴陽(yáng)舉行,華為董事、質(zhì)量流程IT總裁陶景文發(fā)表了演講。

關(guān)鍵字: 華為 12nm EDA 半導(dǎo)體

8月28日消息,在2024中國(guó)國(guó)際大數(shù)據(jù)產(chǎn)業(yè)博覽會(huì)上,華為常務(wù)董事、華為云CEO張平安發(fā)表演講稱(chēng),數(shù)字世界的話語(yǔ)權(quán)最終是由生態(tài)的繁榮決定的。

關(guān)鍵字: 華為 12nm 手機(jī) 衛(wèi)星通信

要點(diǎn): 有效應(yīng)對(duì)環(huán)境變化,經(jīng)營(yíng)業(yè)績(jī)穩(wěn)中有升 落實(shí)提質(zhì)增效舉措,毛利潤(rùn)率延續(xù)升勢(shì) 戰(zhàn)略布局成效顯著,戰(zhàn)新業(yè)務(wù)引領(lǐng)增長(zhǎng) 以科技創(chuàng)新為引領(lǐng),提升企業(yè)核心競(jìng)爭(zhēng)力 堅(jiān)持高質(zhì)量發(fā)展策略,塑強(qiáng)核心競(jìng)爭(zhēng)優(yōu)勢(shì)...

關(guān)鍵字: 通信 BSP 電信運(yùn)營(yíng)商 數(shù)字經(jīng)濟(jì)

北京2024年8月27日 /美通社/ -- 8月21日,由中央廣播電視總臺(tái)與中國(guó)電影電視技術(shù)學(xué)會(huì)聯(lián)合牽頭組建的NVI技術(shù)創(chuàng)新聯(lián)盟在BIRTV2024超高清全產(chǎn)業(yè)鏈發(fā)展研討會(huì)上宣布正式成立。 活動(dòng)現(xiàn)場(chǎng) NVI技術(shù)創(chuàng)新聯(lián)...

關(guān)鍵字: VI 傳輸協(xié)議 音頻 BSP

北京2024年8月27日 /美通社/ -- 在8月23日舉辦的2024年長(zhǎng)三角生態(tài)綠色一體化發(fā)展示范區(qū)聯(lián)合招商會(huì)上,軟通動(dòng)力信息技術(shù)(集團(tuán))股份有限公司(以下簡(jiǎn)稱(chēng)"軟通動(dòng)力")與長(zhǎng)三角投資(上海)有限...

關(guān)鍵字: BSP 信息技術(shù)
關(guān)閉
關(guān)閉