国产亚洲精品福利在线无卡一,国产精久久一区二区三区,亚洲精品无码国模,精品久久久久久无码专区不卡

當(dāng)前位置: 首頁(yè) > news >正文

企業(yè)網(wǎng)站導(dǎo)航優(yōu)化成都做整站優(yōu)化

企業(yè)網(wǎng)站導(dǎo)航優(yōu)化,成都做整站優(yōu)化,b2c十大平臺(tái)排名,建網(wǎng)站的好處? 7.1 ARM-Linux內(nèi)核簡(jiǎn)介 ? 內(nèi)核:是一個(gè)操作系統(tǒng)的核心。是基于硬件的第一層軟件擴(kuò)充, 提供操作系統(tǒng)的最基本的功能,是操作系統(tǒng)工作的基礎(chǔ),它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng), 決定著系統(tǒng)的…

? 7.1 ARM-Linux內(nèi)核簡(jiǎn)介

? 內(nèi)核:是一個(gè)操作系統(tǒng)的核心。是基于硬件的第一層軟件擴(kuò)充, 提供操作系統(tǒng)的最基本的功能,是操作系統(tǒng)工作的基礎(chǔ),它負(fù)責(zé)管理系統(tǒng)的進(jìn)程、內(nèi)存、設(shè)備驅(qū)動(dòng)程序、文件和網(wǎng)絡(luò)系統(tǒng), 決定著系統(tǒng)的性能和穩(wěn)定性?,F(xiàn)代操作系統(tǒng)設(shè)計(jì)中,為減少系 統(tǒng)本身的開銷,往往將一些與硬件緊密相關(guān)的(如中斷處理程 序、設(shè)備驅(qū)動(dòng)程序等)、基本的、公共的、運(yùn)行頻率較高的模 塊(如時(shí)鐘管理、進(jìn)程調(diào)度等)以及關(guān)鍵性數(shù)據(jù)結(jié)構(gòu)獨(dú)立開來, 使之常駐內(nèi)存,并對(duì)他們進(jìn)行保護(hù)。通常把這一部分稱之為操 作系統(tǒng)的內(nèi)核。

? Linux內(nèi)核:Linux內(nèi)核的主要模塊(或組件)分以下幾個(gè)部分: 存儲(chǔ)管理、CPU和進(jìn)程管理、文件系統(tǒng)、設(shè)備管理和驅(qū)動(dòng)、網(wǎng) 絡(luò)通信,以及系統(tǒng)的初始化(引導(dǎo))、系統(tǒng)調(diào)用等。

? ARM-Linux內(nèi)核:基于ARM處理器的Linux內(nèi)核。

? 7.1.1 ARM-Linux內(nèi)核和普通Linux內(nèi)核的區(qū)別(背)

– 相對(duì)于ARM Linux,我們說的普通Linux指的是x86 Linux,它們 都是Linux系統(tǒng),但是由于ARM和x86是不同的CPU架構(gòu),它們的 指令集不同,所以軟件編譯環(huán)境不同軟件代碼一般不能互用, 一般需要進(jìn)行兼容性移植。

x86是經(jīng)典的CISC指令集指令集復(fù)雜功能多串行執(zhí)行,但 是也意味著執(zhí)行效率低下,但性價(jià)比突出,所以稱為民用終端 的主流處理器內(nèi)置指令集。Intel和AMD的家用處理器都是x86指 令集。以x86為代表的CISC,理論并發(fā)線程1-2條。

ARM是Advanced RISC Machine 的縮寫。它的指令集比RISC還要 精簡(jiǎn)。通常使用ARM架構(gòu)處理器的機(jī)型,多為嵌入式或者便攜 機(jī)。主頻通常不高,現(xiàn)在高通公司的ARM架構(gòu)處理器有1.0GHz 的,已經(jīng)算相當(dāng)高了。另外,ARM 7沿用馮·諾依曼結(jié)構(gòu);而從 ARM 9以后,就都采用了哈佛結(jié)構(gòu)。ARM的并發(fā)線程,理論上 有4條左右處理效率較X86高不少。

