一個Windows 系統究竟有多複雜?

zhihu發表於2015-05-06

  Microsoft Windows問世於1985年,起初僅僅是Microsoft-DOS模擬環境,後續的系統版本由於微軟不斷的更新升級,不但易用,也慢慢的成為家家戶戶人們最喜愛的作業系統。

  下面我們從程式碼行數、開發難度,參與人員的數量,開發的時間長度等角度來說說,一個windows系統有多複雜。

  • Windows XP 大約40,000,000行程式碼。
  • Windows Vista 大約50,000,000行程式碼。
  • Windows 7 大約50,000,000行程式碼。

  Windows 7開發的時候有23個小組,每個小組約40人,也就是將近1000人。這僅僅是Windows團隊的人數,其餘為其做出貢獻的更是數不勝數。

  這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 應用平臺)

  Windows Vista 程式碼行數約5000萬行,算上修正掉的程式碼估計超過一億行。內部版本超過上千個。。。每個版本都有所測試。。。為其做出貢獻的正式工合約工臨時工超過數萬人。大概的工程量可能和胡夫金字塔相當。

  按照Word標準A4紙預設列印+Consolas字型+預設字號,每頁A4紙可以列印44行程式碼。考慮到折行問題(假設有30%的程式碼行數在A4紙上一行列印不完),1.3*5000w=6500w行程式碼。大概需要148萬張A4紙才能列印完。每張A4紙長29.7釐米,算起來大概是4440w釐米,也就是44w米,440公里,這還不算上各種修正掉的程式碼和之後的補丁。

  這是2015年5月5日的Windows 8.1 Pro + VS後的Windows資料夾大小:

  導航到Windows資料夾,右鍵,屬性。

  看到那個數字一直往上走,就算是完全的外行也已經是超級震撼了。

服務列表

登錄檔

  這還沒有全部展開,但看那個滑塊……

  十年發展,XP當年裝一下幾個G搞定,現在Win8程式碼量已經上億。然而,經歷了這麼多個版本的迭代,十年前的軟體一個位元組不改,放到十年後的系統一樣能完美執行。開發人員的嘔心瀝血,看不見的複雜度,恕我無法用語言描述。這是Windows給我最大的震撼。

相關文章