日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 综合教程 >内容正文

综合教程

linux内核与用户态交互(linux内核与用户)

發(fā)布時(shí)間:2023/12/3 综合教程 31 生活家
生活随笔 收集整理的這篇文章主要介紹了 linux内核与用户态交互(linux内核与用户) 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

為什么要?jiǎng)澐譃橛脩艨臻g和內(nèi)核空間?

Linux虛擬內(nèi)存的大小為2^32(在32位的x86機(jī)器上),內(nèi)核將這4G字節(jié)的空間分為兩部分。

最高的1G字節(jié)(從虛地址 0xC0000000到0xFFFFFFFF)供內(nèi)核使用,稱為“內(nèi)核空間”。而較低的3G字節(jié)(從虛地址0x00000000到 0xBFFFFFFF),供各個(gè)進(jìn)程使用,稱為“用戶空間”。因?yàn)槊總€(gè)進(jìn)程可以通過系統(tǒng)調(diào)用進(jìn)入內(nèi)核,因此,Linux內(nèi)核空間由系統(tǒng)內(nèi)的所有進(jìn)程共享。于是,從具體進(jìn)程的角度來看,每個(gè)進(jìn)程可以擁有4G字節(jié)的虛擬地址空間(也叫虛擬內(nèi)存). 每個(gè)進(jìn)程有各自的私有用戶空間(0~3G),這個(gè)空間對系統(tǒng)中的其他進(jìn)程是不可見的。最高的1GB內(nèi)核空間則為所有進(jìn)程以及內(nèi)核所共享。另外,進(jìn)程的“用戶空間”也叫“地址空間”,在后面的敘述中,我們對這兩個(gè)術(shù)語不再區(qū)分。用戶空間不是進(jìn)程共享的,而是進(jìn)程隔離的。每個(gè)進(jìn)程最大都可以有3GB的用戶空間。一個(gè)進(jìn)程對其中一個(gè)地址的訪問,與其它進(jìn)程對于同一地址的訪問絕不沖 突。比如,一個(gè)進(jìn)程從其用戶空間的地址0x1234ABCD處可以讀出整數(shù)8,而另外一個(gè)進(jìn)程從其用戶空間的地址0x1234ABCD處可以讀出整數(shù) 20,這取決于進(jìn)程自身的邏輯。因此Linux對用戶空間與內(nèi)核空間的劃分起到了一定程度上的沖突避免。

linux版本和內(nèi)核版本區(qū)別?

先了解一個(gè)概念。

整個(gè)實(shí)際的Linux系統(tǒng)是由內(nèi)核, 軟件, 工具三部分組成。

內(nèi)核由早期的黑客工程師團(tuán)隊(duì)開發(fā)和測試實(shí)現(xiàn), 后來許多崇尚開源的工程師加入開發(fā)了軟件應(yīng)用, Linux逐步完善, 功能也日益齊全和強(qiáng)大. 當(dāng)普及程度越發(fā)廣泛的時(shí)期, 許多商業(yè)公司在內(nèi)核和軟件的基礎(chǔ)上加入自己的系統(tǒng)工具方便不懂計(jì)算機(jī)的用戶也能使用linux系統(tǒng), 然后打包成為一個(gè)完整的系統(tǒng)安裝程序方便用戶安裝和使用.

這樣的打包好的linux就稱為一個(gè)發(fā)行版本的linux, 相應(yīng)的linux的內(nèi)核版本就是指內(nèi)核開發(fā)工程師開發(fā)和維護(hù)的內(nèi)核部分的。

熟悉Linux內(nèi)核后可以勝任哪些工作?

Linux內(nèi)核編程主要在嵌入式產(chǎn)品開發(fā)領(lǐng)域有用武之地。當(dāng)前的嵌入式產(chǎn)品是從過去的單片機(jī)產(chǎn)品發(fā)展而來的。區(qū)別在于單片機(jī)產(chǎn)品不具有操作系統(tǒng),是單進(jìn)程的。而現(xiàn)代嵌入式產(chǎn)品需要由嵌入式操作系統(tǒng)來支持多進(jìn)程的運(yùn)行。

