本章では、工場出荷状態のArmadillo-Box WS1のユーザーランドの基本的な仕様について説明します。
Armadillo-Box WS1の標準ルートファイルシステムは、Atmark Distで作成されたinitrdです。PCなどで動作する Linux システムでは、initrd は HDD などにあるルートファイルシステムをマウントする前に一時的に使用する「ミニ」ルートファイルシステムとして使用されます。Armadillo-Box WS1 では、initrd をそのままルートファイルシステムとして使用します。
initrdはメモリ上に配置されるため、ファイルに加えた変更は再起動すると全て元に戻ってしまいます。例外として/etc/config/
ディレクトリ以下のファイルは、flatfsd
コマンドを利用してフラッシュメモリに保存することができます。このフラッシュメモリ領域をコンフィグ領域と呼びます。
コンフィグ領域を利用することで、設定ファイルなどへの変更を再起動後も保持することができるようになっています。コンフィグ領域のより詳細な情報については7章コンフィグ領域 − 設定ファイルの保存領域を参照してください。
Armadillo-Box WS1のユーザーランドの起動処理について説明します。ユーザーランドの起動処理は大きく分けて次の手順で初期化が行われています。
Linuxカーネルが/sbin/init
を実行し/etc/inittab
のsysinitに登録されている/etc/init.d/rc
スクリプトを実行
rcスクリプトの中で、「/etc/rc.d/
」ディレクトリの起動スクリプトを順次実行
ローカル起動スクリプト(/etc/config/rc.local
)を実行
/etc/inittab
のrespawnタブに登録されたものを実行
Linuxカーネルは、ルートファイルシステムをマウントすると、/sbin/init
を実行します。initプロセスは、コンソールの初期化を行い/etc/inittab
に記載された設定に従ってコマンドを実行します。
デフォルト状態のArmadillo-Box WS1の/etc/inittab
は次のように設定されています。
inittabの書式は、次のようになっています。
Armadillo-Box WS1のinitでは、"id"フィールドに起動されるプロセスが使用するコンソールを指定することができます。省略した場合は、システムコンソールが使用されます。"runlevel"フィールドは未対応のため利用できません。
"action"フィールド及び"process"フィールドは、どのような状態(action)のときに何(process)を実行するかを設定することができます。actionフィールドに指定可能な値を表9.1「inittabのactionフィールドに設定可能な値」に示します。
表9.1 inittabのactionフィールドに設定可能な値
値 | processを実行するタイミング |
---|
sysinit | initプロセス起動時 |
respawn | sysinit終了後。このアクションで起動されたプロセスが終了すると、再度processを実行する |
shutdown | シャットダウンする時 |
ctrlaltdel | Ctrl-Alt-Deleteキーの組み合わせが入力された時 |
rcスクリプトでは、システムの基礎となるファイルシステムをマウントしたり、「/etc/rc.d/
」ディレクトリ以下にあるSから始まるスクリプト(初期化スクリプト)が実行できる環境を構築します。その後、初期化スクリプトを実行していきます。初期化スクリプトは、Sの後に続く2桁の番号の順番で実行します。
9.2.3. /etc/rc.d/Sスクリプト(初期化スクリプト)
初期化スクリプトでは、システムの環境を構築するもの、デーモン(サーバー)を起動するものの2つの種類があります。Armadillo-Box WS1のデフォルト状態で登録されている初期化スクリプトを表9.2「/etc/rc.dディレクトリに登録された初期化スクリプト」に示します。
表9.2 /etc/rc.dディレクトリに登録された初期化スクリプト
スクリプト | 初期化内容 |
---|
S03udev | udevdを起動し、Linuxカーネルから発行されたueventをハンドリングします |
S04flatfsd | flatfsdを使いコンフィグ領域(/etc/config/)を復元します |
S05checkroot | システム関連のファイルのパーミッション設定や、オーナーを設定します |
S06mountdevsubfs | udevd起動後にマウントする必要のあるファイルシステムをマウントします |
S10syslogd, S20klogd | ログデーモンを起動します |
S25module-init-tools | /etc/modulesに記載されたカーネルモジュールをロードします |
S30firewall | ファイヤーウォールの設定を行います |
S30hostname | hostnameを設定します |
S40networking | ネットワーク関連の初期化を行い、インターネットスーパーサーバー(inetd)を起動します |
S71avahi | ネットワークデーモンを起動します |
S99rc.local | コンフィグ領域(/etc/config/)に保存されたrc.localを実行します |
9.2.4. /etc/config/rc.local
コンフィグ領域に保存されたrc.local
は、ユーザーランドイメージを変更することなく、起動時に特定の処理を行うことができるようになっています。
Armadillo-Box WS1では、システム起動時に呼び出されはしますが、特に何もしていません。
デフォルト状態の/etc/config/rc.localは
次のように記載されています。
デフォルトのユーザーランドにインストールされているアプリケーションを一覧します。
/bin
/usr/bin
/sbin
/usr/sbin
デフォルトのユーザーランドにインストールされているアプリケーションの中から、いくつかをピックアップし概要を説明します。
表9.3 アプリケーション概要説明
アプリケーション | 概要 |
---|
Java | オブジェクト指向プログラミング言語です。Armadillo-Box WS1ではOracle Javaが使用可能です。 |
cURL | ファイルを送信または受信するコマンドラインツールです。幅広いインターネットプロトコルをサポートします。Armadillo-Box WS1では、curl コマンドにて実行が可能です。 |