Boss(具有安全性的基於光束的操作系統)是概念驗證操作系統,與Rust一起編寫。其獨特的特徵包括:

該項目努力以減少重要性的順序來實現以下內容:
是的。 Erlang是一種非常酷的功能(低級別) /面向對象(高級)並發語言。 Erlang使編寫代碼很容易在多個內核,處理器甚至機器上毫不費力地縮放。 Erlang的現有實現(最值得注意的是,官方Beam Virtual Machine)在單核和多核操作中都非常具有性能。此實現不是。喜歡,一點也不。但是它有效,這是一個起點!
該項目的基礎是仿真器,這是一種在裸機上運行的多處理的ERLANG VM。它只能實現其必須實現的最低限度才能實現這一目標。例如,它確實解析了一些ACPI表(因為多處理才能工作所需的)(或者,至少將一旦實際實現了此功能),但是它不運行AML字節碼 - 該任務保留到它運行的Beam ByteCode。模擬器僅支持X86_64 ISA,UEFI和ACPI 2.0+,即從2010年開始,它將在機器上運行。可以說,仿真器是一個微動物,因為它實現了英國(日程安排和IPC)的實現,但這是我的項目,我不願意為此命名。
即使模擬器是光束,也不是光束。它與Erlang的標準二進制模塊格式及其字節碼指令兼容,但這是相似之處結束的位置。這種不兼容是一個有意識的設計決策,以將基於隔離和基於能力的安全性引入光束。這是差異的不完整列表:
% this calls the function `baz' from the module `bar' in the application `foo'
% this will only be allowed if `foo' "exports" the module `bar'
'foo:bar' : baz (). % far call
% this calls the function `baz' from the module `bar' in the current app
bar : baz (). % external call
% this calls the function `baz' from the current module in the current app
baz (). % local call Self = self (),
Self ! hello ,
receive
{ Self , hello } -> yay ,
hello -> nay
end .當前的實現不是最快的,但它是使事情正常工作的起點。
在啟動時,模擬器加載包含初始仿真器配置的Boss Base Image ( BOSBAIMA.TAR ),並且僅足夠的光束模塊來引導功能性OS。它類似於OTP的kernel應用程序。
如前所述,沒有明確的內核 - 用戶空間鴻溝。取而代之的是,Boss乘坐構成Erlang/OTP的基礎的監督樹模型。
模擬器:
基本圖像:
“ userland”:
當前,OS在屏幕上沒有顯示任何內容。相反,請參閱串行端口的輸出。 NIX和Just Scripts指示QEMU將串行端口輸出重定向到終端。
您可以下載從發布頁面上的最新提交中構建的ISO。但是,我建議您從頭開始構建操作系統。
克隆該項目:
$ git clone https://github.com/portasynthinca3/boss.git
$ cd boss與:
$ nix --extra-experimental-features flakes build . # iso在Qemu發射:
$ nix --extra-experimental-features flakes --extra-experimental-features nix-command run克隆該項目:
$ git clone https://github.com/portasynthinca3/boss.git
$ cd boss要構建ISO,您將需要:
1.33.0測試)4.0.44測試)2.42.0測試)1.82.0-nightly (7120fdac7 2024-07-25) )Erlang/OTP 27 [erts-15.0.1] ,26及以下測試將無效)與:
$ just iso要在QEMU運行ISO,您將需要:
啟動Qemu:
$ just qemu謝謝: