端末ファイルにアクセスできますか?

端末ファイルにアクセスできますか?

1970年代にはハードウェア端末CUIがありました。

私のLinuxボックスには7つの端末エミュレータがあり、GUIは7番目の端末エミュレータ(Ctrl + Alt + F7)を占めています。

たとえば、これは私の最初の端末(Ctrl + Alt + F1)エミュレータです。

$ tty
/dev/tty0

>catユーザースペースでEnterキーを押すと、catプロセスはファイルから入力をstdin受け取るのを待ちます。どのエディタを使用してもファイルを見ること/dev/tty0はできません。/dev/tty0

Processstdinとその両方がファイルを処理しています。stdoutcat/dev/tty0

質問:

一部のエディタを使用して/dev/tty0ユーザースペースからこの端末ファイルにアクセスできますか?

ベストアンサー1

端末ファイルにアクセスしています。しかし、あなたが考えるものとは異なります。

ディスクファイルに書き込んでからそのファイルから読み込むと、読み取った内容が書き込んだ内容になります。端末などの特殊ファイルの場合は該当しません。ファイルは、書き込み可能な項目です。作成された内容と読み取った内容との間の接続は、ファイルの特性によって異なります。文字デバイスファイルの場合、通常、リンクはまったくありません。

端末ファイルは、異なる役割を果たす 2 つのオブジェクト、つまり端末自体とユーザーと対話するアプリケーションを関連付けます。ターミナルは、カーネルで表されるハードウェアまたはターミナルエミュレータ(プロセス)です。アプリケーションがデータを書き込むと、端末はデータの読み取りを開始します(通常は何らかの方法でそれをユーザーに表示します)。アプリケーションがデータを読み取ると、データは通常ユーザーが入力する端末から来ます。

あなたの場合、アプリケーションはShell、Cat、Editorなどです。エディタは端末からデータを読み取ろうとしますが、そうであれば入力を待ち、入力が終了するまで正しく反応することも、そうでない場合もあります。 (最初にCtrl + Dを押すとこれを行うことができます。)ライン転送信号の)。その後、端末から読んだ後、以前に持っていたものは提供されません。出力ターミナルに行きます。

コンソールの場合、端末に書き込まれたデータが画面に描画されます。 Linuxコンソールを使用すると、表示された/dev/tty1テキストをデバイスから再読み込みできます。/dev/vcs1表示可能な状態のままである限り(画面上の内容と後方にスクロールして使用できる内容のみを取得できます。後方にスクロールして到達できない内容は永遠に失われます)。

これはLinuxターミナルインタフェースで提供される機能です。端末は単にピクセルを描くだけで、テキストは忘れることができます。ほとんどの端末エミュレータは同様の機能を提供しません。

¹実際、ほとんどのファイルはこのようなものですが、すべてではありません。このディレクトリは通常のインタフェースを介して書き込むことができず、多くのUNIXバリアントでは読み取ることができません。一部のデバイスは読み取りまたは書き込みをサポートしていませんioctl

おすすめ記事