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