? 7.1.2 ARM-Linux的版本控制

– Linux的版本號(hào)

????????? 主版本號(hào):序號(hào)的第1位

????????? 次版本號(hào):序號(hào)的第2位

????????? 修訂號(hào):序號(hào)的第3位

????????? 穩(wěn)定版:序號(hào)的第2位(次版本號(hào))為偶數(shù)

????????? 測(cè)試版:序號(hào)的第2位(次版本號(hào))為奇數(shù)

– 查看Linux系統(tǒng)的版本號(hào)(Ubuntu)

? linux@linux-pc:~$ cat /etc/issue
– Ubuntu 18.04.4 LTS \n ? linux@linux-pc:~$ cat /etc/os-release
– NAME="Ubuntu"
– VERSION="18.04.4 LTS (Bionic Beaver)"
– ID=ubuntu
– ID_LIKE=debian
– PRETTY_NAME="Ubuntu 18.04.4 LTS"
– VERSION_ID="18.04"
– HOME_URL="https://www.ubuntu.com/"
– SUPPORT_URL="https://help.ubuntu.com/"
– BUG_REPORT_URL="https://bugs.launchpad.net/ubuntu/"
– PRIVACY_POLICY_URL="https://www.ubuntu.com/legal/terms-and-policies/privacy-policy"
– VERSION_CODENAME=bionic
– UBUNTU_CODENA

?– 查看Linux內(nèi)核的版本號(hào)(Ubuntu)

? linux@linux-pc:~$ cat /proc/version
– Linux version 5.4.0-139-generic (buildd@lcy02-amd64-036) (gcc version 7.5.0 (Ubuntu 7.5.0-3ubuntu1~18.04)) #156~18.04.1-Ubuntu SMP Wed Jan 25 15:56:22 UTC 2023? linux@linux-pc:~$ uname-a
– Linux linux-pc 5.4.0-139-generic #156~18.04.1-Ubuntu SMP Wed Jan 25 15:56:22 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux? linux@linux-pc:~$ uname-r
– 5.4.0-139-gen

?? 7.1.3 ARM-Linux的代碼結(jié)構(gòu)

– 位于Ubuntu的/home/linux/workdir/fs3399/system/kernel/目錄下

?1.android:Android系統(tǒng)的配置

2.arch :包含和硬件體系結(jié)構(gòu)相關(guān)的代碼,每種平臺(tái)(處理器)占一個(gè)相應(yīng)的目錄,如i386、 arm、arm64、powerpc、mips等

3.block:塊設(shè)備驅(qū)動(dòng)程序

4.certs:存儲(chǔ)認(rèn)證和簽名相關(guān)代碼

5.crypto:常用加密散列算法(如AES、SHA 等),還有一些壓縮CRC 校驗(yàn)算法

6.Documentation:內(nèi)核各部分的通用解釋和注釋(文檔)

7.drivers :設(shè)備驅(qū)動(dòng)程序,每個(gè)不同的驅(qū)動(dòng)占用一個(gè)子目錄,如char、block、net、mtd、i2c 等

8. firmware:固件,包含了讓計(jì)算機(jī)讀取和理解從設(shè)備發(fā)來的信號(hào)的代碼

9. fs:所支持的各種文件系統(tǒng),如EXT、FAT、NTFS、JFFS2 等

10. include:頭文件與系統(tǒng)相關(guān)頭文件放置在include/linux子目錄下

11. init:內(nèi)核初始化代碼,著名的start_kernel() 就位于init/main.c文件中

12. ipc:進(jìn)程間通信的代碼

