As technology progresses, we often club terminologies falling under a certain category, which previously used to have different meanings. Anyone who has used operating systems apart from windows must be familiar with the command line interface. Today we’ll look into what a Terminal, Shell and Console really are, and how are they different from one another.
To understand what a terminal is, we have to go back to the mainframe days. Mainframes were computers with many users. They were common in large businesses and on college and university campuses. But when you have dozens of people that want to use one computer at the same time, how do you make them share it? In today’s words, we would give them each a monitor, a keyboard, and a mouse. In the era of the mainframe, terminals were used. A ‘terminal’, as defined by dictionaries, is either the end of something or a point of contact, sometimes both. Mainframes had terminal stations equipped with a display and keyboard scattered around the premise. They were endpoints where users could access the mainframe.
Today, consoles can be entirely in software, but that wasn’t always the case. Consoles go hand in hand with terminals. With respect to a mainframe, a console was both the port and the digital connection to the mainframe operating system from the terminal. A broader definition of a console is a desk or dashboard like interface from which a system is controlled and/or monitored. The terminal would be physically connected to the console port on the mainframe so that the user could control the mainframe digitally. On a Linux system you can press <ctrl> + <alt> + <F1 | F2 | F3 | …> to reach the different software consoles. Many systems still have serial-based console ports for management, such as professional network equipment.
The shell has a funny name, but only because the ‘kernel’ of an operating system is an even funnier name. A shell is the piece of material that wraps around a kernel. In computers, there is no difference (except that the shell and kernel are software). The shell is the command line interface you interact with. Examples of shells are BASH, CSH, and ZSH. The shell takes hand-typed commands and tells the operating system to execute them, or can take scripts and interpret logic within them in addition to instructing the operating system to execute the commands contained in the script.