LPIC Level1試験受験(101)

Linuxの認定試験LPICを受験した。
LPICは受験料がベンダー試験並みの15,000円と高く、2つの試験を合格して初めてレベル認定がされるという営利主義の強い試験。また、Level2試験を受けるためには、Level1試験を合格していなければならない。
ただ、割と人気があって知名度も高い。
今年の4月からお祝い金が会社から出る資格リストに加わったので、試験勉強を始めた。
問題を見てびっくりした。わかってはいたものの4月から試験が少し変わっていて、出題範囲が一部変わっていた。出題範囲をちゃんと確認しておくべきだった。
http://www.lpi.or.jp/exam/200808-101.shtml
情報処理技術者試験とは違って、試験終了ボタンを押すとすぐに結果が分かってしまう怖い試験。それだけに解答は30分で終わったものの、それからしばらく見直し作業をした。
60問中65%が合格ラインだが、回答に自信がない問題がなんと20問もあった。恐る恐る試験終了ボタンを押したところ、
あなたの得点:580
必修合格点:500
結果:合格
という内容が画面に表示され、ほっとした。
しかし、セクションごとの正解率は
System Architecture・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・25%
Linux Installation and Package Management ・・・・・・・・・・・・・・63%
GNU and Unix Commands・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・・73%
Devices, Linux Filesystems, Filesystem Hierachy Standard・・86%
システムアーキテクチャの正解率が低すぎた。
出題数(重要度)が少なかったのが不幸中の幸い。
102試験を合格してようやくLevel1となる。
来週からじっくり勉強をして、102試験は楽にパスできるようにしたい。

ドライバモジュール

モジュールのロード
insmodは依存関係のチェックをせずにモジュールをインストールする
modprobeは依存関係のチェックをしてモジュールをインストールする
モジュールのアンロード
rmmod -a で問題を残さずアンロードができる
モジュールの一覧表示
lsmod cat /proc/modules とほぼ同じ内容を得られる
依存関係ファイルの作成
depmod modules.depファイルを作成する
モジュールに関連する情報を表示
modinfo モジュール名
ドライバモジュールのロードするための設定ファイルは、
/etc/modules.conf (Kernel 2.6以降は /etc/modprobe.conf )に保存される

rpmコマンド

RPM Package Managerの略でソフトウェアのパッケージを管理するためのシステム。
rpm -i –force パッケージ名
現在のインストール状況にかかわらずインストールを行う(依存関係は考慮される)
rpm -e –test パッケージ名
依存関係がなければアンインストールを行う
rpm -e –nodeps パッケージ名
依存関係を無視してアンインストールを行う
rpm -qR パッケージ名
依存関係にあるパッケージを表示
rpm -qf ファイル名
ファイルが含まれるパッケージを表示
rpm -Vp パッケージ名.rpm
インストール済みパッケージをRPMパッケージと比較して不足しているファイルを検証する
rpm -Va
インストール済みのすべてのパッケージにおいて不足しているファイルを検証する

dpkgコマンド

Debianパッケージをインストールする際に利用する
dpkg -i パッケージ名.deb
インストールコマンド apt-get install パッケージ名 (拡張子なし)と同じ
dpkg -purge パッケージ名
完全なアンインストールコマンド apt-get -purge remove パッケージ名 と同じ
dpkg -r パッケージ名
/etc以下の設定ファイルを残してアンインストール apt-get remove パッケージ名 と同じ
dpkg -S ファイル名 or ライブラリ名
パッケージを検索するコマンド auto-apt search ファイル名 or ライブラリ名と同じ
dpkg -audit
インストールが中断して完了していないパッケージを表示

Makefile

includeディレクティブもしくは-includeディレクティブでインクルードしたいファイルを記述する
CPPFLAGSにはCプリプロセッサ用のオプションを指定する

tarコマンド

-tによりアーカイブファイルの内容を一覧表示する
-uによりアーカイブファイルを更新する
-dによりアーカイブファイルとカレントファイルの差分を抽出する
-rによりアーカイブファイルの最後にファイルを追加する

FHS(Filesystem Huerarchy Standard)

Linuxシステムのファイルシステムにおいて特定のディレクトリやファイルの配置及び構造を標準化したもの。
/binは必須で基本コマンドが保存される
/libはカーネル共有ライブラリが保存される
/usr/libはプログラム共有ライブラリが保存される
/usr/local/libはGNU規約で推奨される共有ライブラリが保存される
/usr/X11R6/libはX Window System専用の共有ライブラリが保存される
/varは必須で動的に変更されるデータが保存される
/rootはrootユーザーのホームディレクトリとして利用されるが、必須ではない

ブートローダーとbootパーティション

ブートローダーはハードディスクの先頭512byteに格納されているMBR(Master Boot Recorder)より起動される。LILO(LInux LOader)は設定やカーネルに変更があった場合に再インストールをして設定ファイルを書き換える必要がある。また、設定ファイル(/etc/lilo.conf)を編集した場合には、/sbin/liloを実行する必要がある。
LILOのオプションは次の通り
・ブートファイルを読み取り専用に設定する場合には、read-onlyオプションを指定する
・ブート対象となるデフォルトのカーネルイメージは、defaultオプションで指定する
・ルートとしてマウントする場所は、rootオプションを指定する
・パスワード入力を必須にする場合には、passwordオプションを指定する(restrictedオプションをし指定すると、ブートの際にパラメータを指定した場合に限りパスワード入力が必要となる)
bootパーティションにはディスクの先頭から1024シリンダ(約8GB)以内に配置され、カーネルが保存される領域であり、リビルドの際に利用される。

ジョブの操作

たとえば、vmstat 3 100
とすると、vmstatコマンドは、フォアグランドで動作する。
また、vmstat 3 100 &
とするとvmstatコマンドは、バックグラウンドで動作する。
いずれの場合も、SSHで接続している場合に、exitをしても接続が切断されず、SSHを強制的に切断するとプロセスが強制終了してしまう。(シェルの種類とsshのバージョンによっては挙動が異なるようだ)
リモート接続している場合において、処理が接続中に終わらないことが分かっている場合には、
nohup vmstat 3 100 &
などとすることで、exitをすれば接続が切断される。
ただ、当初はすぐに終わる処理だと思っていて、フォアグラウンドで処理していたが、なかなか終わらない場合には、(bashシェルの場合)次の操作をするとよい。
Shift+Z でフォアグラウンド処理を停止したうえで、
jobsコマンドを発行し、対象のジョブ番号を確認する。
そして、bg ジョブ番号
とすることでバックグラウンドプロセスに変更できる。(フォアグラウンドプロセスにする場合には、fcコマンドをする)
そのうえで、disown %ジョブ番号
とすれば、nohupしたのと同じ状態になるはずなのだが、自分の環境ではうまくいかない。

シリアルポート

・標準的なインターフェイスはRS-232Cである。
・1ビット単位でデータを転送する
・ブートローダーとLinuxカーネルでは、同じ速度を使用するように設定する必要がある。(異なる速度を設定するとカーネルパニックが発生し、再起動が必要)