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就卡卡卡卡卡…
你想從發布會上看內核進步,和從科普資料上看基礎科學發展前沿有什麼區別……
這是誰提的問題?NT 10.0都出來了,那7.0,8.0和9.0在哪兒?
xp內核2mbwin10內核10mb請大聲告訴我沒有變化
內核從80年代起就沒有大的變化了。
NT 10.0 是啥?
推薦閱讀:
※Linux 內核為什麼沒有第三方的版本或分支?
※不懂彙編可以學 Linux 內核嗎?
TAG:macOS | MicrosoftWindows | Unix | Windows8 | 操作系統內核 |