なぜそれほど多くの仮想端末デバイスがあるのですか?


11

私はAdvanced Linux Programmingの本を読んでいて、仮想端末について言及しています。正しく理解していれば、それは非X11システムで複数のログインコンソールを許可するLinux固有の機能(Unixではない)です。ALT-F2を押して仮想端末を作成します。Linux Mintを実行していて、/ devフォルダーで、多くのttyデバイスを表示していますが、それらの用途がわかりません。次に、greppedの出力を示します。

crw-rw-rw-  1 root tty       5,   0 Jan  2 19:45 tty
crw--w----  1 root tty       4,   0 Jan  2 19:10 tty0
crw-rw----  1 root tty       4,   1 Jan  2 19:10 tty1
crw--w----  1 root tty       4,  10 Jan  2 19:10 tty10
crw--w----  1 root tty       4,  11 Jan  2 19:10 tty11
crw--w----  1 root tty       4,  12 Jan  2 19:10 tty12
crw--w----  1 root tty       4,  13 Jan  2 19:10 tty13
crw--w----  1 root tty       4,  14 Jan  2 19:10 tty14
crw--w----  1 root tty       4,  15 Jan  2 19:10 tty15
crw--w----  1 root tty       4,  16 Jan  2 19:10 tty16
crw--w----  1 root tty       4,  17 Jan  2 19:10 tty17
crw--w----  1 root tty       4,  18 Jan  2 19:10 tty18
crw--w----  1 root tty       4,  19 Jan  2 19:10 tty19
crw-rw----  1 root tty       4,   2 Jan  2 19:10 tty2
crw--w----  1 root tty       4,  20 Jan  2 19:10 tty20
crw--w----  1 root tty       4,  21 Jan  2 19:10 tty21
crw--w----  1 root tty       4,  22 Jan  2 19:10 tty22
crw--w----  1 root tty       4,  23 Jan  2 19:10 tty23
crw--w----  1 root tty       4,  24 Jan  2 19:10 tty24
crw--w----  1 root tty       4,  25 Jan  2 19:10 tty25
crw--w----  1 root tty       4,  26 Jan  2 19:10 tty26
crw--w----  1 root tty       4,  27 Jan  2 19:10 tty27
crw--w----  1 root tty       4,  28 Jan  2 19:10 tty28
crw--w----  1 root tty       4,  29 Jan  2 19:10 tty29
crw-rw----  1 root tty       4,   3 Jan  2 19:10 tty3
crw--w----  1 root tty       4,  30 Jan  2 19:10 tty30
crw--w----  1 root tty       4,  31 Jan  2 19:10 tty31
crw--w----  1 root tty       4,  32 Jan  2 19:10 tty32
crw--w----  1 root tty       4,  33 Jan  2 19:10 tty33
crw--w----  1 root tty       4,  34 Jan  2 19:10 tty34
crw--w----  1 root tty       4,  35 Jan  2 19:10 tty35
crw--w----  1 root tty       4,  36 Jan  2 19:10 tty36
crw--w----  1 root tty       4,  37 Jan  2 19:10 tty37
crw--w----  1 root tty       4,  38 Jan  2 19:10 tty38
crw--w----  1 root tty       4,  39 Jan  2 19:10 tty39
crw-rw----  1 root tty       4,   4 Jan  2 19:10 tty4
crw--w----  1 root tty       4,  40 Jan  2 19:10 tty40
crw--w----  1 root tty       4,  41 Jan  2 19:10 tty41
crw--w----  1 root tty       4,  42 Jan  2 19:10 tty42
crw--w----  1 root tty       4,  43 Jan  2 19:10 tty43
crw--w----  1 root tty       4,  44 Jan  2 19:10 tty44
crw--w----  1 root tty       4,  45 Jan  2 19:10 tty45
crw--w----  1 root tty       4,  46 Jan  2 19:10 tty46
crw--w----  1 root tty       4,  47 Jan  2 19:10 tty47
crw--w----  1 root tty       4,  48 Jan  2 19:10 tty48
crw--w----  1 root tty       4,  49 Jan  2 19:10 tty49
crw-rw----  1 root tty       4,   5 Jan  2 19:10 tty5
crw--w----  1 root tty       4,  50 Jan  2 19:10 tty50
crw--w----  1 root tty       4,  51 Jan  2 19:10 tty51
crw--w----  1 root tty       4,  52 Jan  2 19:10 tty52
crw--w----  1 root tty       4,  53 Jan  2 19:10 tty53
crw--w----  1 root tty       4,  54 Jan  2 19:10 tty54
crw--w----  1 root tty       4,  55 Jan  2 19:10 tty55
crw--w----  1 root tty       4,  56 Jan  2 19:10 tty56
crw--w----  1 root tty       4,  57 Jan  2 19:10 tty57
crw--w----  1 root tty       4,  58 Jan  2 19:10 tty58
crw--w----  1 root tty       4,  59 Jan  2 19:10 tty59
crw-rw----  1 root tty       4,   6 Jan  2 19:10 tty6
crw--w----  1 root tty       4,  60 Jan  2 19:10 tty60
crw--w----  1 root tty       4,  61 Jan  2 19:10 tty61
crw--w----  1 root tty       4,  62 Jan  2 19:10 tty62
crw--w----  1 root tty       4,  63 Jan  2 19:10 tty63
crw--w----  1 root tty       4,   7 Jan  2 19:10 tty7
crw--w----  1 root tty       4,   8 Jan  2 19:10 tty8
crw--w----  1 root tty       4,   9 Jan  2 19:10 tty9

