What is a Terminal Emulator

Users of GNU/Linux, FreeBSD, macOS and other Unix implementations are probably used to hearing the words terminal emulator thrown around. However, fewer users are aware of why exactly this term is so common. Terminal emulators are extremely common pieces of software, but they’re not the same things as the command lines that they provide. Many users utilize these terms as though they were interchangeable when in reality they’re actually not.

There’s a few tricks designed to illustrate what a terminal emulator is and isn’t in this article. They’re mostly based on POSIX command line calls, so Unix users of all shades can enjoy them. Linux users who want to give it a try can hold down Ctrl, Alt and T to open up a terminal emulator. Apple macOS users might want to start a terminal emulator by clicking on the icon from the dock. Headless operators of FreeBSD, NetBSD, Darwin, OpenIndiana and other Unix implementations are probably already at a command line. Those with graphical interfaces may start one easily by clicking on the Applications menu, pointing at System Tools and clicking on Terminal.

Defining the Words Terminal Emulator

It’s first useful to understand what a teletype machine refers to. Originally, if you had wanted to interact with a Unix system or many other mainframe designs you’d need to worked with a teletype or TTY machine. These machines work by sending frequency shift keyed tones over a transmission line in order to present textual data encoded in simple binary. These systems ultimately spawned the ASCII encoding that’s used for text files.

A real genuine terminal isn’t a window floating on a computer screen. It’s actually a dedicated keyboard and monitor. While various coders throughout history have had their preferred terminals, the VT100 was a popular option that many terminal emulator packages now represent in code. These machines were ironically emulating teletype machines. In a way, these machines are slowly starting to come back in the form of thin clients that interface with powerful server installations.

You also have the concept of a PTY pseudo-terminal. This master and slave pair  allows a piece of software like SSH or a GUI terminal to offer a terminal-like interface through a PTS to a user coming from a master called a PTMX. When you’re running a GUI terminal, type the letter w and then push enter. You’ll see that it claims you’re latest command came from a pts, which is the slave pair to the PTMX that’s running the show in the first place.

Now, what you just entered that command into is a shell. That’s the command line interpreter that’s run on login. Examples include bash, ash and tcsh. It’s running inside of a terminal editor, which is a program that emulates a terminal and pretends you’re working at a real life console with a keyboard and display plugged in using the old-fashioned protocols. While you might say that you very well may be at a genuine keyboard and monitor, you need to be at one that sends the actual data protocols that these old bits of code would expect.

BSD and Linux distributions additionally provide something called a virtual console or virtual terminal when you hold down Ctrl, Alt and F2 or another common key combination. This is an emulation of a full console with a keyboard and display using those same old protocols that a traditional terminal would use. This will more than likely seem rather confusing because all of these terms have sort of become intertwined to refer to modern command line environments. You’ll hear references to terminals, terminal emulators, consoles, command lines and shells in ways that all refer to simply using text to control a computer system.

There’s another class of terminal emulators that allow SSH remote shells. These act as though they’re a physical display and keyboard calling into a remote system. This is useful for using a modem or perhaps more commonly now an Ethernet connection to contact other computers or bulletin boards as well as accessing telnet sites and doing repair work to routers and the like. If you’ve ever used an SSH program or the telnet command in Linux, then you’ve used this sort of a piece of software. You might also think back to the HyperTerminal program that was popular in Windows 95.


Kevin Arrows

Kevin Arrows is a highly experienced and knowledgeable technology specialist with over a decade of industry experience. He holds a Microsoft Certified Technology Specialist (MCTS) certification and has a deep passion for staying up-to-date on the latest tech developments. Kevin has written extensively on a wide range of tech-related topics, showcasing his expertise and knowledge in areas such as software development, cybersecurity, and cloud computing. His contributions to the tech field have been widely recognized and respected by his peers, and he is highly regarded for his ability to explain complex technical concepts in a clear and concise manner.