MS-DOS 4.00源代碼公開過程中的Git轉儲失誤會破壞構建並刪除元數據


微軟公司開源MS-DOS4.00的源代碼,揭示計算機歷史上的一個重要裡程碑,這值得稱贊。但這傢科技巨頭在發佈過程中的失誤,可能會給渴望研究幾十年前代碼的歷史學傢和檔案保管人員帶來不必要的麻煩。

2024-04-30-image-5-j.webp

正如OS/2 博物館的軟件策展人 Michal Necasek 所指出的那樣,正確的做法是將源代碼轉入Git 倉庫,而不是提供原始存檔。他提出一個很好的觀點:"歷史悠久的源代碼應該以 ZIP、tar 或 7z 等文件歸檔的形式發佈,並保留所有時間戳和每個字節的原樣。Git 根本就不是一個合適的工具"。

將源代碼扔進 Git 後,微軟可能以多種方式破壞文件,例如,Git 忽略原始時間戳,帶走關於每個文件最後修改時間的潛在有價值的元數據。更糟糕的是,UTF-8 編碼的轉換把一些代碼變成亂碼,破壞構建過程。

正如 Necasek 所強調的,幾十年前的源代碼不僅僅是文本,它本質上是二進制數據,需要完全保存,不能做任何修改。重新編碼會導致程序崩潰,因為像 MASM 5.10 和 Microsoft C 5.1 這樣過時的工具自然無法處理像 UTF-8 這樣的 Unicode 格式,而當時還不存在這種格式。

2024-04-30-image-2.png

雖然 MS-DOS 4.00 代碼的可用性對於研究從 MS-DOS 到 Windows 發展歷程的軟件歷史學傢來說無疑是一個福音,但 GitHubbing 方法可能會不必要地破壞將代碼作為真實檔案材料進行構建和分析的努力。

不過,一位用戶名為"starfrost"的評論者聲稱,他們與微軟合作發佈這一版本,並在原文中表示,他們有可能獲得原始 ZIP 文件。不過可能無法獲得時間戳,因為"數據保護法規定源文件必須匿名"。

此外,Necasek 還表示,他可以通過將代碼復制到 PC DOS 2000 虛擬機並在其中運行構建過程來成功構建整個代碼。因此,如果你想構建代碼,這是一個不錯的選擇。

微軟更明智的做法是直接從內部備份中以幹凈的 ZIP 或 7z 壓縮包形式提供源代碼,並進行適當編碼,以原始形式保留每個字節。計算機的遺產對於業餘愛好者來說實在是太珍貴。

值得稱贊的是,微軟還額外提供來自 Ray Ozzie 檔案的測試版二進制文件、原始文檔和磁盤映像,以方便用戶進行仿真。


相關推薦

2022-09-19

玩傢來說,更多的是壞消息。黑客聲稱已掌握兩代遊戲的源代碼以及新作的早期測試版本,並囂張地公開勒索R星:最後通牒,不給我開個價的話將有非常糟糕的事情發生。18歲黑客,剛黑完Uber黑客Teapot,根據他發佈消息時選取

2024-04-03

微軟高管的電子郵箱。微軟最近承認,該組織訪問公司的源代碼庫和內部系統。繼去年美國政府電子郵件泄露事件和近年來類似的網絡安全攻擊事件之後,微軟公司目前正試圖全面改革其軟件安全。微軟新的"安全未來計劃&qu

2023-04-01

享平臺Github的兩個代碼庫中,其中包括Twitter許多部分的源代碼,包括控制用戶在時間軸上看到的推文的推薦算法。Twitter稱,Github上的代碼庫不包括驅動Twitter廣告推薦的代碼。該公司還表示,它排除會損害用戶安全或隱私的代碼

2024-04-26

2014年微軟通過計算機歷史博物館發佈MS-DOS1.25和MS-DOS2.0版的源代碼,前者發佈於1982年,後者發佈於1983年。今天微軟宣佈開源MS-DOS4.0版的源代碼,該版本發佈於1988年,是微軟與IBM合作推出的操作系統,支持高達2GB容量的硬盤並可

2023-01-29

俄羅斯第一大科技巨頭,這回遇上大麻煩:44.7GB源代碼,全被泄露到網上。什麼概念?就是這傢名為Yandex的公司,幾乎所有主要服務的源代碼都被挖個底掉……要知道,在俄羅斯,Yandex不僅幹著搜索引擎的活兒,還把俄國老百姓

2024-06-04

但隨後,一名網友發現Llama3-V與MiniCPM-Llama3-V 2. 5 在結構、代碼、配置文件上幾乎一模一樣,僅有變量名被替換。網友在面壁智能GitHub的項目下展示一系列證據。劉知遠教授在知乎上回應稱,MiniCPM-Llama3-V 2. 5 在研發時內置一個彩

2023-03-27

3月27日消息,社交媒體平臺推特稱部分源代碼已經被泄露到網上,目前公司正努力確定責任人以及哪些人下載過代碼。據外媒報道,一份法律文件顯示,推特平臺部分底層源代碼已經泄露到網上。雖然推特在努力減少技術問題,

2024-07-28

體報道,Truffle Security研究人員發現,即使在GitHub上刪除代碼倉庫,包括公開或私有的,這些代碼及其分叉副本的數據仍然可以被訪問。安全研究員Joe Leon提出一個新術語跨分叉對象引用”(CFOR),描述這種一個代碼倉庫的分叉

2024-03-17

代理隻執行本地提交的權限,或者在必要時將更改推送到源代碼庫。-通信:代理可以調用一系列旨在促進與其他代理和/或用戶交流的命令。值得註意的是,talk命令可以發送自然語言信息(不解釋為版本庫操作命令),ask命令用

2022-07-15

覽器中輕松啟動。(來自:Salesforce Developer's Blog)除代碼完成、搜索、重構等功能,Code Builder 還附帶對 Salesforce 框架的支持,預裝工具、並且包括 Salesforce 擴展。訪問 Salesforce 特定命令Code Builder 的另一優勢,就是能夠與 Sales

2023-11-09

令。這些指令反映用戶如何使用 Aider 進行編碼。用戶將源代碼文件添加到聊天中並請求更改,這些更改會被自動應用。如果測試套件在第一次嘗試後失敗,Aider 會將測試錯誤輸出提供給 GPT,並要求其修復代碼。Aider 的這種交互

2022-07-30

重要的是,如果 Google 有足夠的自信,那不妨直接將 Sieve 代碼分享出來,以便大傢都可輕松上手滾動更新的 Linux 桌面發行版。

2024-06-20

ker的不法分子宣稱,他已經公開蘋果公司三個內部工具的源代碼。DarkWebInformer平臺發佈的一篇文章詳細描述此次事件。據文章報道,IntelBroker在黑客論壇上發帖,聲稱分享蘋果內部使用的三款重要工具的核心源代碼”。這些工具

2022-07-16

們的日常工作和生活中做到“潤物細無聲”。現實是,開源代碼幾乎有在地球上的每一臺計算機上運行。但與此同時,美國國防部高級研究計劃局(DARPA)也對其可信程度產生一絲顧慮。毫不誇張地說,當今世界重度依賴於 Linux