Windows 11為何不刪掉古早味MS-DOS檔名?微軟工程師揭密:會有災難

聯合新聞網 科技編輯 張明哲
為何微軟不在最新作業系統Windows 11把MS-DOS舊檔名刪除,最主要就是為了相容性,改掉的話可能會讓軟體壞掉。示意圖/翻攝自Windows Blog網站

Windows 11 26H2已是微軟(Microsoft)最新的桌面作業系統,不過裡頭的系統檔案,如kernel32.dll、user32.dll與ntoskrnl.exe,檔名看起來仍像是MS-DOS時代留下來的產物,為何官方不在新系統裡徹底改頭換面呢?原來是因為這些檔名遵循一套名為「8.3」的古老命名規則,而Windows至今仍保留它,最主要就是為了相容性,改掉的話可能會讓軟體壞掉。

據Windows Latest報導,在Windows工作超過30年的Microsoft資深工程師Raymond Chen過去曾解釋,與其改用一套可能帶來全新相容性問題的命名方式,微軟更傾向保留一套「缺點早已被理解,而且問題已經受到控制」的舊制度。不過進入Windows 11檔案總管的System32資料夾,裡面仍充滿看起來像1990年代磁片時代會出現的檔名。

什麼是8.3檔名?為何MS-DOS會使用?

應該仍有不少人好奇,什麼是8.3檔名,其實是MS-DOS使用的檔案命名規則,檔名在小數點前最多只能有8個字元,小數點後的副檔名最多3個字元,因此完整檔名最長為12個字元,包括中間的小數點。

根據Microsoft的檔案系統規範,8.3檔名只能使用ASCII字元,不能包含空格,也不能出現超過一個小數點。因此System32中許多年代最久遠的檔案都遵循這種規則,而較新的Windows元件則早已不受這種限制,且MS-DOS當年還會用大寫方式顯示檔名,如KERNEL32.DLL。但Windows預設不區分檔名英文字母大小寫,因此kernel32.dll與KERNEL32.DLL基本上會被視為同一個檔案。

至於為什麼是8個字元加3個副檔名字元,Raymond Chen提到「是從CP/M留下來的」,而CP/M是Gary Kildall在1974年為早期微型電腦打造的作業系統,MS-DOS為了維持與CP/M的相容性,連檔案命名方式也一併承襲。但他也無法真正了解8+3的原因,只能猜測「8」可能只是當年方便採用的數字。

Windows為什麼不把老系統檔改名?

Raymond Chen提出數個觀點分析,最直接的原因,可能是DLL檔名一旦被軟體連結使用,之後就很難再更改,像是如果微軟突然隔天把user32.dll改成另一個名稱,那麼數十年來大量Windows軟體還是會繼續尋找user32.dll,最後只會發現這個檔案不存在,進而讓相容性出現問題。

此外,Windows過去也會替長檔名產生短檔名別名,例如Program Files可能對應成PROGRA~1,而部分舊程式甚至把這些短名稱直接寫死在程式裡,因此貿然取消也可能引發問題。

因此Microsoft之所以讓8.3檔名繼續存在,原因並不是沒能力改,而是改動之後可能付出的相容性代價,而且就算真的改動這些檔名,也不會讓電腦跑得更快,或是提升安全性,與其「破壞」古早檔名,還不如繼續留住它們。

📌 數位新聞搶鮮看!

 訂閱《科技玩家》YouTube頻道!
💡 追新聞》》在Google News按下追蹤,科技玩家好文不漏接!
📢 OpenAI可愛AI助理dots來了!全天替你工作、和ChatGPT差異一次看
📢 LINE最無用功能掰了!LINE VOOM正式停止服務 申請備份剩今天
📢 教學/蘋果備忘錄APP新功能!長篇筆記快速建立目錄 跨檔案也能用
📢LINE免費貼圖!「醜嫩狗勾」終身免費、這2款約朋友見面超實用
📢 有iPad mini 8、iPad 12!蘋果程式碼外洩「規格更好」10月登場
📢 手機、平板做這些事讓鋰電池短命!11個毀掉電池壽命壞習慣要避免

科技編輯 張明哲

聯合新聞網《科技玩家》編輯群之一,也是一名愛玩電動+直播的宅宅~。

Windows 11 微軟 MS-DOS 當機 Windows 檔名 工程師 Microsoft 檔案 規則

推薦文章