日本黄色一级经典视频|伊人久久精品视频|亚洲黄色色周成人视频九九九|av免费网址黄色小短片|黄色Av无码亚洲成年人|亚洲1区2区3区无码|真人黄片免费观看|无码一级小说欧美日免费三级|日韩中文字幕91在线看|精品久久久无码中文字幕边打电话

當前位置:首頁 > 嵌入式 > 嵌入式軟件
[導讀]學習Linux,內(nèi)核常識都有哪些?

學習Linux,內(nèi)核常識都有哪些?

一、內(nèi)核功能、內(nèi)核發(fā)行版

1、到底什么是操作系統(tǒng)

(1)linux、windows、android、ucos就是操作系統(tǒng);

(2)操作系統(tǒng)本質(zhì)上是一個程序,由很多個源文件構(gòu)成,需要編譯連接成操作系統(tǒng)程序(vmlinz、zImage);

(3)操作系統(tǒng)的主要作用就是管理計算機硬件,給應用程序提供一個運行環(huán)境。

2、操作系統(tǒng)核心功能(管理資源)

(1)內(nèi)存管理

如果沒有操作系統(tǒng),內(nèi)存需要程序自己來管理。譬如在uboot中要使用哪塊內(nèi)存,由程序自己決定的,沒有注冊也沒有限制。此時如果程序不小心把同一塊內(nèi)存重復使用,就會出現(xiàn)程序邏輯錯誤。

有了操作系統(tǒng)之后,操作系統(tǒng)負責管控所有的內(nèi)存。應用程序需要使用內(nèi)存時,都要向操作系統(tǒng)去申請和注冊,由操作系統(tǒng)的內(nèi)存管理模塊來分配內(nèi)存。這樣好處是可以保證內(nèi)存使用不會沖突。

(2)進程調(diào)度

操作系統(tǒng)下支持多個應用程序同時運行,這是宏觀上的并行。實際上在單核心CPU上微觀上是不能并行的,宏觀上的并行就是操作系統(tǒng)提供的分時復用機制。操作系統(tǒng)的進程調(diào)度模塊負責在各個進程之間進行切換。

(3)硬件設備管理

沒有操作系統(tǒng)時,控制任何硬件都要自己寫代碼,有了操作系統(tǒng)后操作系統(tǒng)本身會去控制各個硬件,應用程序就不用考慮硬件的具體細節(jié)了。

操作系統(tǒng)的硬件設備管理模塊就是驅(qū)動模塊。

(4)文件系統(tǒng)

文件系統(tǒng)是管理存儲設備的一種方式。存儲設備由很多扇區(qū)組成,每個扇區(qū)有512/1024/2048/4096字節(jié),存儲設備以扇區(qū)為單位進行讀寫。如果沒有文件系統(tǒng),程序要自己去讀寫扇區(qū),就得記得哪個文件在哪個扇區(qū)。有了文件系統(tǒng)之后,我們不用再關注某個文件在物理磁盤的哪個扇區(qū),只用關注文件系統(tǒng)中的目錄和文件名。

3、操作系統(tǒng)擴展功能

(1)協(xié)議棧

(2)有用的應用程序包

應用程序本身不屬于操作系統(tǒng)內(nèi)核的一部分。

應用程序是給人用的,面向某種功能的,譬如ping程序用來測試網(wǎng)絡是否聯(lián)通,ifconfig程序用來配置網(wǎng)卡。

4、內(nèi)核和發(fā)行版的區(qū)別

(1)內(nèi)核是操作系統(tǒng)內(nèi)核的簡稱。

內(nèi)核負責實現(xiàn)操作系統(tǒng)的核心功能,內(nèi)核不包括應用程序。

因此只有內(nèi)核是無法使用的,因為做任何事情都是通過相應的應用程序來完成的。

賣操作系統(tǒng)的人把內(nèi)核和一些常用的應用程序打包在一起提供給普通用戶,這就是操作系統(tǒng)的發(fā)行版(也就是普通意義上的操作系統(tǒng))。

(2)內(nèi)核只有一個(www.kernel.org),發(fā)行版有很多(集成不同的應用程序,譬如ubuntu、redhat、suse、centos……)。

二、內(nèi)核和驅(qū)動的關聯(lián)

1、學習linux的思路

