newsence

Show HN:Crazierl – 一個 Erlang 作業系統

Hacker News·7 天前

Crazierl 是一個在瀏覽器中模擬 x86 PC 運行的 Erlang 作業系統,你可以透過分享帶有相同標籤的網址與朋友加入同一個分散式集群,並在連接後嘗試聊天功能。

背景

Crazierl 是一個以 Erlang 虛擬機(BEAM)為核心的實驗性作業系統,旨在探索將 Erlang 的分散式特性與底層系統結合的可能性。開發者透過 v86 模擬器在瀏覽器中提供了一個 x86 虛擬環境展示,讓使用者能直接體驗在 Erlang 叢集(dist cluster)中進行通訊與聊天。這項專案目前處於愛好者開發階段,支援 32 位元 x86 架構與基本的網路驅動程式,並以 Apache 授權開放原始碼。

社群觀點

在 Hacker News 的討論中,開發者 toast0 親自解答了關於系統架構的技術細節。他澄清 Crazierl 的核心並非基於現有的作業系統,而是從零開始撰寫的 C 語言核心。為了讓 BEAM 能夠運行,他實作了與 FreeBSD 相容的系統呼叫介面與執行期載入器,但在記憶體管理、進程與執行緒創建以及計時機制上則採取了原創設計。這種做法反映了開發者的一種權衡:在享受從無到有構建核心樂趣的同時,利用現有的函式庫來處理引導程式(bootloader)或基礎函式等繁瑣工作。

社群成員對於「Erlang 作為作業系統」的概念展現出高度共鳴。有評論指出,Erlang 本身就具備強烈的作業系統特質,其搶佔式多工與每個進程獨立進行垃圾回收的機制,使其在處理獨立運行的 gen_server 時,感覺比 Rust 等語言更貼近系統層級的運作邏輯。這種特性讓 BEAM 脫離 Linux 等傳統核心、直接在硬體上運行的想法顯得非常自然。此外,討論也觸及了微核心的設計理念,開發者提到他刻意減少核心的功能,將驅動程式放在使用者空間執行,只要核心允許使用者空間映射記憶體位址並存取 I/O 埠,就能實現高度解耦的驅動開發。

討論中亦提及了相關的歷史專案與技術啟發。雖然有參與者聯想到 DragonFlyBSD 的輕量級核心執行緒與訊息傳遞機制,認為其與 BEAM 的架構相似,但開發者認為 Crazierl 走的是另一條路徑。社群也回顧了過去如 Erlang on Xen (LINC) 或 Hydros 等類似的先驅計畫,雖然部分專案如 Hydros 的官方網站已不復存在,但這些前人的嘗試證明了將 Erlang 虛擬機直接部署在裸機或 Hypervisor 上的技術價值。

關於瀏覽器展示的技術實現,社群對 v86 模擬器的表現感到驚艷。這是一個結合 JavaScript 與 Rust 編譯成 WebAssembly 的虛擬 PC 環境,並非基於 QEMU。開發者對此工具給予高度評價,認為它極大降低了展示愛好者作業系統的門檻,讓使用者無需自行安裝虛擬機即可體驗分散式叢集的連線功能。

延伸閱讀

https://crazierl.org/demo/