「端末」、「シェル」、「tty」、「コンソール」の正確な違いは何ですか?


1235

これらの用語は、大まかに使用すると、ほとんど同じものを指すと思います。

  • ターミナル
  • シェル
  • tty
  • コンソール

これらの各用語は正確に何を指しますか?



28
それに「コマンドライン」を追加したいです:-)
teeks99

1
コマンドラインは、ターミナル/ターミナルエミュレータからシェルで実行されているコマンドラインインタープリターにコマンドを送信するために使用される言語です。
マーティフライド14

1
テレタイプライタ(TTY)が運転中で最初に入れ、ニューヨークでの力学研究所で展示1844 en.wikipedia.org/wiki/Teleprinter
セルジュStroobandt

さらに二つの便利なリンク- feyrer.de/NetBSD/ttys.htmlquora.com/...
Nishant

回答:


1198

ターミナルは電線の端にあり、シェルは亀の家であり、ttyは奇妙な略語であり、コンソールは一種のキャビネットです。

とにかく、語源的に言えば。

UNIXの用語では、簡単な答えは

  • ターミナル= tty =テキスト入力/出力環境
  • コンソール=物理端末
  • shell =コマンドラインインタープリター

コンソール、端末、ttyは密接に関連しています。もともとは、コンピュータとやり取りできる機器のことでした。Unixの初期には、タイプライター(テレタイプライターと呼ばれることもある)、または略して「tty」に似たテレプリンタースタイルのデバイスを意味していました。「端末」という名前は電子的な観点から来ており、「コンソール」という名前は家具の観点から来ています。UNIXの歴史のごく初期に、電子キーボードとディスプレイが端末の標準になりました。

UNIXの用語では、ttyは特定の種類のデバイスファイルであり、読み取りおよび書き込み以外の多くの追加コマンド(ioctl)を実装します。最も一般的な意味では、端末はttyと同義です。一部のttyは、ハードウェアデバイスに代わってカーネルによって提供されます。たとえば、キーボードからの入力とテキストモードの画面への出力、またはシリアルラインを介して送信される入出力があります。疑似ttyと呼ばれることもあるその他のttyは、XtermX Window Systemで実行中)、Screenなどの端末エミュレーターと呼ばれるプログラムによって(シンカーネルレイヤーを介して)提供されます(プログラムと別の端末間の分離層を提供します)、Ssh(あるマシン上の端末を別のマシン上のプログラムに接続します)、Expect(端末相互作用のスクリプト用)など

ターミナルという言葉は、コンピューター、通常はキーボードやディスプレイと対話するためのデバイスという、より伝統的な意味を持つこともできます。たとえば、X端末は一種のシンクライアントであり、キーボード、ディスプレイ、マウス、および場合によっては他の人間とのやり取りの周辺機器を駆動し、実際のアプリケーションを別のより強力なコンピューターで実行することを唯一の目的とする専用コンピューターです。

コンソールは、一般的にいくつかの定義によって直接コンピュータに接続された一次端子である物理的な意味で端末です。コンソールは(カーネル実装)ttyとしてオペレーティングシステムに表示されます。LinuxやFreeBSDなどの一部のシステムでは、コンソールはいくつかのttyとして表示されます(これらのttyの間で特別なキーの組み合わせが切り替わります)。問題を混乱させるために、特定の各ttyに付けられる名前は、「コンソール」、「仮想コンソール」、「仮想端末」、およびその他のバリエーションです。

「仮想端末が「仮想」である理由、および「実際の」端末は何/なぜ/どこにあるのかも参照してください


シェルは、その主な目的の他のプログラムを開始するユーザーがログイン時に参照主要なインターフェイスです。(元の比phorがシェルがユーザーのホーム環境であるかどうか、またはシェルが他のプログラムが実行されているものであるかどうかはわかりません。)

UNIXサークルでは、シェルコマンドラインシェルを意味するように特化されており、起動したいアプリケーションの名前を入力し、その後にアプリケーションが動作するファイルまたは他のオブジェクトの名前を入力し、Enterキーを押します。他のタイプの環境では、「シェル」という言葉は使用されません。たとえば、ウィンドウシステムには、「シェル」ではなく「ウィンドウマネージャ」と「デスクトップ環境」が含まれます。

