1 IBM AIX Sun Solaris HP HP-UX 1969 AT&T Bell Labs Linux kernel Linux Unix Perter Salus A Quarter Century of Unix Unix

Unix MULTICS MULTiplexed Information and Computing Service 1965 Batch Processing Jobs CPU CPU

MULTiplexed

CPU American Telephone and Telegraph Inc. AT&T General Eletrics G.E. Massachusetts Institute of Technology MIT General-Purpose Time-Sharing Multi-User MIT CTSS Compatible Time-Sharing System MULTiplexed Information and Computing Service CTSS G.E. GE-645

1-2 1

MULTICS GE-645 GE- 635 G.E. GE-635 GE-635 GE-645

1-1

DOS CPU I O...

1-3 MULTICS Unix Linux CPU

A B

MULTICS AT&T Bell Labs 60 Unix Ken Thompson University of California at Berkeley UCB Bell Labs MULTICS

MULTICS 1969 2 Bell Labs MULTICS

Bell Labs MULTICS 1972 Honeywell G.E. MULTICS MULTICS 75 100 1977 MIT MULTICS Honeywell Bull MULTICS 1988

Unix Ken Thompson MULTICS GE-645 Space Travel Bell Labs MULTICS Ken Thompson Dennis Ritchie Bell Labs DEC-10

Digital PDP-7 minicomputer Unix PDP-7 Little-

1-4 1 used PDP-7 in a corner

PDP-7 DEC Digital Equipment Corporation 1964 Ken Thompson Ken Thompson MULTICS MULTICS tree-structured command Interpreter device

Ken Thompson PDP-7 GE-645 GEMAP Assembler Macros post-processer PDP-7 GE-645 PDP-7 Kernel Editor Assembler Shell rm cat cp... PDP-7

Ken Thompson 1969 8 Ken Thompson DEC PDP-7 Unix

A Quarter Century of Unix Perter Salus Ken Thompson Unix

Everything including hardware is a file

Configuration data stored in text

1-5 Small, single-purpose program

Avoid captive user interfaces

Ability to chain program together to perform complex tasks

PDP-7 Ken Thompson Brian W. Kernighan MUITICS UNICS UNiplexed Information and Computing System Unix

Unix UNIX Unix Dennis Ritchie UNIX 1974 CACM The UNIX Time-Sharing System typesetter troff UNIX Dennis Ritchie Unix Bell Labs Unix UNIX UNIX

PDP-7 Ken Thompson Dennis Ritchie PDP-11 20 PDP-11 DEC-10 AT&T PDP- 11 20

1-6 1

Unix PDP-11 20 PDP-11 20 Unix Unix nroff troff

PDP-11 20 Ken Thompson PDP-11 Assembly Langauge Unix PDP-11 20 24KB PDP-11 Unix 12KB RAM Disk Ken Memory Protection 500KB Ken Thompson Unix Unix

Bell Labs Ken Thompson Bell Labs Unix

1971 11 Unix Unix Manual Bell Labs Unix Unix Version 1 V1 Unix Unix Bell Labs Unix nth Edition Unix Unix Version n

Unix ed fork() roff troff ... pipe()... Unix Version 2

Unix PDP-7 PDP-11 Ken Thompson Dennis Ritchie

1-7 High-level Langauge Unix

Ken Thompson Dennis Ritchie

Ken Thompson FORTRAN BCPL Basic CPL BCPL Martin Richards 1967 CPL Combined Programming Language 1963 CPL 1960 Algol60

Ken Thompson Dennis Ritchie BCPL BCPL B Unix B Dennis Ritchie B Data Type ... B C

1973 Unix Ken Thompson Dennis Ritchie C Unix Unix Unix Unix

Ken Thompson Dennis Ritchie Turing Award

Unix Bell Labs

Ken Thompson Columbia University

1-8 1

1974 Ken Thompson Dennis Ritchie Communications of the ACM Unix Communications of the ACM Unix

Unix DEC PDP-11 Unix Unix

1976 Unix Unix Unix AT&T 1976 Unix AT&T Unix License

1978 Unix UC Berkeley Unix 1 BSD 1st Berkeley Software Distribution Unix BSD

AT&T USG Unix Support Group Unix USG System III System IV BSD Unix AT&T Unix Unix System IV 4.x BSD Sun Solaris OS POSIX

1-9 Unix Unix NIST CSL 1988 Unix Unix Portable IEEE 1003.1 POSIX POSIX Portable Operation System Interface C programming interface Library system calls Files Process Terminal I O... portability Unix Unix POSIX Unix Unix

1979 Unix Unix Unix K&R C Bourne Shell Unix kernel 40 Kbytes

Unix VA X 32V Unix Unix University of Illinois Harvard University DEC... UC Berkeley UC Berkeley Bill Joy Ozalp Baboglu 32V 3 BSD Unix DARPA

3BSD Unix 32 vi ... C Shell BSD Unix 4.2 BSD

1-10 1

LAN Ethernet Token Ring WAN NSFNET

AT&T BSD AT&T BSD AT&T Unix

Unix C

Unix AT&T System V BSD IBM AIX...

Graphical User Interface GUI 1984 MIT Project Athena 1988 XFree86 XFree86 X Window System Free X86 XFree86 GUI 1994 Linux 1.0 Linux

AT&T Unix Unix Unix Richard M. Stallman Unix

Stallman Open Source

Open Source Unix

1-11 Stallman 1984 GNU GNU is Not Unix GNU Unix GNU 1985 Free Software Foundation FSF

Stallman GNU

GNU GPL GNU General Public License GPL

GPL GPL

GPL GNU GPL GNU General Public License http://www.gnu.org/copyleft/gpl.html http://www.slat.org/project/legal/GNU_GPL_Chinese

GNU GCC GCC GNU C GUN C Compiler GCC GCC GNU

Shell C C library Shell Stallman Shell GNU Shell bash Bourne Again Shell Unix Unix Shell Bourne Shell

C C library C C library bash Unix 1990 kernel Kernel

1-12 1

kernel Shell C 1-2 Stallman kernel Linus Torvalds kernel Linux

1991 4 AT&T Unix System Lab oratories USL UNIX USL

1993 USL UNIX X Open Unix Unix Unix

Unix ... 1-3

1-13 Unix http://www.levenez.com/unix/ 1969 2005 Unix PDF Unix

1-14 1

Linux IBM AIX Sun Solaris FreeBSD BSD Sun Unix SCO Unix HP Unix... Unix Unix-Like

Unix AT&T System V BSD Berkeley Software Distribution SVR4

System III 1981 AT&T Unix FIFOs named pipes

System V 1983 IPC package shm msg sem

SVR2 1984 Shell sh SVID System V Interface Definition

SVR3 1986 STREAMS poll() TLI RFS shared librarys SVID 2 demand paging

SVR3.2 1987 Xenix Intel 80386

1-15 SVR4 1988 System V BSD SunOS Unix

SVR3 Terminal RFS STREAMS uucp BSD FFS TCP IP sockets select() csh SunOS NFS OpenLook GUI X11 NeWS virtual memory subsys- tem with memory-mapped files ksh ANSI C 8-bit clean ABI Application Binary Interface routines instead of traps POSIX X Open SVID3

SVR4.1 1992 I O SunOS

SVR4.2 1992 based on SVR4.1ES Veritas FS ACLs

BSD Berkeley Software Distribution VA X RISC... System V BSD Unix BSD Unix BSD

2.xBSD 1979 PDP-11 csh

3BSD 1980

1-16 1

4.0BSD 1980 termcap curses vi

4.1BSD 1981 AT&T CRG job automatic kernel config vfork()

4.2BSD 1983 TCP IP sockets ethernet UFS symbolic links reliable signals SVR3 4.1 reliable signals select()

