UNIX as an Operating System
What is an Operating System (OS)?
The operating system (OS) is the program which starts up when you turn on
your computer and runs underneath any other programs you run - without it
nothing would happen at all.
In simple terms, an operating system is a manager.
It manages all the available resources on a computer from the CPU to memory
to hard disk accesses.
One could break down the overall tasks that an OS must
perform into 3 main catagories...
- Control Hardware - The operating system controls all the parts of
the computer and attempts to get everything working together.
- Run Applications - Another job the OS does is run application
software. This would include word processors, web browsers, games, etc...
- Manage Data and Files - The OS makes it easy for you to organize
your computer. Through the OS you are able to do a number of things to
data including copy, move, delete, and rename it. This makes it much
easier to find and organize what you have.
UNIX History
The UNIX operating system was born in the late 1960's.
It originally began as a one man project lead by Ken Thompson of Bell Labs and has since grown to become the
most widely used operating system.
In the time since UNIX was first developed, it has gone through many different generations and even mutations.
Some differ substantially from the original version, like Berkeley Software Distribution (BSD) or Linux.
Others, still contain major portions that are based on the original source code.
An interesting and rather up to date time-line of these variations of UNIX can be found at
http://www.levenez.com/unix/history.html.
UNIX as an Operating System (OS)
In general most UNIX operating systems have the following characteristics...
- Multi-user & Multi-tasking - most versions of UNIX are capable of allowing multiple users
to log onto the system each capable of running multiple tasks.
This is standard for almost any OS now-a-days.
- Over 30 Years Old - there is something to be said for the fact that UNIX is over 30 years old and it's
popularity and use are at all time highs. Over these 30 years many variations have
spawned off and many have died off, but much of todays modern UNIX systems can be traced
back to the original versions. It has endured the test of time. For reference, Windows at best
is half as old (Windows 1.0 was released in the mid 80's, but many would argue that it was not
by any means stable or complete enough until the 3.x family which was released in the early 90's).
- Large Number of Applications - although it may not seem it, there is an enormous amount of applications available
for UNIX operating systems. They range from commercial applications such as CAD, Maya,
Word-perfect, to many free applications.
- Free Applications and Even Free Operating System - of all of the applications available under UNIX, many of them are
free. The compilers and interpreters that we use in most of the programming courses
here at UMBC now these free versions that can be downloaded off of the Internet free of charge.
As well, most of the development that we do in programming courses is done under the Linux OS.
Since Linux is one of the free versions of UNIX, it too can be downloaded and installed free of
charge.
- Less Resource Intensive - in general, most UNIX installations tend to be much less demanding on the system resources.
In many cases the old family computer, that can barely run whatever version of windows is more
than sufficient to run the latest version of Linux.
- Internet Development - Much of the backbone of the Internet is run by UNIX servers of one type or another.
Many of the more general web-servers out there also run UNIX with the Apache webserver -
another free application.
Parts of the UNIX Operating Systems
Most UNIX systems can be broken down into several parts...
- The Kernel - handles memory management, input and output requests, and program scheduling. Technically
speaking, the UNIX kernel "is" the OS. It provides the a basic
software connection to the hardware. The kernel is very complex and deals with the inner
workings of these things, and is thus beyond the scope of this course. The kernel is covered in
much detail in CMSC 421 - Operating Systems.
- The Shell - basic UNIX shells provides a "command line" interface which allows the user to type
in commands which are translated by the shell into something the kernel can comprehend and then is
sent off to the kernel for it to act upon.
- The Built-in Utilities - are programs that allow a user to perform tasks which involve complex actions in one
fell swoop. Utilities provide user interface functions that are basic to an operating system but
which are too complex to be built into the shell. Examples of utilities are programs that let us
see the contents of a directory, move & copy files, and remove files.
Also, not part of the operating system (OS) directly, but common on almost all systems are...
- Installed Software & Utilities - are addition programs that are not bundled with the operating system (OS)
distribution. These can range from additional or different versions of basic utilities, to full scale
commercial applications.
Flavors of UNIX
As I have mentioned, over the
30 years that UNIX has been around there have been many different variants. There just as many ways to categorize these
variations. For the purpose of this course, we will classify into 2 sets of catagories...
- Open Source vs. Proprietary - Open Source means that the source code that is the operating is readily available and is
free for all to install and use.
Proprietary means the software's use, redistribution or modification is prohibited, or
requires you to ask for permission, or is restricted so much that you effectively can't do it freely
(meaning it was developed for sale and profit, and thus you should pay for it).
Over the past couple of years, the CS department has tended
to shift towards the use of open source, so that students can download and install the same applications and
operating systems
that are here at UMBC on their home computers.
- Available at UMBC - Simply, do you as a general undergraduate student have access to this operating system.
Proprietary
- Solaris - Access to a Solaris UNIX server
(solaris.gl.umbc.edu) via SSH access.
- IRIX - There are a couple of IRIX machines
in the basement of the library, as well as server access (irix.gl.umbc.edu) via SSH access.
- Mac OS X - no access currently available at UMBC.
- and many others...
Open Source
- Solaris 10 - Sun has said that this release will be Open Source.
- Free BSD - no access currently available at UMBC.
- Open BSD - no access currently available at UMBC.
- Linux - access is available in the form of dual boot PCs scattered
throughout the ECS building. There are also several Linux
servers (linux.gl.umbc.edu) through which access is
available.
Installable Linux Distributions
- RedHat - this is actually what is used here at UMBC, with some
special modifications made for the computing environment.
RedHat is also one of the most popular linux distributions. As of RedHat 9, RedHat is no longer distributing
free releases under this name. RedHat is not supporting the Fedora Project.
- Fedora
- Caldera
- Mandrake
- Debian
- SuSE
- Slackware
- and many others...
Bootable Linux Distributions
Focus on Linux
During the course of this class we will refer to UNIX to mean any UNIX like OS.
The course focus will be on Linux, as this is what is used in the vast majority of the CS courses.
However most of the items covered are analogous to most every version of UNIX.
UNIX Interfaces
There are really 2 means of connecting to UNIX computers here at UMBC.
- You can be sitting in front of a dual boot-able PC that you have booted into Linux and logged onto.
All of your commands are then being run locally on that computer. When you logon in this manner
you have a full GUI environment.
- You can connect remotely to one of the UNIX servers (whether from home or at the labs). This is often
how your projects are suggested to be developed as they are graded on those same servers. When you logon in
this manner you have a command line (or text based) environment. You can also open up a command line on local
lab machines as well.
GUI Interface
As mentioned when you logon locally, you are presented with graphical environment. When you reboot a windows
you get a graphical login screen. You must enter in your username and password. You also the have the option to
choose from a couple session types. Mainly you have the choice between Gnome and KDE. Once you enter in your username and
password, you are then presented with a graphical environment that looks like one of the following...
Gnome

KDE

Command Line Interface
As I mentioned you also have access to some UNIX servers as well. You can logon from virtually any computer
that has Internet access whether it be Windows, Mac or UNIX itself. In this case you are communicating through a local terminal
to one of these remote servers, where all of the actions are actually being executed. Typically this is done solely via the
command prompt (or line). It is also possible to open up graphical applications through this window, but that requires a good
bit more setup and software (time permitting, we may cover how to do this).

Daniel J. Hood
Last modified: Tue Sep 28 16:39:42 EDT 2004