SerenityOSとは #
SerenityOSは、90年代のGUIと2000年後半のパワーユーザー向けの*nixのcliによる利便性をマインドに開発されたOSだ。
公式サイトはこちら: 🔗https://serenityos.org/
OSというワードで検索すると
- 🔗Debian
- 🔗Ubuntu
- 🔗Manjaro
- 🔗Fedora などがヒットして色々なOSがあると思うかもしれないが、これらはLinuxカーネルというOSの核の役割を果たすソフトウェアを利用してその上に🔗KDE, 🔗GNOME, 🔗LxQt,🔗Xfceなどのデスクトップ環境(window managerや基本的なソフト等がまとめられたもの)を利用した上で目的に応じてカスタマイズしたものだ。
それらはLinuxディストロと呼ばれ、数多くのLinuxディストロが存在する(🔗https://distrowatch.com/)。
対して、SerenityOSではカーネルが独自にイチから開発されている。
作者はスウェーデン在住で、2018年の秋、3ヶ月のドラッグのリハビリテーションを終えたあとに暇になりすぎて、SerenityOSの開発を開始したとのこと。
その前はAppleで🔗Webkit(Safariブラウザなどのエンジン)の開発をする仕事に就いていたりしたそうなのでヤク中と聞いて想像するようなタイプの人間ではなかったのだろう。
暇つぶしに低レイヤで遊ぶためにELF実行ファイルパーサーやファイルシステム、GUIなどを書いているうちにSerenityOSのアイデアが浮かんできたらしい。
SerenityOSをビルド&起動する #
導入方法は🔗SerenityOS build instructionsで解説されている。
aptが使える環境であれば、aptで足りないパッケージをインストールしてビルドして起動するだけだった。
ビルドは30分ほどで終わるはず。
起動するとこんな感じ。
SerenityOSで遊ぶ #
Coreutils #
まず起動時に開かれていたターミナルでls
を試してみたら実行されたのでwhich ls
でバイナリのディレクトリを探すと
と/bin
内に他のバイナリもあることが予想できるので、ls /bin > binaries.txt
でbinaries.txt
に一覧を書き込む。
結果344行で基本的なものは揃っているようだ。
ソースをcoreutilsでgrepしたらSerenityOSにポートされたソフト一覧のリンクを発見した。
🔗https://ports.serenityos.net/
GNU core utilities, LLVM, vim, lynx web browser(CUIのWebブラウザ), GCC, Clang, CMake, Makeなどの開発に必要な基本的なツール以外にも色々なソフトウェアを利用できるようだ。
ポートされたソフトはSerenityのソースコード内のPorts
ディレクトリ内に一覧がある。
インストール方法は、基本的にインストールしたいソフトのディレクトリ内に移動して./package.sh
すれば良い。
package.sh
が実行されるとソフトウェアのビルドが始まる。
ビルド後にBuild/x86_64/Root/bin
内にバイナリが配置され、QEMU内で/bin
内から利用できる仕組みになっている。
🔗ReactOSは確かパッケージマネージャのようなものが実装されていた気がするのでこちらにも欲しいところだが実装、ホストのコストが高そうだ。
デフォルトでインストールされている色々なソフト #
Hex Editor, Snake, Minesweeper, テキストエディタ, カレンダー, スプレッドシート, マップ, 電卓などのソフトを利用できる。
🔗OpenStreetMapの精度が思ったより良いものだったので驚いた。
piano #
pianoという音を打ち込んでwavに書き出せるソフトが実装されていたので試してみた。
33秒から音割れ注意。
書き出しと再生の音が違ったり、途中でフリーズしたりした。
原曲はあえて伏せておこう。
vim & gccで開発 #
vimとgccをビルドして配置したので試してみる。
gccのビルドが思ったよりなげえ。
./package.sh > /dev/null
したほうが良かったか。
テストがてらstd::puts
とstd::ofstream
を適当に使うプログラムをvimで書いて、gccでコンパイルして実行してみた。
きちんと動作しているようだ。
Hack Studio #
pianoで遊んでいた際に何度かクラッシュした。
クラッシュすると、
のようなコールスタックなどの情報が表示される。
ここで左下のDebug in Hack Studio
ボタンを押すと、Hack Studioという付属のIDEが起動される。
パット見で原因は特定できなかった。
おわり #
レトロ好きにはたまらないGUIデザインだ。
単なるディストロではなく、独立したOSであるのも面白い。
レトロ好きや昔のデスクトップの雰囲気思い出したい方は試してみてはいかがだろうか。