其實這兩個是沒有可比性的。首先Windows是混合核心,Linux是宏核心,二者的結構都不一樣。而且Linux本身可以在核心裡整合大量驅動,Windows核心檔案,也就是那個ntoskrnl.exe很小。當然即使是ntoskrnl,這個程式碼規模也並不小,網上有洩露的WIN2K/NT4的原始碼,同時還有相容Windows核心API的開源的ReactOS的原始碼,可以看到即使是Windows的核心,程式碼規模也是非常巨大的。籠統的講,ntosknrl肯定比Linux核心要小很多。如果把所有可以執行在核心態的程式碼(通常也就是驅動)都算上,這個就很難界定了。
在桌面領域Windows的驅動必然是比Linux要多的,應用程式也更多(很多應用程式都需要驅動配合),而在非桌面領域,Linux的驅動也不少。但是,程式碼規模不等同於複雜度,同時,對於工程上的程式碼,一般來說,複雜度高是缺點不是優點,因為複雜的程式碼維護性會比較差。
對於這個問題,可以準確回答出來的是:Windows的純粹核心部分的程式碼規模比Linux要小;Windows和Linux工作在核心態的程式碼規模都很大,但分別屬於不同領域無法比較;複雜度沒有一個明確的定義(實際上是有的,透過軟體工具分析,但Windows不開源),所以沒辦法比較。動不動就說核心的人,其實對核心是什麼都搞不清楚,而且Windows能成功,跟核心關係不大,有人開發驅動,有人開發生態環境,這比核心重要多了。
其實這兩個是沒有可比性的。首先Windows是混合核心,Linux是宏核心,二者的結構都不一樣。而且Linux本身可以在核心裡整合大量驅動,Windows核心檔案,也就是那個ntoskrnl.exe很小。當然即使是ntoskrnl,這個程式碼規模也並不小,網上有洩露的WIN2K/NT4的原始碼,同時還有相容Windows核心API的開源的ReactOS的原始碼,可以看到即使是Windows的核心,程式碼規模也是非常巨大的。籠統的講,ntosknrl肯定比Linux核心要小很多。如果把所有可以執行在核心態的程式碼(通常也就是驅動)都算上,這個就很難界定了。
在桌面領域Windows的驅動必然是比Linux要多的,應用程式也更多(很多應用程式都需要驅動配合),而在非桌面領域,Linux的驅動也不少。但是,程式碼規模不等同於複雜度,同時,對於工程上的程式碼,一般來說,複雜度高是缺點不是優點,因為複雜的程式碼維護性會比較差。
對於這個問題,可以準確回答出來的是:Windows的純粹核心部分的程式碼規模比Linux要小;Windows和Linux工作在核心態的程式碼規模都很大,但分別屬於不同領域無法比較;複雜度沒有一個明確的定義(實際上是有的,透過軟體工具分析,但Windows不開源),所以沒辦法比較。動不動就說核心的人,其實對核心是什麼都搞不清楚,而且Windows能成功,跟核心關係不大,有人開發驅動,有人開發生態環境,這比核心重要多了。