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

操作系統(tǒng) OS 與內核 Kernel 有什么區(qū)別?

系統(tǒng) Linux
實際上我們熟悉的Linux只是內核而不能稱得上是操作系統(tǒng),Ubuntu則可以認為是操作系統(tǒng),其內核是Linux;RedHat也是操作系統(tǒng),其內核同樣是Linux;我們可以看到,盡管Ubuntu和RedHat是不同的操作系統(tǒng),但其內核可以是相同的。

Canoo公司有一項核心技術專利,這就是它們的通用電動底盤技術,長得是這個樣子,非常像一個滑板:

這個帶輪子、有電池、能動的滑板已經(jīng)包含了一輛車最核心的組件,差的就是一個外殼。

這個看起來像滑板的東西就是所謂的電池系統(tǒng)和底盤一體化技術,Canoo公司在它們的通用底盤上加裝不同的外殼就能制造出不同的車型。

什么是內核?

在上面這個示例中,包含輪子以及電池系統(tǒng)的底盤就好比內核,而套上外殼加上椅子以及內飾后的整體成品就好比操作系統(tǒng)。

內核僅僅是操作系統(tǒng)的一部分,是真正與硬件交互的那部分軟件,與硬件交互包括讀寫硬盤、讀寫網(wǎng)盤、讀寫內存以及任何連接到系統(tǒng)中的硬件。

除了與硬件交互外,內核還負責分配資源,分配什么資源呢?所謂資源就是硬件,比如CPU時間、內存、IO等等,這些都是資源。

現(xiàn)在我們知道了內核負責分配資源,那么問題來了,要怎么分配這些資源呢?答案就是以進程的形式來分配資源。

怎么分配呢?

一句話:虛擬大法好。

每個進程都認為自己在獨占CPU,這通過CPU時間片來實現(xiàn),內核讓CPU在各個進程之間快速切換,這樣程序員寫好程序員后直接運行即可,即使在單核系統(tǒng)中運行成百上千個進程都沒有問題。

每個進程都認為自己在獨占內存,這通過虛擬內存來實現(xiàn)。

有的同學可能會問,為什么都要虛擬化呢?

答案顯而易見,因為計算機系統(tǒng)內的資源是有限的,我們只有幾個CPU核心、幾個G的內存,但卻要同時運行幾百幾千個進程,除此之外我們別無它法。

如果你還知道有其它更高效的方法那么趕緊放下手機,馬上將你的思想寫成論文發(fā)表出來,下一屆的圖靈獎非你莫屬,當然在發(fā)表獲獎感言的時候一定要記得表示是受到了【碼農(nóng)的荒島求生】這個公眾號的啟發(fā)才想到的。

因此,內核的職責就是以進程的形式來分配CPU時間,以虛擬內存的形式來分配物理內存,以文件的形式來管理IO設備。

什么是操作系統(tǒng)?

然而只有一個內核實際上是做不了什么真正有用的事情,就像上面示例中那個通用底盤一樣,這個底盤確實能跑起來,但你沒辦法開著這樣一個底盤出去浪,因為這個底盤很難用。

因此,你不得不加裝上方向盤、座椅以及車身外殼等,同樣的道理,內核是給人用的,為了與內核交互,發(fā)明了命令行以及圖形界面GUI。

圖片圖片

除了給普通用戶提供使用的接口之外,操作系統(tǒng)還需要給程序員提供編寫程序的接口,當我們寫的程序依賴內核提供的服務時是該怎么辦呢?

有的同學說我們需要依賴內核提供的服務嗎?

想一想,進行網(wǎng)絡編程時你有沒有自己編寫過處理TCP/IP協(xié)議棧數(shù)據(jù)的代碼?你有沒有自己寫代碼從網(wǎng)卡上收發(fā)數(shù)據(jù)?都沒有,實際上你需要做的僅僅是簡單的調用一些socket接口就可以了。

網(wǎng)絡編程僅僅是其中的一項,其它還包括文件IO、創(chuàng)建進程、創(chuàng)建線程等等等等,這些是內核提供的,那么我們該怎么使用呢?

答案就是通過所謂的系統(tǒng)調用,system call。

通過系統(tǒng)調用,我們可以像使用普通函數(shù)那樣向操作系統(tǒng)請求服務,當然,直接使用系統(tǒng)調用是非常繁瑣的,因此通常會在這之上提供一層封裝。

