回覆列表
  • 1 # 井151276607

    巨集核心系統,僅僅提供非常有限的動態載入擴充套件機制。做核心調整、剪裁時,需要重新構建核心。巨集核心是結構特點,與其絕對大小無關。

    微核心將擴充套件功能的方法,也作為API,提供給一定許可權的使用者。為核心刪除或新增功能不需要“重構核心”,雖說有時需要系統重啟,但與“重構核心”的重新啟動,意義不盡相同。微核心系統,一般使用“全域性唯一ID”作為“功能”控制代碼,一般都有某種“登錄檔”機制。

  • 2 # EmacserVimer

    鴻蒙OS在華為HDC2019開發者大會上正式釋出,華為消費者業務CEO餘承東向媒體介紹了華為鴻蒙作業系統,鴻蒙作業系統有幾個關鍵詞:微核心、全場景、分散式,這其中就包括了大家今天想知道的微核心。

    就跟CISC複雜指令集、以及RISC精簡指令集一樣,微核心和巨集核心一樣,也是在不同時期作業系統的技術選型。微核心是核心部分只負責地址空間、程序間通訊、以及執行緒管理等核心功能,其他檔案系統、驅動程式等服務功能全都放在核心之外;巨集核心則是將幾乎所有服務功能都放在系統核心,使用的時候直接呼叫,服務功能包括記憶體管理、程序管理等。

    鴻蒙作業系統到底前景如何

    餘承東在華為HDC2019開發者大會上,餘承東講到了鴻蒙作業系統,鴻蒙作業系統有幾個關鍵詞:微核心、全場景、分散式。而且餘承東直言,鴻蒙OS一夜之間就可以讓Android應用適配鴻蒙OS,而且效能要比Android快幾倍,華為的方舟編譯器還能編譯C/C++/Java/Kotlin等眾多語言,看上去鴻蒙作業系統非常美好。

    不過可能事實上沒有大家想象的那麼美好,微核心也未必就一定比巨集核心好 ,微核心更不是華為的發明。全場景不管是Windows/macOS/Linux、還是移動端的iOS/Android本身都具有這樣的底層能力,可是在沒有搭建起生態之前都是妄談。分散式更不用說了,這同樣不是新概念,不過分散式的理念確實適合物聯網。

    餘承東說鴻蒙一夜之間可以取代Android,而且效能是Android的數倍,真的有這樣的實力,華為完全沒有必要給Android機會,而且還會獲得其他廠商的支援。餘承東這麼說是要給對方一個下馬威,然後能夠為鴻蒙爭取三到五年的時間,這個時間可以讓華為有更多的時間來準備。

  • 3 # Geek視界

        華為最新發布的鴻蒙系統採用了微核心架構,而安卓系統採用了巨集核心。採用微核心架構的還有windows系統核心、塞班系統、google正在研發的Fuchsia系統(用於替代android)。

        巨集核心

        巨集核心是指核心包含了作業系統絕大部分功能,比如網路協議、檔案系統、硬體驅動等,這些模組具有很高的許可權,各個模組系統開發難度相對較低。

        隨著整合的模組越來越堵,核心不斷增加,因此會出現類似安卓系統碎片化的問題,如果一個模組出現問題,整個系統就會崩潰,穩定性比較差。因此很多安卓手機,隔段時間就需要重啟。

        微核心

        鴻蒙系統採用了微核心架構,核心部分僅僅包括了作業系統基本的任務管理、記憶體分配回收等幾個必要的模組,其他模組外掛在為微核心周邊,不具有最高許可權,作為單獨的程序存在,而且互不打擾,穩定性比較好。

        未來LoT時代,微核心是發展趨勢,鴻蒙作業系統、google正在研發的Funchsia系統均採用了微核心,微核心是跨平臺、分散式硬體的關鍵技術,是適應未來技術發展的必然趨勢。

        總結

        隨著5G網路的普及,萬物互聯以及LoT時代的到來,未來需要分散式架構支援多終端統一系統的執行,而多終端作業系統穩定性非常重要,因此微核心是未來“萬物互聯”時代發展趨勢。

  • 4 # 血染戰旗紅

    期盼著,期盼著,鴻蒙系統終於來了。

    它是一款全新的基於微核心的面向全場景的分散式作業系統,能夠滿足全場景流暢體驗、架構級可信安全、跨終端無縫協同及一次開發多終端部署的這四大特點要求。

    未來萬物互聯時代接入物聯網的裝置形式非常多,包括PC、平板、穿戴裝置、VR以及智慧電視、智慧音響、智慧冰箱等智慧家電以及汽車等。鴻蒙系統是分散式架構首次用於終端作業系統,能夠跨終端無縫協同,如智慧手錶上沒有攝像頭,可以用手機上的攝像頭。

    此外,與安卓及蘋果作業系統基於巨集核心技術不同,鴻蒙使用微核心技術。巨集核心技術是指除了最基本的程序排程、記憶體管理等外,檔案驅動、網路協議等其他許多功能都包括在裡面。其優點是開發較容易,畢竟作業系統的絕大部分功能就在裡面;缺點是穩定性差,只要其中一個功能模組出現問題就會導致整個系統崩潰。微核心技術則相反,除了程序排程、記憶體管理等基本功能外,其他模組都不具有最高許可權,即便一個模組出錯也不會造成系統崩潰,系統穩定性高。巨集核心技術就像有人用多米諾骨牌組成一幅精美的圖畫,有一張牌出錯,整幅畫就完了。而微核心技術是把這幅畫分成若干部分,即使一部分出錯,其他部分也沒事。

    另外從安全性來說,巨集核心技術相當於一套大房子,只要拿了大門鑰匙,可以進入每一個房間;而鴻蒙使用的微核心技術,相當於每個房間都有不同的鑰匙,安全性大大提升。

  • 5 # 二五八Group

    核心:

    核心是作業系統的核心,是作業系統工作的基礎,分為單核心、雙核心、微核心。核心負責管理系統的程序、記憶體、裝置驅動程式、檔案和網路系統,決定著系統的效能和穩定性,是為眾多程式提供對硬體的安全訪問的一部分軟體。

    舉個例子:當我們要播放一個視訊的時候,視訊APP要呼叫到裝置的驅動程式,比如說音效卡、顯示卡,而裝置驅動程式又是由核心進行管理的,APP必須獲得核心的訪問許可權。

    更通俗地講,核心就相當於一個公司架構裡面的管理層。

    微核心:

    微核心是核心的一種精簡形式。通常系統服務層是和核心整合在一起的,而微核心將系統服務層被分離出來,變成可以根據需求加入的選件,這樣就可以提供更好的可擴充套件性和更加有效的應用環境。

    昨天華為開發者大會宣佈的鴻蒙作業系統用的就是微核心,這也是鴻蒙系統的亮點之一。

    巨集核心:

    巨集核心又稱為單核心,它的架構特性是整個核心程式都是以核心空間的身份及監管者模式來執行。巨集核心被視作為執行在單一地址空間(核心空間)的單一的程序,核心提供的所有服務,都以特權模式進行。

    目前有的巨集核心可以將其運作從整體性運作拆分成幾個服務模組,並且讓各模組各自運作,但其作業系統的程式碼依然是高度緊密的,很難修改成其他型別的作業系統架構。

    現在我們常用的作業系統多為巨集核心,比如安卓系統、IOS。

    微核心和巨集核心的區別:

    巨集核心和微核心的區別可以形象地理解為中央集權制和分封制。

    巨集核心簡單地說就是把很多的東西都整合進核心裡,各種程序和核心高度緊密,它的優點是效率高,缺點是穩定性差,如果開發程序出現一個bug經常會導致整個作業系統掛掉。

    微核心的核心只能進行最基本的排程、記憶體管理,它的優點是非常穩定,做驅動開發時,發現錯誤,只需要相應地修正再重啟程序就行了,但缺點是效率差。它的一大特點是可以進行模組化設計。

  • 6 # Geek極客

    微核心與巨集核心比較

    核心按照體系結構分為兩類:微核心(microkernel)與巨集核心(macrokernel). 微核心的系統有WindowNT,Minix,Mach,etc.巨集核心的系統有Unix,Linux,etc.通過比較Minix和Linux來比較微核心和巨集核心是很有意思的,因為當年兩個系統的創始人對兩種核心的優劣有過爭論.

    兩個系統的核心是通過程序的建立FORK的實現來比較,因為程序的建立涉及到系統呼叫,記憶體管理,檔案管理等系統的主要方面.因此通過比較FORK的實現可以大致看到核心的差別.

    微核心的代表:Minix

    在Minix中,作業系統的核心,記憶體管理,系統管理都有自己的程序表,每個部分的表包含了自己需要的域。表象是精確對應的,為了保持同步,在程序建立或結束時,這三個部分都要更新各自的表。

    由記憶體管理器協調。

    系統啟動後,kernel,mm,fs系統程序在各自的空間執行main()函式迴圈等待訊息

    While(TRUE)

    {…

    receive(ANY,&mm_in);

    …}

    當一個FORK傳給mm’main(),main()呼叫do_fork(),do_fork()函式把父程序的data segment和stack segment創造了一個精確副本給子程序,並把父程序的text segment 與子程序共享,然後在mm的程序表mproc[]中新增新程序,並設定各屬性。新增完後傳送訊息給kernel(sys_fork(…))和 fs(tell_fs(…)).,kernel中的函式sys_task()接收到系統資訊,呼叫do_fork(message * m_ptr),copy parent’proc struct to child.並設定程序在核心程序表中的屬性。tell_fs()是記憶體管理器與檔案系統之間的介面,tell_fs(…)呼叫 _taskcall(…),檔案管理器接收到FORK系統訊息,呼叫do_fork()函式,copy parent’fproc struct to child.並設定程序在檔案程序表中的屬性。這樣整個程序的屬性就設定完成.

    在Minix建立新程序的過程中,可以看到一個很大特點,就是整個系統按功能分成幾個部分,各模組之間利用訊息機制通訊,呼叫其他模組的函式必須通過目標模組的守護程序呼叫.

    巨集核心的代表:Linux

    在Linux中,程序的結構如下:

    Struct task_struct{

    pid_t pid;

    pid_t pgrp;

    /* filesystem information */

    struct fs_struct *fs;

    /* memory management info*/

    struct mm_struct *mm;

    };

    在Linux程序的結構定義中,task_struct包含了所有的資訊,包括程序的記憶體情況,檔案系統情況。在建立新程序時,系統呼叫sys_fork呼叫do_fork(…)函式.

    int do_fork(unsigned long clong_flags,… )

    {

    struct task_struct *p;

    p->pid = get_pid(clone_flags);

    /* copy all the process information*/

    copy_files(clone_flags,p);

    copy_fs(clone_flags,p);

    copy_mm(nr,clone_flags,p);

    }

    在建立程序時,do_fork函式把所有的工作完成,分配pid…號,拷貝父程序資料段,堆疊段,等等。Linux的程序建立過程是一個完整的過程,直接呼叫其他模組的函式,而不是訊息傳遞。

    Minix與Linux建立新程序的過程比較可以看出二者之間的區別,Minix是建立在分模組之上的,模組之間以資訊傳遞聯絡。Linux內部也是分模組的,但在執行的時候,他是一個獨立的二進位制大映像,其模組間的通訊是通過直接呼叫其他模組中的函式實現的。巨集核心與微核心的區別也就在這吧,微核心是一個資訊中轉站,自身完成很少功能,主要是傳遞一個模組對另一個模組的功能請求,而巨集核心則是一個大主管,把記憶體管理,檔案管理等等一股腦全部接管。

    從理論上來看,微核心的思想更好些,微核心把系統分為各個小的功能塊,降低了設計難度,系統的維護與修改也容易,但通訊帶來的效率損失是個問題。巨集核心的功能塊之間的耦合度太高造成修改與維護的代價太高,不過在目前的Linux裡面還不算大問題,因為Linux目前還不算太複雜,巨集核心因為是直接呼叫,所以效率是比較高的。

  • 7 # 三柳的蝸牛

    華為的鴻蒙系統採用了“微核心”的設計理念,區別於安卓等系統的“巨集核心”,微核心採用同一套操作平臺,針對不同硬體能力的產品進行部署,並採用分散式架構,提升效率。

    簡單來說,就是鴻蒙系統是分散式系統,手機的鴻蒙系統和手錶的鴻蒙系統不一樣,不同裝置是不同的鴻蒙系統,這就是微。而巨集核心是所有裝置都是使用同一個系統。微核心更快,因為裝置不同,使用不同大小的鴻蒙。這也是華為主打的設計理念。

  • 8 # 小胡侃事

    作業系統核心的幾個重要的特點:

    核心是作業系統的核心部分,它管理著系統的各種資源

    核心可以看成連線應用程式和硬體的一座橋樑,是直接執行在硬體上的最基礎的軟體實體

    在一些簡單的硬體裝置上可以沒有核心或作業系統而直接執行程式,比方微控制器等。這些裝置通常只是用於特定的場合,也通常功能比較單一。而對於一般計算機來說作業系統是必不可少的。對不同的作業系統,其核心實現也是有所區別的。

    目前從核心架構來劃分,可分為微核心(Micro Kernel)和巨集核心(Monolithic Kernel),“巨集核心”這個翻譯其實不是很好,翻譯成“單核心”事實上更好一點。

    對於微核心,使用者服務和核心服務分別執行在不同的地址空間中;對於巨集核心不管是使用者服務還是核心服務事實上都是核心在統一管理,它們是執行在同一地址空間中的。

    我們需要好好理解第5點,也就是使用者服務和核心服務執行的地址空間的問題。大家都知道Linux採用的是巨集核心,但是它也區分核心空間和使用者空間,那不是有歧義了嗎?

    對於Linux來說,不管是應用還是核心都是由記憶體管理單元來做統一的記憶體管理的,使用者空間的程式確實不能訪問核心空間,但是對於核心來說,3GB-4GB的線性地址空間對整個核心都是共用的,同時核心中的VFS、System Call等模組被劃分到核心中,它們之間的地址空間是相同的,這裡的使用者服務按照我的理解就是這幾個核心模組所需要的報備。

    微核心定義:

    核心管理著所有的系統資源,在微核心中使用者服務和核心服務在不同的地址空間中實現。在應用程式和硬體的通訊中,核心程序和記憶體管理的極小的服務,而客戶端程式和執行在使用者空間的服務通過訊息的傳遞來建立通訊,它們之間不會有直接的互動,這樣一來,微核心中的執行速度相對就比較慢了,這是微核心架構的一個缺點。

    在核心架構中,使用者服務是獨立於核心服務的,因此任何使用者服務崩潰都不會影響到核心服務,這就加強了作業系統的健壯性,這是微核心的優勢所在。另一點,微核心的擴充套件性強,新增一個功能,只需要建立一個新的服務到使用者空間當中,而核心空間不需要任何的修改。因此,微核心可移植性強、安全並且易於擴充套件。

    巨集核心定義:

    巨集核心同樣管理著使用者程式和硬體之間的系統資源,但是和微核心不一樣的是,在巨集核心架構中,使用者服務和核心服務在同一空間中實現。具體一點,就是核心可以代表核心程序執行程式碼,就是通常的核心程序;當用戶程序經過系統呼叫或者中斷進入到核心態時,核心也可以代表它執行程式碼。這樣一來,巨集核心需要管理的資源多於微核心,其大小就相對大一些了。

    在巨集核心架構當中,核心管理著CPU排程,記憶體管理,檔案管理和系統呼叫等各模組的的工作,由於使用者服務和核心服務被實現在同一空間中,這樣在執行速度上要比微核心快。然而,巨集核心的劣勢也是顯而易見的,那就是當核心中的某個服務崩潰了,整個核心也會崩潰。另一點,想要在核心中新增新的功能就意味著核心中的各個模組需要做相應的修改,因此其擴充套件性很弱。

    記憶體管理的區別:

    巨集核心在核心空間就實現了系統所有記憶體管理所需的一切業務,包括記憶體分配策略、虛擬記憶體管理分頁演算法等。

    對於微核心的記憶體管理實現,有一個發展過程。在第一代的微核心架構中,核心代理了使用者空間的記憶體管理,控制著記憶體訪問的許可權。

    核心中的某個服務負責管理缺頁異常並儲存新分配的頁,只要有缺頁異常發生,請求就經過核心通知頁管理器。頁管理器必須進入特權模式下來獲取記憶體的訪問,然後回到使用者模式下。然後傳送一個返回結果來觸發程序,當然這個過程也是需要經過核心的。處理缺頁異常或者儲存新分配頁的整個過程是繁複而耗時的。

    為了彌補效能上的損失,之後的微核心構架在記憶體管理上作了相應的改變。每個程序有3個記憶體管理原語(Primitves):map、grant和flush。如果程序想要共享它的記憶體頁那麼它的可以通過map來對映記憶體頁給其它程序。當程序通過grant來讓渡它的記憶體頁給其它程序之後,該程序就喪失了這些記憶體頁的訪問權,直到讓渡程序不再重新整理它們。如此一來,整個系統執行過程就成了這樣:在系統啟動時,核心將所有記憶體儲存到一個叫做基本的系統程序 (basic system process) 當中,當然這個所謂有基本程序是執行在使用者空間中的,如果其它程序需要記憶體,就是再需要從核心中獲取,它可以直接向這個基本的系統程序索取。

    其它模組的區別:

    微核心和巨集核心在設計上還存在一些其它的區別,比方IO管理方面,巨集核心的裝置驅動直接在核心中實現,硬體中斷也直接在核心中處理;但是在微核心中,核心是不直接處理IO中斷管理的,來自硬體的請求將被重定向到使用者服務中去,比方核心捕獲了一箇中斷,那麼核心傳送給裝置驅動服務就完事了,裝置驅動服務會去處理這個中斷。

    總結:

    微核心效率比巨集核心慢,但在安全性、可靠性方面要比巨集核心好,在擴充套件性方面微核心也有優勢。

    從核心構架發展趨勢來說,將來或許會有比Linux更為強勁的基於微核心架構的OS出現,讓我們拭目以待吧!

  • 9 # 鮮事

    計算機作業系統按照體系可分為微核心和巨集核心,目前是巨集核心的天下,但是隨著移動網際網路業務的發展,尤其是5G 物聯網時代的到來,在穩定性、實時性、小型化和輕量級方面有著天然優勢的微核心,似乎有了崛起的機會。

    什麼是作業系統

    作業系統(OS)是計算機使用者和計算機硬體之間的介面,每臺計算機必須至少具有一個OS才能執行其他程式。作業系統是執行所有基本任務的軟體,例如檔案管理,記憶體管理,程序管理,處理輸入和輸出以及控制外圍裝置(例如磁碟驅動器和印表機)。一些流行的作業系統包括Linux作業系統、Windows作業系統、VMS、OS/400、AIX,現在隨著移動終端的流行Android、IOS也十分流行。

    作業系統的歷史

    l 作業系統最早於1950年代後期開發,用於管理磁帶儲存;

    l 通用汽車研究實驗室在1950年代初為其IBM 701實施了首個作業系統;

    l 在1960年代中期,作業系統開始使用磁碟;

    l 在1960年代後期,開發了Unix OS的第一個版本;

    l 微軟構建的第一個作業系統是DOS。它於1981年通過從西雅圖公司購買86-DOS軟體而構建;

    l 當前流行的OS Windows於1985年首次出現,當時建立了GUI並與MS-DOS配對;

    l 2003年10月,Andy Rubin的Android公司在加利福尼亞的帕洛阿爾託成立,研發出了Android系統;

    l Apple於2007年6月29日推出了iOS,當時稱為iPhone OS。

    作業系統的功能

    以下是作業系統的一些重要功能:

    l 記憶體管理

    l 處理器管理

    l 裝置管理

    l 檔案管理

    l 安全

    l 控制系統性能

    l 職位會計

    l 錯誤檢測工具

    l 其他軟體與使用者之間的協調

    什麼是核心?

    核心是計算機作業系統的核心元件。核心執行的唯一工作是管理軟體和硬體之間的通訊。它使硬體和軟體之間的通訊成為可能,核心是作業系統的最內部部分。核心可以進一步分為兩類,微核心和巨集核心。

    核心分為:巨集核心與微核心!

    20世紀70年代初誕生的UNIX系統可以說是那一時期最好的作業系統,隨著計算機技術的快速發展。在UNIX系統功能變的越發強大的同時,核心程式碼量也在快速的膨脹,帶來的弊端也隨之出現,系統的可靠性、程式碼的可維護性和穩定性都存在著問題。

    為了解決這些問題,業界開始反思UNIX系統設計。從重構UNIX程式碼和架構開始,人們嘗試把UNIX核心提供的一些服務和功能放到核心外,把執行在特權級別的核心程式碼縮到最小,核心只提供基本的服務,而使用者空間程式承擔儘可能多的原來駐留在核心空間的功能。

    這就誕生了第一代微核心Mach。由於第一代微核心效能太差,很快就被業界所遺忘,但是人們並沒有停止對微核心的研究,隨後推出的第二代、第三代微核心都得到了很好的發展。當然,與此同時作為巨集核心的代表Linux和Windows系統也在快速的發展。

    作為作業系統發展的兩大分支——微核心和巨集核心,他們有著截然不同的設計理念。巨集核心將所有的系統功能(包括記憶體管理、檔案系統、裝置驅動等)都在核心裡實現,而微核心則只在核心中保留了必須在核心態執行的功能,而把其他功能都移至使用者態以服務執行緒的方式來實現。

    這種設計方法使得微核心本身的體積大大減小。同時,運行於微核心之上的使用者態的系統服務由於處於各自的地址空間之內,保證了服務之間的強隔離。這種設計思想,給予了基於微核心的作業系統高度的可重構性、穩定性和可靠性。

    微核心的定義

    作為核心的微核心管理所有系統資源。但是在微核心中,使用者服務和核心服務是在不同的地址空間中實現的。使用者服務儲存在使用者地址空間中,核心服務儲存在核心地址空間下。這減小了核心的大小,並進一步減小了作業系統的大小。

    除了系統的應用程式和硬體之間的通訊外,微核心還提供最小的程序和記憶體管理服務。客戶端程式/應用程式與在使用者地址空間中執行的服務之間的通訊是通過訊息傳遞建立的。他們從不直接互動,這就降低了微核心的執行速度。

    在微核心中,使用者服務與核心服務是隔離的,因此,如果任何使用者服務失敗,則不會影響核心服務,因此作業系統不會受到影響。這是微核心的優點之一。微核心很容易擴充套件。如果要新增新服務,則將它們新增到使用者地址空間,核心空間不需要任何修改。

    巨集核心的定義

    巨集核心管理系統的應用程式和硬體之間的系統資源。但是與微核心不同,使用者服務和核心服務是在相同的地址空間下實現的。這增加了核心的大小,進一步增加了作業系統的大小。

    巨集核心通過系統呼叫提供CPU排程、記憶體管理、檔案管理和其他作業系統功能。由於使用者服務和核心服務都位於相同的地址空間中,因此可以快速執行作業系統。

    區分微核心和巨集核心的基本點是微核心在不同的地址空間中實現使用者服務和核心服務,而巨集核心在相同的地址空間中同時實現使用者服務和核心服務。

    微核心很小,因為只有核心服務駐留在核心態地址空間中;由於核心服務和使用者服務都駐留在相同的地址空間中,因此巨集核心的大小比微核心要大。

    通過使用系統呼叫在應用程式和硬體之間建立通訊,巨集核心的執行速度更快。另一方面,由於通過訊息傳遞建立了系統的應用程式和硬體之間的通訊,因此微核心的執行速度很慢。

    擴充套件微核心很容易,因為要在與核心空間隔離的使用者地址空間中新增新服務,因此不需要修改核心。如果在巨集核心中新增新服務,則整個核心都需要修改,這與微核心相反。

    微核心比巨集核心更安全,因為微核心中的服務失敗時,執行系統不會受到影響。另一方面,如果服務在巨集核心中失敗,則整個系統都會失敗。

    巨集核心設計需要更少的程式碼,從而進一步減少了錯誤。另一方面,微核心設計需要更多程式碼,從而導致更多錯誤。

    巨集核心與微核心,孰優孰劣?

    關於微核心和巨集核心孰優孰劣的討論,業界也一直沒有停息過。1992年Andrew Tanenbaum(Minix系統設計者)和Linus Torvalds(Linux核心創始人)之間進行了一場關於“Microkernel vs Monolithic kernel”的長篇郵件論戰,論戰也吸引了眾多作業系統方面的頂級黑客參加。

    因為當時微核心還處在學術研究階段,且有著嚴重的效能缺陷,最終大家得到的一致結論則是微核心不如巨集核心。14年後的2006年,兩人再次對這個話題進行了論戰,這時候Andrew Tanenbaum明顯有了底氣,因為在這十幾年中微核心解決了令人詬病的效能問題,並且在嵌入式系統領域(航空航天、汽車電子、無線通訊、醫療裝置等)愈發得到市場的認可。所以我們不能簡單的評判微核心和巨集核心哪一個更好,作為作業系統設計的兩種思路,兩者各有優缺點,隨著技術的進步,二者也在相互的借鑑。可以確切的說,只要作業系統還在發展,關於二者的討論就不會停止。

    圖 IPC效能耗時分析

    從目前的研究熱點來看,更多的人把目光投向了微核心,利用微核心在實時系統及嵌入式虛擬化領域的優勢,來解決現有的嵌入式作業系統的安全性問題。OK Labs提出的Microvisor概念,即具有虛擬化功能的微核心,就是一個很好的案例。L4微核心家族的眾多成員,如Fiasco.OC、NOVA、Codezero以及seL4都有虛擬化方面的應用。

    結論

    由於早期的微核心系統無法擺脫效能的制約(大量程序間通訊帶來的效能消耗),而導致研究人員一直致力於提升微核心的IPC效能,隨著對微核心的不斷優化改進,以及硬體效能的大幅提升,IPC效能不再是困擾微核心發展的主要因素,以安全為導向的微核心研究已成為一大趨勢。在桌面機和伺服器領域是巨集核心的天下,由於效能的因素,微核心一直不在考慮範圍之內。

    而移動網際網路的發展,智慧裝置的興起,給微核心的發展、產業化帶來了機遇。微核心比單核心慢,但更安全可靠,在擴充套件方面有優勢。巨集核心速度很快,但安全性較低,因為任何服務故障都可能導致系統崩潰。微核心架構上是在系統上構建及簡的系統功能,僅提供程序之間的基礎通訊,其餘複雜的功能散落在不同的服務裡,所以在微核心架構裡面融入移動智慧作業系統在技術層面是一個可以容易實現的事。因此近期的華為的鴻蒙系統就是基於微核心的架構,Google面向下一代作業系統的Fuchsia同樣基於微核心架構,可以看出未來作業系統的發展方向是微核心。

  • 中秋節和大豐收的關聯?
  • 那裡可以看海賊王?