NT 之後操作系統內核是否就毫無長進了?

NT 開發的年代是各處理器和內核迅猛發展百花齊放的年代,David Cutler 一個人就開發了三種操作系統,NT 當年也為不同處理器和架構做了移植和適配的努力。但是從那之後,NT 版本的迭代逐漸萎縮到 x86 一種上來,從 NT 5 開始,其內核是否都沒有本質的區別?人類操作系統內核的發展史就此終結了?

參看 NT 10.0 (Windows 10)的改進,都是一些 Xbox、開始菜單、Universal App 之類的表面功夫,對於內核技術的改變隻字未提。我是否可以揣測內核其實毫無改變了?


NT5支持WDDM?NT5支持ARM?NT5有MinWin?NT5有輕量級虛擬化?

都沒有敢說沒進步?


NT 我不知道,OS X 的 XNU 倒是這兩年一直有改變。

如果你指的是翻天覆地的變化,這個真沒有,但是每一次內核更新,都有以下特點:

1,新特性,比如 OS X 10 Kernel Task PMAP 壓縮,Coalition (Task 聚合),Bank/ATM 機制 (這個機制與內核 Task 管理有關,包括調度,資源管理,10.10 新出現的)。內存使用上的新特性,比如 kmem_alloc 時內存不夠,則通過 pmap_steal_memory 從別處「偷」內存。對 Haswell 處理器新特性的支持,對於 Parallels 虛擬機 (以前內核只明確支持 VMware) 的支持,Hypervisor 特性支持,Software Fault Isolation (sfi,這與各種 Extension 有關) 的支持等。從 Mach,到 BSD ,再到 HFS+ 文件系統,IOKit 不一而足。

2,Bug 修復,每次內核更新都有大批量的 Bug 被修復,也有很多類似「Patch」的東西在裡面,比如多檢查一次鎖,多加一層 if else,很傻很天真。還有就是一些代碼的 Refector,這東西很多,還有程序邏輯的調整等。

3,補漏,這個並非 Bug 修復,主要是 SUS 標準化 和 POSIX 兼容,每次 OS X 更新,會吧 POSIX API 中有的新東西加進來。

一般開發布會,包括產品也好,開發者會議也好,當然都是說表面功夫,難不成給用戶說我們的內核這次增加了 100+ 項新特性?這對於用戶毫無意義。對於開發者也是,大部分開發者都是做應用層開發的,你去跟他說 我們增加了 xxx 個系統調用也沒什麼意義。App Store 開發者,無法也不能去調用這些東西。

好在 OS X 內核開源,每次發布的時候,兩邊做個 Diff 就能看出來有些什麼調整了。其實內核做的那些事,比如調度,內存管理,中斷等這些年也沒有什麼劃時代的新理念啊。這東西你讓廠商去更新,也沒啥可更新的,頂多加個什麼壓縮,配合點兒 Memory Pressure,搞個 SFI,也就那樣。


真在發布會上提內核改動,你這樣的也看不懂啊。

話說nt內核設計的時候就考慮到了不同構架的移植,換個新構架只需要重寫一份hal就行了。

所以你看到arm上能用nt內核,是在幾十年前設計的時候就考慮到了的。


我也覺得蘋果不思進取,天天吹"堅若磐石的Unix內核",結果一打開 Chrome就卡卡卡卡卡…

Chrome:怪我咯?


你想從發布會上看內核進步,和從科普資料上看基礎科學發展前沿有什麼區別……


這是誰提的問題?NT 10.0都出來了,那7.0,8.0和9.0在哪兒?


xp內核2mb

win10內核10mb

請大聲告訴我沒有變化


內核從80年代起就沒有大的變化了。


NT 10.0 是啥?


推薦閱讀:

Linux 內核為什麼沒有第三方的版本或分支?
不懂彙編可以學 Linux 內核嗎?

TAG:macOS | MicrosoftWindows | Unix | Windows8 | 操作系統內核 |