質問: 現在Linuxについて学習しているものです。Linuxのデバイス周りについて学習しています。そこで、Linuxに接続されているデバイスは全て/dev/配下にデバイスファイルとして認識されるという事がわかりました。しかし、lsしてみると実際見てみると、非常に多くのデバイスファイルが存在している事がわかりました。まずは、接続されているハードディスクやCD DVDなどがどれかを知りたいと思い、WEBで調べて見たところ、/dev/hd*もしくは、/dev/sda*あたりだと検討がついたのですが、それぞれの説明がよく理解できません。 以下の説明のIDEプライマリーのマスターディスク、SATA,SCSIとはなんでしょうか? /dev/hda : IDEプライマリーのマスターディスク。 /dev/sda : SATAもしくはSCSI。
回答: SCSIやATAなどの規格の話はデーターレスキューセンターさんのサイトやASCIIの連載を読んで頂ければ参考になるかと。 IDEは規格として「プライマリチャネル」と「セカンダリチャネル」と2系統にそれぞれ機器を接続できるようになっています。 それを拡張したエンハンスドIDE(E-IDE)になると、各チャネルのケーブルに「マスター」と「スレーブ」の2台の機器が接続できるようになり、合計で4台の機器が接続できるようになりました。 一昔前まではSCSI規格よりも回路周りが安価ということでIDE規格のハードディスクが主流でしたが、ケーブルが幅広で取り回しにくい、ハードディスクのジャンパピンでいちいちマスター/スレーブを設定してやらないといけない、最大で4台までしか接続出来ない等々の欠点もありました。 そのせいか、ケーブルが細くなり取り回しもしやすく、ジャンパピンの設定なども不要なシリアルATA(SATA)の方が今は多くなっています。 更に高速なSASなどの規格も出てきており、最近の業務用サーバではSASをよく見かけます。 「/dev/hd*」と「/dev/sd*」について。 Kernel 2.4系や2.6.18より古いLinuxなどで採用されていた古いドライバでは、IDEとかSATAのハードディスクは「/dev/hd*」と表示されていました。 これがKernel 2.6.18以降から「libata」が採用されたため、SCSI系と同じように「/dev/sd*」と表示されるようになりました。 簡単な経緯はこのページを参考にして下さい。