GoboLinux

GoboLinuxについて



GoboLinuxは、フリーかつオープンソースのオペレーティングシステムであり、その最大の特徴は従来のLinuxファイルシステムの構造を再構築した点にあります。Filesystem Hierarchy Standard(FHS)に準拠せず、各プログラムが自身のファイル(設定ファイルを含む)を格納する専用のサブディレクトリツリーを持つことで、システム全体の整理と管理を容易にしています。例えば、プログラム "Foo" の関連ファイルは全て `/Programs/Foo` ディレクトリに集約されます。GoboLinuxの開発者は、この構造がシステムをより整理された状態に保つことができると主張しています。

概要



GoboLinuxファイルシステム階層は、従来のUnix系OSのファイルシステム構造からの根本的な脱却を意味します。従来の構造では、特定の種類のファイルが共通のサブディレクトリに格納されますが(例:`/bin` に実行可能ファイル、`/etc` に設定ファイル)、GoboLinuxでは各プログラムが独立したディレクトリを持ちます。これにより、ファイルシステム自体がパッケージデータベースとして機能し、よりシンプルで整理されたディレクトリ構造が実現します。シンボリックリンクと必要に応じて `GoboHide` というカーネルモジュールを使用することで、従来のLinuxファイルシステムとの互換性を維持しています。

GoboLinuxの開発者は、この設計により伝統的なファイルシステム構造からの脱却だけでなく、他の「モダニズム」も導入されると述べています。例えば、実行可能ファイルの置き場所(`/bin`、`/usr/bin`、`/usr/local/bin` など)の区分けを排除しています。また、GoboLinuxでは、ユーザーが同じプログラムの異なるバージョンを同時にインストールおよび実行でき、存在しないファイルへの参照は単に壊れたリンクとなるため、パッケージ管理インデックスがファイルシステムと常に同期しているとされています。さらに、独自のブートシステムを導入することで、System VやBSDスタイルのinitシステムを使用しない、新しいシステム構築が可能です。

ファイル階層構造



GoboLinuxの設計は、NeXTSTEP、AtheOS、BeOSといった初期のシステムの影響を受けています。これらのシステムは、UNIXとの互換性を保ちつつ、独自のファイルシステム構造を採用していました。GoboLinuxのルートディレクトリには、`Programs`、`Users`、`System`、`Files`、`Mount`、`Depot` の6つのディレクトリが存在します。

`/Programs/`: インストールされたプログラムごとにディレクトリが存在し、各ディレクトリにはプログラムのバージョン、設定、変数が含まれます。例:`/Programs/Bash/3.0/bin/bash`、`/Programs/Xorg-Server/Settings/X11/xorg.conf`
`/Users/`: 各ユーザーのホームディレクトリが含まれます。例:`/Users/harley`
`/System/`: システムファイルが含まれます。システムアプリケーションやGoboLinuxスクリプトが管理します。例:`/System/Settings/passwd`、`/System/Index`
`/Index/`: ファイルシステムインデックス。`/Programs` 配下のファイルへのシンボリックリンクと、以下のディレクトリが含まれます。
`bin/`: 各プログラムの `bin` ディレクトリへのリンク
`include/`: 各プログラムの `include` ディレクトリへのリンク
`lib/`: 各プログラムの `lib` ディレクトリへのリンク
`share/`: 各プログラムの `share` ディレクトリへのリンク
`Environment/`: 環境ファイルへのリンク
`Tasks/`: 各プログラムのブートタスクへのリンク
`Settings/`: 設定ファイルへのリンク
`BootScripts/`: システムブート中に使用されるスクリプトへのリンク
`Variable/`: ログ、テンポラリ、スプールファイルなど
`tmp/`: テンポラリファイル
`Kernel/`: カーネル関連ディレクトリ
`Boot/`: ブートストラッププログラムと設定ファイル
`Devices/`: デバイスファイル(Udevにより管理)
`Modules/`: カーネルモジュール
`Objects/`: カーネルデバイスツリーのビュー
`Status/`: カーネルステータスファイル
`/Files/`: プログラムが使用するが、プログラム自体の一部ではない構造化されたデータが格納されます。フォント、コーデック、プラグインなどが該当します。
`/Mount/`: ローカルおよびリモートファイルシステムのマウントポイント。`CD-ROM`、`floppy`、`Zip` などが含まれます。
`/Depot/`: ユーザーファイル用のリポジトリ。ユーザーが自由に編成できます。

