Linux の「ユーザーランド」という言葉をよく聞くけどちゃんと理解してなかったのでメモ
Linux の場合です。 FreeBSD や NetBSD なども「ユーザーランド」という言葉を使いますが、ここでは Linux のみ扱います。
ユーザーランドとは
OS のうちカーネル以外のことをユーザーランドと言います。実装としては GNU Coreutils がよく使われるようです。ユーザーランドは GNU Coreutils だけでなく、管理者やユーザーがインストールしたパッケージも含まれます。分類すると以下のとおり。
- OS
- カーネル
- ユーザーランド
- GNU core utilities cat や ls など
- util-linux dmesg や fdisk など
- そのほか様々なパッケージ
BusyBox
組み込み Linux ではユーザーランドとして BusyBox がよく使われるようです。
BusyBox は GNU core utilities などに含まれるコマンド群(cat や ls など)を 1 つの実行ファイルにまとめたものです。コマンド群も 1 つ 1 つが実行ファイルですが、これらをすべて 1 つの実行ファイルにまとめることで、ファイル容量や実行時間を削減できます。
組み込み用途の場合はストレージやメモリの制約が厳しいので BusyBox のようなアプローチが必要とされます。ようするに容量が少ないので節約する必要があります。
参考
Linuxの最も基本となるGNU Core Utilitiesの基礎知識 | TECH+
*BSD系のオペレーティングシステムはユーザランドのコマンドやツールも含めてプロジェクトが開発を行っている。Linuxではカーネルとユーザランドコマンドは別のパッケージとなっており、ディストリビューションベンダーやプロジェクトがそれらを取りまとめて配布を行っている。
この記事では less, ls, grep などの GNU/Linux システムのコアユーティリティを扱っています。この記事の扱う範囲は GNU coreutils パッケージに含まれているユーティリティに留まりません。ユーティリティに関連する様々なヒント・小技、その他便利な情報を載せています。
GNU Core Utilities - Wikipedia
GNU Core UtilitiesまたはCoreutilsはUnix系のOSで中心的 (core) なcat、ls、rmなどのユーティリティ群のパッケージ、ないし、その開発とメンテナンスを行うGNUプロジェクトの1サブプロジェクトである。以前はfileutils、textutils、shellutilsに分かれていた。
util-linux is a standard package distributed by the Linux Kernel Organization for use as part of the Linux operating system.
BusyBox(ビジーボックス)は、Coreutilsなど標準UNIXコマンドで重要な多数のプログラムを単一の実行ファイルに「詰め込んで」提供する、特殊な方式のプログラムである(その詰め込み方法を指して呼ぶこともある)。BusyBoxの実行ファイルはLinux上で最小の実行ファイルとなるよう設計されており、各コマンドの実行ファイルをインストールするのに比べディスクの使用量を大幅に削減することができる。
Discussion