13. kernel :內(nèi)核最核心的部分,包括進(jìn)程調(diào)度、定時(shí)器等,而和平臺(tái)(處理器)相關(guān)的一部分 代碼放在arch/*/kernel 目錄下

14. lib:庫(kù)文件代碼

15. mm:內(nèi)存管理代碼,和平臺(tái)(處理器)相關(guān)的一部分代碼放在arch/*/mm 目錄下

16. net:網(wǎng)絡(luò)相關(guān)代碼,實(shí)現(xiàn)各種常見的網(wǎng)絡(luò)協(xié)議

17. samples:一些內(nèi)核編程的范例 文 件 夾

18. scripts:用于配置內(nèi)核的腳本文件

19. security:Linux安全模型的代碼

20. sound:ALSA、OSS 音頻設(shè)備的驅(qū)動(dòng)核心代碼和常用設(shè)備驅(qū)動(dòng)

21. tools:這個(gè)文件夾中包含了和內(nèi)核交互的工具

22. usr:實(shí)現(xiàn)用于打包和壓縮的cpio等

23. virt:此文件夾包含了虛擬化代碼,它允許用戶一次運(yùn)行多個(gè)操作系統(tǒng)

23. Kbuild:這是一個(gè)設(shè)置一些內(nèi)核設(shè)定腳本

24. Kconfig:內(nèi)核配置選項(xiàng)文件

25. Makefile:這個(gè)腳本是編譯內(nèi)核的主要文件,這個(gè)文件將編譯參數(shù)編譯所需的文件和必要的 信息傳給編譯器

26. System.map:該文件可以幫助我們理解內(nèi)核編譯,它記錄了所有代碼的運(yùn)行地址

27. vmlinux:是可引導(dǎo)的、壓縮的Linux內(nèi)核

28. vmlinux.o:是vmlinux的目標(biāo)文件

?

?

? 7.2 ARM-Linux內(nèi)存管理

? 7.2.1 影響內(nèi)存管理的兩個(gè)方面

– Linux內(nèi)核對(duì)內(nèi)存的管理(Linux操作系統(tǒng)的內(nèi)存管理)

????????? 內(nèi)存管理是操作系統(tǒng)必不可少也是非常重要的一部分,包括:

????????????????① 地址映射

????????????????② 內(nèi)存空間的分配

