101-1. システムアーキテクチャ
- ハードウェア設定の決定と構成
- ハードウェアの種類、proc以下でデバイス情報を確認できる
- システムのブート
- ランレベルの変更とシステムシャットダウンまたはリブート
1. ハードウェア設定の決定と構成
基本的なシステムハードウェア
- CPU, メモリ, ハードディスク,入力装置,拡張カード,USB機器等
デバイスの確認
- Linuxカーネルが認識しているデバイスに関する情報(プロセス情報)は、/proc以下のファイルで確認できる
- /proc/bus/usb/等
- 「lsusb」コマンドや「lspci」コマンドでもデバイスの確認は出来る(オプションに-vvをつけて実行すると詳細な情報が確認出来る)
- ファイルの中身は「/dev」に格納されている(「/proc」はデバイスに関する情報、「/dev」はデバイス自体)
- 「lsmod」コマンドは、ロードされているカーネルモジュールを確認できる
- 「modprobe」コマンドは、手動でカーネルモジュールをロード出来る(「modprobe ドライバ名」で実行)
2. システムのブート
- BIOS→ブートローダ→カーネル→init
- 「dmesg」コマンドで起動時のイベントを確認出来る
- 「/var/log/messages」にも起動時のメッセージが記録されている
- 「init」はLinuxで最初に実行されるプロセス
- 「/etc/inittab」ファイルの設定に従い、システムに必要なサービスを起動
3. ランレベルの変更とシステムシャットダウンまたはリブート
ランレベル
- ランレベルとは、実行レベルと呼ばれるいくつかの動作モード
- 1(1人)又はS(シングル)はシングルモード、2~5はマルチ、0は停止、6は再起動
- 「runlevel」コマンドで、現在のランレベルの確認
- 「init 2」コマンドで、ランレベルを変更(引数の2はランレベル2を指定している)
- 「/etc/rc<ランレベル>.d」に起動又は終了するスクリプトが格納されている
- 「/etc/inittab」でデフォルトのランレベルを変更できる
システムのシャットダウン
# shutdown [オプション] 時間 [メッセージ]
オプション | 説明 |
---|---|
-h | 停止 |
-r | 再起動 |
-f | 次回起動時fsckをスキップ |
-F | 次回起動時fsckを実行 |
-k | 停止せず、警告のみ |
-c | 停止をキャンセル |
おまけ
pci
- PCIとは、パソコン内部の各パーツ間を結ぶバス(データ伝送路)の規格
- PCIバス(マザーボードにある白い部分) - PCIカード(PCIバスにさしてインターフェースに出来る、写真はUSBの拡張カード)
プラグイン、ライブラリ、コンポーネント、モジュールの違い
業務のドメインや会社・組織、部署、チーム、はてはプロジェクトごとに、コンポーネント、モジュール、その他もろもろの定義はぜんぜん違うので参考までに。
項目 | 説明 | 単体動作 | 有名なソフトウェア | 備考 |
---|---|---|---|---|
プラグイン | ソフトウェアを拡張するためのプログラム。ソフトウェアを使用する人が入替可能なプログラムの一部のこと | ☓ | FireFoxのプラグイン等 | |
ライブラリ | 有用で汎用性の高い関数・クラス・その他を再利用可能な形でひとまとめにしたもの。プラグインとの違いは汎用性。特定のソフトウェアを対象としてかかれていない。 | △ | コマンドで使う時のファイル | $ ldd /bin/cplinux-gate.so.1 => (0x0083b000) |
コンポーネント | ソフトウェアの部品。ある機能を持ったプログラムの部品。 | △ | ||
モジュール | ソフトウェアの部品。ある手続き (関数やメソッド) とデータ構造をひとまとめにした部品。 | △ | $ lsmod Module Size Used by vboxsf 35545 1 |
コンポーネントはソフトウェアの部品で、モジュールもソフトウェアの部品です。
モジュールはある手続き (関数やメソッド) とデータ構造をひとまとめにした部品です。 大抵の場合、モジュール単体でコンパイル可能ですが、動作はしません。 この説明だけだと、クラスとモジュールの違いがわからなくなりますが、一番大きな違いは、クラスはインスタンスとしてオブジェクトを生成しますが、モジュールは生成しない点でしょう。
コンポーネントはある機能を持ったプログラムの部品です。
大抵の場合、コンポーネント単体では動作しません。
非常に漠然とした回答で申し訳ないですが、モジュールを複数組み合わせた位のモノがコンポーネントと思っていただければありがたいです。
粒度的には
プログラム (←これ単体でやっと動く) > コンポーネント > モジュール > クラス
です。
参考:http://okwave.jp/qa/q5956620.html