Linux道場入門編
第4回H/W(PC)とLinux
今回はLinuxとPCのH/W(HardWare)についてのお話です。PCの基本的なH/Wの構造については皆さんもご存知かと思いますが、 Linuxを利用する場合H/W環境を理解していることにより、深くLinuxを理解することができます。例えばブートシーケンス、ファイルシステムやトラブルシューティングなどはこのH/Wの知識が必要になる場合があります。
LinuxとH/Wの関係
OSの重要な役割の1つに、H/Wの抽象化というものがあります。抽象化とは一度に注目すべき概念を減らすこと、およびその仕組みのことで、OSがやっているH/Wの抽象化とは、H/W操作の煩雑さをOSが楽にしましょうというものです。
本来H/Wを操作するためには、様々な要素を自分でコントロールする必要があるのですが、これをOSが変わりにやってくれているということになります。
Linuxも同様にH/Wを抽象化しています。このためLinuxを深く理解するためには、ある程度のH/Wの知識が必要になります。
例えば、PCにIDE接続されているHDDを考えて見ます。IDE接続は物理的に以下の4つのマザーボード上のインターフェイスに接続が可能です。
- プライマリチャンネルのマスタ
- プライマリチャンネルのスレーブ
- セカンダリチャンネルのマスタ
- セカンダリチャンネルのスレーブ
これは、そのままLinuxからH/Wを見る際のデバイスファイルといわれるものに関連付けられており、それぞれ以下のような対応になります。
- プライマリチャンネルのマスタ→hda
- プライマリチャンネルのスレーブ→hdb
- セカンダリチャンネルのマスタ→hdc
- セカンダリチャンネルのスレーブ→hdd
- ※デバイスファイルについては後の回でお話します。
そして、各チャンネルに接続されたHDDはパーティションといわれるいくつかの領域に分割できます。
例えば、プライマリチャンネルのマスタの1番目のパーティションならば、Linuxではhdaの1番目となり、「hda1」というデバイスファイルになります。このように、H/Wの構造はそのままLinuxのシステムと対応しており、Linuxのシステム全体を知るためには、H/Wの知識が必要であることがわかります。
LinuxとH/Wの関係
H/Wの知識はLinuxを理解するだけではなく、最初のステップのインストール時にもその知識が必要になるときがあります。現在のインストーラは各ディストリビューションによって異なりますが、使い勝手などが洗練されており、WindowsなどのOSと同様の感覚でインストールができるようになっています。
ただ細かい設定をしようとすると、どうしてもそれなりの知識が必要になってきます。
例えば、インストールフローにおいてブートローダの設定や、HDDレイアウト設定、ディスプレイの設定などH/Wと密接に関連づいた設定をする必要があります。特にHDDレイアウトの設定は自動化できますが、任意で設定をする場合、HDDの知識は少なくとも必要ですし、Linuxのファイルシステムの考え方の知識も必要になってきます。
- ※Linuxのファイルシステムの考え方についても後の回でお話します。
また、Linuxは低スペックのマシン(IntelのCPUでいうと、Pentium以前のi386やi486)でも軽快に動作するという特徴がありますが、この低スペックなマシンは古いマシンとも言い換えることができます。古いマシンではH/Wのインターフェイスも古い場合があり、その場合自分の手でH/Wのスイッチを物理的に操作し、Linux上で設定を行う必要があるなど、色々とOSの操作だけでは解決しない問題もあります。このようなときには、やはりH/Wの知識が必要になりますし、なにかのトラブルが発生した場合、それがOSの問題なのかH/Wの問題なのかを切り分けるなどのトラブルシューティングの際にもやはりその知識が必要になります。
- ※いまどき古いPCといってもH/Wスイッチをコントロールすることはないでしょうが、
組込みの世界では普通にあったりします。
H/Wの世界は突き詰めればものすごく奥の深いものですが、コンピュータを本当に理解しようとすればそれなりにH/WもOSもS/W(SoftWare)も知っておく必要があるということです。
このような考え方はユーザとして、しかもGUI上でLinuxを操作している場合には意識する必要はないかもしれません。しかし技術者としてLinuxを理解するためには必須の知識だといえます。
コラム執筆/末永 貴一
株式会社エイチアイ研究開発部 部長
ヒューマンインターフェイスの研究開発、コンテンツの開発を行う株式会社エイチアイで次世代技術の研究開発を行う業務を担当している。 オープン系のシステム開発事業、教育事業を経て、自社独自の組込み機器向け3DリアルタイムレンダリングエンジンであるミドルウェアのMascotCapsuleを中心とした開発に従事した。数年前にLinuxを知ってからはサーバ構築、開発、教育、執筆などさまざまな場面で関わるようになり、現在では組込み開発でもLinuxを利用することもある。