What Is UNIX?
-
UNIX is a computer operating system.
-
An operating system is the program that controls all the other parts of
a computer system, both the hardware and the software. It allocates the
computer's resources and schedules tasks. It allows you to make use of
the facilities provided by the system. Every computer requires an operating
system.
-
UNIX is a multi-user, multi-tasking operating system. Multiple users may
have multiple tasks running simultaneously. This is very different from
PC operating systems such as MS-DOS or MS-Windows (which allows multiple
tasks to be carried out simultaneously but not multiple users).
-
UNIX is a machine independent operating system. Not specific to just one
type of computer hardware. Designed from the beginning to be independent
of the computer hardware.
-
UNIX is a software development environment. Was born in and designed to
function within this type of environment.
-
The "UNIX" trademark, previously owned by AT&T and then deeded to UNIX
Systems Laboratories (USL), an AT&T subsidiary, passed to Novell when
it acquired USL. After a brief period of negotiations with rival Unix vendors,
namely, Sun Microsystems, Santa Cruz Operation, International Business
Machines, and Hewlett-Packard, Novell granted exclusive licensing rights
of the UNIX trademark to X/Open Co. Ltd., an Open Systems industry standards
branding agent based in the United Kingdom.
History of UNIX
-
1969: Developed at AT&T Bell Labs in Murray Hill, New Jersey, one of
the largest research facilities in the world. Created in an environment
when most computer jobs were fed into a batch system.
-
Developed by researchers who needed a set of computing tools to help them
with their projects and their collaborators. Allowed a group of people
working together on a project to share selected data and programs.
-
1975: AT&T makes UNIX widely available - offered to educational institutions
at minimal cost. Becomes popular with university computer science programs.
AT&T distributes standard versions in source form: Version 6 (1975),
Version 7 (1978), System III (1981).
-
1984 to date: University of California, Berkeley adds major enhancements,
creates Berkeley Standard Distribution (BSD)
-
1984 to date: Many Berkeley features incorporated into new AT&T version:
System V
-
UNIX has become the operating system of choice for engineering and scientific
workstations.
-
Two variations maintain popularity today, AT&T System V based and the
Berkeley Standard Distribution.
-
Current versions (1/95)are System V release 4.2 .and 4.4 BSD
-
Work is in progress to develop a Portable Operating System specification
based on UNIX (IEEE POSIX committee).
UNIX Philosophy
-
Make each program do one thing well. Reusable software tools: 1 tool =
1 function
-
Expect the output of every program to become the input of another, yet
unknown, program to combine simple tools to perform complex tasks
-
Prototyping: get something small working as soon as possible and modify
it incrementally until it is finished
-
Use terse commands and messages: reduces typing and screen output
Why UNIX?
-
Hardware independence
-
operating system code is written in C language rather than a specific assembly
language
-
operating system software can be easily moved from one hardware system
to another
-
UNIX applications can be easily moved to other UNIX machines. Porting is
usually as simple as transfer of the source and a recompile
-
Productive environment for software development
-
rich set of tools
-
versatile command language
-
Distributed processing and multi-tasking
UNIX Components
-
Kernel
-
The core of the UNIX system. Loaded at system start up (boot). Memory-resident
control program.
-
Manages the entire resources of the system, presenting them to you and
every other user as a coherent system. Provides service to user applications
such as device management, process scheduling, etc.
-
Example functions performed by the kernel are:
-
managing the machine's memory and allocating it to each process.
-
scheduling the work done by the CPU so that the work of each user is carried
out as efficiently as is possible.
-
accomplishing the transfer of data from one part of the machine to another
-
interpreting and executing instructions from the shell
-
enforcing file access permissions
-
You do not need to know anything about the kernel in order to use a UNIX
system. These details are provided for your information only.
-
Shell
-
Whenever you login to a Unix system you are placed in a shell program.
The shell's prompt is usually visible at the cursor's position on your
screen. To get your work done, you enter commands at this prompt.
-
The shell is a command interpreter; it takes each command and passes it
to the operating system kernel to be acted upon. It then displays the results
of this operation on your screen.
-
Several shells are usually available on any UNIX system, each with its
own strengths and weaknesses.
-
Different users may use different shells. Initially, your system adminstrator
will supply a default shell, which can be overridden or changed. The most
commonly available shells are:
-
Bourne shell (sh)
-
C shell (csh)
-
Korn shell (ksh)
-
TC Shell (tcsh)
-
Bourne Again Shell (bash)
-
Each shell also includes its own programming language. Command files, called
"shell scripts" are used to accomplish a series of tasks.
-
Utilities
-
UNIX provides several hundred utility programs, often referred to as commands.
-
Accomplish universal functions
-
editing
-
file maintenance
-
printing
-
sorting
-
programming support
-
online info
-
etc.
-
Modular: single functions can be grouped to perform more complex tasks
System V vs. BSD
-
AT&T distributes System V for their computers. System V is also the
basis for several commercial implementations including:
-
Hewlett-Packard HP-UX
-
Apple AUX
-
Amdahl UTS
-
Cray UNICOS
-
IBM AIX.
-
BSD, from the University of California Berkeley, has undergone extensive
modification and enhancement in the university environment.
-
BSD is available directly from UCB and in a number of commercial versions
including: Sun, Apollo, DEC Ultrix, Gould UTX/32.
-
System V and BSD contain a large set of commands in common. Some of these
commands, however, support different options and have different default
behaviors and output formats. ex: ls, stty, mail, grep
-
Each version also has its own unique utilities. Some very common tasks,
such as browsing a file, are performed by totally different utilities:
System V uses "pg" whereas BSD uses "more".