圖片圖片

在Windows平臺就是給程序員提供編程接口的是Windows API,這層API包羅萬象,不但包括上文提到對系統(tǒng)調用的封裝,還包括其它功能,像創(chuàng)建帶有圖形界面的應用程序等等。

但在Linux世界你找不到一種類似Windows API的東西,畢竟Windows是微軟自家產(chǎn)品,什么都可以打包起來,Linux只是一個開源的內核,如果一定要找一個類似的東西話那就是libc,也就是C標準庫,這里同樣包括了對系統(tǒng)調用的封裝以及一些庫函數(shù),但libc不包含創(chuàng)建帶有圖形界面應用程序的功能。

現(xiàn)在我們知道了,操作系統(tǒng)需要提供兩種接口:

  • 給用戶提供操作接口。
  • 給程序員提供編程接口。

這些就是好比汽車的外殼,我們(用戶和程序員)看得見摸得著,外殼加上底盤——也就是內核,才是功能完善的操作系統(tǒng)。

各種各樣的操作系統(tǒng)

實際上我們熟悉的Linux只是內核而不能稱得上是操作系統(tǒng),Ubuntu則可以認為是操作系統(tǒng),其內核是Linux;RedHat也是操作系統(tǒng),其內核同樣是Linux;我們可以看到,盡管Ubuntu和RedHat是不同的操作系統(tǒng),但其內核可以是相同的。

這就好比它們可以基于同樣的底盤打造出不同的車型。

而我們熟悉的Windows也是操作系統(tǒng),其內核是Windows NT內核。

責任編輯:武曉燕 來源: 碼農(nóng)的荒島求生
相關推薦

2021-06-17 08:19:37

操作系統(tǒng)OS Kernel

2023-10-13 15:48:17

OT系統(tǒng)

2023-02-01 08:11:40

系統(tǒng)調用函數(shù)

2018-07-20 14:00:51

LinuxmacOS內核

2020-12-22 13:46:48

APISKD

2011-08-08 14:09:55

dhcpbootp

2018-07-13 17:05:22

SQLMySQL數(shù)據(jù)庫

2009-04-03 15:19:15

2020-09-06 09:51:57

SNMP TrapSyslog網(wǎng)絡協(xié)議

2019-02-27 15:22:15

混合云云計算多云

2021-05-16 15:28:59

沙箱容器惡意軟件

2024-06-24 21:24:12

云計算云網(wǎng)絡

2022-09-14 09:45:15

指標標簽

2012-07-25 15:45:28

ERPSCM

2022-11-22 10:21:23

5GLTE

2024-02-21 14:37:56

2014-11-26 17:42:00

亞馬遜互聯(lián)網(wǎng)阿里巴巴

2023-06-27 14:49:34

數(shù)據(jù)中心IT 設備

2021-01-13 09:27:31

微服務API分布式

2020-07-13 23:39:16

物聯(lián)網(wǎng)IoT萬物互聯(lián)
點贊
收藏

51CTO技術棧公眾號

主站蜘蛛池模板: 国产成人高清成人av片在线看 | 国产精品久久精品 | 成人免费三级电影 | 久久精品高清视频 | 国产精品一区在线 | h视频免费观看 | 亚洲欧美日韩精品久久亚洲区 | 91在线一区 | 免费视频一区二区三区在线观看 | 四虎影院欧美 | 亚洲综合一区二区三区 | 国产成人精品高清久久 | 国产一级片精品 | 国产成人免费一区二区60岁 | 国产精品一区二区欧美黑人喷潮水 | 中文字幕在线看第二 | 精品国产高清一区二区三区 | 亚洲一区在线播放 | 色悠悠久| 欧美专区在线 | 老司机成人在线 | 一区二区三区高清 | 亚洲欧洲小视频 | 国产精品亚洲精品 | 久久久久久国模大尺度人体 | 91精品国产91久久久久久吃药 | 午夜理伦三级理论三级在线观看 | 超碰电影| 日韩黄a | 精品国产乱码久久久久久影片 | 成人二区 | 蜜臀av日日欢夜夜爽一区 | 99精品视频免费观看 | 成人在线中文字幕 | 亚洲欧美国产一区二区三区 | 在线观看www视频 | 成人做爰999 | 欧美精品一区二区三区四区 在线 | 玖玖玖在线 | 日韩精品久久一区 | 日本高清在线一区 |