(1)對龐大的整體要有個認識。學習路線就是先建立框架和整體,然后逐漸去學習各個細節(jié)部分,逐步細化。

(2)對各分層的作用要清楚。

(3)對層次間的關聯(lián)和互相調(diào)用要理解。

2、驅(qū)動屬于內(nèi)核的一部分

(1)驅(qū)動就是內(nèi)核中的硬件設備管理模塊,屬于發(fā)展非?;钴S的部分。

(2)驅(qū)動工作在內(nèi)核態(tài)(cpu在跑操作系統(tǒng))(與用戶態(tài)(cpu在跑應用程序)的區(qū)別:權(quán)限不同)

(3)驅(qū)動程序故障可能導致整個內(nèi)核崩潰。

(4)驅(qū)動程序漏洞會使內(nèi)核不安全。

三、內(nèi)核和應用程序、根文件系統(tǒng)的關聯(lián)

1、應用和內(nèi)核的關系

(1)應用程序不屬于內(nèi)核,而是在內(nèi)核之上的;

(2)應用程序工作在用戶態(tài),是受限制的;

(3)應用程序故障不會導致內(nèi)核崩潰;

(4)應用程序通過內(nèi)核定義的API接口來調(diào)用內(nèi)核工作

(5)總結(jié):應用程序是最終目標,內(nèi)核就是為應用程序提供底層資源管理的服務員

2、內(nèi)核和根文件系統(tǒng)

(1)根文件系統(tǒng)提供根目錄;屬于內(nèi)核?NO!

(2)進程1存放在根文件系統(tǒng)中,進程1會使得內(nèi)核態(tài)變?yōu)橛脩魬B(tài)。

(3)內(nèi)核啟動最后會去裝載根文件系統(tǒng);

(4)總結(jié):根文件系統(tǒng)為操作系統(tǒng)啟動提供了很多必備的資源,如根目錄、進程1。

四、linux內(nèi)核的模塊化設計

1、什么是模塊化設計

(1)因為linux內(nèi)核很龐大,代碼量很大、東西很多,如果設計時完全設計成一體(各個文件、各個函數(shù)之間緊耦合),復雜度超出了人所能理解的范圍。所以模塊化設計是一種必要。

(2)模塊化設計就是內(nèi)核中各個功能模塊在代碼上是彼此獨立的,譬如說調(diào)度系統(tǒng)和內(nèi)存管理系統(tǒng)之間并沒有全局變量的互相引用,甚至函數(shù)互相調(diào)用也很少,就算有也是遵循一個接口規(guī)范的。模塊化設計的目的就是實現(xiàn)功能模塊的松耦合。

2、模塊化設計的體現(xiàn)

(1)配置時可裁剪。linux內(nèi)核在編譯之前可以進行配置,配置時可以選擇將組成內(nèi)核的成千上萬個模塊每一個要或者不要。要了之后還有更多的一些細節(jié)的配置。

(2)模塊化編譯和安裝。為了操作方便,從靜態(tài)的升級逐漸變成了動態(tài)的升級(不需要重啟系統(tǒng),更不需要重新燒錄系統(tǒng))。這種動態(tài)的升級也是由模塊化來支持的。

(3)源碼中使用條件編譯。這種在uboot中已經(jīng)見過了。

3、模塊化設計的好處

(1)功能可裁剪、靈活性;

(2)可擴展性(動態(tài)安裝卸載、新硬件支持);

(3)利于協(xié)作;

4、模塊化設計是一種普遍性的系統(tǒng)設計原則

五、選擇合適版本的內(nèi)核

1、linux內(nèi)核版本變遷簡史

(1)linux0.01。初版

(2)linux0.11。很多講linux內(nèi)核源代碼解析的書都是以這個版本為原本來講。《圖解linux內(nèi)核設計的藝術(shù)》

(3)linux2.4。比較接近現(xiàn)代的版本,很多經(jīng)典的書都是以2.4版本內(nèi)核為參照的,譬如《LDD3》。

linux2.4的晚期內(nèi)核在前幾年還會經(jīng)常碰到有用的。

(4)linux2.6早期。2.6的早期和2.4晚期內(nèi)核挺像的。

