UNIX & LINUX
Operating System
Thanh-Hai DANG
Information Systems Dept -VNUH
Email:
“UNIX is user-friendly, but
UNIX also choose her friends very carefully”
Course statement
•
Goal
–
Usage, entire administration
–
Not principles of OS.
•
Perspective
–
A friend of UNIX
–
Linux in place of Windows in your mind
–
Curious for the principles of OS (Go inside into it)
•
Materials
–
UNIX/LINUX curriculum of Asoc. Prof. Thuy. HQ,
–
Linux Complete Command Reference by J.Purcell
–
Securing and Optimizing Linux, Gerhard Mourani
Content
•
Unix/Linux Chronology.
•
File System
•
Process Management
•
User Management
•
Networking with Unix
•
Programable Filters
•
Programming with Shell & C on Unix/Linux
•
Some facilities
UNIX OS.
Some characteristics
•
Written in a high level language (C)
•
User interface simple but powerful enough
•
Good file system
•
Simple connection to peripherals
•
Multi User and Multi Process
•
Relative independence between data and hardware
Unix Chronology.
•
Ken Thompson at Bell Labs (1969)
–
Withdrew from MULTICS project
–
Written in assembler for a GE-645 machine
–
Dennis Ritchie
–
First Release in 1971
Chronology (Cont.)
•
1973, The Kernel rewritten in C (developed by Dennis
Ritchie)
•
1975, Nearly all of OS.(v.6) rewritten in C (used in the
University of California in Berkeley)
•
1979
–
Seventh Edition
–
Bourne shell included
–
Kernel largely rewritten to be more portable to other
machine architectures
Chronology (Cont.)
•
The 80’s
–
/usr/group established in 1981
–
X/OPEN (From many EU computer companies)
–
IEEE from 1984 (enhancement of POSIX)
•
1984 : the birth of 3 versions
–
System V from AT&T ( System III from 82)
–
4.2 BSD of Berkeley Uni, Base for many OS: Sun
Microsystems (SunOS), Digital (Ultrix)…
–
XENIX of Microsoft for PC (Compatible with System
V)
Chronology (Cont.)
•
At the end of 80’s, 2 organizations said hello
–
UNIX International (UI)
•
The agreement between AT&T and Sun : SVR4
(System V Release 4), The converged Edition of
System V and BSD
–
Open Software Foundation (OSF)
•
IBM, Digital, HP, Bull, Siemens, Apollo, Nixdorf
Chronology (Cont.)
•
LINUX OS. came into our world (1991)
–
Written by Linus Torvald at Univ of Helsinki
•
For the Intel i386 family of processors
•
Derived from MIMIX, one of the most successful
version of PC UNIX.
LINUX OS.
Some characteristics
•
A typical OS for UNIX.
•
GUI thru X-Windows
•
Many network protocols supported
•
Real-time supported
•
Parallel computing and PC Cluster
•
Multi languages
Free Software, Linux & Open Source
•
1984 : Richard Stallman, The Father of GNU
(Gnu is Not Unix) found Free Software
Foundation (FSF)
•
1989 : FSF yielded GPL (General Public
License)
•
1991 :
–
Linus Torvald announced and put all source code of
Linux 0.02 on the Internet.
•
Follows GPL
•
Included many GNU softwares (GNU/Linux)
Free Software, …(Cont.)
•
1993 : Rémy Card invented ext2 file system for
Linux
•
1994 : Linux ported to the other CPU not Intel:
Alpha, ARM, PowerPC, RISC, Sparc,
•
1995 : Apache Group built Web server Apache
on UNIX/Linux
•
1999 : Version 1.0 of GUI GNOME và KDE (3.x
now)
•
2002 : Sun announced OpenOffice.org version
1.0
Distributions Linux
•
Distribution = A collection of all or some programs
altogether around a Linux kernel which allows to install a
collaborative system, operating perfectly.
–
Include one or more CD ROM
–
Easily installed,
–
May be other softwares not GPL or OpenSource
included
Distributions Linux
•
RedHat (9.0),Mandrake (10.1), SuSE (9.1), RedHat
Enterprise Linux, Fedoral Core (6)
•
Debian, Slackware, Knoppix, Caldera,
Live CD Linux
•
Distro Linux on one CD
–
GNU/Linux OS. Plus with necessary softwares
–
Not affect the current status of PC, HD not required!
•
Some typical distro
–
Knoppix
–
DemoLinux
–
Mandows
–
FreeSBIE
UNIX architect
Unix kernel architect
Shell system
•
The command interpreter
–
Show a prompt ($) and wait from keyboard
–
Receive user’s commands
–
Analyse commands: Name, option values and
parameters
–
Use kernel to initialize a process
–
Wait for process to finish
•
Programming language also
Shell …(Cont.)
•
Bourne shell (sh) ($): Steven Bourne, AT&T
•
Korn Shell (ksh) : David G. Korn, AT&T
•
C_Shell (csh) (%) : Bill Joy, UC Berkeley
•
Tenex Shell (tcsh) (>) : extend of csh
•
Bourne Again Shell (bash) (#) : Brian Fox, FSF (Linux)
Environment Variables
•
Used by shell and some facilities (X11, mail, )
–
$HOME: home directory of user
–
$MAIL: mail name
–
$PATH: List of path where commands are looked
for( separated by :)
•
Initialize after login
–
script: .bashrc, .bash_profile
–
echo <Var_Name>
Working on UNIX
•
Case sensitive
–
Command ls: OK, Ls: NotOK
•
User Interface
–
Command:
•
Hard to remember at the beginning (many options,
and parameter)
•
For long run: deep understanding concepts,
working with system flexibly and efficiently
–
Graphic
•
GNOME, KDE / X-Window (XFree86)
Command common structure
•
# <Command_Name> [<options>] [<Parameters>]
–
<options>:
•
Reduced : #date –d <string>
•
Full: #date –date=<string>
–
Eg. #ls –l test.cpp matrix.cpp
•
Wild Card *, ?, [abc]
•
#ls –l g*
Man Page
•
Command man <command> :
–
Show explanatory document for command
<command>
–
Syntax + Options description + Examples
–
<command> = command, library function, system file
•
Note :
–
Type ‘q’ to quit
–
Command name exact
•
Command man -k <keyword>