Linux是一款公布了內(nèi)核源碼的操作系統(tǒng),用戶可以根據(jù)需求進(jìn)行內(nèi)核裁剪,所以在嵌入式領(lǐng)域廣受歡迎。

許多廠商都為了降低開發(fā)成本,選用了Linux內(nèi)核,經(jīng)過裁剪后移植到自己的嵌入式產(chǎn)品中去。

由于中國是制造業(yè)大國,在未來的十年中必將有大批的制造業(yè)產(chǎn)品需要采用嵌入式技術(shù)以提高產(chǎn)品的智能化水平。

所以今后Linux內(nèi)核編程的開發(fā)人員在制造業(yè)領(lǐng)域需求很大。

目前在國內(nèi)的電子行業(yè)和半導(dǎo)體行業(yè)需要一些Linux內(nèi)核編程的開發(fā)人員。服務(wù)性行業(yè)和銀行外包的IT公司沒有這種需求。

linux內(nèi)核由哪幾部分組成,簡述各部分作用?

一個(gè)完整的Linux內(nèi)核一般由5部分組成,它們分別是內(nèi)存管理、進(jìn)程管理、進(jìn)程間通信、虛擬文件系統(tǒng)和網(wǎng)絡(luò)接口。

1、內(nèi)存管理

內(nèi)存管理主要完成的是如何合理有效地管理整個(gè)系統(tǒng)的物理內(nèi)存,同時(shí)快速響應(yīng)內(nèi)核各個(gè)子系統(tǒng)對內(nèi)存分配的請求。

Linux內(nèi)存管理支持虛擬內(nèi)存,而多余出的這部分內(nèi)存就是通過磁盤申請得到的,平時(shí)系統(tǒng)只把當(dāng)前運(yùn)行的程序塊保留在內(nèi)存中,其他程序塊則保留在磁盤中。在內(nèi)存緊缺時(shí),內(nèi)存管理負(fù)責(zé)在磁盤和內(nèi)存間交換程序塊。

2、進(jìn)程管理

進(jìn)程管理主要控制系統(tǒng)進(jìn)程對CPU的訪問。當(dāng)需要某個(gè)進(jìn)程運(yùn)行時(shí),由進(jìn)程調(diào)度器根據(jù)基于優(yōu)先級的調(diào)度算法啟動(dòng)新的進(jìn)程。:Linux支持多任務(wù)運(yùn)行,那么如何在一個(gè)單CPU上支持多任務(wù)呢?這個(gè)工作就是由進(jìn)程調(diào)度管理來實(shí)現(xiàn)的。

3、進(jìn)程間通信

進(jìn)程間通信主要用于控制不同進(jìn)程之間在用戶空間的同步、數(shù)據(jù)共享和交換。由于不用的用戶進(jìn)程擁有不同的進(jìn)程空間,因此進(jìn)程間的通信要借助于內(nèi)核的中轉(zhuǎn)來實(shí)現(xiàn)。

一般情況下,當(dāng)一個(gè)進(jìn)程等待硬件操作完成時(shí),會(huì)被掛起。當(dāng)硬件操作完成,進(jìn)程被恢復(fù)執(zhí)行,而協(xié)調(diào)這個(gè)過程的就是進(jìn)程間的通信機(jī)制。

4、虛擬文件系統(tǒng)

Linux內(nèi)核中的虛擬文件系統(tǒng)用一個(gè)通用的文件模型表示了各種不同的文件系統(tǒng),這個(gè)文件模型屏蔽了很多具體文件系統(tǒng)的差異,使Linux內(nèi)核支持很多不同的文件系統(tǒng)。

5、網(wǎng)絡(luò)接口

網(wǎng)絡(luò)接口提供了對各種網(wǎng)絡(luò)標(biāo)準(zhǔn)的實(shí)現(xiàn)和各種網(wǎng)絡(luò)硬件的支持。網(wǎng)絡(luò)接口一般分為網(wǎng)絡(luò)協(xié)議和網(wǎng)絡(luò)驅(qū)動(dòng)程序。網(wǎng)絡(luò)協(xié)議部分負(fù)責(zé)實(shí)現(xiàn)每一種可能的網(wǎng)絡(luò)傳輸協(xié)議。

總結(jié)

以上是生活随笔為你收集整理的linux内核与用户态交互(linux内核与用户)的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。