自拍偷在线精品自拍偷,亚洲欧美中文日韩v在线观看不卡

Unix內(nèi)核與Linux內(nèi)核大比拼

系統(tǒng) 其他OS
文章中,我們會(huì)了解到所有的Unix內(nèi)核都同宗同源,并且對(duì)Unix內(nèi)核與Linux內(nèi)核和單內(nèi)核與微內(nèi)核設(shè)計(jì)進(jìn)行下簡(jiǎn)單的比較。

大家都知道所有的Unix內(nèi)核都同宗同源,并且提供相同的API,現(xiàn)代的Unix內(nèi)核存在許多設(shè)計(jì)上的相似之處。而且Unix內(nèi)核幾乎毫無(wú)例外的都是一個(gè)不可分割的靜態(tài)可執(zhí)行塊(文件)。換句話說(shuō),它們必須以完整、單獨(dú)的可執(zhí)行塊的形式在一個(gè)單獨(dú)的地址空間中運(yùn)行。Unix內(nèi)核幾乎都需要硬件系統(tǒng)提供頁(yè)機(jī)制以管理內(nèi)存。這種頁(yè)機(jī)制可以加強(qiáng)內(nèi)存空間的保護(hù),并保證每個(gè)進(jìn)程都可以運(yùn)行于不同的虛地址空間上。 
 
Unix內(nèi)核與Linux內(nèi)核—單內(nèi)核與微內(nèi)核設(shè)計(jì)之比較

操作系統(tǒng)內(nèi)核可以分為兩大設(shè)計(jì)陣營(yíng):?jiǎn)蝺?nèi)核和微內(nèi)核(第三陣營(yíng)外內(nèi)核,主要用在科研系統(tǒng)中,但也逐漸在現(xiàn)實(shí)世界中壯大起來(lái))。
 
單內(nèi)核是兩大陣營(yíng)中一種較為簡(jiǎn)單的設(shè)計(jì),在1980年之前,所有的內(nèi)核都設(shè)計(jì)成單內(nèi)核。所謂單內(nèi)核就是把它從整體上作為一個(gè)單獨(dú)的大過(guò)程來(lái)實(shí)現(xiàn),并同時(shí)運(yùn)行在一個(gè)單獨(dú)的地址空間。因此,這樣的內(nèi)核通常以單個(gè)靜態(tài)二進(jìn)制文件的形式存放于磁盤(pán)。

所有內(nèi)核服務(wù)都在這樣的一個(gè)大內(nèi)核空間中運(yùn)行。內(nèi)核之間的通信是微不足道的,因?yàn)榇蠹叶歼\(yùn)行在內(nèi)核態(tài),并身處同一地址空間:內(nèi)核可以直接調(diào)用函數(shù),這與用戶(hù)空間沒(méi)有什么區(qū)別。這種模式的支持者認(rèn)為單模塊具有簡(jiǎn)單和高性能的特點(diǎn)。大多數(shù)Unix系統(tǒng)都設(shè)計(jì)為單模塊。
 
另一方面,微內(nèi)核并不作為一個(gè)單獨(dú)的大過(guò)程來(lái)實(shí)現(xiàn)。相反,微內(nèi)核的功能被劃分為獨(dú)立的過(guò)程,每個(gè)過(guò)程叫做一個(gè)服務(wù)器。理想情況下,只有強(qiáng)烈請(qǐng)求特權(quán)服務(wù)的服務(wù)器才運(yùn)行在特權(quán)模式下,其他服務(wù)器都運(yùn)行在用戶(hù)空間。不過(guò),所有的服務(wù)器都保持獨(dú)立并運(yùn)行在各自的地址空間。

因此,就不可能像單模塊內(nèi)核那樣直接調(diào)用函數(shù),而是通過(guò)消息傳遞處理微內(nèi)核通信:系統(tǒng)采用了進(jìn)程間通信(IPC)機(jī)制,因此,各種服務(wù)器之間通過(guò)IPC機(jī)制互通消息,互換“服務(wù)”。服務(wù)器的各自獨(dú)立有效地避免了一個(gè)服務(wù)器的失效禍及另一個(gè)。
 
同樣,模塊化的系統(tǒng)允許一個(gè)服務(wù)器為了另一個(gè)服務(wù)器而換出。因?yàn)镮PC機(jī)制的開(kāi)銷(xiāo)比函數(shù)調(diào)用多,又因?yàn)闀?huì)涉及內(nèi)核空間到用戶(hù)空間的上下文切換,因此,消息傳遞需要一定的周期,而單內(nèi)核中簡(jiǎn)單的函數(shù)調(diào)用沒(méi)有這些開(kāi)銷(xiāo)。

基于此,付之于實(shí)際的微內(nèi)核系統(tǒng)讓大部分或全部服務(wù)器位于內(nèi)核,這樣,就可以直接調(diào)用函數(shù),消除頻繁的上下文切換。Windows NT內(nèi)核和Mach(Mac OS X的組成部分)是微內(nèi)核的典型實(shí)例。不管是Windows NT還是Mac OS X,都在其新近版本中不讓任何微內(nèi)核服務(wù)器運(yùn)行在用戶(hù)空間,這違背了微內(nèi)核設(shè)計(jì)的初衷。
 
Linux是一個(gè)單內(nèi)核,也就是說(shuō),Linux內(nèi)核運(yùn)行在單獨(dú)的內(nèi)核地址空間。不過(guò),Linux汲取了微內(nèi)核的精華:其引以為豪的是模塊化設(shè)計(jì)、搶占式內(nèi)核、支持內(nèi)核線程以及動(dòng)態(tài)裝載內(nèi)核模塊的能力。不僅如此,Linux還避其微內(nèi)核設(shè)計(jì)上性能損失的缺陷,讓所有事情都運(yùn)行在內(nèi)核態(tài),直接調(diào)用函數(shù),無(wú)需消息傳遞。至今,Linux是模塊化的、多線程的以及內(nèi)核本身可調(diào)度的操作系統(tǒng)。實(shí)用主義再次占了上風(fēng)。
 