多くの異なるUNIXシェルがあります。インタラクティブに使用するための一般的なシェルには、Bash(ほとんどのLinuxインストールのデフォルト)、zsh(パワーとカスタマイズ性を重視)、およびfish(シンプルさを重視)が含まれます。

コマンドラインシェルには、コマンドを組み合わせるためのフロー制御構造が含まれています。対話型プロンプトでコマンドを入力することに加えて、ユーザーはスクリプトを作成できます。最も一般的なシェルには、Bourne_shellに基づいた共通の構文があります。「シェルプログラミング」について説明するとき、シェルはほとんど常にBourneスタイルのシェルであると暗示されています。スクリプトの作成によく使用されるが、高度なインタラクティブ機能を欠くシェルに、Kornシェル(ksh)や多くのashバリアントが含まれます。ほとんどのUnixライクなシステムには/bin/sh、通常ash、ksh、またはbash としてBourneスタイルのシェルがインストールされています。

UNIXシステム管理では、ユーザーのシェルはログイン時に呼び出されるプログラムです。通常のユーザーアカウントにはコマンドラインシェルがありますが、アクセスが制限されているユーザーには、シェルまたはその他の特定のコマンドが制限されています-アカウントのみ)。


ターミナルとシェル間の分業は完全には明らかではありません。主なタスクは次のとおりです。

  • 入力:端末はキーを制御シーケンスに変換します(例Left\e[D)。シェルは、制御シーケンスをコマンドに変換します(例:\e[Dbackward-char)。
  • 行の編集、入力履歴、および補完は、シェルによって提供されます。
    • 端末は、代わりに独自の行編集、履歴、および完了を提供し、実行の準備ができたときにのみシェルに行を送信します。この方法で動作する唯一の一般的な端末はM-x shellEmacsです。
  • 出力:シェルは、「表示foo」、「前景色を緑に切り替える」、「カーソルを次の行に移動する」などの指示を出します。端末はこれらの指示に基づいて動作します。
  • プロンプトは純粋にシェルの概念です。
  • シェルは、(リダイレクトされない限り)実行するコマンドの出力を見ることはありません。出力履歴(スクロールバック)は、純粋に最終的な概念です。
  • アプリケーション間コピーペーストは、端末によって提供されます(通常は、マウスまたはCtrl+ Shift+ VShift+ などのキーシーケンスを使用してInsert)。シェルには、独自の内部コピーペーストメカニズムもあります(例:Meta+ WおよびCtrl+ Y)。
  • ジョブ制御(バックグラウンドでのプログラムの起動と管理)は、ほとんどがシェルによって実行されます。しかし、それはのようなキーの組み合わせ扱う端末のCtrl+をCフォアグラウンド仕事と殺すためにCtrl+をZ、それを停止します。

50
言だけ:両方の種類のttyはカーネルによって「提供」されていると言えます。私が強調する違いは、ハードウェアtty(シリアルラインや組み込みのテキストモードコンソールなど)の一端がハードウェアに接続され、一端がソフトウェア(ログインプログラムやシェルなど)に接続されているのに対して、疑似ttyは両端がソフトウェアに接続されている(たとえば、一方の端末エミュレーターと他方のシェル)。
クリスジョンセン

12
@phunehehe:そうです、これはオペレーティングシステムの設計で一般的に使用される「シェル」の異なる意味です。シェルはカーネルの外側の部分です。Unixの用語ではありません。Unixカーネルには、シェルと呼ばれるコンポーネントが含まれている傾向はありません。
ジル

24
これは、シェルのメタファーに対する私の心のイメージです。
エンドリューク

12
Linuxでは「コンソール」という別の意味もあります。コンソール(1つしかない)は、printk十分な優先順位(カーネルパニックなど)が発生する場所です。console=DEVICE,...カーネルコマンドラインを渡すことで設定されます(たとえば、console=ttyS0,115200最初のシリアルポートの場合、115,200 bps)。通常、デフォルトは仮想端末ですが、カーネルのコンパイル時に変更できます。
-derobert

19
「…端末…Ctrl + Cなどのキーの組み合わせを処理してフォアグラウンドジョブを強制終了し、Ctrl + Zを押して一時停止します」というわけではありません。 。デフォルトでは、ttyデバイスは制御文字をシェル(および他のプロセス)に送信される信号に変換します。
クリスページ

194

端末またはコンソールは、ユーザーがホストと相互作用することができる使用して、ハードウェアの一部です。基本的に、テキスト画面と結合されたキーボード。
今日では、ほぼすべての端末とコンソールが「仮想」端末とコンソールを表しています。

端末を表すファイルは、伝統的にttyファイルと呼ばれます。UNIXシステムの「/ dev」ディレクトリの下を見ると、仮想コンソール(Linuxのtty1など)、仮想端末(pts / 0など)、または物理的に接続されているハードウェア(ttyS0など)に接続されたttyファイルがたくさんあります。ホストの最初のシリアルポートに接続されている物理シリアル端末(ある場合)。

コンソールは、ハードウェアに物理的に接続されている(またはその一部)ホストの一部でなければなりません。システムには特別な役割があります:メンテナンスのためにシステムにアクセスする主要なポイントであり、コンソールからのみ実行できる特別な操作もあります(例を参照single user mode)。端末がよく、通常、ハードウェアの遠隔部分であることができます。

最後になりましたが、シェルは、制御ttyを介してユーザーと対話し、ユーザーに他のプログラム(bash、csh、tcshなど)を起動する方法を提供する特別なプログラムです。

端末エミュレータは、物理的な端末(例えばxtermの、GNOME末端、minicomの)をエミュレートするプログラムです。

だから、あなたがしようとしている(X11下)Linuxシステム上で、「テキストウィンドウ」に目を向けるとき:端末エミュレータに接続し、仮想端末で識別される、のtty実行される内部のファイル、シェルを


2
デスクトップコンピューターにはシステムコンソールがあります(私の2015年またはポスターの2010年では、関係ありません)。正しく述べられているように、それはハードウェアの一部です。しかし、「今日ではほとんどすべてのコンソールが「仮想」コンソールを表している」と述べることは、ほとんど矛盾しており、明らかに良くありません。
Incnis Mrsi

1
「端末またはコンソールは、ユーザーがホストと対話できるハードウェアの一部です。基本的には、テキスト画面に結合されたキーボードです。」その具体的な側面による素晴らしい解明
Webwoman

@andcoz-「テキストウィンドウ」とはどういう意味ですか?端末エミュレーターは仮想端末ではありませんか?ttyKDEのKonsoleなどのターミナルエミュレータでコマンドを実行すると、出力は/ dev / pts / 0になります。
動機付け

1
@IncnisMrsi-デスクトップコンピューターはコンソールではありませんか?そうでない場合は、システムコンソールがあるとはどういう意味ですか?
動機付け

2
@Motivated /dev/pts/0はttyファイルであり、カーネルによって公開されるプログラムインターフェイスのハンドラーです。このハンドラーを介して、プログラム(シェルなど)は端末(実または仮想)と対話できます。端末エミュレーターは、端末をエミュレートするソフトウェアです。エミュレーターはカーネルに、プログラムが自身と対話できるようにするハンドラーを作成するように要求します(を参照man openpty)。そのため、情報は端末(エミュレータ)からカーネルttyハンドラー、プログラム(およびその逆)に流れます。プログラムと端末は互いに直接対話せず、ttyファイル(ハンドラー)を介してのみ対話します。
andcoz

48

短い説明:

コンソールは端末です。システムには1つのコンソールと潜在的に複数の端末があります。コンソールは通常、起動中など、コンピューターを管理するための主要なインターフェイスです。

ターミナルは、コマンドラインプログラムの入出力を送受信できるセッションです。コンソールはこれらの特殊なケースです。

TTYは本質的には擬似デバイスであり、カーネルリソースと呼ばれ、特定の端末にアクセスするプロセスによって使用されます。TTYは、シリアルポートなどのハードウェアに結び付けることも、仮想(たとえば、ユーザーがネットワーク経由でログインしたときに作成される)にすることもできます。

シェルは、プログラムの制御と実行に使用されるプログラムです。多くの場合、ターミナルを介してインタラクティブに使用されます。いくつかのシェルプログラムが存在しますが、Bashはおそらく今日最も一般的に使用されているシェルです。他のシェルには、順不同で、Bourne Shell、C-shell、Dash、Tsch、Ksh、およびますます普及しているzshが含まれます。他にもたくさんあります。

GUIを使用している場合、ターミナルプログラムを使用して、ターミナルセッションのサイズ変更可能な境界線を描画したり、スクロールバーを追加したり、テキストをフォーマットしたりできます。多くの場合、これらはターミナルエミュレータと呼ばれ、TABコンセプトを介して複数のセッションを処理できる場合があります。ターミナルエミュレーターは、シェルを起動してコマンドラインで対話的に作業できるようにします。


1
PTYは擬似TTYです。TTYは可能ですが、本質的に仮想(擬似)ターミナルではありません。
ルチアーノ

35

TTY(すなわちT ELE TY pewriter)は、聴覚障害者のいる人、難聴、または音声障害使用電話は彼らがテキストメッセージを入力できるようにすることで、通信することができます特殊なデバイスです。通信するには、会話の両端でTTYが必要です。
OR
TTYは、テキストメッセージの入力に使用される端末です。


シェル:種子の外側の保護カバー部分、つまりカーネル。
OR
フレームワークまたはシステムの中心または不可欠な部分の外部構造。
ここに画像の説明を入力してください


コンソールとは、キーボードとモニターがコンピューターに物理的に接続されていることを意味します。


28

すでに2つの優れた答えがありますが、「仮想端末」というフレーズに関する情報を追加したいと思います。一般的に、それは端末の外観/機能を提供するものを意味します。e。広い意味インチ しかし、Linuxの初期(1994〜95年)は、一部の開発者によって「仮想コンソール」(いくつかの無関係なユーザーインターフェイス)と同義的に使用されていました。この使用法はドキュメントに残ります。tty1、tty2…という意味で、2つの異なる用語が使用されていました。現在(およそ1996年以降)、「仮想端末」はベースの端末エミュレータを指す場合もあります。

Linux vt(テキストモードシステムコンソールのドライバー)は、カーネルの最初の部分でした。当初はメインフレームへの接続に使用されていましたが、この意味では「仮想端末」であり、そのため名前が付けられています。仮想コンソールを制御するコードも存在しvt.cます。Linuxカーネルエンジニアは、常に「コンソール」という言葉を使用してtty1、tty2…を表し、「vc_」プレフィックスを使用しました。たとえば、vc_allocate関数があります。一方、このようなユーザ空間のツールの開発kbdconsole-tools使用される「バーチャルコンソール」(VC)と同義的に「仮想端末」(VT)。And Andries E. Brouwerに連絡初期の開発者が使用した用語を明確にするように彼に依頼しました(1994–95)。アンドリーズは親切にいくつかの答えを提供してくれました。彼は、VTとVCは同義語であり、「分割できない」略語であると述べています。->一般に、仮想コンソールは仮想端末ですが、その逆は当てはまりません。仮想コンソールではない「仮想端末」は、実際には疑似端末です(Andriesが述べているように、これらはVTではありません)。カーネルがコンソールアプリケーションに端末機能を提供する仮想コンソールとは異なり、擬似端末はPTY「デバイス」を使用して、コンソールアプリケーションとユーザースペースで実行される端末作成プログラム間の通信を調整します。例としては、Xベースのターミナルエミュレーターとsshd、各ログインセッションにpseudottyを割り当てます。疑似端末は「コンソール」と呼ばれない場合がありますが、これは間違いです。


14
  • 端末=シェルセッションへの入力用の出力とキーボードを表示するインターフェイス。

  • シェル=文字列として入力されたコマンドを実行するインタープリター

  • コンソール:実際に使用している2種類のコンソール

    • 物理コンソール=システムとの対話に使用されるハードウェアディスプレイとキーボード

    • 仮想コンソール=それぞれが独立したログインセッションをサポートできる複数の論理コンソールの1つ。

  • tty(テレタイプ、つまり端末)。=ターミナルは、基本的にはinput.output.messageにテキストを使用する単なるユーザーインターフェイスデバイスです。


ttyとは何ですか?-そうでなければ、あなたの答えは私が読んだ唯一のものです
-loxaxs

8

歴史に飛び込む必要があります。

紙とキーボードを備えたタイプライターのようなデバイスがありました。これらは、テレタイプ(「テレ」は「リモート」を意味するため、「リモートタイプ」を意味する)または略してttyと呼ばれていました。70年代には、ガラスttyと呼ばれるCRTモニターを備えたデバイスによって廃止されました。

どのコンピューターでも、その状況とエラーを報告する(そして、おそらくコマンドを受け入れる)方法が必要です。ほとんどの場合、コンピューターに直接接続されているコンソールを介して行われます。そのため、コンソールには2つの意味があります。ステータスを報告するために使用されるものと、直接接続されるものです。

UNIXは対話型システムです。複数のユーザーがそれに接続し、アプリケーションを起動できます。そのために最初のコンピューターはテレタイプ(tty)を使用しました。各ユーザーはシリアルライン接続でマシンにテレタイプを接続していました。このようなテレタイプはターミナルと呼ばれます。UNIXはまた呼ばれる「端末の後ろに座って、ユーザー」処理するための特別なサブシステムましたtty第1の端子がテレタイプであったために。各プロセスは、Unixのttyに接続できます。つまり、端末の近くにユーザーが座っています。詳細については、http://www.linusakesson.net/programming/tty/を参照してください

ユーザーは、カーネルにアプリケーションを実行するよう指示する方法が必要です。そのためにシェル(sh、bash、csh、kshなど)が使用されます。シェルttyで実行され、ユーザーからのコマンドを受け入れて、カーネルにアプリの実行を要求します。

ただし、端末は常に物理的にマシンに接続されているわけではありません。ユーザーからのキーストロークを受け入れてどこかに送信する端末を「エミュレート」するアプリケーションがあるかもしれません(xtermとsshは良い例です)。そのための擬似端末と呼ばれるAPIがカーネルにあります。したがって、ttyは実際の端末ではなく、実際に何らかのアプリケーションに接続されている可能性があります。XtermはX11を使用してテキストを表示し、sshはネットワーク接続を使用します。

IBM PCにはキーボードとビデオカードがあります(コンソールとも呼ばれます)。Linuxはさまざまなことを実行できます。

  • 「エラーとステータスを報告するエンジン」として使用します:Linuxコンソール。console = / dev / ttyS0をカーネルに渡すと、コンソールとしてCOM1に接続されたものが使用され、そうでない場合はPCコンソールが使用されます。
  • これを使用して、端末、いわゆる仮想端末(vty)をエミュレートします。

また、コンソール上の端末のエミュレートを停止し、それを何らかのアプリに提供する場合があります。アプリはビデオモードを切り替えて排他的に使用できます(X11またはsvgalibがそれを行う場合があります)。

したがって、ここに現代的な意味があります:

  • ターミナル:背後に実際のユーザーが座っているもの。物理端末(まれ)または擬似端末(xterm、ssh)または仮想端末(Linuxではvty)
  • シェル:ユーザーがシステムと対話するのに役立つアプリケーション(bash、tcshなど)。
  • tty:端末をサポートする端末またはカーネルサブシステム。
  • コンソール:ステータスとエラーが報告されるもの(/dev/console)またはコンピューターに接続された物理キーボードとビデオディスプレイ。

7

ここに短い答えがあります-

カーネル -実際のハードウェアと直接通信する最新のオペレーティングシステムの最も内側の部分。

シェル -実際のカーネルのラッパー。コマンドを実行するたびに、実際にシェルと通信し、シェルが適切なカーネル命令を呼び出します。これとは別に、シェルは、コマンド、ファイル名の短縮、コマンドのパイピングなどを行いながら適切なプログラムを見つけるなど、他の処理を実行できます。

ターミナル -以前のコンピューティングの時代、コンピューター(メインフレームとして知られている)は巨大でした。そのため、単一の処理ユニットを持ち、多くの場所から接続するのは簡単でした。ターミナルは、キーボードと出力デバイスがメインフレームに接続されている実際のハードウェアです。

コンソール -OS管理の目的でメインフレームに直接接続されている特別なタイプの端末。

TTY -へとメインフレームとの間でデータを送受信するために使用さテレックス。ビデオ端末が利用可能になる前に使用されていました。しかし、従来はまだttyと呼ばれていました。クーマンでもstty

長く詳細な答えはこちら- ターミナル、コンソール、シェル、カーネル、コマンド-コンピューターのさまざまな部分


おかげですが、基本的に端末が存在する場合、なぜパソコン用のubuntuシステムにもまだttyが存在するのですか、alt + f-1 / 6でアクセスしてください、グラフィックシステムを使用せずにアクセスできるという事実を超えてユーティリティを理解することはできません私はよく理解している場合
Webwoman

1
@Webwoman- コンソールへのログインまたはコンソールログインを介してのみrootアカウントへのアクセスを許可するようにシステムを設定しsudoています。コンソールには、特別な場所の特権があります。コンソールにアクセスできる人は、通信するコンピューターに物理的にアクセスできる必要があるためです。また、最終手段のアクセス方法でもあります。OSが部分的に壊れた状態(イーサネットドライバーが壊れているなど)の場合でも、コンソールにアクセスできます。それは常に利用可能であるべきである1つのヒューマンインタフェースデバイスの、どんな状態のシステムはではありません。
Omnifarious

@Omnifarious thanks for your answer「コンソールには、アクセスする人が必然的に通信相手のコンピューターに物理的にアクセスできるため、特権的に特別な場所があることが多い」ということです。
ウェブウーマン

@Webwoman-いいえ、コンソール。TTYは多くの場合、コンピューターに直接接続されていません。また、コンソールは従来の意味でTTYではないことがよくあります。80年代後半にミネソタ大学に行ったとき、ランダムなTTYをランダムなコンピューターに接続するためにインターネットプロトコル(別名IP)を実行していなかった、キャンパス全体に特化したネットワークがありました。IBMメインフレームにも同様のことが行われており、IBMがSNAを作成した大きな理由の1つでした。通常のPCは、テキストのみを表示している場合でも、多くの点でTTYとは非常に異なります。そのため、PCコンソールは実際にはTTYではありません。
全面的な

@Webwoman-コンソールの定義機能は、オペレーティングシステムを実行しているハードウェアに直接接続できることです。このアイデアは、現代の「仮想マシン」では多少あいまいですが、それが基本的なアイデアです。
3

6

受け入れられた答えとThe TTYの分かりやすい記事を別にすれば、私はこれら2つの記事を読むのが大好きでした。

これはNetBSDに基づいています。

Unixの石器時代には、コンピューターシステムはメインフレーム、メモリ、大容量記憶装置、コンピューティングユニットがあり、ユーザーまたはオペレーターによって開始されたプロセスを実行する点滅ライトの大きな箱で構成されていました。ハードウェアは非常に高価だったため、システムは真のマルチユーザーシステムとして使用され、多くの人が同時にシステムとやり取りしていました。通常は持っていなかったもの-今日のUnixワークステーションとは異なり-は固定モニターとキーボードでした。代わりに、マシンにコマンドを発行し、出力を取得するために、最初にテレタイパーを使用し、後でCRT(陰極線管)ターミナルを使用して、シリアル回線で行いました。テレタイパー(Unixの「tty」の由来)は、シリアルラインを介して押されたキーをホストに送信する電子タイプライターです。

これはLinuxに基づいています。

ターミナルは、通常のファイル、パイプ、およびソケットだけで達成できる以上の拡張入出力機能を提供するデバイスです。これらの機能は、人間がコンピューターとやり取りしやすくするように設計されており、互いに通信しようとするプログラムには役に立たない。


1

これにひびを入れてみましょう...私はこれで多かれ少なかれUnixとLinuxを使用します。Linuxが存在する以前の歴史的なものに言及する場合は、通常「Unix」と記述し、最近のこと、またはLinuxフレーバーのUnix特有の何かについて話す場合は、通常「Linux 「。

シェル

リスト内で、他と重複しない個別の概念である唯一のものは、「シェル」です。シェルは、ユーザーと通信し、ユーザーに代わってオペレーティングシステムの操作を実行することを目的とするプログラムです。

最も一般的なシェルは、ユーザーに何らかのプロンプトを送信し、ユーザーがテキストコマンドを入力するのを待ってから、そのコマンドを実行する「コマンドライン」と呼ばれる手法を使用します。しかし、メニューベースのシェルや、グラフィカルなシェル(Windowsファイルエクスプローラーなど)もありますが、自尊心のあるUnixの人はそのようなものを「シェル」と呼ぶことはありません。

Unixでは、誰かが何かを「シェル」と呼ぶ場合、それらは私が今説明したような何らかの形のコマンドラインインターフェースをほぼ確実に意味します。また、Unixの世界では、これから説明するttyモデルを使用してユーザーと通信していない場合、何かを「シェル」と呼ぶのは非常に奇妙です。

TTY

これは、いくつかの異なる種類のものを参照できるため、混乱を招くものです。

Linuxには、「tty」と呼ばれる種類のデバイスがあります。これは、ユーザーであるか、何らかの方法でユーザーからの入力を受け取るものとの双方向通信に使用されることが期待される抽象的なデバイスです。時には、その抽象的なデバイスが何らかの物理デバイスに直接対応する場合があります。コミュニケーションが表示され、ユーザーが入力できるウィンドウを誰かに提示しているプログラムである場合があります。

しかし、この抽象的なデバイスが存在し、「tty」と呼ばれる理由は、「tty」は「teletype」の略語であるためです。抽象「tty」デバイスがそれを使用しているプログラムに提示するモデルは、基本的に反対側にテレタイプがあるということです。キャラクターを送信すると、それらのキャラクターがテレタイプに表示されます。それから文字を読むとき、それらの文字はキーボードで入力されたキーを表します。

古いペーパープリンターベースのttyは、すぐにビデオttyに取って代わりました。もちろん、ロール紙はありません。実際、画面上の任意の文字を上書きする可能性があります。しかし、プログラムに何らかの抽象的な「スクリーン」インターフェースを提示するのではなく、プログラムは、代わりに、さまざまなタスクを実行するエスケープシーケンスと呼ばれる文字の特別なストリームを送信することが期待されています。通常、画面上を移動できる「カーソル」と呼ばれる抽象的なものがあり、送信された文字はカーソルにあるものを置き換え、カーソルはさらに1文字移動します。多くの場合、エスケープシーケンスで印刷しようとしている文字の色も変更できます。

このモデルに従わない「ガラスtty」があり、その結果、Unixの世界ではうまく処理されません。ビデオ端末のIBM 3270ファミリは、このカテゴリに分類されます。

Linux / Unixの人々が一般的に「シェルウィンドウ」と呼ぶものは、グラフィカルユーザーインターフェイスを使用したGlass TTYのエミュレーションです。内部的には、シェルウィンドウ内で実行されているプログラムは、仮想ttyデバイスと通信しています。仮想ttyデバイスは、疑似ttyまたは疑似端末(別名pty)と呼ばれることもあります。

ターミナル

端末は、コンピューターと人間がインターフェイスする場所にすぎません。ターミナルは完全にグラフィカルであり、プログラムがこれをエミュレートするためにその機能を使用する場合でも、どのような方法でもttyモデルに従わない場合があります。実際の物理tty(ガラスなど)はすべて端末です。

コンソール

コンソールは、オペレーティングシステムが実行されているハードウェアに直接安全な方法で接続されることが一般的に想定されている特別な種類の端末です。

Linuxでは、コンソールは特別なキーストロークを使用して仮想コンソールを切り替えることができる小さな方法で仮想化されます。しかし、この仮想化は、カーネル内のソフトウェアによって実際のハードウェアで行われます。

「シリアルコンソール」と呼ばれるものを介してLinuxを使用する方法があります。これは、USBポートなどのシリアルポート(または、非常に小さなコンピューターや非常に古いコンピューターではRS-232ポート)を介してコンピューターに接続されるコンソールですある種の)であり、かなり厳密な方法で古いテレタイプモデルに従います。

繰り返しになりますが、このコンソールは、だれでも接続できるようなネットワークを介してではなく、直接物理的な方法でコンピューターに接続されます。

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.