(5)linux2.6晚期。2.6的晚期內(nèi)核較早期內(nèi)核有一些改變,尤其是驅(qū)動相關的部分和一些頭文件的位置。2.6的晚期內(nèi)核目前還算是比較主流。

(6)linux3.x 4.x

2、如何選擇合適的內(nèi)核版本

(1)并不是越新版本的內(nèi)核越好;

(2)選擇SoC廠家移植版本會減少工作量。

3、S5PV210適用的內(nèi)核版本

(1)2.6.35.7 + android2.3/QT4.8.3

(2)3.0.8 + android4.0

4、本課程使用2.6.35.7版本內(nèi)核講解

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

在Zynq MPSoC開發(fā)中,實現(xiàn)PS端Linux與PL端自定義IP核的AXI互聯(lián)是構(gòu)建高性能異構(gòu)系統(tǒng)的關鍵環(huán)節(jié)。這種互聯(lián)方式充分發(fā)揮了ARM處理器的軟件優(yōu)勢與FPGA的硬件加速能力,為復雜應用提供了強大的計算平臺。

關鍵字: Zynq MPSoC Linux

在物聯(lián)網(wǎng)與智能設備飛速普及的當下,嵌入式系統(tǒng)的安全性與穩(wěn)定性愈發(fā)關鍵。實時操作系統(tǒng)(RTOS)憑借其高確定性、低延遲的特性,成為工業(yè)控制、醫(yī)療設備、航空電子等安全敏感領域的核心支撐。而內(nèi)存保護單元(MPU)作為硬件級安全...

關鍵字: Linux Windows

3月10日消息,2026年開年,一個名為OpenClaw的開源項目以閃電般的速度席卷了GitHub。它在短短一天內(nèi)就斬獲了9000顆星

關鍵字: OpenClaw Linux

3月6日消息,在摩根士丹利會議上,NVIDIA CEO黃仁勛分享了關于Agentic AI(代理式人工智能)轉(zhuǎn)折點的見解,并將開源軟件OpenClaw評價為“當代最重磅的軟件發(fā)布”。

關鍵字: OpenClaw Linux

Linux內(nèi)存管理是操作系統(tǒng)的核心機制之一,通過虛擬內(nèi)存與物理內(nèi)存的分離設計,實現(xiàn)了多進程內(nèi)存隔離、高效資源利用和系統(tǒng)穩(wěn)定性保障。

關鍵字: Linux 內(nèi)存

在Linux系統(tǒng)中,進程管理是內(nèi)核的核心功能之一,其核心目標是通過高效的調(diào)度機制和進程切換技術(shù),實現(xiàn)多任務并發(fā)執(zhí)行。

關鍵字: Linux CPU

內(nèi)核是操作系統(tǒng)的核心,它作為應用程序與硬件設備之間的"中間人",負責進程調(diào)度、內(nèi)存管理、硬件通信和系統(tǒng)調(diào)用等關鍵功能。Linux和Windows作為全球使用最廣泛的兩大操作系統(tǒng),其內(nèi)核設計理念、架構(gòu)和運行機制存在本質(zhì)差異...

關鍵字: Linux Windows

在Linux系統(tǒng)中,當開發(fā)者使用mmap()系統(tǒng)調(diào)用將磁盤文件映射到進程的虛擬地址空間時,一個看似簡單的指針操作背后,隱藏著操作系統(tǒng)內(nèi)核與硬件協(xié)同工作的復雜機制。這種機制不僅突破了傳統(tǒng)文件IO的效率瓶頸,更重新定義了內(nèi)存...

關鍵字: Linux 文件IO 內(nèi)存映射

在Linux驅(qū)動開發(fā)領域,持續(xù)集成與持續(xù)部署(CI/CD)流水線通過自動化流程將代碼變更快速轉(zhuǎn)化為可靠部署,而KernelCI與LTP測試套件的深度集成則成為保障驅(qū)動穩(wěn)定性的關鍵技術(shù)組合。本文將從原理分析、應用場景及實現(xiàn)...

關鍵字: CICD流水線 Linux

在Linux系統(tǒng)中,動態(tài)庫(共享庫)是程序運行的重要組成部分。當程序需要調(diào)用動態(tài)庫時,系統(tǒng)必須能夠找到這些庫文件的位置。

關鍵字: 動態(tài)庫 Linux
關閉