Terminal emulator: Difference between revisions

Content deleted Content added
m Reverting possible vandalism by 165.90.65.137 to version by Murgatroyd49. Report False Positive? Thanks, ClueBot NG. (4292654) (Bot)
Shimodax (talk | contribs)
Fleshed out missing section (Emulators) and relocated more technical-detail sections under Implementation.
Line 9:
Terminals usually support a set of [[escape sequences]] for controlling color, [[Cursor (computers)|cursor]] position, etc. Examples include the family of terminal control sequence standards known as [[ECMA-48]], [[ANSI X3.64]] or [[ISO/IEC 6429]].
 
== HistoryBackground ==
 
In the early days of computing, with the advent of interactive computing, the prevailing model involved a central computer connected to multiple terminals.
=== Computer terminals ===
<ref>[http://www.inf.fu-berlin.de/lehre/SS01/hc/minicomp/ FU Berlin, 3. Minicomputer architecture]</ref>. This configuration, known as the centralized or mainframe model, featured a powerful central computer that performed all the processing tasks, while [[Computer_terminals|terminals]] served as input/output devices for users to interact with the system. These systems were initially character based.
{{Excerpt|Computer_terminal|"Intelligent" terminals}}
 
=== EmulatorsCharacter oriented terminals ===
{{Excerpt|Computer_terminal|"Intelligent"Character-oriented terminalsterminal}}
{{Expand section|date=October 2021}}
 
== Emulators: From Hardware to Software ==
==Local echo==
As prices of memory and computation fell, the local computing power increased, making the terminals themselves more powerful. In this process, initially, emulation of the functions of a terminal was a process that played out between terminal manufacturers, where the manufacturers of one type of terminal emulated the functions of another manufacturer. For example a Wyse-60 terminal offered a total of 15 so called "Personalities", among them those of competitors like Televideo-952, DEC VT100 and IBM 3101.<ref>[http://bitsavers.trailing-edge.com/pdf/wyse/WY-60/Wyse_WY60_Users_Guide.pdf Wyse 60 User's Guide, page 2-5]</ref>
{{main|echo (computing)#Terminal emulators}}
 
When personal computers became ubiquitous in the 1980s, they offered the option of running software on the user's computer personal computer, providing an opportunity to replace the expensive and space consuming hardware terminals with something that had additional functions<ref>[https://www.emtec.com/zoc/terminal-emulator.html Emulating a Terminal on Personal Computers]</ref>. Immediately software became available, that could emulate the functions of the hardware terminals on a PC. Examples of such software for [[DOS]] were [[Telix]] or Telemate, which was published in 1988 and could emulate a DEC VT102 terminal <ref>[http://www.thealmightyguru.com/Wiki/index.php?title=Telemate Telemate Wiki]</ref>.
Terminal emulators may implement a [[echo (computing)|local echo]] function, which may [[Echo (computing)#Terminological confusion: echo is not duplex|erroneously]] be named "[[Duplex (telecommunications)#Half duplex|half-duplex]]", or still slightly incorrectly "echoplex" (which is formally an [[error detection]] mechanism rather than an input display option).{{sfn|Daintith|2004|p=171}}{{sfn|Weik|2000|loc="echo" p. 478}}{{sfn|Weik|2000|loc="echoplex" p. 479}}{{sfn|Weik|2000|loc="echoplex mode" p. 479}}
 
During the 1990s, new operating systems like [[Windows]] and [[OS/2]] arrived, providing the technical background for more terminal emulators like [https://winworldpc.com/product/telix/100-for-windows Telix for Windows], [[ZOC|ZOC for OS/2]], or [[Putty]], which was initially released for Windows in 1998 and which (together with its derivates) is still one a very popular choice to this day<ref>[https://www.slant.co/topics/1552/~best-terminal-emulators-for-windows SSH Clients for Windows]</ref>.
==Line-at-a-time mode/Local editing==
{{main|Computer terminal#Modes}}
 
Through the [[History_of_Linux|success of Linux]], especially running on data centers and cloud servers<ref>[https://www.debianadmin.com/powering-linux-in-the-data-center.html Powering Linux in the Data-Center]</ref>, the necessity of accessing remote computers through character based terminals remains. This is evident in the fact, that today lists of terminal emulators that could serve as alternative to the aforementioned [[Putty]] offers over 100 alternatives<ref>[https://alternativeto.net/software/putty/ Alternatives to Putty]</ref>.
Terminal emulators may implement local editing, also known as "line-at-a-time mode". This is also mistakenly referred to as "[[half-duplex]]".{{cn|date=December 2017}} In this mode, the terminal emulator only sends complete lines of input to the host system. The user enters and edits a line, but it is held locally within the terminal emulator as it is being edited. It is not transmitted until the user signals its completion, usually with the {{keypress|Enter}} key on the keyboard or a "send" button of some sort in the user interface. At that point, the entire line is transmitted. Line-at-a-time mode implies local echo, since otherwise the user will not be able to see the line as it is being edited and constructed.{{sfn|Daintith|2004|p=171}}{{sfn|Bangia|2010|p=324}} However, line-at-a-time mode is independent of echo mode and does not ''require'' local echo. When entering a password, for example, line-at-a-time entry with local editing is possible, but local echo is turned off (otherwise the password would be displayed).{{sfn|Stevens|Wright|1994|p=413}}
 
The complexities of line-at-a-time mode are exemplified by the line-at-a-time mode option in the telnet protocol. To implement it correctly, the ''Network Virtual Terminal'' implementation provided by the terminal emulator program must be capable of recognizing and properly dealing with "interrupt" and "abort" events that arrive in the middle of locally editing a line.{{sfn|Miller|2009|p=590, 591}}
 
==Synchronous terminals==
{{original research|section|date=January 2011}}
 
In asynchronous terminals data can flow in any direction at any time. In '''synchronous terminals''' a protocol controls who may send data when. [[IBM 3270]]-based terminals used with [[IBM]] mainframe computers are an example of '''synchronous terminals'''. They operate in an essentially "screen-at-a-time" mode (also known as [[Block-oriented terminal|block mode]]). Users can make numerous changes to a page, before submitting the updated screen to the remote machine as a single action.
 
Terminal emulators that simulate the 3270 protocol are available for most operating systems, for use both by those administering systems such as the [[System z9|z9]], as well as those using the corresponding applications such as [[CICS]].
 
Other examples of synchronous terminals include the [[IBM 5250]], [[International Computers Limited|ICL]] 7561, [[Honeywell Bull]] VIP7800 and [[Hewlett-Packard]] 700/92.
 
==Virtual consoles==
{{unreferenced section|date=October 2021}}
[[Virtual console]]s, also called virtual terminals, are emulated [[Computer terminal|text terminals]], using the keyboard and monitor of a personal computer or workstation. The word "text" is key since virtual consoles are not GUI terminals and they do not run inside a graphical interface. Virtual consoles are found on most [[Unix-like]] systems. They are primarily used to access and interact with servers, without using a graphical desktop environment.
 
==Examples of terminals emulated==
Line 65 ⟶ 49:
* {{Code|deallocvt}} to close a currently unused virtual console
 
====Local System loading =echo===
{{main|echo (computing)#Terminal emulators}}
The program ''[[startx]]'' starts the [[X Window System]] on a new virtual console. There are also other graphical programs that can start from the console (e.g. [[LinuxTV]] and [[MPlayer]] etc.)
 
Terminal emulators may implement a [[echo (computing)|local echo]] function, which may [[Echo (computing)#Terminological confusion: echo is not duplex|erroneously]] be named "[[Duplex (telecommunications)#Half duplex|half-duplex]]", or still slightly incorrectly "echoplex" (which is formally an [[error detection]] mechanism rather than an input display option).{{sfn|Daintith|2004|p=171}}{{sfn|Weik|2000|loc="echo" p. 478}}{{sfn|Weik|2000|loc="echoplex" p. 479}}{{sfn|Weik|2000|loc="echoplex mode" p. 479}}
 
===Line-at-a-time mode/Local editing===
{{main|Computer terminal#Modes}}
 
Terminal emulators may implement local editing, also known as "line-at-a-time mode". This is also mistakenly referred to as "[[half-duplex]]".{{cn|date=December 2017}} In this mode, the terminal emulator only sends complete lines of input to the host system. The user enters and edits a line, but it is held locally within the terminal emulator as it is being edited. It is not transmitted until the user signals its completion, usually with the {{keypress|Enter}} key on the keyboard or a "send" button of some sort in the user interface. At that point, the entire line is transmitted. Line-at-a-time mode implies local echo, since otherwise the user will not be able to see the line as it is being edited and constructed.{{sfn|Daintith|2004|p=171}}{{sfn|Bangia|2010|p=324}} However, line-at-a-time mode is independent of echo mode and does not ''require'' local echo. When entering a password, for example, line-at-a-time entry with local editing is possible, but local echo is turned off (otherwise the password would be displayed).{{sfn|Stevens|Wright|1994|p=413}}
 
The complexities of line-at-a-time mode are exemplified by the line-at-a-time mode option in the telnet protocol. To implement it correctly, the ''Network Virtual Terminal'' implementation provided by the terminal emulator program must be capable of recognizing and properly dealing with "interrupt" and "abort" events that arrive in the middle of locally editing a line.{{sfn|Miller|2009|p=590, 591}}
 
=== ComputerSynchronous terminals ===
{{original research|section|date=January 2011}}
 
In asynchronous terminals data can flow in any direction at any time. In '''synchronous terminals''' a protocol controls who may send data when. [[IBM 3270]]-based terminals used with [[IBM]] mainframe computers are an example of '''synchronous terminals'''. They operate in an essentially "screen-at-a-time" mode (also known as [[Block-oriented terminal|block mode]]). Users can make numerous changes to a page, before submitting the updated screen to the remote machine as a single action.
 
Terminal emulators that simulate the 3270 protocol are available for most operating systems, for use both by those administering systems such as the [[System z9|z9]], as well as those using the corresponding applications such as [[CICS]].
 
Other examples of synchronous terminals include the [[IBM 5250]], [[International Computers Limited|ICL]] 7561, [[Honeywell Bull]] VIP7800 and [[Hewlett-Packard]] 700/92.
 
===Virtual consoles===
{{Expandunreferenced section|date=October 2021}}
[[Virtual console]]s, also called virtual terminals, are emulated [[Computer terminal|text terminals]], using the keyboard and monitor of a personal computer or workstation. The word "text" is key since virtual consoles are not GUI terminals and they do not run inside a graphical interface. Virtual consoles are found on most [[Unix-like]] systems. They are primarily used to access and interact with servers, without using a graphical desktop environment.
 
==See also==