編寫 Windows 操作系統的工作量有多大?

我對操作系統不甚了解,但作為學程序的。但我為一個小程序敲了幾十行代碼之後,我會想問,寫 Windows 到底花了多少時間?代碼……


Windows7團隊在開發博客上說過這個問題,你可以看看在已經有了Windows前幾代系統的積累後,並且有Windows Vista作為基礎的情況下,開發一個Windows7需要多少人:The Windows 7 Team

23個小組(原文寫25,可能是筆誤,後面羅列的只有23個),每個小組約40人,也就是將近1000人。

這23個團隊是:

  • Applets and Gadgets (小程序和邊欄應用)
  • Assistance and Support Technologies (協助和支持技術)
  • Core User Experience (核心用戶體驗)
  • Customer Engineering and Telemetry (用戶工程和遙測)
  • Deployment and Component Platform? (部署和組件平台)
  • Desktop Graphics (桌面圖形)
  • Devices and Media (設備和媒體)
  • Devices and Storage (設備和存儲)
  • Documents and Printing (文檔和列印)
  • Engineering System and Tools (工程系統和工具)
  • File System (文件系統)
  • Find and Organize (查找與組織)
  • Fundamentals (基礎)
  • Internet Explorer (包括IE8 down-level)
  • International (國際化)
  • Kernel VM (內核與虛擬機)
  • Media Center (媒體中心)
  • Networking – Core (網路 – 核心)
  • Networking – Enterprise (網路 – 企業)
  • Networking – Wireless (網路 – 無線)
  • Security (安全)
  • User Interface Platform (用戶界面平台)
  • Windows App Platform (Windows 應用平台)

而Windows7在2006初年進入人們的視線,到2008底年正式發布Beta,開發時間不會短於2年。

至於實際的代碼行數肯定是不會公布的,Vista據傳有5000萬行,就算是真的,這也只是實際用到了產品中去的代碼,實際開發過程中寫過的肯定遠遠不止這個數。


看看 各大操作系統的代碼數量就知道了

Windows XP 有40,000,000行代碼
Windows Vista 大約50,000,000行代碼
Windows 7 有50,000,000行代碼 因為使用很多XP和Vista的代碼 所以數量沒有顯著地提高

微軟員工(包括美國本土,世界分部,和華盛頓州的Pudget Sound) 將近200,000人

Windows的工作量有多大,你體會體會吧

附:幾個著名操作系統的體重 (單位:百萬代碼行)
Linux的不同版本的代碼行數平均為204,500,000行代碼
SLOC - Source Lines of Code 簡寫
Year, Operating System, SLOC (Million)

  • 1993 ,Windows NT3.1,4-5
  • 1994, Windows NT3.5,7-8
  • 1996 ,Windows NT 4.0 ,11-12
  • 2000 Windows 2000, 29
  • 2001 Windows XP ,45
  • 2003 Windows Server2003 ,50

Operating System SLOC (Million)

  • Debian 2.2 ,55-59
  • Debian 3.0, 104
  • Debian 3.1 ,215
  • Debian 4.0, 283
  • Debian 5.0 ,324

Linux(僅內核部分)

  • Linux kernel 2.6.0, 5.2
  • Linux kernel 2.6.29, 11.0
  • Linux kernel 2.6.32, 12.6
  • Linux kernel 2.6.35, 13.5
  • Linux kernel 3.6, 15.9

多大?他們從來沒寫完過!


有本書叫《觀止:微軟創建NT和未來的奪命狂奔》(英文名:《ShowStopper》)。講述的就是寫最初NT操作系統的故事。


推薦閱讀:

VirtualBox 與 VMware 應如何選擇?
vMotion的實現原理是怎樣的?
OS X Yosemite 正式版目前有哪些問題(bug)?
為什麼不同系統不能兼容同一個已編譯的可執行二進位文件?
openSUSE 的人氣為何遠不如 Ubuntu 和 Fedora ?

TAG:程序員 | 操作系統 | 編程 |