ttyファイルでデバイスを見つけますか?

ttyファイルでデバイスを見つけますか?

これは私のUbuntuです。

$ ls /dev/*tty*
/dev/tty    /dev/tty17  /dev/tty26  /dev/tty35  /dev/tty44  /dev/tty53  /dev/tty62      /dev/ttyS12  /dev/ttyS21  /dev/ttyS30
/dev/tty0   /dev/tty18  /dev/tty27  /dev/tty36  /dev/tty45  /dev/tty54  /dev/tty63      /dev/ttyS13  /dev/ttyS22  /dev/ttyS31
/dev/tty1   /dev/tty19  /dev/tty28  /dev/tty37  /dev/tty46  /dev/tty55  /dev/tty7       /dev/ttyS14  /dev/ttyS23  /dev/ttyS4
/dev/tty10  /dev/tty2   /dev/tty29  /dev/tty38  /dev/tty47  /dev/tty56  /dev/tty8       /dev/ttyS15  /dev/ttyS24  /dev/ttyS5
/dev/tty11  /dev/tty20  /dev/tty3   /dev/tty39  /dev/tty48  /dev/tty57  /dev/tty9       /dev/ttyS16  /dev/ttyS25  /dev/ttyS6
/dev/tty12  /dev/tty21  /dev/tty30  /dev/tty4   /dev/tty49  /dev/tty58  /dev/ttyprintk  /dev/ttyS17  /dev/ttyS26  /dev/ttyS7
/dev/tty13  /dev/tty22  /dev/tty31  /dev/tty40  /dev/tty5   /dev/tty59  /dev/ttyS0      /dev/ttyS18  /dev/ttyS27  /dev/ttyS8
/dev/tty14  /dev/tty23  /dev/tty32  /dev/tty41  /dev/tty50  /dev/tty6   /dev/ttyS1      /dev/ttyS19  /dev/ttyS28  /dev/ttyS9
/dev/tty15  /dev/tty24  /dev/tty33  /dev/tty42  /dev/tty51  /dev/tty60  /dev/ttyS10     /dev/ttyS2   /dev/ttyS29
/dev/tty16  /dev/tty25  /dev/tty34  /dev/tty43  /dev/tty52  /dev/tty61  /dev/ttyS11     /dev/ttyS20  /dev/ttyS3

7つの仮想コンソールがあります。

また、gnome端末にいくつかのタブが開いており、2つのemacs(一部のシェルが実行されていますがすべて閉じられている可能性があります)とスクリーンセッション(しかし今は閉じています)があります。

  1. /dev/tty/dev/tty[[:digit:]]+これら、そしてそして/dev/ttyprintkの違いは何ですか/dev/ttyS[[:digit:]]+
  2. 各ttyファイルがどのデバイスに対応しているかを確認する方法は?
  3. 一部の人々はpseudo-ttyのデバイスファイルが/ dev /であると言います。フーティところで、ここに pty ファイルやディレクトリがない理由は次のとおりです。

    $ ls /dev/*pty*
    ls: cannot access /dev/*pty*: No such file or directory
    
  4. どういう意味なのかよくわかりません/dev/*pts*

    $ ls /dev/*pts* 
    0  1  10  11  12  13  14  15  16  17  18  2  20  21  22  23  24  26  3  4  5  6  7  8  9  ptmx
    

ありがとうございます!

答え1

ターミナルとは何ですか?

端末は画面とキーボードで構成されており、コンピュータ(ホスト)との通信を行うために使用されます。ほとんどパーソナルコンピュータのように使用されますが、端末は通信しているホストコンピュータから離れています(部屋の反対側、さらには世界の反対側)。

質問1

  1. /dev/tty現在のプロセスの制御端末を表します(存在する場合)。どのttyがどのプロセスに接続されているかを確認するには、ps -aシェルプロンプト(コマンドライン)でこのコマンドを使用します。ttyコラムを読んでください。現在使用中のシェルプロセスの場合、 /dev/tty現在使用中の端末です。
  2. Linuxでは、PCモニタはコンソールと呼ばれ、それに関連するいくつかのデバイス特殊ファイル(、tty0など)があります。ログインしてください。移動するには - を押します。 、等。tty1tty2tty1tty2AltF2tty1tty2仮想端末(時には「仮想コンソール」とも呼ばれる)。さまざまな仮想端末にログインして、コンピュータ上で同時に複数のセッションを持つことができます。 「?」で - キーを使ってAlt2つを切り替えることができます。F?希望する仮想端末番号です。コンソールとも呼ばれる /dev/tty0システムメッセージは、デバイスに送信され、コンソールに表示されることがあります。システムまたはrootユーザーだけが、時にリンクされた/dev/tty0コンテンツに書き込むことができます/dev/console
  3. ttyprintkprintkユーザーがデバイスに出力してメッセージを送信できるようにする擬似TTYドライバ。ttyprintk
  4. /dev/tty/S[[:digit:]]シリアルポートを示します。各端末はホストシステム(通常はPC)のシリアルポートに接続されています。ポートには名前/番号があります。最初のいくつかはttyS0ttyS1などです。これは(デバイス)ディレクトリttyS2にある特別なファイルとして表示されます。 DOSやWindowsのCOM1に対応します。 COM2などです。/devttyS0ttyS1

質問3そして質問4関係があります。ザイルズの素晴らしい説明があります。ここ。彼の答えから抜粋した内容は次のとおりです。

擬似端末は、アプリケーションである端末エミュレータによって提供されます。擬似端末のいくつかのタイプは次のとおりです。

  • GUIアプリケーション(xterm、gnome-terminal、konsoleなど)は、キーボードイベントとマウスイベントをテキスト入力に変換し、出力を特定のフォントでグラフィカルに表示します。
  • マルチプレクサアプリケーション(screenやtmuxなど)は、他の端末の入力と出力を中継して、実際の端末からテキストモードのアプリケーションを分離します。
  • リモートシェルアプリケーション(sshd、telnetd、rlogindなど)は、クライアントのリモート端末とサーバーのptyの間で入出力を中継します。

さらに、擬似ターミナルウィキページ、次のメッセージが表示されます。

デフォルトのデバイスファイルの名前は通常/dev/pty [p-za-e] [0-9a-f]で、端末エミュレータとの通信のためのエンドポイントです。この[p-za-e]命名方式を使用すると、最大256個のttyペアを持つことができます。また、ロック方式を使用しない限り、最初の無料のPtyマスターを見つけることは危険です。したがって、最新のBSDオペレーティングシステム(FreeBSDなど)はUnix98 PTYを実装しています。 [4]

BSD PTYはUnix98 ptyによって削除されました。 Unix98 ptyの命名システムは疑似端末の数を制限せず、疑似端末へのアクセスは競合状態のリスクをもたらさない。 /dev/ptmx は「擬似ターミナルマスターマルチプレクサ」です。これを開くと、マスターノードのファイル記述子が返され、関連付けられたスレーブノード/dev/pts/Nが作成されます。

だから私はそれを使用できないと思います。/dev/ptyだからあなたは。/dev/pts

引用する

http://www.tldp.org/HOWTO/Text-Terminal-HOWTO-7.html

Linux:/dev/console、/dev/tty、および/dev/tty0の違い

http://lkml.iu.edu/hypermail/linux/kernel/1009.0/00333.html

関連情報