4.3BSD 1986

4.3 Tahoe 1988 4.3BSD Tahoe 32

Fat FFS TCP

4.3 Reno 1990 for VAX Tahoe HP 9000 300 P1003.1 NFS from Sun MFS OSI TP4 CLNP ISODE's FTAM VT and X.500 SLIP Kerberos

Net1 Net2 June 1991 4.4BSD alpha June 1992 for HP 9000 300 Sparc 386 DEC

System V Open Software Foundation 1991 OSF 1 OSF 1 SVR2 SVID 2 SVID

1-17 Unix 1987 Andrew Tanenbaum MINIX MINIX mini-Unix

1991 Linus Torvalds MINIX Linus Torvalds 25 Linus Torvalds USENET NEWS MINIX 386 486 AT MINIX MINIX MINIX Linux kernel 0.01 1-5

Linus hobby Unix Intel x86 386 486 freax Linus's Unix Linux Linus FTP Linux

1-18 1

under GNU Public License 10 Linus Linux 0.02 Internet Linux MINIX Linux

kernel 2.6X Linux

Linux

Linux Unix Linux Intel x86 Alpha Sun Sparc Motorola 68K MIPS PowerPC...

Linux Unix Unix API POSIX Single Unix Specification Unix Unix AT&T Unix Unix

Linux Unix Unix Unix

Linux Linux

memory partition

1-19 CPU Intel x86 CPU 100 Alpha 1024 I O ...

CPU

Linux Unix monolithic kernel microkernel

Linux Linux module Unix

Linux Unix-Like Unix

1-20 1

Linux kernel

Linux

Linux 1-6

Distribution Linux SUSE LINUX Enterprise Server 9 9 Distribution Linux 2.6.x

Linux Novell SUSE Red Hat OpenLinux Mandrake ... Distribution Distribution Linux Standard Base LSB Distribution

1-21 Linux Distribution

Linux Distribution Linux Distribution http://www.distrowatch.com/ Linux Distribution http://www.linuxiso.org

1-22 1

SuSE Linux 1993 Hubert Mantel Burchard Steinbild Roland Dyroff Thomas Fehr SuSE oftware nd ystem ntwicklung Software and System Development SuSE Slackware Distribution Florina LaRoche distribution YaST et nother etup ool Distribution SuSE Linux 4.2

YaST SuSE KDE K SuSE X Server SuSE XFCom-Server XFCom- Server XFree86 XFree86 XFCom X Server SuSE XFree86 Linux Distribution FreeBSD Linux

SuSE Linux Linux Distribution Linux Unix 1997 SuSE Oakland

2003 Novell CEO Jack Messman Linux SuSE Linux NetWare Linux IBM 5000 Novell 2004 1 SuSE Linux Novell SUSE LINUX Novell 10

1-23 SUSE LINUX Linux

Novell

Novell 2004 8 kernel 2.6 Novell SUSE LINUX Enterprise Server 9 SLES 9 11 Novell Linux Desktop 9 2005 OES Linux Linux

Novell Taiwan Linux Unix Linux Intel-based x86 x86 RISC Unix

Novell SUSE LINUX Novell Novell Linux

2005 1 SG Cowen 440 Linux Distribution Novell 21% 33% Linux Robert Frances Stacey Quandt SUSE LINUX

1-24 1

2003 12 17 kernel 2.6 Novell SUSE LINUX Enterprise Server 9 kernel 2.6 kernel 2.6

scheduler Process OpenOffice WWW Server DNS Server... Process CPU CPU multitasking scheduler 1-8

O f(n) f(n) scheduler Process n Process Process n O n O n O 1 O 1 Process Process 10 100 1000 Process Process

1-25 Preemptive kernel kernel 2.4 Process CPU Process

Process CPU

preemptive heavy load crash kernel 2.6.0

kernel 2.4 32 CPUs kernel 2.6 255 CPUs

64GB 64bit

1-26 1

