Linuxには7つの仮想コンソールがあり、7つのデバイスファイル/dev/tty[n]
に対応します。
仮想コンソールは、ターミナルエミュレータのように、プロセスとして実行されていますか? (わかりません。仮想コンソールはカーネルの一部のようです。それが正しければ、プロセスにすることはできません。)
仮想コンソールは、端末エミュレーターのように、疑似端末に基づいて実装されていますか? (いいえと思います。それ以外の場合、仮想コンソールのデバイスファイルは/dev/pts/[n]
ではなく/dev/tty[n]
になります)
ありがとう。
それは正しくありません。
Linuxカーネルに組み込まれているターミナルエミュレータプログラムがあります。ファイルハンドルが開いている実行中のプロセスとしては現れません。また、疑似端末デバイスも必要ありません。これは、フレームバッファーと入力イベントサブシステムの上に階層化されており、内部カーネルインターフェイスを使用してアクセスします。これは、アプリケーションモードシステムに一連の63(7ではない)カーネル仮想端末デバイス、/dev/tty1
から/dev/tty63
として表示されます。
ユーザースペース仮想端末は、疑似端末デバイスを使用して実装されます。 Linuxでは、疑似端末デバイス、カーネル仮想端末デバイス、およびシリアルポートの上に階層化された実際の端末デバイスが、(アプリケーションプログラムに関する限り)3種類の端末デバイスです。
調整が不足しているため、Linuxのドキュメントはこの問題に関してかなり悪いものになっています。他の2種類の端末デバイスのページはありますが、いくつかのLinuxオペレーティングシステムのカーネル仮想端末デバイスのマニュアルページは数年前からありません。このマニュアルページでは、正しい番号またはデバイスとそれらのデバイスファイル名について説明し、以下を読んでいました。
Linuxシステムには、最大63の仮想コンソール(メジャー番号4およびマイナー番号1から63の文字デバイス)があり、通常は1 <=の/dev/ttyn
と呼ばれます。 n <= 63.現在のコンソールは、メジャー番号4とマイナー番号0の文字デバイスである/dev/console
または/dev/tty0
によってもアドレス指定されます。
Debianの人々は、Debianが2014年にconsole
(4)マニュアルページを失っていることに気づき、同じプロジェクトの人々がconsole
を削除するためだけに、Linux ManpagesProjectからのマニュアルページのインストールに切り替えました。 (4)「Debianとその派生物はこのページをインストールしない」と「Debianはもうそれを持っていない」ので、2016年の1年と少し後のマニュアルページ。
ttyS
。 Linuxプログラマーズマニュアル。マイケル・ケリスク。 1992-12-19。pty
。 Linuxプログラマーズマニュアル。マイケル・ケリスク。 2017-09-15。console
(4)への参照がありますが、これはもう存在しません。 Debianバグ#774022。console.4
:このパッケージに含まれるようになりました。(クローズ:#774022) "。 マンページ4.04-0.1。変更ログ。console
(4)は古くなっています。カーネルのバグ#110481。console.4
:古いページを削除 "。 man-pages。 kernel.org。Linuxには7つの仮想コンソールがあると言う人がいますが、それはどういう意味ですか?キーショートカットでアクセスできるのは7つしかないということですか?
それらがスポーンされる/すぐに利用できるという意味で。 was/etc/inittab
で、spawningマルチユーザーランレベルのいくつかの(a)gettyによって構成されました。
一度引用すると pideins (getty.target
が私をそこに送ります):
デフォルトでは、この自動スポーンはVT6までのVTに対してのみ実行されます(Linuxシステムの従来のデフォルト構成に近づけるため) 1
1つのVTがGUIによく使用されます-カウントされる場合とされない場合があります。
systemdはそれをより微妙にしますが、結果はまったく同じです。特に矢印キーを使用してttyをめくるときの直交感。
chvt 20
は私を空白の「ターミナル」(デフォルトのsystemd)に置きます-最初にそれをアクティブにするためにいくつかのゲッティが必要です。次に、そのように対処するか、Fnキーをオルガンに変えます。または、Alt-矢印を使用します。
仮想コンソールはプロセスとして実行されていますか
ある意味でそうです。 ttyXを開くにはgetty
プロセスが必要です。
6314 tty2 Ss+ 0:00 /sbin/agetty -o -p -- \u --noclear tty2 linux
6316 tty3 Ss+ 0:00 /sbin/agetty -o -p -- \u --noclear tty3 linux
7408 tty5 Ss+ 0:00 /sbin/agetty -o -p -- \u --noclear tty5 linux
7453 pts/1 S+ 0:00 grep getty