????????????????③ 地址訪問的限制(即保護(hù)機(jī)制

????????????????④ I/O地址的映射(I/O編址與內(nèi)存編址相同)

– ARM體系結(jié)構(gòu)對(duì)內(nèi)存的管理(MMU)

????????? MMU(存儲(chǔ)器管理單元)的主要作用有兩個(gè)方面:

????????????????① 地址映射

????????????????② 對(duì)地址訪問進(jìn)行保護(hù)和限制

????????? MMU可以做在CPU芯片中,也可以作為一個(gè)協(xié)處理器(用協(xié)處理器實(shí)現(xiàn))

? 7.2.2 ARM-Linux的存儲(chǔ)機(jī)制

– 基于x86體系結(jié)構(gòu)的Linux內(nèi)核的存儲(chǔ)空間

? 32位地址形成4GB虛擬地址空間,被分為兩部分:

????????① 內(nèi)核空間(系統(tǒng)空間):位于高端的1GB,屬于Linux操作系統(tǒng)

????????② 用戶空間:位于低端的3GB,屬于應(yīng)用程序

?– ARM-Linux內(nèi)核的存儲(chǔ)空間?

? 32位地址形成4GB的虛擬地址空間,也被分為兩部分,但是內(nèi)核空間(系統(tǒng)空 間)和用戶空間的具體劃分,可以因CPU芯片和開發(fā)板(實(shí)驗(yàn)箱)而有所不同

? 另外,ARM將I/O也放在內(nèi)存地址空間中

? 7.2.3 虛擬內(nèi)存

虛擬內(nèi)存(虛擬存儲(chǔ)器):是計(jì)算機(jī)系統(tǒng)內(nèi)存管理的一種技術(shù), 它使得應(yīng)用程序認(rèn)為它擁有連續(xù)的可用的內(nèi)存(一個(gè)連續(xù)完整的 地址空間),而實(shí)際上,它通常是被分隔成多個(gè)物理內(nèi)存碎片, 還有部分暫時(shí)存儲(chǔ)在外部磁盤存儲(chǔ)器上,在需要時(shí)進(jìn)行數(shù)據(jù)交換。

– Linux虛擬內(nèi)存的實(shí)現(xiàn)需要6種機(jī)制的支持

????????① 地址映射機(jī)制

????????② 請(qǐng)求頁(yè)機(jī)制

????????③ 內(nèi)存分配回收機(jī)制 ????????

????????④ 緩存和刷新機(jī)制

????????⑤ 交換機(jī)制

????????⑥ 內(nèi)存共享機(jī)制

? 7.3 ARM-Linux進(jìn)程管理和調(diào)度

? 進(jìn)程:也稱為任務(wù),是一個(gè)動(dòng)態(tài)的執(zhí)行過程,是處于執(zhí)行期的程序,進(jìn)程是系統(tǒng)資源 分配的最小單位。

? 狹義定義:進(jìn)程是正在運(yùn)行的程序的實(shí)例。

? 廣義定義:進(jìn)程是一個(gè)具有一定獨(dú)立功能的程序關(guān)于某個(gè)數(shù)據(jù)集合的一次運(yùn)行活動(dòng)。 它是操作系統(tǒng)動(dòng)態(tài)執(zhí)行的基本單元,在傳統(tǒng)的操作系統(tǒng)中,進(jìn)程既是基本的分配單元, 也是基本的執(zhí)行單元。

? 進(jìn)程的概念主要有兩點(diǎn):

????????① 進(jìn)程是一個(gè)實(shí)體。每一個(gè)進(jìn)程都有它自己的地址空間,一般情況下,包括文本區(qū)域(text region)、數(shù)據(jù) 區(qū)域(data region)和堆棧(stack region)。文本區(qū)域存儲(chǔ)處理器執(zhí)行的代碼;數(shù)據(jù)區(qū)域存儲(chǔ)變量和進(jìn)程 執(zhí)行期間使用的動(dòng)態(tài)分配的內(nèi)存;堆棧區(qū)域存儲(chǔ)著活動(dòng)過程調(diào)用的指令和本地變量。

????????② 進(jìn)程是一個(gè)“執(zhí)行中的程序”。程序是一個(gè)沒有生命的實(shí)體,只有處理器賦予程序生命時(shí)(操作系統(tǒng) 執(zhí)行之),它才能成為一個(gè)活動(dòng)的實(shí)體,我們稱其為進(jìn)程。

? 7.3.1 進(jìn)程的表示和生命周期

– 進(jìn)程描述符:用task_struct{}數(shù)據(jù)結(jié)構(gòu)表示

– 進(jìn)程的狀態(tài)(重要):

????????① TASK_RUNNING:可執(zhí)行狀態(tài),進(jìn)程要么正在執(zhí)行,要么準(zhǔn)備 執(zhí)行

????????② TASK_INTERRUPTIBLE:可中斷睡眠狀態(tài)

????????③ TASK_UNINTERRUPTIBLE:不可中斷的睡眠狀態(tài)

????????④ TASK_STOPPED:暫停狀態(tài),進(jìn)程停止執(zhí)行

????????⑤ TASK_TRACED:跟蹤狀態(tài),進(jìn)程被追蹤

????????⑥ EXIT_ZOMBIE:僵尸狀態(tài)的進(jìn)程,表示進(jìn)程被終止

????????⑦ EXIT_DEAD:進(jìn)程的最終狀態(tài),進(jìn)程死亡

????????⑧ TASK_DEAD:死亡

????????⑨ TASK_WAKEKILL:喚醒并殺死的進(jìn)程

????????⑩ TASK_WAKING:喚醒進(jìn)程

– 進(jìn)程標(biāo)識(shí)符:PID,Process ID(進(jìn)程ID)

? 7.3.3 Linux進(jìn)程的調(diào)度

– Linux進(jìn)程的創(chuàng)建:

????????? 通過fork函數(shù)創(chuàng)建進(jìn)程

????????? 創(chuàng)建用戶空間進(jìn)程:vfork()、fork()

????????? 創(chuàng)建內(nèi)核空間進(jìn)程:copy_process()、kernel_thread()、do_fork()、 sys_vfork()、sys_fork()、sys_clone()

– Linux進(jìn)程的執(zhí)行

????????? 通過exec函數(shù)執(zhí)行進(jìn)程

????????? exec函數(shù)族:execl() 、execlp()、execle()、execv()、execvp()、execve()

– Linux進(jìn)程的銷毀

????????? 通過do_exit函數(shù)結(jié)束進(jìn)程

? 7.3.2 Linux進(jìn)程的創(chuàng)建、執(zhí)行和銷毀(重要)

– Linux是一個(gè)多進(jìn)程系統(tǒng)。多進(jìn)程就是指計(jì)算機(jī)同時(shí)執(zhí)行多個(gè)進(jìn)程,即同 時(shí)運(yùn)行多個(gè)程序。對(duì)于多進(jìn)程系統(tǒng),就存在多個(gè)進(jìn)程如何進(jìn)行調(diào)度的問 題,包括進(jìn)程調(diào)度時(shí)機(jī)進(jìn)程調(diào)度依據(jù)。

– 進(jìn)程調(diào)度時(shí)機(jī)

① 主動(dòng)調(diào)度:隨時(shí)可以進(jìn)行。

② 被動(dòng)調(diào)度:發(fā)生在系統(tǒng)調(diào)用返回的夕、中斷異常處理返回、用戶態(tài)處理軟中 斷返回。

③ 搶占式內(nèi)核:處于內(nèi)核態(tài)的進(jìn)程也可能被調(diào)度出去

– 進(jìn)程調(diào)度依據(jù)

????????? 在所有處于可運(yùn)行狀態(tài)的進(jìn)程中,如何選擇最值得運(yùn)行的進(jìn)程投入運(yùn)行,以下4項(xiàng) 是選擇的依據(jù):

????????① policy:進(jìn)程的調(diào)度策略。

????????② priority:進(jìn)程的靜態(tài)優(yōu)先級(jí)。

????????③ counter:進(jìn)程剩余的時(shí)間片(進(jìn)程的動(dòng)態(tài)優(yōu)先級(jí))。

????????④ rt_priority:用于實(shí)時(shí)進(jìn)程間的選擇

– 進(jìn)程調(diào)度函數(shù):schedule()函數(shù)

????????① 主動(dòng)調(diào)度:主動(dòng)調(diào)用schedule()函數(shù)。

????????② 被動(dòng)調(diào)度:被動(dòng)調(diào)用schedule()函數(shù)。

? 7.4 ARM-Linux模塊機(jī)制

? Linux是單內(nèi)核的,單內(nèi)核最大的優(yōu)點(diǎn)是效率高,因?yàn)樗械膬?nèi)容都集中在一起, 單內(nèi)核也有可擴(kuò)展性差、可維護(hù)性差的缺點(diǎn)。