當(dāng)Linus和其他內(nèi)核開(kāi)發(fā)者設(shè)計(jì)Linux內(nèi)核時(shí),他們并沒(méi)有完全徹底地與Unix訣別。他們充分地認(rèn)識(shí)到,不能忽視Unix的底蘊(yùn)(特別是Unix的API)。而由于Linux并沒(méi)有基于某種特定的Unix,Linus和他的伙伴們對(duì)每個(gè)特定的問(wèn)題都可以選擇已知最理想的解決方案—在有些時(shí)候,當(dāng)然也可以創(chuàng)造一些新的方案。

以下是對(duì)Linux內(nèi)核與Unix內(nèi)核特點(diǎn)所作的分析比較:

·Linux支持動(dòng)態(tài)加載內(nèi)核模塊。盡管Linux內(nèi)核也是單內(nèi)核,可是允許在需要的時(shí)候動(dòng)態(tài)地卸除和加載部分內(nèi)核代碼。

·Linux支持對(duì)稱(chēng)多處理(SMP)機(jī)制,盡管許多Unix的變體也支持SMP,但傳統(tǒng)的Unix并不支持這種機(jī)制。

·Linux內(nèi)核可以搶占(preemptive)。與傳統(tǒng)的Unix不同,Linux內(nèi)核具有允許在內(nèi)核運(yùn)行的任務(wù)優(yōu)先執(zhí)行的能力。在其他各種Unix產(chǎn)品中,只有Solaris和IRIX支持搶占,但是大多數(shù)傳統(tǒng)的Unix內(nèi)核不支持搶占。

·Linux對(duì)線程支持的實(shí)現(xiàn)比較有意思:內(nèi)核并不區(qū)分線程和其他的一般進(jìn)程。對(duì)于內(nèi)核來(lái)說(shuō),所有的進(jìn)程都一樣—只不過(guò)其中的一些共享資源而已。

·Linux提供具有設(shè)備類(lèi)的面向?qū)ο蟮脑O(shè)備模型、熱插拔事件,以及用戶(hù)空間的設(shè)備文件系統(tǒng)(sysfs)。

·Linux忽略了一些被認(rèn)為是設(shè)計(jì)得很拙劣的Unix特性,像STREAMS,它還忽略了那些實(shí)際上已經(jīng)根本不會(huì)使用的過(guò)時(shí)標(biāo)準(zhǔn)。

·Linux體現(xiàn)了自由這個(gè)詞的精髓?,F(xiàn)有的Linux特性集就是Linux公開(kāi)開(kāi)發(fā)模型自由發(fā)展的結(jié)果。如果一個(gè)特性沒(méi)有任何價(jià)值或者創(chuàng)意很差,沒(méi)有任何人會(huì)被迫去實(shí)現(xiàn)它。相反的,在Linux的發(fā)展過(guò)程中已經(jīng)形成了一種值得稱(chēng)贊的務(wù)實(shí)態(tài)度:任何改變都要針對(duì)現(xiàn)實(shí)中確實(shí)存在的問(wèn)題,經(jīng)過(guò)完善的設(shè)計(jì)并有正確簡(jiǎn)潔的實(shí)現(xiàn)。于是,許多其他現(xiàn)代Unix系統(tǒng)包含的特性,如內(nèi)核換頁(yè)機(jī)制,都被毫不遲疑的引入進(jìn)來(lái)。
 
不管Linux內(nèi)核和Unix內(nèi)核有多大的不同,它身上都深深地打上了Unix烙印。

【編輯推薦】

  1. 簡(jiǎn)單四步 編譯Linux內(nèi)核
  2. 教學(xué)Unix操作系統(tǒng)內(nèi)核級(jí)后門(mén)
  3. Nginx內(nèi)核優(yōu)化的源代碼探秘
  4. Linux 2.6.31內(nèi)核優(yōu)化指南
  5. 簡(jiǎn)單介紹Linux內(nèi)核安全入侵偵察系統(tǒng)
責(zé)任編輯:小霞
相關(guān)推薦

2009-07-02 18:50:43

2023-05-26 15:53:48

MidjourneyAI圖像

2009-10-13 14:46:00

思科認(rèn)證

2019-08-27 09:00:00

敏捷開(kāi)發(fā)開(kāi)發(fā)方法項(xiàng)目

2010-03-18 14:54:46

主流無(wú)線技術(shù)

2011-01-19 11:10:30

2009-08-27 09:59:17

2014-01-07 17:08:02

Java開(kāi)源框架

2010-09-08 15:41:28

SIP協(xié)議棧

2017-09-10 14:29:03

眼力

2010-08-25 16:12:34

職場(chǎng)

2021-03-15 21:07:17

IT行業(yè)薪酬薪水

2010-05-28 11:09:51

SVN功能

2011-11-08 10:29:44

2020-08-04 17:06:40

Merging Rebasing Git

2010-07-14 13:38:51

Perl開(kāi)發(fā)工具

2021-03-02 09:00:00

開(kāi)源框架技術(shù)

2020-05-18 11:07:53

監(jiān)控系統(tǒng)架構(gòu)技術(shù)

2016-11-02 09:20:01

SparkHadoop MapR大數(shù)據(jù)

2011-08-18 11:08:02

點(diǎn)贊
收藏

51CTO技術(shù)棧公眾號(hào)