Title: UNIX History and Philosophy
1UNIX History and Philosophy
2Definition of an Operating System (OS)
- An operating system is a control program for a
computer that performs the following operations - manages and allocates computer resources
- schedules routine tasks
- provides a platform to run application software
for users to accomplish tasks - provides an interface between the user the
computer
3History of Unix OS
- Prior to Unix, many operating systems ran
collections or batches of operations one at a
time. - This single-user batch-processing approach did
not take advantage of the potential processing
power and speed of computers - Note batch processing lacks the advantage of
immediate feedback as opposed to online processing
Enter data in files to be later processed
Process Collection or Batch of files
Receive information of processed data
4History of Unix OS
- The Unix OS was developed (based on Multics
CTSS operating systems) by Ken Thompson at the
ATT Bell Laboratories in 1969. He wanted to
create an multi-user operating system to run
space wars game. - Kens philosophy was to create an operating
system with commands or utilities that would do
one thing well very well (i.e. UNIX).
5History of Unix OS
- The first versions of UNIX were written in
machine-dependent program (such as PDP-7). - Ken Thompson approach Dennis Ritchie developer of
C program), and in 1973 they compiled UNIX in C
programming language to make operating system
portable to other computers systems.
6History of Unix OS
- Ken Thompson (recently retired from Bell Labs) is
on left, and Dennis Ritchie is in the middle.
Whats his name is on the right
7History of Unix OS
- The Unix OS is a multi-user OS allowing more that
more person to directly communicate with the
computer. - Although the OS can only work on one task at a
time, a small piece of time (time slice) is
dedicated to each task or user - this is referred
to as time-sharing. - Time sharing gives the illusion that the CPU is
giving all the users its full attention
8An Illustration of Time-Sharing
User 1
User 8
User 2
User 7
TIME
User 3
User 6
User 4
User 5
9Development of Unix OS
- Unix became a popular OS among institutions such
as colleges universities through a 4-year try
before you buy deal. - Efficient and inexpensive way of networking
- promotes Internet use and file-sharing
- Open system allows for source code to be shared
among many programmers - allows for better
coordination among programmers
10Development of Unix OS
- Students at University of California (in Berkley)
further developed the UNIX operating system and
introduced the BDS version of Unix
Unix
Berkley Software Distribution (BSD)Free
Bell LabsUNIX System V (5)Proprietary
11Development of Unix OS
- There were versions of UNIX for the Personal
Computer (PC), such as XENIX, etc., but they
didnt catch on in popularity until Linux was
developed in the early 90s.
12History of Linux
- Linux operating system developed by programming
student Linus Torvalds - Linus wanted to develop Unix-like OS just to
experiment with new 386 computer at the time...
13Why Has Linux Become soPopular?
- Linus decided to make Linux OSsource-code for
Linux Kernel open to all - Unlike traditional Operating Systems, anyone can
modify and distribute Linux OS (as long as they
distribute source code of Linux Kernel) - Competition among Hackers allow code to be
improved and distributed often - Many users can spot bugs in the operating system
or application if source code is open
14Why Has Linux Become soPopular?
- Other Factors
- PCs have increased processing power and a there
has been a noted shift from mainframes and
minicomputers to PCs. - Since Linux is a Unix Work-alike, this OS has a
reputation to be a very stable platform for
networking (creating at-home servers) and running
/ maintaining applications. - Agencies such as Free Software Foundation created
GNU project to provide free software.
15Concerns
- Some people claim that there are as many version
of Linux as there are users - POSIX (Portable Operating System Interface for
Computer Environments) is a government standard
to ensure consistency among different UNIX and
Linux versions. - Many versions of Linux are approaching POSIX
standard.
16Concerns
- Freedom of allowing Linux users to create
servers connected up to Internet can lead to
attacks from experienced hackers. - Linux commands may be considered
user-unfriendly although GUIs are now used. - Prior reputation for difficult install process
including the loss of data on other hard disk
partitions. - The same can be said of Microsoft Windows
17The Unix philosophy in a Nutshell
- The tenets of the Unix philosophy are deceptively
simple. They are so simple, in fact, that people
tend to regard them as having little importance.
That's where the deception comes in. Their
simplicity disguises the fact that these ideas
are incredibly effective when carried out
consistently. - The following list will give you an idea of what
the Unix philosophy tenets are. The rest of the
book will help you to understand why they are
important.
18Unix Tenets
- Small is beautiful.
- Make each program do one thing well.
- Build a prototype as soon as possible.
- Choose portability over efficiency.
- Store data in flat text files.
- Use software leverage to your advantage.
- Use shell scripts to increase leverage and
portability. - Avoid captive user interfaces.
- Make every program a filter.
19Unix Tenets
- The preceding list contains tenets about which
Unix developers are dogmatic. You will find
similar lists in other books on Unix, as they are
the points that everyone considers to be
foundational Unix concepts. If you adopt them,
you will be considered to be a "Unix person."
20Unix Lesser Tenets
- The following lists 10 lesser tenets, ideas that
tend to be part of the Unix world's belief
system.2 Not everyone involved with Unix is
dogmatic about these, and some of them aren't
strictly characteristic of Unix. Still, they seem
to be a part of the Unix culture (and the Linux
culture by inclusion).
21Unix Lesser Tenets
- Allow the user to tailor the environment.
- Make operating system kernels small and
lightweight. - Use lowercase and keep it short.
- Save trees.
- Silence is golden.
- Think parallel.
- The sum of the parts is greater than the whole.
- Look for the 90-percent solution.
- Worse is better.
- Think hierarchically.
22Unix Tenets
- After reading the list of tenets, you may be
wondering just what all the fuss is about. "Small
is beautiful" is not such a big deal. "Doing one
thing well" sounds pretty narrow-minded in and of
itself. Choosing portability over efficiency
isn't the sort of idea that will change the
world. - Is that all there is to Unix? Is Linux just a
small operating system for small minds?
23Unix Tenets
- Perhaps we should mention that Volkswagen built a
marketing campaign around the "small is
beautiful" concept that helped it sell millions
of automobiles. Or consider that Sun
Microsystems, a leading Unix systems vendor,
based its strategy on putting "all the wood
behind one arrowhead" or, in other words, "doing
one thing well." Could all the interest in PDAs,
wireless Web access, and hand-held video have
something to do with portability?
24Unit Tenets
- Come. Let us begin the journey.
- 2Given words such as "dogmatic," "tenets," and
"belief system," might one wonder whether the
Unix philosophy describes a cultural phenomenon
in addition to a technological one.
25Introduction to Unix/Linux
- Chapter One
- The Essence of UNIX
26Objectives
- Define operating systems in general and the UNIX
operating system in particular - Describe Linux as it relates to UNIX
- Explain the function of UNIX shells
- Describe the options for connecting to a UNIX
system - Define the syntax used for entering UNIX commands
27Objectives (cont.)
- Use the date, cal, who, man, whatis, and clear
commands - Perform basic command-line editing operations
- Enter multiple commands on a single command line
- Recall a command from the command history
- Log in to and log out of UNIX
28Understanding Operating Systems
- Operating System (OS)
- The most fundamental computer program
- Enables you to store information, process raw
data, use application software, compile your own
programs, and access attached hardware, such as a
printer or keyboard - UNIX Operating System
- Leading OS for workstations, which are computers
on a local area network (LAN)
29Understanding Operating Systems
30PC Operating Systems
- A personal computer (PC) OS conducts all the
input, output, processing, and storage operations
on a stand-alone computer
31Mainframe Operating Systems
- A mainframe OS controls a large computer system
with multiple processors that conduct input,
output, processing, and storage operations for
many users
32Network Operating Systems
- A network OS controls the operations of a server
computer, sometimes called a host, which accepts
requests from user programs running on other
computers, called clients
33Server-based vs. peer-to-peer networks
- Server-based network
- Centralized processing approach
- Data and applications server resident
- If server fails, entire network fails
- Peer-to-peer
- Distributed processing approach
- Data and applications workstation resident
- Each system is both a server and a client
34Introducing the UNIXOperating System
- UNIX can be used on systems functioning as
- Dedicated servers or client workstations in a
server-based network - Client/server workstations connected to a
peer-to-peer network - Stand-alone workstations not connected to a
network
35Introducing the UNIXOperating System
- UNIX is a multi-user system
- Allows many users access and share the resources
of a server computer - UNIX is a multitasking system
- Allows user to execute more than one program at a
time - UNIX is a portable operating system
- Used in many computing environments
36UNIX Concepts
- Shell
- The interface between user and OS
- Hierarchical Structure
- Directory and subdirectory organization
- Layered components
- Layers of software surround the computers inner
core
37(No Transcript)
38Linux and UNIX
- Linux is UNIX-like
- Not written from traditional UNIX code
- Linux is original code
- Includes POSIX standards
- Other Linux information
- Created by Linus Torvalds
- Offers all the complexity of UNIX
- Linux can coexist with other OSs
39Introducing UNIX Shells
- A shell is a UNIX program that interprets the
commands you enter from the keyboard
40Choosing Your Shell
- Shells interpret commands and act as first-class
programming languages - A default shell is associated with your account
when created Bash is the default shell in Linux - A short list of some UNIX shells
- Bourne
- Cshell
- Korn
- Bash
41Choosing User Names and Passwords
- To use UNIX, a user must log in by providing a
unique user name and password - UNIX system administrators create accounts by
adding user names and passwords - Users log in to UNIX or Linux systems as long as
they have accounts on the workstation or host
(server) computer
42Connecting to a UNIX System
- Remotely through Telnet/Secure Shell
- Through network client software
- As peer on peer-to-peer network
- On a stand-alone PC
- Through a dumb terminal
43Connecting to UNIX
- Telnet
- terminal emulation software
- Easy and unsecure
- Secure Shell
- Terminal emulation software
- Session encrypted end-to-end
- Bundled with secure ftp and copy
- X-Windows
44Connecting to Unix
- Widows Clients
- telnet (native to windows)
- Terra Term (http//hp.vector.co.jp/authors/VA00241
6/teraterm.html) - Freeware Win32 telnet client
- Putty (http//www.chiark.greenend.org.uk/sgtatham
/putty/) - Freeware Win32 Secure Shell Client/Suite
- X-Win32 (http//www.starnet.com/)
- Commercial X-Windows Server for Windows
- Exceed (http//hummingbird.com)
- Commercial X-Windows Server Suite for Windows
45Logging in to UNIX
- Log in by entering username and password when
UNIX system booted or connected to - Enter at prompt (command-line mode) or into login
box (GUI mode) - Youre at the Shell prompt -- Now commands can be
issued at the command prompt
46Logging In to UNIX
- Telnet can be accessed from a the console, or
terminal window (after X-Windows is started)
47Entering Commands
- To interact with UNIX, a command is entered at
the command prompt - UNIX is case-sensitive and most commands are
typed in lower case - Two categories of commands
- User-level perform tasks
- System administration system management
48Entering Commands
- The date command
- Displays the system date, which the system
administrator maintains - The cal command
- Shows the system calendar
- The who command
- Shows who is using the system and their current
location
49Entering Commands
50Entering Commands
51Entering Commands
52Entering Commands
- Command-line editing
- Certain keystrokes perform command-line editing
(shell dependent) - Multiple command entry
- More than one command on one line by separating
with a semicolon() - The clear command
- Clears the current screen
53Entering Commands
- Command-line history
- Use up and down arrow keys to scroll through
command history - The whatis command
- Displays a brief description of a command for
help purposes - Note the numbers in ()s that is the man section
54Entering Commands
- The man program displays the UNIX online
reference manual, called the man pages, for help
purposes
55Logging Out of UNIX
- Logging out ends your current process and
indicates to UNIX that you are finished - Logging out is shell dependent
- Bourne, Korn, Bash exit command
- C shell logout command
56Understanding the Role of the UNIX System
Administrator
- System administrator manages the UNIX system
- Adds users and deletes old accounts
- Also called the superuser
- Unlimited permission to alter system
- Unique user name root
- Prompt ends with (pound) symbol
- Normal user prompt (dollar) (percent) symbol
57Changing Passwords
- For security purposes, changing passwords is
necessary - Use the passwd command
- UNIX allows new password if
- The new password differs by at least three
characters - It has six or more characters, including at least
two letters and one number - It is different from the user name
58Viewing Files with cat, more, less, head, and
tail Commands
- Use cat, more, less and tail to view file
contents - cat displays a whole file at one time
- more displays a file one screen at a time,
allowing scroll down - less displays a file one screen at a time,
allowing scroll down and up - tail displays the end of a file
- head displays the beginning of a file
59Viewing Files with cat, more, less, head, and
tail Commands
- Use head and tail to view the first few or last
few lines of a file - head displays the first few lines
- tail displays the last few lines
60Redirecting Output
- The greater than sign (gt) is called a redirection
symbol - Create a new file or overwrite an existing file
by attaching (gt) to a command that produces
output - To append to an existing file, use two
redirection symbols (gtgt)
61Chapter Summary
- The operating system controls all computer
resources and provides the base upon which
application programs can be used or written - A server-based network is centralized where
security and maintenance are handled by the
system administrator and all systems rely on the
server a peer-to-peer network is decentralized
where security and maintenance is distributed to
each system and if one of the systems fails, the
network continues to function
62Chapter Summary
- UNIX is a multi-user, multitasking operating
system - UNIX systems may be configured as servers or as
client workstations in a server-based network, as
client/server workstations in a peer-to-peer
network, or stand-alone workstations when no
network connection
63Chapter Summary
- The concept of the layered components that make
up an OS originated with UNIX - Linux is a UNIX-like OS and can coexist with
Windows and MS-DOS - In UNIX, you communicate with the OS programs
through an interpreter called the shell and UNIX
provides shells such as the Bourne, Korn, and C
shells, with Bash being the most popular on Linux
systems
64Chapter Summary
- In UNIX, the system administrator sets up
accounts for users that supply a username and
password - You work with UNIX by typing commands that you
can learn by referring to the online manual
called man pages commands have specific syntax
and allow you to see brief descriptions of
commands, see who is logged in, display the
system calendar, and log out
65Chapter Summary
- Most shells provide basic command-line editing
capabilities and keep a history of your most
recently used commands - You can view the contents of files with view
commands such as cat, less, more, head, and tails
66(No Transcript)