- The Kernel
This is the heart of the Linux Operating System. It performs the tasks that create and maintain the Linux environment. It keeps track of the disks, tapes, printers, terminals, communication lines and any other devices attached to the computer. It also interfaces between the computer's hardware and the users
- The Shell
This is a program that interfaces between the user and the Linux Operating System. It listens to the user's terminal and translates the actions requested by the user. There are a number of different Shells that may be used. See section on The Shell
- Utilities and Application Programs
Utilities are the Linux Commands. Application Programs, such as Word Processors, Spreadsheets and Database Management Systems, may be installed alongside the Linux Commands. A user may run a utility or application through the shell
The Shell is a program that provides an interpreter and interface between the user and the Linux Operating System. It executes commands that are read either from a terminal or from a file. Files containing commands may be created, allowing users to build their own commands. In this manner, users may tailor Linux to their individual requirements and style.
There are a number of different Shells. Each provides a slightly different interface between the user and the Linux Operating System. The most important shells that originated from the Unix operating system are:
There are other shells that are less widely used and not available on many machines. For example, there is the Restricted Shell - rsh. This restricts the area of memory the user may access to his or her own directory, thus limiting access to all other users' files.
All of these shell interfaces are available to Linux. However, there are other shells that have been developed since, most generally for Linux: ash, tcsh and zsh are available on most versions of Linux. However, the most widely used, originally Linux-based shell is the Bourne-Again shell (bash). Based on the original Bourne shell, it has similar extensions as the Korn shell, plus its own further extensions.
Linux also offers a windows-based shell interface, commonly known as X-Windows or simply as X. More akin to the Mackintosh windows than Microsoft windows, it is another method of interfacing with the Linux kernel. However, X-Windows interfaces are not considered on this course.
A command issued by a user may be run in the present shell, or the shell itself may start up another copy of itself in which to run that command. In this way, a user may run several commands at the same time. A secondary shell is called a sub-shell.
When a user logs onto the System, a shell is automatically started. This will monitor the user's terminal, waiting for the issue of any commands. The type of shell used is stored in a file called passwd in the subdirectory etc (see Section 3.2). Any other shell may be run as a sub-shell by issuing it as a command. For example, /usr/bin/ksh will run a Korn shell. The original shell will still be running - in background mode - until the Korn shell is terminated.
Linux is a multi-user operating system. Each user will require to create and access his or her own files. These files must be secure from other users on the system. Because of this, each user has a unique identification on a Linux system, with the option of a password to enhance security.
There are two types of user on a Linux system:
- Ordinary Users
An ordinary user has a Home Directory under which files and sub-directories are normally stored. After logging onto the system, a user is normally taken directly to that directory.
An ordinary user is a member of a Group of users. For security reasons, files (and directories) owned by a user may be accessed and used by the user, other members of the user's group and all other users at different levels of permission. For example, a file may be read and altered by the user that owns it, may only be read by other members of the same group and may not be accessed at all by any other user.
A super-user is a privileged user who has full access to all files, regardless to whoever owns them or what their access permissions are.
The super-user has a position of responsibility: to administer and maintain the system.
The super-user is normally known as root. root's Home directory is the primary directory of the system, under which all other directories and all files are stored.