4
実際には、CTRL-ALT-F1(など)を押してLinux VTを作成していません。それらはすでにそこにあります。ディスプレイマネージャーが起動時に自動的に呼び出され、Xで終了したため、それらは表示されません。 (紛らわしいことに、tty 7で実行します)。チェックアウトする/etc/inittabと、これがどのように機能するかがわかります。
Emanuel Berg

回答:


10

これらは特にLinux用語では仮想コンソールデバイスです。同じ物理デバイスで仮想コンソールをサポートすることはLinuxに固有のものではありません(たとえば、BSDはそれらを「ハードウェアターミナルポート」と呼びます)。

Linuxには、オンデマンドでコンソールデバイスを作成するメカニズムがありません。63台のコンソールは(あなたが有効にする必要があり、常にアクティブではありませんttyN(とそれに切り替えるためにCtrl+)Alt+ FN()、しかし、1つのコンソールデバイスを開く必要がアクティブにするためにopenvt行うなど、コマンドがそれを行うgettyと、Xサーバ)。したがって、デバイスエントリは常に存在している必要があります。そうでない場合は、使用する前に手動で作成する必要があります。

最新のLinuxシステム(udevまたはdevtmpfsを使用)は、システムに存在するすべてのデバイスのデバイスエントリを作成します。すべての仮想コンソールは(アクティブかどうかに関係なく)常に存在するため、すべてのエントリーが作成されます。ほとんどのユーザーはそれほど多くは必要ありません—実際、ほとんどのユーザーはXが実行されている仮想コンソール以外には何も表示しません。しかし、そうする人は少なく、63を超えるコンソールを許可するようにカーネルにパッチを適用する必要があります。これは、多くのハードウェアコンソールを備えた大規模なマシンを実行するためです)。


-2

これはLinux固有のものではなく、ttyは仮想端末だけに使用されるわけではありません。これらは、たとえばグラフィックインターフェイスでxtermを起動するときにも使用されます。ttyデバイスの数が少ない場合、xtermまたはsshログインを多数持つことはできません。


うーん、これについてもう少し説明してください。Xでxtermを実行すると、ttyではなく、ptsを取得しませんか?
エマニュエルバーグ


読みましたが、まだはっきりしていません。私がxtermを起動すると、そのプロセスは何らかの形でttyデバイスファイルに関連付けられている/devので、それらが少なければ、実際にtty が「不足」する可能性がありますか?
Emanuel Berg

4
実際、Xエミュレーターのデバイスインターフェースはttyではありません-「疑似端末」(pt)です。これらはカーネルによって動的に管理されますが、現在存在するものはにリストされてい/dev/pts/ます。このttyコマンドは現在のデバイスを提供します-Xで試してからVTで試してください。
goldilocks 2013年

2
あなたは/dev/ttyN古い/dev/ptyN(仮想端末と呼ばれることもある仮想コンソール)と古い(仮想端末と呼ばれることもある疑似端末)とを混同している。Linux /dev/pts/Nでは、以前の静的に割り当てられたの代わりに動的に割り当てられたを使用するようになりました/dev/ptyN
ジル 'SO-邪悪なことをやめなさい'
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.