– 單內(nèi)核,是個(gè)很大的進(jìn)程。它的內(nèi)部又能夠被分為若干模塊(或是層次或其他)。但是在運(yùn)行的時(shí)候,它是個(gè)單獨(dú)的二 進(jìn)制大映象。其模塊間的通訊是通過直接調(diào)用其他模塊中的函數(shù)實(shí)現(xiàn)的,而不是消息傳遞。單內(nèi)核結(jié)構(gòu)的例子:傳統(tǒng)的 UNIX內(nèi)核----例如伯克利大學(xué)發(fā)行的版本,Linux內(nèi)核。

微內(nèi)核結(jié)構(gòu)由一個(gè)非常簡(jiǎn)單的硬件抽象層和一組比較關(guān)鍵的原語或系統(tǒng)調(diào)用組成,這些原語僅僅包括了建立一個(gè)系統(tǒng)必 需的幾個(gè)部分,如線程管理地址空間進(jìn)程間通信等。微內(nèi)核的例子:AIX,BeOS,L4微內(nèi)核系列,.Mach中用于GNU Hurd和Mac OS X,Minix,MorphOS,QNX,RadiOS,VSTa,鴻蒙OS。

混合內(nèi)核它很像微內(nèi)核結(jié)構(gòu),只不過它的的組件更多的在核心態(tài)中運(yùn)行,以獲得更快的執(zhí)行速度?;旌蟽?nèi)核實(shí)質(zhì)上是微 內(nèi)核,只不過它讓一些微核結(jié)構(gòu)運(yùn)行在用戶空間的代碼運(yùn)行在內(nèi)核空間,這樣讓內(nèi)核的運(yùn)行效率更高些。混合內(nèi)核的例 子: BeOS 內(nèi)核 ,DragonFly BSD,ReactOS內(nèi)核,Windows NT、Windows 2000、Windows XP、Windows Server 2003以 及Windows Vista等基于NT技術(shù)的操作系統(tǒng)。