Compile プログラム



Compileは、ソースコードのダウンロード、解凍、コンパイル、および実行可能コードのインストールを、"recipes" と呼ばれるコンパイルスクリプトを用いて1つのコマンドで実行できるプログラムです。GentooのPortageシステムに似ていますが、CompileはGoboLinuxファイルシステム構造に合わせて設計されています。GoboLinuxでは、ファイルシステム自体がパッケージ管理データベースとして機能します。

Compileの主な特徴は以下の通りです。

各プログラムのダウンロードサイトを使用
ディストリビューションのリポジトリはレシピのダウンロードのみに使用
宣言型指向のコンパイルスクリプト
GoboLinuxスタイルの依存性サポート
パスに依存しない設計

伝統的ディストリビューションとの違い



GoboLinuxのファイル階層構造では、ファイルが `/System/Index` をルートとするインデックス構造で、機能的なカテゴリに分類されています。実行可能ファイルは `/System/Index/bin` から、ライブラリは `/System/Index/lib` からアクセス可能です。これにより、従来のFHSの区分けが排除され、より整理された構造となっています。

シンボリックリンクにより、`/etc`、`/var/log`、`/usr/bin` など、従来のUNIXディレクトリも利用可能です。`GoboHide` カーネルモジュールを使用すると、これらのシンボリックリンクをビューから隠すことができます。

ブートシステム



GoboLinuxは独自の初期化手順を使用します。`/System/Settings/BootScripts` には、ブート手順を制御するファイルが含まれており、システムの起動とシャットダウンを行う `BootUp` と `Shutdown` スクリプトがあります。また、ランレベルスクリプトも定義でき、ブートローダーメニューから選択可能です。`/System/Settings/BootOptions` ファイルで設定を分離し、アプリケーション固有のタスクは `/System/Tasks` からブートスクリプトとして実行されます。

リリース



リリースは八進数を基盤とする表記で番号付けされます。これは、先頭にゼロを付けることで八進数であることを示し、1999年のLinuxディストリビューションで発生した「バージョン番号競合」に対処するためです。ただし、八進数を使用すると、8リリースごとに「バージョン衝突」が発生します。

主なリリース:

016.01 - 2017年4月4日
016 - 2016年12月15日
015 - 2014年5月7日: `/System/Index` 階層を導入
014.01 - 2008年3月30日
014 - 2007年12月31日
013 - 2006年11月2日
012 - 2005年6月6日
011 - 2004年6月7日: Compileを導入
010 - 2004年1月7日
007 - 2003年10月22日
006 - 2003年5月9日: GoboHideを導入
005 - 2003年: GoboLinuxが公開

移植



GoboLinuxは公式にはx86-64アーキテクチャのみがサポートされており、以前はi686アーキテクチャのみがサポートされていました。i386への移植プロジェクトがありましたが、現在は休止しています。ARMアーキテクチャSuperHなどの組み込みアーキテクチャへの移植は、Bootstrapというツールを使用して容易に行えます。

まとめ



GoboLinuxは、独自のファイルシステム構造とパッケージ管理システムにより、従来のLinuxディストリビューションとは異なるアプローチを提供するオペレーティングシステムです。より整理されたシステム、モダニズムの導入、そして高いカスタマイズ性を求めるユーザーにとって魅力的な選択肢となるでしょう。

もう一度検索

【記事の利用について】

タイトルと記事文章は、記事のあるページにリンクを張っていただければ、無料で利用できます。
※画像は、利用できませんのでご注意ください。

【リンクついて】

リンクフリーです。