Show HN:Crazierl – 一個 Erlang 作業系統
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。開發者對此工具給予高度評價,認為它極大降低了展示愛好者作業系統的門檻,讓使用者無需自行安裝虛擬機即可體驗分散式叢集的連線功能。
延伸閱讀
- Crazierl 原始碼倉庫:https://github.com/russor/crazierl/
- v86 瀏覽器模擬器專案:https://github.com/copy/v86
- Erlang on Xen 相關技術簡報:https://www.erlang-factory.com/static/upload/media/1498583894814815erlangonxen.pdf