UNIX Introduction

UNIX was the first operating system to be developed using a high level language (C) instead of platform-specific assembly language, enabing it's portability across multiple computer platforms. Unix also was developed as a self-contained software system, comprising the operating system, development environment, utilities, documentation and source code, making it the perfect environment for software developers!

Unix Plate

Unix and Unix like refer to a family of computer operating systems and tools such as GNU/Linux, Apple OSX, Oracle Solaris, BSD, IBM AIX and others.

Unix Tree

Linux Emulator

To perform this tutorial, access to a Unix machine is required. Our admissions team have setup a linux emulator which you can use, just open a new browser window and point it to the Linux Emulator

Login emulator

A Terminal window will appear with a Unix prompt, waiting for you to start entering commands. The Unix prompt is at your service!

The UNIX operating system

The UNIX operating system is made up of three parts; the kernel, the shell and application programs.

Unix Architecture

The kernel

The kernel of UNIX is the hub of the operating system: it allocates time and memory to programs and handles the filestore and communications in response to system calls.

As an illustration of the way that the shell and the kernel work together, suppose a user types rm myfile (which has the effect of removing the file myfile). The shell searches the filestore for the file containing the program rm, and then requests the kernel, through system calls, to execute the program rm on myfile.

Kernel Shell interaction

When the process rm myfile has finished running, the shell then returns the UNIX prompt $ to the user, indicating that it is waiting for further commands.

The unix kernel

The shell

The shell acts as an interface between the user and the kernel. When a user logs in, the login program checks the username and password, and then starts another program called the shell. The shell is a command line interpreter (CLI). It interprets the commands the user types in and arranges for them to be carried out. The commands are themselves programs: when they terminate, the shell gives the user another $ prompt.

The unix shell

The user can customise his/her own shell, and users can use different shells on the same machine. The Linux Emulator uses the Almquist Shell

Filename Completion - By typing part of the name of a command, filename or directory and pressing the [Tab] key, the shell will complete the rest of the name automatically. If the shell finds more than one name beginning with those letters you have typed, it will beep, prompting you to type a few more letters before pressing the tab key again.

History - The shell keeps a list of the commands you have typed in. If you need to repeat a command, use the cursor keys to scroll up and down the list or type history for a list of previous commands.

Files and processes

Everything in UNIX is either a file or a process.

A process is an executing program identified by a unique PID (process identifier).

A file is a collection of data. They are created by users using text editors, running compilers etc.

Examples of files:

The Directory Structure

All the files are grouped together in the directory structure. The file-system is arranged in a hierarchical structure, like an inverted tree. The top of the hierarchy is traditionally called root.

The Unix file structure

In the diagram above, we see that the directory ee51ab contains the subdirectory unixstuff and a file proj.txt