• ベストアンサー
※ ChatGPTを利用し、要約された質問です(原文:こんにちは。Linux 起動動作の所で質問です。)

Linux起動動作に関する疑問

このQ&Aのポイント
  • Linuxの起動動作で疑問があります。なぜカーネルはSCSIデバイスを認識できないのでしょうか?
  • BIOSはSCSIデバイスを認識できるのに、なぜカーネルは認識できないのでしょうか?
  • Linuxの起動動作について質問です。SCSIデバイスがBIOSで認識されているのに、カーネルから認識できない理由はなぜでしょうか?

質問者が選んだベストアンサー

  • ベストアンサー
  • vaidurya
  • ベストアンサー率45% (2714/5983)
回答No.2

今となってはほとんどのOSでそうですが、BIOSで提供される機能も 改めて、適切なデバイスドライバーを介してアクセスし… BIOSを経由したアクセスを行なわないようになっています。 たとえば、MS-DOSの時代には、BIOS経由のアクセスも使われていましたが それでは、性能面での限界がありますし… たとえばNCQはIBM PC/ATのBIOSに存在しませんし SATAカードにNCQのためのBIOSを搭載することはコスト面と BIOSというLegacyの運用性の面で、優れた方法では無いと思います。 そして性能以上に、マルチタスクOSからの利用において BIOSの提供する機能では、安全なストレージ操作ができません。 これはBIOSがMS-DOSのようなシングルタスクOSのみを想定して作られているためです。 (という話は聞いていますが、具体的にどういう形で不整合事故が生じるのかは知りません) ファイルシステムドライバーとストレージハードウェアの間に デバイスドライバーが無ければ、原始的なBIOSに合わせるために ファイルシステムドライバーが複雑化せざるを得ず… 結果的に、開発効率や安定性を阻害する可能性もあるかもしれません。 実勢としてはNTFSはIBM PC/AT互換機の上でしか動きませんが IRIXとLinuxで動くXFSのように あるいは、AIXとOS/2やLinuxで動くJFSのように… まったく違うハードウェアで動くファイルシステムを実装する上で それぞれが、特定のハードウェア/ファームウェア/BIOSのために 別々のコードを書くなんて、すごく効率の悪い話じゃ無いですか? (厳密にはNTFSにもMIPS用実装はあったはずだし) 言い換えれば、すべてのデバイスドライバーは 「デバイスを動かすためにある」のと同時に 「デバイス活用の分担のためにある」と言えます。 ハードウェアやファームウェアでは融通が効かないところを ソフトウェアで解決するというのは、ごく自然な流れです。 強いて言えば、BIOSアクセスの上に、マルチタスクのためのラッパーを実装すれば 汎用のデバイスドライバーが実現できる可能性はありますが… たぶん、それはまともな速度が期待できるようなものにはならないと思います。

always
質問者

お礼

ご回答ありがとうございました。 ご連絡が遅くなり、申し訳ありませんでした。 とても詳しく丁寧にご説明頂き、ありがとうございました。 確かに、BIOSに全ての機能を搭載するには無理がありましたね。。 適材適所で、それぞれ役割を果たせれば良いので 機能を最小限にしているんですね。 なんとなくですが、OSI参照モデルの概念と似ているのかな…と 思ってみました。 ご回答ありがとうございました!

すると、全ての回答が全文表示されます。

その他の回答 (1)

  • notnot
  • ベストアンサー率47% (4903/10364)
回答No.1

>カーネルにSCSIモジュールが組み込まれていない ということであればSCSIデバイスにアクセスできなくて当然です。 >今まで見えてたんだから、そのまま認識しちゃえば…と思うんですが 今まで見ていた人はBIOS、これから見る人はLinuxカーネル。 英語も日本語も出来る人が英語で仕事してて、英語を知らない人に仕事を引き継いだ(引き継ぎ時の会話は当然日本語でw)。 前任者が英語を読めたからお前も読めるだろうと言われても。。。。。

always
質問者

お礼

ご回答ありがとうございました。 ご連絡が遅くなり、申し訳ありませんでした。 日常になぞらえて、とっても分かり易い解説ありがとうございました! なるほど・・確かにそうですよね。 見る人が違うから、分かるものも違うんですねー ありがとうございました!

すると、全ての回答が全文表示されます。

関連するQ&A