成人免费xxxxx在线视频软件_久久精品久久久_亚洲国产精品久久久_天天色天天色_亚洲人成一区_欧美一级欧美三级在线观看

如何看待Linux操作系統的用戶空間和內核空間

系統 Linux
以Linux系統和Intel x86的CPU為例,Linux使用了ring0模式來運行內核態的代碼,ring3來運行用戶態的代碼,ring1和ring2沒有使用。32為操作系統可尋址范圍是0~4GB,為此Linux系統將其分為了用戶空間和內核空間兩部分。

作為中央核心處理單元的CPU,除了生產工藝的不斷革新進步外,在處理數據和響應速度方面也需要有權衡。稍有微機原理基礎的人都知道Intel X86體系的CPU提供了四種特權模式ring0~ring3,其中ring0特權***,ring3的特權***,之所以要做這樣的區分一個主要目的是保護資源,通俗來講要保護的資源無非就是“內存、I/O端口以及執行特殊機器指令的能力”。任何一個時刻,x86 CPU都是在一定的特權模式下運行。同樣,對于ARM體系的CPU 一共有七種運行模式,分別是:用戶模式(usr)、快速中斷模式(fiq)、中斷模式(irq)、管理模式(svc)、系統模式(sys)、數據訪問終止模式(abt)和未定義指令終止模式(und)。除了用戶模式外,其他6中工作模式都屬于特權模式,而特權模式中除了系統模式外,其他5種模式又稱為異常模式。

那么底層硬件CPU的這種特性,跟我們將要討論的用戶模式和內核模式又有什么關系呢?讓我們正本溯源來端正一下對操作系統的認識。每位教操作系統課程的老師都會告訴大家:所謂的操作系統呢,就是對硬件資源進行統一管理的系統,并向用戶提供業務接口的軟件系統。通俗來講,【操作系統就是要能管理你的CPU和內存,驅動你的硬盤,管理你的網卡和顯示器,然后當你點擊鼠標和敲擊鍵盤時能做出正確的響應?!繅蛲ㄋ琢税伞?/p>

那么問題就來了,以CPU為例,如果你是一個操作系統的設計者,你會如何處理不同CPU體系架構的差異性(如Intel、ARM,抑或AMD、MIPS等)?當然這個問題不是一般人能hold得了的,CU論壇里開發都江堰操作系統那位大牛前輩確實值得讓吾輩佩服和敬仰。繼續我們的話題,也就是說不同的操作系統在處理CPU體系架構的差異化方面是不相同的,有些操作系統,就提供了用戶模式和內核模式這種機制 (例如linux),而有些操作系統呢,又沒有用戶態和內核態之分(例如vxWorks)。后者不在我們的討論范圍,感興趣的童鞋可以自己去google一下。

以Linux系統和Intel x86的CPU為例,Linux使用了ring0模式來運行內核態的代碼,ring3來運行用戶態的代碼,ring1和ring2沒有使用。32為操作系統可尋址范圍是0~4GB,為此Linux系統將其分為了用戶空間和內核空間兩部分:

 

 

其中用戶空間占低位的3GB空間,范圍從虛擬地址的0x00000000到0xBFFFFFFFF,內核空間占用了高位的1GB空間,虛擬地址范圍從0xC0000000到0xFFFFFFFF。

內核空間里存放的是整個內核代碼和所有內核模塊,以及內核所維護的數據。當用戶運行一個程序時,該程序所創建的進程一開始是運行在用戶空間的,當它要執行網絡發送數據等動作時,必須通過調用write、send等系統函數來完成,這些系統調用會去調用內核中的代碼來完成用戶的請求操作,這時CPU必須從ring3切換到ring0,然后進入內核地址空間去執行這些代碼完成操作,完成后又切換回ring3,回到用戶態。

所以,我們可以看到,提供了用戶模式和內核模式的操作系統,用戶態的程序就不能隨意操作內核地址空間里的數據,具有一定的安全保護作用;于此同時,在實時性方面稍微有所犧牲。也要就是說,只要內核代碼沒有問題,用戶空間程序的錯誤和BUG一般來說不會導致系統崩潰,提高了系統的健壯性。

這么看來,內核確實比較“拽”,而Linux也提供了一些用戶空間和內核空間通訊的機制,使我們可以開發出更高效的程序。但一定要記住,內核中一點小小的錯誤都是會導致整個系統崩潰,所以開發內核程序時一定要非常小心謹慎。 

責任編輯:龐桂玉 來源: 嵌入式Linux中文站
相關推薦

2021-01-14 09:37:20

內核空間用戶

2022-02-18 00:15:58

Linux指令CPU

2021-01-08 05:59:39

Linux應用程序Linux系統

2016-08-10 12:52:31

2019-07-10 12:26:34

Linux操作系統磁盤

2021-03-22 11:43:07

Linux運維Linux系統

2012-05-21 17:02:19

Linux審計

2011-01-14 16:23:46

Linux內核

2015-11-19 13:53:22

操作系統購買主機空間

2009-06-19 20:32:00

Linux

2009-09-01 09:14:42

2009-12-17 18:19:12

Linux操作系統

2009-12-08 18:27:14

Windows 7操作

2016-07-05 15:09:44

2011-01-04 18:15:21

2023-04-13 08:09:35

操作系統虛擬地址內存

2020-12-28 08:51:06

操作系統微內核Dubbo

2009-12-07 09:31:23

Linux系統調用表地址

2010-05-13 09:45:26

Linux地址空間

2024-12-27 09:46:10

點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产婷婷精品 | 久久一区精品 | 欧美极品在线 | 夜夜精品浪潮av一区二区三区 | 欧美一区二区大片 | 久久一区二区精品 | 在线成人av | 久久久www成人免费无遮挡大片 | 久久亚洲国产精品 | 色偷偷噜噜噜亚洲男人 | 国产精品一区二区三区在线 | 天堂在线中文 | 免费在线观看一区二区三区 | 免费同性女女aaa免费网站 | 精品久久久久久久久久久院品网 | 性天堂网 | 亚洲精品电影网在线观看 | 欧美在线一区二区三区 | 中文av网站 | 欧美日韩视频网站 | 国产精品一区二区av | 欧美视频三区 | 国产精品视频导航 | 人人干人人艹 | 国内精品久久久久久 | 欧美日韩国产精品激情在线播放 | 综合国产在线 | 精品熟人一区二区三区四区 | 日韩毛片在线免费观看 | 性生生活大片免费看视频 | 宅女噜噜66国产精品观看免费 | 在线午夜| 99热激情| 国产一区免费视频 | 亚洲一区综合 | 日韩午夜影院 | 国产成人精品一区二区三区在线 | 中文字幕日韩一区 | 国产成人精品一区二区三 | 中文字幕高清一区 | av网站免费在线观看 |