Although Linux has a number of distributions with Graphical User Interfaces, like Ubuntu, the objective of this page and the sub-pages is to look at Linux from an engineering perspective and to learn to use the Terminal.
In the old days the users communicated with the computer through a physical terminal or teletype consisting of a keyboard and a printer built together as a single machine. Teletypes were originally used for sending messages over long distances but served equally well as a user interface to early computers. Later the printer part was often replaced by a screen and a printer was only used when a hard copy was required.
Now most Linux desktops provide an application called terminal to simulate those old terminals. Why? Because it is so useful for a whole bunch of stuff. It is often easier to type commands than to use the Graphical User Interface for them.
Each command performs a process that is determined by the instructions contained in a program stored in the computer. Running a program is performing a process determined by that program. It is quite possible to have more than one process running simultaneously, defined by the same program, in the same way as more than one person can read one page of printed text simultaneously. Each process is called an "instance" of the program.
In the old days the users communicated with the computer through terminals consisting of a keyboard and a printer built together as a single machine. Later the printer part was often replaced by a screen and a printer was only used when a hard copy was required.
Now most Linux desktops provide an application called terminal to simulate those old terminals. Why? Because it is so useful for a whole bunch of stuff.
The computer runs a seperate process to "serve" each terminal and that process is an "instance" of a program called "the shell".
"The shell" process; processes commands entered using the keyboard and displays the results.
Using The Shell is one of the most important things you will ever do, so you could go striaght there if you want and read the rest of this page later.
When the BOIS starts it (executes) processes defined by programs of the Operating System's Kernal. The kernal can start many other processes (defined by programs of course) and have them all appearing to run simaltainiously. The Kernal shares the computers time between multiple processes.
In the beginning of computing people had to write programs in special languages for each type of computer and those programs had to take account of the particular hardware of that system. One type of keyboard might work one way and another type of keybord another way. The programs had to account for this.
Soon it was realised that if one created a sub-program that could deal with the particular peculiarities of a particular keyboard but that served a standerdised set of functions to other programs then those other programs would not need to be changed for every type of keyboard, only the sub-program would have to be changed. These sub-programs are called "drivers" and are a normal part of the Kernel.
Similarly by defining standard computer languages that could be "compiled" (translated) into the specific language of any particular computer then the problem was reduced to one of creating the appropriate programs, called "compilers", so that all programs written in a standard language could run on any computer,
This collection of "driver" and "compiler" programs and a great deal more that provides a standard interface for programs to use the non-standard functionality served by the varied hardware of different machines, is called "the kernel".