ユーザーランド【userland】
ユーザーランドとは?

現代的なOSでは、ハードウェアに直接アクセスすることができる「カーネル」(kernel)が他の要素を配下に置いて管理する仕組みとなっているものが多い。カーネルはメモリの仮想空間に設けられた「カーネル空間」(kernel space)で実行され、設定や動作への介入には管理者(特権ユーザー)権限が必要となる。このカーネル以外の領分をユーザーランドと呼ぶ。
ユーザーランドで動作するプログラムは、ハードウェアやシステム資源へ直接アクセスすることができない。ディスクへの書き込みやネットワーク通信など特権的な操作が必要な場合は、「システムコール」(system call)という仕組みを通じてカーネルへ処理を依頼する。この分離構造により、アプリケーションが異常終了したり不正な処理を行ったりしても、カーネルや他のプロセスへの影響を最小限に抑えられる。
LinuxなどのUNIX系OSでは、Webブラウザや文書作成ソフトのようなアプリケーションだけでなく、シェルやファイル操作コマンド、各種ライブラリ、システムユーティリティなどもユーザーランド側で管理される。これらはカーネルとは独立して更新・交換が可能であり、同じカーネルを使用していても、組み合わせるユーザーランドの構成によって操作感や利用できる機能が大きく異なる。
例えば、一般的なLinuxディストリビューションでは、Linuxカーネルと、GNUプロジェクトが提供するコマンド群やライブラリを組み合わせることでOSとして完結した環境を構成している。一方、Androidは同じLinuxカーネルを利用していても、ユーザーランドは米グーグル(Google)社が開発したモバイル端末向けのライブラリやツールなどを中心に構成され、一般的なLinuxシステムとは構成要素が大きく異なっている。