tft每日頭條

 > 圖文

 > linux内核和系統哪個好

linux内核和系統哪個好

圖文 更新时间:2025-06-23 03:08:53

linux内核和系統哪個好?程序如果要被CPU執行,就得編譯成CPU可以執行的指令,一大堆的程序就變成了一堆的指令,現在小編就來說說關于linux内核和系統哪個好?下面内容希望能幫助到你,我們來一起看看吧!

linux内核和系統哪個好(Linux為什麼區分内核空間和用戶空間)1

linux内核和系統哪個好

程序如果要被CPU執行,就得編譯成CPU可以執行的指令,一大堆的程序就變成了一堆的指令。

一個操作系統它也是一堆程序組成的,可以想象CPU的指令是很多的,但是這麼多的指令中,有些指令涉及到系統底層的東西,如果有些指令錯用或者使用不當是非常危險的,比如清内存、設置時鐘、修改用戶訪問權限、分配系統資源等等,可能導緻系統崩潰。

CPU将這些指令進行了分類,分為特權指令非特權指令,不讓所有程序都能使用所有指令,如果所有程序都能使用,那系統崩潰就會變得非常常見了。

操作系統的核心是内核,它是獨立于普通的應用程序,負責管理系統的進程、内存、設備驅動程序、文件和網絡系統,決定着系統的性能和穩定性,所以一定要保證内核的安全。

為了保護内核的安全,操作系統一般都限制用戶進程不能直接操作内核,在32位操作系統總的地址空間4G(2^32 = 4GB),實現這個限制的方式就是操作系統将總的地址空間分為兩個部分,對于Linux操作系統:

1. 高位的1G空間(0xC000 0000 - 0xFFFF FFFF)分配給内核,稱為内核空間,内核程序運行在内核空間,對應的進程就處于内核态(管态)。

2. 另外3G空間(0x0000 0000 - 0xBFFF FFFF)分配給用戶使用,稱為用戶空間,用戶程序運行在用戶空間,對應的進程處于用戶态(目态)。

引用之前寫的一篇文章(你該知道你寫的程序的内存布局)的圖

你該知道你寫的程序的内存布局

總之,有1G的内核空間是每個進程共享的,剩下的3G是進程自己使用的。

在内核态下,CPU可以執行指令系統的全集,也就是說内核态進程可以調用系統的一切資源,但是特權指令隻能在内核态下執行,它不直接提供給用戶使用,用戶态下隻能使用非特權指令,也就是說用戶态進程隻能執行簡單運算,不能直接調用系統資源。

那麼CPU如何知道當前是否可以使用特權指令?

有一個标志寄存器,又稱程序狀态字寄存器PSW(Program Status Word),有一個标志位來标識處理器當前處于哪一個狀态,比如0是處于用戶态,1是處于内核态,有了這個狀态就能判斷該使用什麼指令。

Linux操作系統通過區分内核空間和用戶空間的這種設計,将操作系統代碼和用戶程序代碼分開,這樣即使在某一個應用程序出錯,也不會影響到操作系統,再說,Linux操作系統是多任務系統,其它應用程序不也還能運行。

現代操作系統基本上都是分内核空間和用戶空間的做法,來保護操作系統自身的安全性和穩定性,這也是區分内核空間和用戶空間的本質。


原創不易,覺得文章不錯,收藏的同時,麻煩點個贊~~~~~

關注微信公衆号『混說Linux

你也可以繼續閱讀 點擊 以下文章,下面是我推薦給大家的幾篇文章:

1.《竟然把通信協議講的如此通俗?

2.《c 如何學習?趕緊收藏這些好書

3.《select和epoll的前世今生

4.《徹底明白Linux硬鍊接和軟鍊接

更多精彩资讯请关注tft每日頭條,我们将持续为您更新最新资讯!

查看全部

相关圖文资讯推荐

热门圖文资讯推荐

网友关注

Copyright 2023-2025 - www.tftnews.com All Rights Reserved