外內(nèi)核系統(tǒng),也被稱為縱向結(jié)構(gòu)操作系統(tǒng),是一種比較極端的設(shè)計(jì)方法。 外內(nèi)核這種內(nèi)核不提供任何硬件抽象操作,但 是允許為內(nèi)核增加額外的運(yùn)行庫(kù),通過這些運(yùn)行庫(kù)應(yīng)用程序可以直接地或者接近直接地對(duì)硬件進(jìn)行操作。外核設(shè)計(jì)還停 留在研究階段,沒有任何一個(gè)商業(yè)系統(tǒng)采用了這種設(shè)計(jì)。幾種概念上的操作系統(tǒng)正在被開發(fā),如劍橋大學(xué)的Nemesis, 格拉斯哥大學(xué)的Citrix系統(tǒng)和瑞士計(jì)算機(jī)科學(xué)院的一套系統(tǒng)。麻省理工學(xué)院也在進(jìn)行著這類研究。

? 模塊機(jī)制的引入就是為了彌補(bǔ)這一缺點(diǎn)(可擴(kuò)展性差、可維護(hù)性差)。

? 模塊(內(nèi)核模塊,動(dòng)態(tài)可加載內(nèi)核模塊,Loadable Kernel Module,LKM)是Linux 內(nèi)核向外部提供的一個(gè)插口。

? 7.4.1 Linux模塊概述

– Linux內(nèi)核支持動(dòng)態(tài)可加載模塊(Loadable Kernel Module,LKM), 模塊是內(nèi)核的一部分,模塊通常是設(shè)備驅(qū)動(dòng)程序,但是并沒有編 譯到內(nèi)核里面去。

– 與模塊相關(guān)的命令:

insmod:加載模塊

rmmod:卸載模塊

lsmod:列出已經(jīng)安裝的模塊

depmod:產(chǎn)生模塊依賴的映射文件

⑤ modprob:根據(jù)depmod命令所產(chǎn)生的相依關(guān)系,決定要載入哪些 模塊

? 7.4.2 模塊代碼結(jié)構(gòu)

– module_test實(shí)驗(yàn)驅(qū)動(dòng)程序(模塊)的代碼結(jié)構(gòu):

? 頭文件

#include <linux/kernel.h>
#include <linux/module.h>

?? 模塊宏聲明

