FB 建議貼文

選取貼文複製成功(包含文章連結)!

Windows 11內層居然還藏著1974年的設計?解析Windows 50年不變的命名準則

Windows 11內層居然還藏著1974年的設計?解析Windows 50年不變的命名準則

Windows 11有圓角視窗、Fluent Design圖示,雲端與AI功能也一直往上疊,但作業系統最核心的地方,仍能翻到一堆幾十年前的設計。

最典型的例子,就是系統檔案至今沿用符合MS-DOS時代規則的短檔名——在26H2的System32目錄裡,kernel32.dll、user32.dll、ntoskrnl.exe這些檔案依然在位。微軟資深工程師雷蒙德·陳(Raymond Chen)解釋過,Windows之所以長期保留這些設計,核心原因就是向後相容性。

8.3這套命名從CP/M一路沿用到今天

這套規則叫8.3檔名格式:主檔名最多8個字元、副檔名最多3個字元,中間一個句點,整個檔名連句點最多12個字元。kernel32剛好8字元、dll是3字元;ntoskrnl.exe、user32.dll、hal.dll也都是典型8.3格式。

在MS-DOS時代,這種限制有明確的技術背景:當時檔案系統受早期個人電腦作業系統能力所限,檔名不能包含空格、不能隨意使用多個句點,也只能用規定範圍內的字元。

這套規則不是微軟隨手訂的。MS-DOS當年為了相容CP/M,沿用了後者的檔名方式;CP/M由加里·基爾達爾(Gary Kildall)在1974年開發,是早期微型電腦的重要作業系統。雷蒙德·陳2009年就在個人技術部落格The Old New Thing寫過這段源流,但連他自己也不確定CP/M當年為什麼剛好選8字元主檔名、3字元副檔名——他猜測只是當年方便的設計選擇,因為CP/M目錄結構裡其實留了可以加長檔名的空間,8.3未必是硬體極限。

Windows 11內層居然還藏著1974年的設計?解析Windows 50年不變的命名準則

讓這套舊規則活到今天的,其實是它在作業系統發展過程中逐漸長出來的相容性依賴。

Windows裡,很多應用程式要靠特定檔名存取動態連結庫,也就是DLL。程式在編譯、連結階段就跟系統組件建立了依賴關係,一旦微軟哪天把某個核心DLL改名,依賴它的程式可能找不到檔案,跟著啟動失敗或功能異常。以user32.dll為例,它是Windows圖形介面基礎設施的一環,大量應用程式都靠它提供的功能;真要改成更現代的命名,為數眾多的現有軟體都得跟著改。
問題在於Windows使用範圍太大,歷史上開發過的軟體數量龐大,微軟無法保證全部即時更新。一個檔名今天看來不夠美觀,只要還有程式依賴它,貿然改名就可能帶來不可預測的後果。微軟面對的兩難是:保留舊名,系統看起來不夠現代,卻能避免打壞大量既有軟體;為了統一命名風格硬改,反而可能引入更大的相容性風險。對要支援數十年軟體生態的作業系統來說,前者通常是比較穩的選擇。Windows的檔名規則因此不只是外觀問題,而是牽涉到作業系統介面、程式依賴關係與長期相容性的技術決定。

Windows 11內層居然還藏著1974年的設計?解析Windows 50年不變的命名準則

CON、NUL這些特殊裝置名也沒刪

歷史遺留不止8.3檔名。Windows至今還保留DOS年代的特殊裝置名,例如CON、NUL、PRN,以及COM1、LPT1。這些名字在現代Windows裡仍有特殊意義:NUL常被當成丟棄程式輸出的目標,CON則對應主控台設備,系統會按既定規則特殊處理,而不是把它當普通檔名。

雷蒙德·陳也解釋過這些名稱為何一直留著。早期DOS還沒有成熟的多層目錄結構時,這些特殊名字就已經被軟體與批次腳本大量使用;後來作業系統加上目錄層級與其他功能,微軟仍然保留它們原本的行為,避免打壞既有程式。這也是Windows不是一個完全照現代設計原則重建的系統、而是在長期發展中不斷疊加新功能又盡量保留舊行為的具體寫照。

Windows 11內層居然還藏著1974年的設計?解析Windows 50年不變的命名準則

要說清楚的是,8.3規則並不代表現代Windows所有檔案都得受同樣限制。今天Windows支援遠超8字元的檔名,也能處理空白與各種Unicode字元;較新的系統組件,例如Windows安全中心的SecurityHealthService.exe,主檔名早就超過8字元。

微軟官方的檔名文件還描述了多種檔案路徑與命名空間規則,讓應用程式在符合條件下可以存取更長的路徑。Windows NT系列有自己獨立的核心與系統架構,現代Windows跟早期DOS在技術基礎上差很多,沿下來的主要是檔名與相關相容行為,而不是整個作業系統還受DOS技術限制。

這也是為什麼微軟能在現代Windows裡換新檔案系統、強化資安、加上AI功能,卻仍然留著看起來極古老的系統檔名。

對一般使用者來說,這些名稱通常不會造成實際困擾,Windows會透過系統機制處理相關檔案,不必因為看到kernel32.dll或ntoskrnl.exe像幾十年前的名字,就擔心作業系統還停在MS-DOS年代。真正值得看的,是Windows幾十年來始終得在創新與相容性之間找平衡——很多老設計留下來,不是做不到,而是改動的代價遠比保留它高。

 

 

janus
作者

PC home雜誌、T客邦產業編輯,曾為多家科技雜誌撰寫專題文章,主要負責作業系統、軟體、電商、資安、A以及大數據、IT領域的取材以及報導,以及軟體相關教學報導。

grace
1.  grace (發表於 2026年11月14日 14:36)
It's fascinating how Windows has carried naming and design traditions across decades, showing the lasting influence of its early development. Ceramic tint vs carbon tint comes down to heat rejection, clarity, and price for your windows. Beat the Heat explains both so you pick the film that fits your budget.
發表回應
謹慎發言,尊重彼此。按此展開留言規則