Linuxの起動順序では、/dev/consoleはいつ初期化されますか?

Linuxの起動順序では、/dev/consoleはいつ初期化されますか?

私はLinuxカーネルに初めて触れました。私はLinuxが使用していることを知っています/dev/コンソールスタートメッセージを印刷するためのデバイスファイル/ドライバ印刷Linuxが起動したとき。ここに答えたように: https://unix.stackexchange.com/a/485198/590780

「Linuxでは、/ dev / consoleは開始(および終了)中にメッセージを表示するために使用されます。」

しかし複数の側面これは私を混乱させる。

一つは:コンソールがLinuxのデバイスドライバの場合、コンソールを使用するにはLinuxカーネルがすでにロードされているか、メモリにロードされている必要があります。そうですか?

Linux起動時またはコンソールドライバを起動する前にCPUなどを検出するログを印刷するにはどうすればよいですか?カーネルロードの開始時にコンソールを使用する方法は?バッファリングされているか、それと似ていますか?それからフラッシュされますか?


第二:カーネルの起動後、もう一つの問題が私を混乱させました。カーネルの初期化時にカーネルがない場合/sbin/初期化プログラムを実行すると、カーネルパニック!この時点で、コンソール出力は引き続き表示されるため、コンソールはまだ開いています。だから正義によると(https://www.qnx.com/developers/docs/6.4.0/neutrino/user_guide/cmdline.html):

「ディスプレイアダプタ、画面、およびシステムキーボードを総称して物理コンソールといい、コンソールドライバによって制御されます。」

私が知っているのは、コンソールドライバもキーボードの音を聞きます! (間違っている場合は訂正してください)

コンソールを開いてもカーネルパニック後に書き込み/印刷できないのはなぜですか?開封可O_RDのみパターンや他のもの?


3番目:2番目は私を3番目に導きます。私の記憶が正しいなら歴史的観点から見ているのだ。初期の仮想コンソールはキーボードとモニターで構成されていました。キーを押すと、そのキーが画面に表示されるか、その文字が表示されますか?それともテレタイプマシンのようです。

すでに/dev/consoleが開いていますが、コンソールに書き込む必要があるのはなぜですか?よりよく表現するために例を挙げましょう。

いくつかのシステムコールを使って/dev/consoleを開くとしましょう。

sys_open(SYS_open, "/dev/console", O_RDWR, ...);

コンソールドライバがキーボードの音を聞く場合は、なぜコンソールに書き込む必要がありますか?

sys_write(SYS_write, "/dev/console", ...);

誰かがこの点を説明してもらえますか?私はどんな提案でも読んで開いています。

ベストアンサー1

おすすめ記事