MODULE_LICENSE("GPL");
MODULE_ALIAS("hqyj:module");
MODULE_AUTHOR("HQYJ <yanfa@hqyj.com>");
MODULE_DESCRIPTION("A sample Hello World module");

?? 模塊初始化函數(shù)

static int __init hello_init(void){printk("hello init\n");return 0;}

?? 模塊退出函數(shù)

static void __exit hello_exit(void){printk("hello exit\n");}

?? 入口、出口函數(shù)設(shè)置

module_init(hello_init);
module_exit(hello_exit);

? 7.4.3 模塊的加載

– 模塊加載的兩種方式:

手工加載模塊:通過insmod命令將模塊加載到內(nèi)核:

– insmodmodule_test.ko:加載module_test.ko模塊

② 根據(jù)需要加載模塊到內(nèi)核:當(dāng)內(nèi)核發(fā)現(xiàn)需要某個(gè)模塊時(shí),內(nèi)核守 護(hù)進(jìn)程(kerneld)加載該模塊到內(nèi)核。

? 7.4.4 模塊的卸載

– 使用rmmod命令卸載模塊:

? rmmod module_test:卸載module_test.ko模塊

– 但是當(dāng)內(nèi)核在使用模塊時(shí),該模塊是不能被卸載的。

? 7.4.5 版本依賴

模塊代碼一定要在連接到不同內(nèi)核版本之前重新編譯, 因?yàn)槟K是結(jié)合到某個(gè)特殊內(nèi)核版本的數(shù)據(jù)結(jié)構(gòu)和數(shù) 據(jù)原型上,不同的內(nèi)核版本的接口可能差別很大。

模塊依賴于內(nèi)核的版

? 7.5 ARM-Linux系統(tǒng)啟動(dòng)和初始化

? 7.5.1 使用Boot Loader將內(nèi)核映像載入

– Boot Loader將Linux的內(nèi)核加載到內(nèi)存(SDRAM)后,將跳到函數(shù) start_kernel()進(jìn)入初始化過程。

– start_kernel()函數(shù):位于 /home/linux/workdir/fs3399/system/kernel/init/main.c中。

? 7.5.2 內(nèi)核引導(dǎo)第一部分:內(nèi)核數(shù)據(jù)結(jié)構(gòu)初 始化

– start_kernel()函數(shù)中調(diào)用了一系列初始化函數(shù),以完成內(nèi)核 (Kernel)本省的設(shè)置。

– start_kernel()函數(shù)最后啟動(dòng)init過程,創(chuàng)建第一個(gè)內(nèi)核線程,調(diào)用 init()函數(shù)。

? 7.5.3 內(nèi)核引導(dǎo)第二部分:外設(shè)初始化

init()函數(shù)作為內(nèi)核線程,首先鎖定內(nèi)核,然后調(diào)用 do_basic_setup()函數(shù),完成外設(shè)及其驅(qū)動(dòng)程序的加載和初始化

? 7.5.4 init進(jìn)程和inittab腳本

init進(jìn)程是系統(tǒng)所有進(jìn)程的起點(diǎn),內(nèi)核在完成核內(nèi)引導(dǎo)以后,即在 本線程(進(jìn)程)空間內(nèi)加載init程序,它的進(jìn)程號(hào)是1。

– init程序需要讀取Ubuntu的inittab腳本文件作為其行為指針。

? 7.5.5 rc啟動(dòng)腳本

– Linux系統(tǒng)運(yùn)行后將啟動(dòng)rc腳本S05rc.local)。

– rc啟動(dòng)腳本(S05rc.local)位于實(shí)驗(yàn)箱的/etc/rc2.d/目錄下。

? 7.5.6 Shell的啟動(dòng)

– Login用戶(Ubuntu和實(shí)驗(yàn)箱都是linux用戶)將啟動(dòng)一個(gè)用戶指定的Shell,這個(gè)指 定的Shell就是/bin/bash

