{"componentChunkName":"component---src-templates-post-template-js","path":"/posts/what-is-console-terminal-etc","result":{"data":{"markdownRemark":{"id":"aa8b9793-0fa3-5704-9cce-3a6acdbe5c5d","html":"<p>Linux を扱う中で</p>\n<ul>\n<li>コンソール</li>\n<li>ターミナル</li>\n<li>仮想コンソール</li>\n<li>端末エミュレータ</li>\n<li>擬似端末</li>\n</ul>\n<p>といった用語の違いを明確にしたかったので、改めて整理しました。</p>\n<h2 id=\"まとめた結果\" style=\"position:relative;\"><a href=\"#%E3%81%BE%E3%81%A8%E3%82%81%E3%81%9F%E7%B5%90%E6%9E%9C\" aria-label=\"まとめた結果 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>まとめた結果</h2>\n<p>これらの用語について 1 つの図にまとめると、以下のようになりました。</p>\n<p><img src=\"/media/what-is-console-terminal-etc.png\" alt=\"what-is-console-terminal-etc.png\"></p>\n<p>ここから、各用語について説明していきます。</p>\n<h2 id=\"コンソール-制御卓\" style=\"position:relative;\"><a href=\"#%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB-%E5%88%B6%E5%BE%A1%E5%8D%93\" aria-label=\"コンソール 制御卓 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>コンソール (制御卓)</h2>\n<p>まず、古典的な「コンソール」について抜粋して説明していきます。</p>\n<p>コンソールとは何かを一言で言うと、「<strong>ディスプレイとキーボードのような入出力装置がくっついた物理機器</strong>」です。</p>\n<p>単にディスプレイとキーボードと組みを「コンソール」と呼ぶ場合もあるようです。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://wa3.i-3-i.info/word12140.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">コンソールとは｜「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典</a></li>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">コンソール - Wikipedia</a></li>\n</ul>\n<h3 id=\"コンソールの接続方式\" style=\"position:relative;\"><a href=\"#%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB%E3%81%AE%E6%8E%A5%E7%B6%9A%E6%96%B9%E5%BC%8F\" aria-label=\"コンソールの接続方式 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>コンソールの接続方式</h3>\n<p>コンソール機器をコンピュータに繋ぐには、</p>\n<ul>\n<li>VGA 端子</li>\n<li>シリアル端子 (シリアルポート)</li>\n</ul>\n<p>のどちらかにケーブルを刺すことになります。</p>\n<p>※ ディスプレイを HDMI、キーボードを USB でそれぞれ接続する場合もあります。</p>\n<h3 id=\"vga-コンソール\" style=\"position:relative;\"><a href=\"#vga-%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB\" aria-label=\"vga コンソール permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>VGA コンソール</h3>\n<p>VGA 端子を経由してコンソール接続する場合、「VGA コンソール」と言います。</p>\n<p>Linux のデバイスファイルとしては、/dev/console が対応します。</p>\n<p>/dev/console は、「マスター・コンソール」とも言われます。</p>\n<p>通常は「VGA コンソール」が「マスター・コンソール」ですが、組み込み Linux では後述する「シリアル・コンソール」が「マスター・コンソール」となる場合もあるそうです。</p>\n<p>参考</p>\n<ul>\n<li>『<a href=\"https://amzn.to/3xQ5AcW\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Linuxカーネル解析入門</a>』p377</li>\n</ul>\n<p><a href=\"https://www.amazon.co.jp/dp/4777516156?&linkCode=li1&tag=oshimayuki0d-22&linkId=a8f84207167877887b0c42d14b68d71b&language=ja_JP&ref_=as_li_ss_il\" target=\"_blank\"><img border=\"0\" src=\"//ws-fe.amazon-adsystem.com/widgets/q?_encoding=UTF8&ASIN=4777516156&Format=_SL110_&ID=AsinImage&MarketPlace=JP&ServiceVersion=20070822&WS=1&tag=oshimayuki0d-22&language=ja_JP\" ></a><img src=\"https://ir-jp.amazon-adsystem.com/e/ir?t=oshimayuki0d-22&amp;language=ja_JP&amp;l=li1&amp;o=9&amp;a=4777516156\" width=\"1\" height=\"1\" border=\"0\" alt=\"\" style=\"border:none !important; margin:0px !important;\"></p>\n<h3 id=\"シリアル・コンソール\" style=\"position:relative;\"><a href=\"#%E3%82%B7%E3%83%AA%E3%82%A2%E3%83%AB%E3%83%BB%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB\" aria-label=\"シリアル・コンソール permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>シリアル・コンソール</h3>\n<p>シリアル端子に接続したコンソールを「シリアル・コンソール」と言います。</p>\n<p>Linux のデバイスファイルとしては、/dev/ttySX が対応します。\n(X には 0、1 などの数字が入ります)</p>\n<p>シリアルコンソールは、VGA コンソールよりも遠隔地から利用可能です。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"http://archive.linux.or.jp/JF/JFdocs/Remote-Serial-Console-HOWTO/intro-why.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">シリアルコンソールを使う理由</a></li>\n</ul>\n<h3 id=\"ターミナル-端末\" style=\"position:relative;\"><a href=\"#%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB-%E7%AB%AF%E6%9C%AB\" aria-label=\"ターミナル 端末 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ターミナル (端末)</h3>\n<p>ターミナルは、日本語で言うと「端末」です。</p>\n<p><strong>コンピュータに接続し、手元で操作する機器のこと</strong>を言います。</p>\n<p>「<a href=\"https://gihyo.jp/book/pickup/2010/0013\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">なぜなにUNIX「コンソールとターミナルの違いは？」：新刊ピックアップ｜技術評論社</a>」という記事によれば、</p>\n<blockquote>\n<p>コンピュータと多数のコンソールをシリアルケーブルで繋ぐことで，同時利用を実現しました。このとき，TSSを1つの通信ネットワークと捉え，各コンソールを“⁠ターミナル⁠”と呼ぶようになりました。</p>\n</blockquote>\n<p>特に UNIX においては、</p>\n<blockquote>\n<p>UNIXの起動時に表示される操作画面は「コンソール⁠」⁠，シリアルケーブルで直結する装置は「シリアルコンソール」と呼び，ネットワーク越しで接続する装置や，Xウィンドウシステム上で動く仮想端末は「ターミナル」と呼びます。</p>\n</blockquote>\n<p>とのことです。</p>\n<p>「コンソール」と「ターミナル」の違いについて、自分の理解としては、</p>\n<ul>\n<li><strong>同じコンピュータに複数の人がシリアル・コンソールを接続して使うので、「コンソール」を「ターミナル (端末)」と呼ぶようになった</strong></li>\n<li>それとは別の観点で、UNIX では、<strong>VGA 端子やシリアル端子に接続するのは「コンソール」と呼び、SSH や X Window System で動く「擬似端末」を単に「端末 (ターミナル)」と呼ぶ場合もある</strong></li>\n</ul>\n<p>というのが結論です。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://gihyo.jp/book/pickup/2010/0013\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">なぜなにUNIX「コンソールとターミナルの違いは？」：新刊ピックアップ｜技術評論社</a></li>\n<li><a href=\"https://wa3.i-3-i.info/word12049.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ターミナルとは｜「分かりそう」で「分からない」でも「分かった」気になれるIT用語辞典</a></li>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ターミナル - Wikipedia</a></li>\n</ul>\n<h2 id=\"x-window-system-の-x-サーバへの接続\" style=\"position:relative;\"><a href=\"#x-window-system-%E3%81%AE-x-%E3%82%B5%E3%83%BC%E3%83%90%E3%81%B8%E3%81%AE%E6%8E%A5%E7%B6%9A\" aria-label=\"x window system の x サーバへの接続 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>X Window System の X サーバへの接続</h2>\n<p>現在、デスクトップ PC で Linux を利用する際は、HDMI などのポートにディスプレイを接続し、USB などのポートにキーボードを接続することになります。</p>\n<p><strong>デスクトップ PC であれば GUI を使うケースも多いと思いますが、その際は <a href=\"https://ja.wikipedia.org/wiki/X_Window_System\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">X Window System</a> の X サーバにディスプレイとキーボードが接続されます</strong>。</p>\n<p>※ X サーバとしては、専用の「<a href=\"https://ja.wikipedia.org/wiki/X%E7%AB%AF%E6%9C%AB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">X 端末</a>」を使い、コンピュータと通信させる方法もありますが、現在はあまり使われていません。</p>\n<p>X Window System を使った GUI の利用中に CUI を使うには、</p>\n<ul>\n<li>仮想コンソール</li>\n<li>端末エミュレータ</li>\n</ul>\n<p>のどちらかを使うことになります。</p>\n<h3 id=\"仮想コンソール\" style=\"position:relative;\"><a href=\"#%E4%BB%AE%E6%83%B3%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB\" aria-label=\"仮想コンソール permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>仮想コンソール</h3>\n<p>X Window System を利用した GUI にディスプレイ、キーボードを接続しているとき、Ctrl + Alt + F1 (~ F6) を押すことで、CUI を開くことができます。</p>\n<p><strong>X サーバへの接続と並列して、CUI の「仮想コンソール」に接続できる</strong>ということです。</p>\n<p><strong>通常、Linux の場合の仮想コンソールには、デバイスファイルの /dev/tty1 ~ /dev/tty6 が割り当てられます</strong>。</p>\n<p>ちなみに、tty は teletypewriter の略です。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://linuc.org/study/knowledge/461/\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">仮想コンソール | Linux技術者認定 LinuC | LPI-Japan</a></li>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E4%BB%AE%E6%83%B3%E3%82%B3%E3%83%B3%E3%82%BD%E3%83%BC%E3%83%AB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">仮想コンソール - Wikipedia</a></li>\n</ul>\n<h3 id=\"端末-ターミナル-エミュレータ\" style=\"position:relative;\"><a href=\"#%E7%AB%AF%E6%9C%AB-%E3%82%BF%E3%83%BC%E3%83%9F%E3%83%8A%E3%83%AB-%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF\" aria-label=\"端末 ターミナル エミュレータ permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>端末 (ターミナル) エミュレータ</h3>\n<p><strong>「端末エミュレータ」を使うことで、GUI の中で CUI を使うこともできます</strong>。</p>\n<p>端末エミュレータというのは、例えば</p>\n<ul>\n<li>X Window System で利用できる xterm</li>\n<li>Windows の Tera Term</li>\n<li>macOS の “ターミナル” という名前のアプリケーションや iTerm2</li>\n</ul>\n<p>などです。</p>\n<p>「ターミナル」の説明でも書きましたが、端末エミュレータを単に「端末 (ターミナル)」と呼ぶ場合もあります。</p>\n<p><strong>端末エミュレータは、次に説明する「擬似端末」を使います</strong>。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E7%AB%AF%E6%9C%AB%E3%82%A8%E3%83%9F%E3%83%A5%E3%83%AC%E3%83%BC%E3%82%BF\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">端末エミュレータ - Wikipedia</a></li>\n</ul>\n<h3 id=\"擬似端末-pseudo-terminal\" style=\"position:relative;\"><a href=\"#%E6%93%AC%E4%BC%BC%E7%AB%AF%E6%9C%AB-pseudo-terminal\" aria-label=\"擬似端末 pseudo terminal permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>擬似端末 (pseudo terminal)</h3>\n<p>さて、</p>\n<ul>\n<li><strong>GUI の中で CUI を使う場合</strong></li>\n<li><strong>SSH などで他のコンピュータから接続される場合</strong></li>\n</ul>\n<p>については、CUI には直接物理機器が接続されているわけではありません。</p>\n<p>この状態を<strong>仮想的な接続として扱うために「擬似端末」が使われます</strong>。</p>\n<p><strong>擬似端末は、Linux のデバイスファイルとしては、/dev/pts/X が対応します</strong>。\n(X には 0、1 などの数字が入ります)</p>\n<p>プロセスが /dev/ptmx をオープンすることで、/dev/pts/X などが作られるという仕組みです。</p>\n<ul>\n<li><a href=\"https://ja.wikipedia.org/wiki/%E6%93%AC%E4%BC%BC%E7%AB%AF%E6%9C%AB\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">擬似端末 - Wikipedia</a></li>\n<li><a href=\"https://kazmax.zpp.jp/cmd/p/pts.4.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">pts - スペシャルファイル (デバイス)の説明 - Linux コマンド集 一覧表</a></li>\n</ul>\n<h2 id=\"telnet-や-ssh-での接続\" style=\"position:relative;\"><a href=\"#telnet-%E3%82%84-ssh-%E3%81%A7%E3%81%AE%E6%8E%A5%E7%B6%9A\" aria-label=\"telnet や ssh での接続 permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>Telnet や SSH での接続</h2>\n<p>Telnet や SSH を使い、ネットワーク経由で接続する場合は、GUI の中で CUI を使う場合とほぼ同じです。</p>\n<p>クライアント側で端末エミュレータなどを使い、接続としては「擬似端末」が使われることになります。</p>\n<h2 id=\"tty-と-pts-に直接書き込む標準入力で見てみる\" style=\"position:relative;\"><a href=\"#tty-%E3%81%A8-pts-%E3%81%AB%E7%9B%B4%E6%8E%A5%E6%9B%B8%E3%81%8D%E8%BE%BC%E3%82%80%E6%A8%99%E6%BA%96%E5%85%A5%E5%8A%9B%E3%81%A7%E8%A6%8B%E3%81%A6%E3%81%BF%E3%82%8B\" aria-label=\"tty と pts に直接書き込む標準入力で見てみる permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>tty と pts に直接書き込む標準入力で見てみる</h2>\n<p>/dev/ttyX や /dev/pts/X を使ったよくある実験として、相手方の画面に文字を表示するというものがあります。</p>\n<p>例えば、「X Window System 上の擬似端末 (/dev/pts/0)」から「仮想コンソール (/dev/tty3)」に “hello” と送ってみます。</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ tty\n/dev/pts/0\n$ echo hello &gt; /dev/tty3</code></pre></div>\n<p>このとき、仮想コンソール「/dev/tty3」を見てみると…\n(Ctrl + Alt + F3 で切り替えます)</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">~ $ hello</code></pre></div>\n<p>しっかり hello と表示されています。</p>\n<h2 id=\"ファイルディスクリプタを見てみる\" style=\"position:relative;\"><a href=\"#%E3%83%95%E3%82%A1%E3%82%A4%E3%83%AB%E3%83%87%E3%82%A3%E3%82%B9%E3%82%AF%E3%83%AA%E3%83%97%E3%82%BF%E3%82%92%E8%A6%8B%E3%81%A6%E3%81%BF%E3%82%8B\" aria-label=\"ファイルディスクリプタを見てみる permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>ファイルディスクリプタを見てみる</h2>\n<p>もう少し理解を深めるために、ファイルディスクリプタを見てみようと思います。</p>\n<p>ファイルディスクリプタというのは、各プロセスが扱っているファイルに割り当てる識別子のことです。</p>\n<p>※ Linux では、デバイスや標準入出力なども全てファイルとして表現されます</p>\n<p>X Window System 上の擬似端末で、まずはシェルのプロセスの PID を確認します。</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ ps\n    PID TTY          TIME CMD\n   2094 pts/0    00:00:00 bash\n   2317 pts/0    00:00:00 ps</code></pre></div>\n<p>この PID のプロセスのファイルディスクリプタを見てみます。</p>\n<div class=\"gatsby-highlight\" data-language=\"console\"><pre class=\"language-console\"><code class=\"language-console\">$ ls -l /proc/{PID}/fd\n合計 0\nlrwx------ 1 hoge hoge 64. 7月 20 13:53 0 -&gt; /dev/pts/0\nlrwx------ 1 hoge hoge 64. 7月 20 13:53 1 -&gt; /dev/pts/0\nlrwx------ 1 hoge hoge 64. 7月 20 13:53 2 -&gt; /dev/pts/0\nlrwx------ 1 hoge hoge 64. 7月 20 13:53 255 -&gt; /dev/pts/0</code></pre></div>\n<p>ファイルディスクリプタは、0 が標準入力、1 が標準出力、2 が標準エラー出力であり、それらが /dev/pts/0 を指していることが分かりました。</p>\n<p>同様の手順で、仮想コンソールの標準入力・標準出力・標準エラー出力が /dev/tty3 などを指していることも確認できます。</p>\n<p>Linux はデバイスファイルへの書き込みによってディスプレイへの表示などを実施しているので、<code class=\"language-text\">$ echo hello &gt; /dev/tty3</code> などとして /dev/pts/0 や /dev/tty3 に書き込めば、対応するディスプレイに文字が表示されるわけです。</p>\n<h2 id=\"おわりに\" style=\"position:relative;\"><a href=\"#%E3%81%8A%E3%82%8F%E3%82%8A%E3%81%AB\" aria-label=\"おわりに permalink\" class=\"anchor before\"><svg aria-hidden=\"true\" focusable=\"false\" height=\"16\" version=\"1.1\" viewBox=\"0 0 16 16\" width=\"16\"><path fill-rule=\"evenodd\" d=\"M4 9h1v1H4c-1.5 0-3-1.69-3-3.5S2.55 3 4 3h4c1.45 0 3 1.69 3 3.5 0 1.41-.91 2.72-2 3.25V8.59c.58-.45 1-1.27 1-2.09C10 5.22 8.98 4 8 4H4c-.98 0-2 1.22-2 2.5S3 9 4 9zm9-3h-1v1h1c1 0 2 1.22 2 2.5S13.98 12 13 12H9c-.98 0-2-1.22-2-2.5 0-.83.42-1.64 1-2.09V6.25c-1.09.53-2 1.84-2 3.25C6 11.31 7.55 13 9 13h4c1.45 0 3-1.69 3-3.5S14.5 6 13 6z\"></path></svg></a>おわりに</h2>\n<p>以上、改めて、</p>\n<ul>\n<li>コンソール</li>\n<li>ターミナル</li>\n<li>仮想コンソール</li>\n<li>端末エミュレータ</li>\n<li>擬似端末</li>\n</ul>\n<p>という用語を整理しました。</p>\n<p>追加で</p>\n<ul>\n<li>/dev/console と /dev/tty0 の関係</li>\n<li>tty と tty0</li>\n<li>ターミナルサーバやコンソールサーバ</li>\n</ul>\n<p>などについてもまとめたいところですが、一旦ここまでとします。</p>\n<p>参考</p>\n<ul>\n<li><a href=\"http://archive.linux.or.jp/JF/JFdocs/Text-Terminal-HOWTO-6.html\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Text-Terminal-HOWTO : /dev/tty のような端末スペシャルファイル</a></li>\n<li><a href=\"https://wiki.bit-hive.com/north/pg/tty%E3%81%A8tty0%E3%81%AE%E9%81%95%E3%81%84\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ttyとtty0の違い - Linuxの備忘録とか・・・(目次へ）</a></li>\n<li><a href=\"https://www.blackbox.co.jp/ja-jp/page/27141/Information/Technical-Resources/Black-Box/LAN/What-are-Terminal-Servers-Console-Servers\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">ターミナルサーバとコンソールサーバとは？</a></li>\n</ul>\n<p>この記事の内容に間違い・ご指摘などありましたら、<a href=\"https://twitter.com/oshima_123\" target=\"_blank\" rel=\"nofollow noopener noreferrer\">Twitter</a> の DM でご連絡お願いします。</p>","fields":{"slug":"/posts/what-is-console-terminal-etc","tagSlugs":["/tag/linux/","/tag/os/"],"autoRecommendPosts":["command-collection-for-binary-files","image-file-format-basics","how-to-study-linux-basics","audio-video-streaming-data-basics"]},"frontmatter":{"date":"2021-07-20T05:01:47.669Z","description":"Linux を扱う中で、コンソール・ターミナル・仮想コンソール・端末エミュレータ・擬似端末といった用語の違いを明確にしたかったので、改めて整理しました。","tags":["linux","os"],"title":"改めて整理する、コンソール・ターミナル・仮想コンソール・端末エミュレータ・擬似端末","socialImage":null,"recommendPosts":["https://www.kanzennirikaisita.com/posts/linux-next-step-books","https://www.kanzennirikaisita.com/posts/4839975868","https://www.kanzennirikaisita.com/posts/487311313X","https://www.kanzennirikaisita.com/posts/software-developer-books-index"]}}},"pageContext":{"slug":"/posts/what-is-console-terminal-etc"}},"staticQueryHashes":["251939775","3942705351","401334301"]}