kei615ykhm’s programming learning blog

プログラミングを0から学んでいる学生の備忘録

【学びの記録】Ubuntuのディレクトリ構成を知る

Filesystem Hierarchy Standaed(FHS)

UbuntuのようなLinuxディストリビューションは、

Linuxの基本的なディレクトリ構成を模して作られている。

 

では、Ubuntuの構成はLinuxと何が違うのだろうか。

それを学んでいく。

 

Linuxディレクトリとの違い

結論から言えば、「Linuxディレクトリ」と「Ubuntuディレクトリ」には、基本的な構造や役割に大きな違いがない。

その理由は一般的にUbuntuなどのディストリビューションは「Linux Standard Base (LSB)」やFilesystem Hierarchy Standard (FHS)に従い、様々なディストリビューション間での一貫性を保っているためだ。

ただし、特定のディレクトリやその使用目的に関しては微妙な違いが存在する。

 

Linuxディレクトリについてはこちらの記事を参照

kei615ykhm.hatenablog.com

 

Ubuntuディレクトリ構造

Ubuntuは、DebianをベースにしたLinuxディストリビューションで、LSBやFHSに従いつつも、特定のニーズや便利さに応じて若干の変更や追加が行われている。

 

主な違い

「sbap」

Ubuntu独自のディレクトリで、Snapパッケージ(コンテナ化されたアプリケーション)を管理する。

これはUbuntuの開発元(Canonical)が提供するパッケージ管理システム。

 

一方、Linuxや多くのLinuxディストリビューションにはこのディレクトリは存在しないか、別の方法でパッケージ管理を行っている。

 

「run」

一時的なデータを格納するためのディレクトリで、システムの再起動後にデータが消える一時的なランタイム情報を保持する。

 

これはLinuxディストリビューションの種類によって用途や重要性が異なる場合がある。

 

「lib64とlibx32」

Ubuntuでは、63ビットと32ビットのライブラリが明確に分かれている。

 

他のディストリビューションでも同様の分割が見られる場合もあるが、すべてのディストリビューションで同じように実装されているわけではない。

 

「mediaとmntの使い分け」

Ubuntuでは、mediaディレクトリはリムーバブルメディア(USBDriveやCDなど)の自動マウントポイントとして使われ、mntは手動マウント用の一時的なマウントポイントとして使われる。

 

この区別は多くのディストリビューションで見られるが、使用方法は管理者やシステム設定に依存する。

 

「init」

Ubuntuの最新バージョンでは、このディレクトリは通常使用されていない。

初期化プロセスは「/sbin/init」や「systemd」に管理される。

 

他のディストリビューションでもinitディレクトリは一般的ではなく、様々なinitシステムによって異なる実装がされている。

 

所有権とパーミッション

Filesystem Hierarchy Standard (FHS)に従って設計されているため、基本的な考え方はLinuxディレクトリ構成に対するものと同じだ。

kei615ykhm.hatenablog.com

 

ただし、Ubuntu独自のディレクトリや、プロジェクトによって追加されるものに対する設定はシステム管理者の決定に従って対応する必要がある。