86-DOS 1.00 原始碼以 MIT 授權開源:IBM PC 作業系統的誕生現場記錄
Microsoft Open Source Blog · 2026-04-28(HN 熱議 2026-05-25)
Microsoft 在 GitHub 上發布了「Paterson Listings」——有史以來已知最早期的 DOS 原始碼,包含 86-DOS 1.00 核心、PC-DOS 1.00 核心的多個開發快照,以及 CHKDSK 等核心工具的原始程式碼,全部採用 MIT 授權。程式碼由 DOS 原始作者 Tim Paterson 親自保存,並非後人重建,是一批真實的開發時間點工作狀態與手寫筆記。
背景
86-DOS 1.00 是 1981 年 IBM PC DOS 1.00 的直接前身,由 Tim Paterson 為 Intel 8086 處理器設計,介面模仿 Gary Kildall 的 CP/M,使 CP/M 程式能夠在 IBM PC 上移植。此次發布時間配合 86-DOS 1.00 誕生 45 週年。Microsoft 的 GitHub 儲存庫 microsoft/MS-DOS 已在 2018 年開源 MS-DOS 1.25 和 2.11,2024 年加入 MS-DOS 4.0;此次 Paterson Listings 收入新儲存庫 DOS-History/Paterson-Listings。
內容細節
- 86-DOS 1.00 核心:IBM PC DOS 的直接祖先
- PC-DOS 1.00 核心的多個開發快照:展示開發過程中的中間狀態
- CHKDSK 等核心工具:早期磁碟管理工具
- Paterson 的手寫筆記與工作文件
- MIT 授權,供研究者、愛好者自由使用
影響範圍
對作業系統歷史研究者而言,這批材料的價值在於它是「開發現場」記錄而非最終產品:快照保存了設計決策的演化軌跡,手寫筆記反映當時工程師的思考過程。對 Retrocomputing 社群,可編譯原始碼意味著可以在模擬器上重現 1981 年的開發環境。從軟體工程角度,它也是單人在極短時間內(Paterson 據稱在幾週內完成 86-DOS 核心)完成一個完整 OS 核心的罕見案例研究。
原始來源:Microsoft Open Source Blog、GitHub: DOS-History/Paterson-Listings
用 Jujutsu 告別 Git 提交紀律疲勞:先亂寫、最後整理的反向工作流
ikesau.co · 2026-05-25
一篇在 HN 引發廣泛討論(59 分)的文章,作者分享使用 Jujutsu(jj) 版本控制工具實現「先放鬆開發、最後一次整理」的工作流,解決他所稱的「Git 紀律疲勞」——在開發過程中維護乾淨提交歷史所消耗的認知負擔。核心命令是 jj absorb 與 jj squash -i。
問題定義
「Git 紀律疲勞」是指工程師知道應該寫 define types → add DB functions → server CRUD 這樣的細粒度提交歷史,但實際上寫出來的是 WIP test code 和 fix UI bug。強制自己在開發過程中維持整潔歷史,等於要不斷中斷心流來整理提交,成本高昂。
Jujutsu 工作流
作者的方法是先建立代表「理想最終提交」的空提交節點:
jj new -B messy-first -m 'define types'
jj new -B messy-first -m 'add DB functions'
jj new -B messy-first -m 'server CRUD'然後將所有實際改動累積到一個「everything commit」:
jj squash --from messy-first..messy-last --into messy-first最後用互動式 squash 將改動分發到對應的空提交:
jj squash -i --from messy-first --into 'define types' # 選取相關 hunkjj absorb 是另一個關鍵命令:它自動分析 unstaged 的改動,判斷每段修改最可能屬於哪個先前提交(根據上下文的行歷史),並自動分配——類似 git absorb 但整合在 jj 的提交圖模型中。
影響範圍
相比 Git 的 git rebase -i,Jujutsu 的 先進提交圖(DAG)模型讓這類批次重排操作更安全:jj 沒有 Git 的「工作目錄」概念,每個改動都是提交,rebase 操作衝突更容易追蹤。作者指出的取捨是:中間提交可能無法編譯,不適合所有團隊文化。Jujutsu 目前仍以 Git 後端為主,可以無縫推送到 GitHub。
原始來源:ikesau.co、Jujutsu 文件
Jira 是圖靈完備的:用 Automation Rules 與 Issue 計數器實作 Minsky 暫存器機器
seriot.ch · 2026-05-25(Lobsters 96 分)
Nicolas Seriot 發表技術文章,以數學嚴謹性證明 Jira 是圖靈完備的(Turing-complete)。使用的計算模型是 1967 年 Minsky 證明等價於圖靈機的 Minsky 暫存器機器(Minsky register machine)——只需要兩個無界計數器與有條件分支指令,即可模擬任意計算。文章包含在 Atlassian Cloud 實際執行加法(2+3=5)與 Fibonacci 數列的示範。
計算模型對映
| Minsky 機器元素 | Jira 實作 |
|---|---|
| 兩個無界計數器(暫存器) | Bug 與 Task 類型的 Issue 數量 |
| 程式計數器(當前指令) | Epic 的 Status 欄位 |
| 指令集 | Automation Rules |
| 遞增(increment) | 建立 Issue |
| 遞減(decrement) | 刪除 Issue |
| 條件分支(branch if zero) | JQL 條件觸發的 Automation Rule |
關鍵 Jira 功能
- Automation Rules with JQL conditions:實作條件分支邏輯
- Issue Linking:追蹤計數器狀態
- Workflow Status Transitions:推進程式計數器
- Allow rule to trigger other rules:跨 Rule 觸發,實現連續執行步驟
- Issue Type Conversion:優化複雜程式中的計數器操作
影響範圍
這是計算理論中「意外發現的圖靈完備性」的又一案例,加入 CSS、PowerPoint、Magic: The Gathering、Minecraft 紅石電路等的行列。Jira Cloud 的 Automation Rule 鏈深度限制是唯一的實際上限,使其成為有界但理論上完備的計算系統。對 Jira 管理員而言,這也意味著過於複雜的 Automation 規則在理論上可以實現任意邏輯——這既是能力,也是潛在的審計盲點。
原始來源:seriot.ch