kernel 2.4 block device 2TB kernel 2.6 16TB

major numbers 4095 minor numbers 1,000,000

UID GID 40

PID 10

kernel 2.6 Intel Pentium 4 Hyperthreading kernel 2.4 kernel 2.4.17 Hyperthreading Hyperthreading Hyperthreading CPU CPUs CPUs

Linux kernel 2.4 kernel 2.6 Bluetooth Bluetooth PDA Bluetooth Linux

hot-plug USB kernel 2.6 USB 2.0

kernel 2.4 SATA kernel2.6 SATA kernel 2.4 IDE CD-RW SCSI

1-27 IDE CD-RW SCSI kernel 2.6 IDE CD-RW SCSI IDE

kernel 2.6 ISA PnP kernel 2.4 ISA PnP kernel 2.6 ISA

kernel 2.4 devfs /dev /dev Linux

devfs

kernel 2.6 Kernel devfs udev devfs udev mount /udev sysfs devfs udev

Novell SUSE ReiserFS ext3 IBM AIX Unix JFS Linux JFS kernel AIX JFS kernel 2.6 Linux JFS

1-28 1

kernel 2.6 NFS NFS4 Linux NFS NFS2 NFS3 NFS4 UDP NFS4 TCP TCP UDP NFS4 NFS2 NFS3

kernel 2.6 NFS Linux NFS Server Sun Solaris Linux Sun Solaris kernel 2.4 NFS Server NFS 3 UDP rsize wsize 8192 bytes Sun Solaris NFS 3 UDP TCP rsize wsize 32768 bytes kernel 2.6 NFS NFS4

kernel 2.4 ACPI Advanced Configuration and Power Interface Distribution ACPI kernel 2.6

software suspend RAM Linux Swap partition Swap partition

CPU speedstep CPU CPU

kernel 2.4 kernel 2.6

1-29 SUSE LINUX AutoBuild AutoBuild common code base x86 AMD64 Intel EM64T Intel Itanium IBM pSeries IBM zSeries SUSE LINUX

1-30 1

SUSE LINUX YaST Yet another Setup Tool Linux cluster AutoYaST no touch Linux API CIM

EAL Evaluation Assurance Level ISO ISO IEC 15408

SLES 9

Linux 2.6 Linux 512 CPUs 32000 SCSI Disks 4095 device types 40 65535

per partition file system size 16 TB

native POSIX threading library Hyperthreading

I O

Class-based kernel resource management CKRM partitioning

1-31 ...

cluster

InfiniBand High Performance Computing HPC

DNS DHCP FTP Firewall SSH VPN Proxy Samba NFS LDAP CUPS IMAP NTP SLP Postfix PXE SNMP SMTP

Apache JBoss Tomcat MySQL PostgreSQL

SAP mySAP Oracle IBM Software Group BEA Computer Associates Sun BMC Software Polyserve Software AG Veritas SGI Tobit ImmUnix Sybase...

orarun Oracle

APIs Linux Eclipse KDevelop Anjuta Eric and Quanta SUSE LINUX SDK 9

SUSE AutoBuild

1-32 1

Unix Bell Labs Ken Thompson Dennis Ritchie Multi-User Multi-Tasking MULTICS Unix MULTICS Unix C AT&T

Unix Unix

Free Software 1980 Richard M. Stallman

Linux Linus Torvalds 1991 Unix Unix AT&T Linus Torvalds Linux kernel 2.6.X Linux

1-33 SuSE Linux 1993 Hubert Mantel Burchard Steinbild Roland Dyroff Thomas Fehr SuSE Software und System Entwicklung Software and System Development Linus Torvalds kernel

Yast SuSE ... Linux Distribution

2003 Novell SuSE Linux Linux 2004 8 kernel 2.6 SUSE LINUX Enterprise Server 9 SLES 9 Novell Linux Linux

Nike Just Do it !

If you don't wanna do it, you find an EXCUSE. If you do, you'll find a WAY.

1-34