? Shell:俗稱殼(用來區(qū)別于核),是指“為使用者提供操作界面”的軟件(命令解析器)。

bash:是一個(gè)為GNU計(jì)劃編寫的Unix shell。它的名字是一系列縮寫:Bourne-Again SHell — 這是關(guān)于Bourne shell(sh)的一個(gè)雙關(guān)語(Bourne again / born again)。 Bourne shell是一個(gè)早期的重要shell,由史蒂夫·伯恩在1978年前后編寫,并同 Version 7 Unix一起發(fā)布。bash則在1987年由布萊恩·福克斯創(chuàng)造。在1990年,Chet Ramey成為了主要的維護(hù)者。

http://m.aloenet.com.cn/news/31693.html

相關(guān)文章:

  • 高新區(qū)做網(wǎng)站讓顧客進(jìn)店的100條方法
  • 園洲做網(wǎng)站公司怎么做網(wǎng)站平臺(tái)
  • 邯鄲做網(wǎng)站的地方網(wǎng)絡(luò)設(shè)計(jì)
  • 可以做設(shè)計(jì)兼職的網(wǎng)站有哪些工作室搜外seo
  • 百姓網(wǎng)租房seo的定義是什么
  • 東勝網(wǎng)站建設(shè)網(wǎng)絡(luò)營(yíng)銷策劃書的結(jié)構(gòu)
  • 用php寫的網(wǎng)站有哪些友情鏈接是免費(fèi)的嗎
  • 企業(yè)網(wǎng)站建設(shè)的困難和問題長(zhǎng)春seo技術(shù)
  • 網(wǎng)站關(guān)鍵詞選擇軟文推廣文案
  • 哪個(gè)旅游網(wǎng)站做的比較好免費(fèi)平臺(tái)推廣
  • p2p網(wǎng)站建設(shè)制作免費(fèi)發(fā)帖的網(wǎng)站
  • 專業(yè)網(wǎng)站建設(shè)首選公司沈陽seo網(wǎng)站關(guān)鍵詞優(yōu)化
  • wordpress怎么可以出現(xiàn)表格seo接單平臺(tái)
  • dedecms網(wǎng)站開發(fā)百度明星搜索量排行榜
  • 創(chuàng)做網(wǎng)站百度下載軟件
  • 兵團(tuán)建設(shè)環(huán)保局網(wǎng)站百度推廣有哪些售后服務(wù)
  • 如何做網(wǎng)站運(yùn)營(yíng)seo網(wǎng)站優(yōu)化師
  • dede做導(dǎo)航網(wǎng)站營(yíng)銷網(wǎng)站方案設(shè)計(jì)
  • 回收網(wǎng)站怎么做百度電視劇風(fēng)云榜
  • 一學(xué)一做看視頻網(wǎng)站有哪些網(wǎng)絡(luò)營(yíng)銷產(chǎn)品策略分析
  • 公司部門解散怎么賠償員工seo推薦
  • 企業(yè)網(wǎng)站優(yōu)化的三層含義網(wǎng)站推廣該怎么做
  • 網(wǎng)站作用微信營(yíng)銷的優(yōu)勢(shì)
  • 網(wǎng)站開發(fā)論文文獻(xiàn)書籍友情鏈接的獲取途徑有哪些
  • 建設(shè)部資質(zhì)網(wǎng)站查詢成人就業(yè)技術(shù)培訓(xùn)機(jī)構(gòu)
  • 視頻網(wǎng)站logo怎么做的html底部友情鏈接代碼
  • 天津和平做網(wǎng)站多少錢怎么創(chuàng)建自己的游戲網(wǎng)站
  • 網(wǎng)站建設(shè)完畢后怎么加后臺(tái)線上營(yíng)銷推廣方案有哪些
  • 網(wǎng)站備案怎么關(guān)閉網(wǎng)站百度推廣多少錢一個(gè)月
  • 網(wǎng)站做線seo的優(yōu)化步驟