Terminal

Nix, Robert P. Nix.Robert at mayo.edu
Mon Apr 25 14:57:47 UTC 2005


-----Original Message-----
From: fedora-list-bounces at redhat.com [mailto:fedora-list-bounces at redhat.com] On Behalf Of Shahzad Chohan
Sent: Monday, April 25, 2005 9:10 AM
To: For users of Fedora Core releases
Subject: Terminal

Many Thanks for the replies. They were very informative.

Basically I did do a google search during the whole of this morning 
but I couldn't find a page that lists all what I wanted to know, and
the other pieces were quite dis jointed from my perspective. All the
same nothing beats getting experienced advice.


I'm still not sure where the terminal sits in terms of linux OS. I
understand a shell executes my commands, so why do I need a terminal,
why not just have a shell. Also why are some terminals called
consoles. What is the difference between the gnome-terminal and say
xterm or the kde version or the xfce version.

Many Thanks for your help
Shahzad
------
Hi Shahzad;

You do things on/in "terminals" because the original computers running Unix were "headless"; The didn't have an attached keyboard and/or monitor. In many cases, "terminal" and "console" are one in the same. In some cases, "console" refers to the terminal the computer operator uses to interact with and control the computer. Linux doesn't really make use of the concept of an "Operator Console", so I think in your case, they're probably just two words for the same concept.

Original computer usage was done by sitting down at a physical terminal, which was connected by wire (25 of them, to be specific) to the physical computer, which might have been no where near where you were. 

You logged in and were placed in a shell, which accepted your commands and acted on them. (This was for Unix; there were many other operating systems in popular use, which all worked in a similar manner. DECsystem-10 would be an example. IBM OS-360 or CP-67 would be extreme examples.) You interacted with the shell, typing commands and getting responses, until you logged out.

There were no graphics involved (horror of horrors!!) No icons. No windows. No dialog boxes. Just you and the command prompt, or the prompts of the programs you ran. Results were presented in... Text that you had to read. What a novel concept! And, before display terminals were in popular use, you got a hardcopy log of your entire session, since it was all printed on paper by the terminal. Display terminals came along and rid us of the normally unwanted hardcopy.

Now many of the terminals, (VT52, VT100, Hazeltine and others) still wouldn't do graphics, but they had the innovative ability to relocate the cursor to any spot on the screen you'd like it to go. They could clear the screen to blank. Most of these did these things using character sequences beginning with the Escape character. (i.e. and "escape sequence") Programs started using these in an attempt to provide a better interface to the computer. 

Now forms could be displayed, and the user could fill in the blanks on the form. The big advantage was that the user could see many of the questions being asked by the program all at once, where before, they could only see the current prompt. Many more things could be done with the results as well. A progress bar became possible, and the like. Of course, these programs generally failed miserably on the still-older hardcopy terminals that were still in use as well. But note that everything was still entirely done in text; no graphics involved.

Then came X-Windows (and Microsoft, but we won't go there...) and all the pretty graphics, icons and windows. This was all great, but a large percentage of the software at the time was still text based. You had to have a way to interact with these text programs, but what you had now was a graphics terminal.

Enter xterm. This program, and the ones that followed, emulated the original terminal interface to Unix, so that you wouldn't have to give up all the programs you knew and loved, and so that everything the computer could do wouldn't have to be re-written all at once. 

Since many programs were written specifically for a certain type of terminal, or did different things on different terminal types, you had to tell the system what type of terminal you were. So, TERM="xterm" became valid, as was TERM="vt100" and the rest.

You need a terminal to run a shell, because a shell is one of these traditional programs that run from a text interface. You said it yourself: "The shell executes commands." How did the command get there? How will the user see the output? Without the text interface, how would you use the shell? It has no facilities of its own to receive input, produce output, or handle your graphics terminal. Those are all operating system features, and in the current context, are all graphic in nature. Xterm is your interface between the new, graphic world, and the old textual one. 

Note that you can run xterm, and still have a choice of several different shells within it. Or you can run xterm and Gnome term with the same shell. Neither one dictates a choice of the other. So... Shells don't do windows. Terminals do. It's just that simple.

Gnome-terminal, xterm and the rest are just choices to meet your personal tastes. Each has its own feature set, advantages, and liabilities. Pick the one you like, and after looking at the others (so that you don't look foolish when you sit down at someone else's computer) just ignore them. 

If you like the Gnome-terminal, then that's what you should use. That's what I use, and I can safely ignore the existence of the others. If you like the bash shell, then, again after looking at the other choices, because you might run into a need in the future, use bash and ignore the others. 99% of what you do in a shell will be using the shell you log in with in the first place. If you really like zsh instead, change your login shell to zsh, and then just ignore the others. And all the shells work with all the terminals. Interoperability! What a concept!!

This was long-winded, but I hope it helps explain some of the history that led up to what we have today. Note that I didn't do the source of the 80 column terminal, or the 132 character print line... Though it wouldn't take much to get me started. Having put all this down, Having worked with everything I mentioned above, I'm feeling kind of old right now. (49.954288 years, to be exact...)


-- 
Robert P. Nix		Mayo Foundation
RO-CE-8-857		200 First Street SW
507-284-0844		Rochester, MN 55905
-----
"In theory, theory and practice are the same, but
 in practice, theory and practice are different."




More information about the fedora-list mailing list