單核處理器
單核處理器
單核處理器並不是一個長久以來存在的概念,在近年來多核心處理器逐步普及之後,單核心的處理器為了與雙核和四核對應而提出。單核處理器向多核處理器的發展,是處理器歷史上一次重大的變革。
若用人類社會來比喻的話,CPU代表執行力,是一個抽象的概念;而操作系統則是各級政府,操作系統的內核則是最高決策者,以前是皇帝及宰相(現在是國家主席)以及圍繞他們為核心的一個班子。
目錄
單核處理器並不是一個長久以來存在的概念,在近年來多核心處理器逐步普及之後,單核心的處理器為了與雙核和四核對應而提出。顧名思義處理器只有一個邏輯核心。
單核處理器向多核處理器的發展,是處理器歷史上一次重大的變革。
若用人類社會來比喻的話,CPU代表執行力,是一個抽象的概念;而操作系統則是各級政府,操作系統的內核則是最高決策者,以前是皇帝及宰相(現在是國家主席)以及圍繞他們為核心的一個班子。
遠古時期的CPU是沒有特權級別的,(這兒只分析x86系列,最初的8086/8088隻有實模式一種,沒有特權級別)就像遠古的堯舜禹時代:傳說即使是大禹也要親自干體力活,由於每天泥里來水裡去,以至於小腿上都不長汗毛。
後來聰明人發現這種體系存在效率問題,韓非的文章中有一段描寫,《歷山之農者侵畔》,上面說,在舜種田的地方:歷山,歷山耕地的人越出田界侵佔別人的耕地,舜便去那裡耕種,一年之後,田界不再被破壞侵佔。(歷山之農者侵畔,舜往耕焉,期年甽畝正。),再後來河裡打漁的人也發生糾紛,舜便去那裡打漁,一年之後,都讓年長的人占最有利的水域。東夷制陶器的人制的陶器粗劣不結實,舜便去那裡制陶器,一年之後,陶器製得很牢固。這樣一出現民事糾紛,舜就跑去以身作則來矯正民俗,韓非對此提出了看法,認為舜無法以有限的生命來糾正天底下無限的錯誤,這時就必須通過特權來達到目的:即使賢明不如舜的君主,也可以很輕鬆地貫徹執行力。
CPU也是如此,到了80286,就出現了保護模式,保護模式真正開始實用,是伴隨著80386出現的,並且一直沿用至今。在保護模式設計下,CPU出現了特權階層,就是我們所說的Ring0級別,在Ring0級別執行的都是特權指令;我們通常的程序,都是跑在Ring3級別的(Ring1、Ring2倆級別沒有使用),也叫用戶模式,這樣,操作系統的代碼跑在Ring0級別(以及一些病毒),通用程序跑在Ring3級別,通用程序可以調用操作系統的功能,就像我們可以去政府申冤啦之類,由政府的各級行政民政部門負責辦理,但辦理過程一般對我們是不透明的,因為那是跑在Ring0級別的,我們因為許可權低,無法看到,只能等待執行結果。
有了保護模式之後,就出現了操作系統的兩種設計思想:單核模式和微內核模式。
單內核的思想是大量政府部門都工作在特權級別,這樣的好處是政府內部效率比較高,像我們用的windows系列,從win95到vista都是如此,當然,windows也說了,他們已經把大量操作系統服務歸入了用戶級別,或者讓用戶根據自己的情況來決定是否載入:我們可以通過控制面板來配置很多服務,比如SNMP(簡單網路管理協議),還有微軟自帶的防火牆等。Unix/linux也是單內核系統,不過由於一發明就是根紅苗正的32位科研性操作系統,(不像windows從可憐兮兮的DOS一朝暴富)所以人家連普通用戶最常使用的圖形界面也都不從屬於系統內核,而是使用了Xwindows一類的程序,而且也不見得就比windows的效率差,因為SGI等圖形工作站使用的就是unix。
微內核的思想是只在特權級別保留最基本的操作系統功能模塊,操作系統提供的大量服務都跑在用戶模式,原則是越精簡越好,所以稱之為“micro kernal”,現在多用於嵌入式設備。操作系統只提供存儲空間管理和進程調度、進程間通訊這類和CPU硬體關聯的系統調用。微內核的想法很好,但因為效率問題而被詬病,一直也沒有大規模的應用。
簡單說,微內核是對佔用過多資源的臃腫機構不滿,是讓利於民,政府小型化思想的產物;而單核系統更強調政府執行效率,但也佔用了更多的社會資源。
或者再舉個例子:微內核下跑程序有點像吃自助餐,而單內核的機制下操作系統會提供日本式餐飲的體貼服務
哲學家告訴我們,矛盾是辨證統一的。就像RISC與CISC,中西醫一樣,最終的結果是融合而不是分崩,將來的操作系統必將吸取兩者之長,為我們使用計算機,提供更完善的幫助。