微軟公司開源MS-DOS4.00的源代碼,揭示計算機歷史上的一個重要裡程碑,這值得稱贊。但這傢科技巨頭在發佈過程中的失誤,可能會給渴望研究幾十年前代碼的歷史學傢和檔案保管人員帶來不必要的麻煩。
正如OS/2 博物館的軟件策展人 Michal Necasek 所指出的那樣,正確的做法是將源代碼轉入Git 倉庫,而不是提供原始存檔。他提出一個很好的觀點:"歷史悠久的源代碼應該以 ZIP、tar 或 7z 等文件歸檔的形式發佈,並保留所有時間戳和每個字節的原樣。Git 根本就不是一個合適的工具"。
將源代碼扔進 Git 後,微軟可能以多種方式破壞文件,例如,Git 忽略原始時間戳,帶走關於每個文件最後修改時間的潛在有價值的元數據。更糟糕的是,UTF-8 編碼的轉換把一些代碼變成亂碼,破壞構建過程。
正如 Necasek 所強調的,幾十年前的源代碼不僅僅是文本,它本質上是二進制數據,需要完全保存,不能做任何修改。重新編碼會導致程序崩潰,因為像 MASM 5.10 和 Microsoft C 5.1 這樣過時的工具自然無法處理像 UTF-8 這樣的 Unicode 格式,而當時還不存在這種格式。
雖然 MS-DOS 4.00 代碼的可用性對於研究從 MS-DOS 到 Windows 發展歷程的軟件歷史學傢來說無疑是一個福音,但 GitHubbing 方法可能會不必要地破壞將代碼作為真實檔案材料進行構建和分析的努力。
不過,一位用戶名為"starfrost"的評論者聲稱,他們與微軟合作發佈這一版本,並在原文中表示,他們有可能獲得原始 ZIP 文件。不過可能無法獲得時間戳,因為"數據保護法規定源文件必須匿名"。
此外,Necasek 還表示,他可以通過將代碼復制到 PC DOS 2000 虛擬機並在其中運行構建過程來成功構建整個代碼。因此,如果你想構建代碼,這是一個不錯的選擇。
微軟更明智的做法是直接從內部備份中以幹凈的 ZIP 或 7z 壓縮包形式提供源代碼,並進行適當編碼,以原始形式保留每個字節。計算機的遺產對於業餘愛好者來說實在是太珍貴。
值得稱贊的是,微軟還額外提供來自 Ray Ozzie 檔案的測試版二進制文件、原始文檔和磁盤映像,以方便用戶進行仿真。