Prismachina

many paths through an old machine.

從 PDP-7 組合語言開始,直到作業系統。
歷史已經決定了起點與終點,中間的路由我們自己走。

[ASM] -> [B-like] -> [C-like] -> [Linux-like]

01 / 動機

AI 現在已經成為顯學了。
無論內行外行,幾乎已經是人人都在談論的話題。
一堆人都在想辦法把它拿來做各種產品,並試圖兌現。
但對我來說,金錢從來不是第一順位。
與其把它拿來製造更多博人眼球的產品,
我更想知道,如果拿它來學一些真正困難而且有趣的東西,
最後能走多遠?

很久以前我就想過,如果從頭打造一個作業系統,
那肯定很酷。

不是下載一份現成的原始碼重新編譯,
也不是站在既有的 compiler, toolchain, runtime 上開始,
而是從最底下開始。

從組合語言開始,自己做出語言,做出工具鏈,
最後一路走到作業系統。

以前我只把這件事當成白日夢。
現在,或許可以真的試試看。

02 / 綱要

Prismachina 從一個很小的世界開始。

一台 PDP-7,以及模擬器提供的組合語言與組譯器 as。

除此之外,什麼都沒有。

沒有高階語言,沒有編譯器,沒有現成的工具鏈,連作業系統也只有 Unix v0。
接下來需要的東西,都從這個環境裡一層一層建立起來。

[ASM] -> B-like -> C-like -> Linux-like

這些不是工具鏈的組成,而是 Prismachina 預計經歷的幾個科技階段。

從只能依靠組合語言的世界開始,建立第一個更高階的語言;
再利用已經取得的能力,繼續建立下一個階段所需要的語言與工具。

每跨過一個階段,能用來建造下一個階段的東西就多一些。

最後,希望能從最初那個幾乎什麼都沒有的 PDP-7 環境,
一路走到足以支撐完整自製作業系統的世界。

03 / 目前進度

現在仍處於最初的 ASM 階段。

[ASM]       <-- 現在
  |
B-like
  |
C-like
  |
Linux-like

第一個目標,是從現有的 PDP-7 組合語言環境中,
建立足以進入下一個階段的基礎。

看起來只有四個階段,好像很單純對吧?
但只要稍微了解,就會知道階段之間隔著多麼寬的峽谷...

04 / 未來

最終,希望能從一個極小的起點,
一路建立出足以支撐更複雜系統的語言、工具與作業系統。

中間不追求忠實復刻任何一段歷史。

如果某條路值得重新走一次,就走。
如果能找到另一條路,
也沒有理由只因為歷史不是這樣發生的而避開它。

終點是已知的。

路徑不是。

99 / 命名

儘管這個名字還沒定案,但這個名字也不是隨便取的。
Prismachina 這個名字是由兩個字組成的: