Title: OS ??
1OS ??
2??? ????
- IBM-PC Windows Vista, Windows XP
- IBM MVS, VM, AIX
- HP HP-UX
- SUN Solaris
- ?? Linux, FreeBSD,
3DOS ? ??
- 1981 DOS 1.0
- CP/M,MP/M
- 40
- 96 ??
- 1983 DOS 2.0
- 1984 DOS 3.0
- AT ??
4Windows ? ??
Source Wikipedia
5Windows 7 2010(?)
- Windows 7 (formerly codenamed Blackcomb, then
Vienna) is a future version of Microsoft Windows.
- It will include a new version of Windows Explorer
that is being built by the same team that
designed the Ribbon user interface in Office
2007. - It will likely include some form of the
"Hypervisor" (Windows Virtualization)
technologies that will ship shortly after Windows
Server 2008. - It will also likely include the WinFS (Windows
Future Storage) technologies, though they won't
be packaged or branded as WinFS. - Microsoft says it might also make a
subscription-based version of the OS available to
consumers, but that's still in flux
Source Wikipedia, Paul Thurrotts web site
6History Of Unix
- Unix has been around in one form or another since
1969 (probably before any of us were born) - Why is it important to know the history?
- Why hasnt it disappeared?
- What has fueled its growth?
7History Of Unix
- 1987 SVR 3
- 1988 OSF, UI
- 1989 SVR 4.0
- 1990 Solaris 1(SunOS 4.1.1)
- 1991 SVR 4.0 MP, Univel ??, Linux 0.01
- 1992 SVR 4.0 ES/MP, UNIXWARE 1(Univel), Solaris
2.0 - 1993 SVR 4.2, Novell ?? USL ??
- 1994 Mach 4, Linux 1.0
- 1995 SCO ?? Unix ?? ??
- 1996 NetBSD1.2, FreeBSD2.1.5
- 1998 Solaris 7, UnixWare 7(SVR5)
- 2000 Linux 2.2, UnixWare 7.1.1
- 2001 OpenUNIX 8
- 2002 NetBSD 1.6, FreeBSD4.7, OpenBSD 3.1
- QNX 6.2, SCO UnixWare 7.1.3
- 2004 FreeBSD 5.2, Solsris 9 OE(2003)
- Linux 2.6.3
- 1965 Bell Lab GE MIT (project MAC) MULTICS
?? ??. - 1969 Bell Lab team quit. Thompson? Ritchie?
PDP-7 ? ?? ??? ??. (???? ?) - 1971 PDP-11? ??, C ?? ??
- 1973 C? ?? ??. (??? 1/3 ??)
- ??? ?? ??
- 1974 CACM? ??
- 1977 Interdata 8/32? ??, 1BSD
- 1979 Version 7 UNIX, 3BSD
- 1980 XENIX (microsoft), 4.0BSD
- 1982 UNIX ??? III
- 1983 UNIX ??? V ?? ??, 4.2 BSD, 4.2 on SUN
- 1984 System V Release 2
- 1986 4.3 BSD
8Today, Two Major Divisions
Unix (1969)
System V systems (1983)
BSD systems (1978)
Hurd
HP-UX
Mac OS X (Darwin)
Linux
FreeBSD
Solaris
IRIX
9(No Transcript)
10(No Transcript)
11System V Versus BSD
- If you know one, you can learn the other fairly
quickly - Some programs have different flags and run in
different ways - Some files are located in different areas
- We will cover System V in this class (Linux in
lab)
121969 The Origin of Unix
- Multics a timesharing operating system that
grew too complex for its own good - Timesharing was novel, as batch processing was
the accepted norm - Ken Thompson of Bell Labs
- Bell Labs withdrew from Multics support, and Ken
lost a system to play Space Travel, a game he
wrote - He wrote the first version of UNIX (UNICS) on a
PDP-7 - Soon joined by Dennis Ritchie
13Computers of that age
- No such thing as a video display
- No keyboard as we know it
- A teletype was used to communicate with the
computer - Basically a glorified electronic typewriter
14PDP-7
15Unix features
- From the very beginning, this was a programmers
environment - Ability to code and test in one session
- Interactive computing was stressed over batch
processing - Batch processing involved coming up with a large
volume of work that needed to be computed and
feeding that work to the computer during your
assigned time - Timesharing allows several programs to be run at
once, although each takes a little more time
161970s
- 1971-1973 In order to have this OS on other
systems, Thompson and Ritchie create C and
rewrite the OS in C - Unix use slowly spreads among academic circles
- 1977 First BSD release (source code included!)
- SCO created in 1978
17The C Connection
- From the early 1970s, C and Unix have gone
together - C was designed as a sort of portable assembler
- Low level enough to do things fast
- High level enough to be human readable
- C remains the language of choice
181980s The Unix Wars
- 1983 Networking gets added to BSD
- Sun Microsystems gets founded
- Early idea was to create a perfect Unix system
with networking built in and sell it - Department of Justice breaks up ATT
- ATT rushed to commercialize System V
- Source code was no longer free
- Error 2 Focus on the wrong market
- Every version of Unix started competing with
every other version, and Microsoft took over
191985-93s FSF and Gnu
- Once you give people something for free, they
dont want to have to pay for it - The Free Software Foundation (1985)
- Gnu (Gnus not Unix)
- Create free versions of popular tools (1986
gcc, 1987 most tools) - Overall goal was to develop a free kernel (It
hadnt happened by 1993) - Squabbling continued and Unix suffered
20Linux
- In 1991, Linus Torvalds announced the Linux
project - A free Unix kernel for x86 systems
- Used Gnu tools from the very beginning
- By 1993, Linux had both internet capability and X
capability - Just in time for the big internet boom
21Linuxs Success
- Internet culture and newsgroup postings caused a
group of similar minded people to contribute and
create a worthwhile kernel - A competing free attempt had problems
- The free BSD attempt was mired in a lawsuit (3
files were copied illegally) - The Berkeley development group disbanded
22Free Software Foundation
- Founded by Richard Stallman
- Wrote original version of gcc and gdb
- Software should be free, because it should be
free - As in free speech, not free beer
- Wrote the General Public License (GPL)
- You are free to do whatever you want as long as
the source code goes with it no matter what - Controversy Anything derived from a GPLd work
must itself be GPLd
23Open Source Movement
- Software should be free just because FSF
viewpoint - Software should be free because free software is
better Open Source Movement viewpoint - Every problem can be eliminated if more people
look at it
24The Hacker Connection
- The entire history of Unix has been co-mingled
with the history of hackers - The hacker mentality continues to drive the use
and progress of Unix - Groups of people create and maintain Linux and
BSD systems for fun (and to better their resume)
25Where Are We Today, And Where Are We Going?
- The Single Unix Specification have been approved
as an international standard - If a system wants to be called Unix, it has to
conform to the guidelines in this standard - The open source movement continues to thrive and
shows no slowing down - As anger and resentment for Microsoft continues
(some unwarranted), people continue to look for a
better alternative
26Mentality Of Unix
- Unix was designed with the K.I.S.S. principle
- Keep It Simple, Stupid!
- Why do something repetitive when you can
automate? - Write scripts and programs for simple or commonly
used tasks - Dont overly complicate matters
27Third System Effect
- First system a simple prototype that is missing
needed functionality - Second system overly complex system that throws
everything in - Multics was a second system
- Collapses under its own weight
- Third system simple system with improved
functionality
28Analogy
- Do one thing, but do it well
- Hidden menu is like command line options
- Still getting a burger, just different
Cf http//www.in-n-out.com/history.asp
29Unix Versus Windows
- Is Unix purposefully anti-GUI?
- Not really
- Several window managers exist for X-windows
- Basing an OS on a GUI makes it more complicated
than it needs to be - Simple interfaces allow for different programs to
easily communicate - Counterexample How many different formats does
Microsoft Word save as? How many of those can
WordPad read correctly?
30Multitasking/Multiuser (Multichoice)
- Unix was always designed as a multiuser/multitaski
ng system - More than one user can be logged on one machine
at a time - More than one process can be running at one time
(time sharing) - Many different ways exist to do things in Unix
- Different graphical interfaces, different
commands, etc.
31For more information
- Read chapter 1 in the book
- Read In the Beginning was the Command Line by
Neal Stephenson - joesacher.com/documents/commandline.php
- Visit www.faqs.org/docs/artu/
- Dont worry about most of the book, but look at
the philosophy and history sections
32BSD(1)
- 1974 U.C.Berkeley license ??
- 1978 BSD ????(50)
- ex editor, Pascal ????? ????? ??
- 1979 3BSD(? OS ???)
- ??? ??? ???? ?? ??
- DARPA ?? ?? (TCP/IP ?? ??)
- 1980 4.0BSD
- 1993 4.4BSD, FreeBSD 1.0
- 1994 BSD/OS 2.0, NetBSD 1.0
- 1995 FreeBSD 2.0, OpenBSD
- 1998 4.4BSD Lite 2, BSD/OS 4.0, OpenBSD 2.4
- 2000 BSD/OS 4.2, FreeBSD 4.2, NetBSD 1.5,
OpenBSD 2.8 - 2003 BSD/OS 5.0, FreeBSD 4.8, NetBSD 1.6.1,
OpenBSD 3.3
33BSD(2)
- BSD UNIX
- FAST File System ??
- socket ??
- reliable signal
- 4.4 BSD
- MACH? ??? ?? ?? ??
- log-structured file system ??
34UNIX? ???
- 1977? Interactive System? ? UNIX ?? ??(PDP-11?)
- 1982? Bill Joy (BSD ???)? Sun? ?? ??
- Sun OS(4.2 BSD ??)(?? Solaris(SVR4 ??))
- Microsoft ? SCO? XENIX ??
- SCO? SCO UNIX ??(386?)
- IBM AIX
- HP HP-UX
- DEC ULTRIX ? OSF/1 ? Digital UNIX
- Sun OS? ?? ??
- NFS (Network File System)
- Vnode/Vfs interface
- AIX? ???? journaling file system??
35UNIX? ????
- ?? ??? ??
- ??? ?? ?????
- ??? ???????? ??? ???? ??
- ??? ?? ???
- ??? ??? ?????? ??? ?? ??
- ????? ?? ???? ??? ????? ??
- ?? ?? , ?? ???? ???
- ?? ??? ????
- ???? ?? ???? ??? ???? ?? ??? ????? ???
36Mach
- 1985 CMU? ??
- micro kernel ??
- UNIX? ??? ?? ??
- UNIX ????? ????? ??(UNIX personality ??)
- ?? ????? ??
- ????? ??
- ??????? ??? ??? abstraction? ??
- OS??? ?? ??? ??? ??
- OSF/1(1992)? NextStep(1989)? Mach 2.5? ??
- Mach? ?? ???? ???? ??? 4BSD ?????? ???? ????? ??
- Mach 3.0(1990)? ? ???? ?? ??
37Standards(1)
- ??? System V? BSD? ?? ???
- ?? ?? ???? ?? ???
- ????? ??
- ????? ??? ??
- ??? ??? ??
- System V Interface Definition (SVID) by ATT
- IEEE POSIX
- X/Open Portability by X/Open Consortium
- ? ???? ?????? OS? ?????? ??(function? ???
semantics? ??) - SVID? ??? systemV ????? ??????
- SVID SVR2 ?, SVID2 SVR3 ?, SVID3 SVR4 ?
38Standards(2)
- ATT? SVVS(SystemV Verification Suites)? ??
- 1986? IEEE? OS?? ??? ??
- POSIX(Portable OS based on UNIX)
- POSIX 1003.1 (POSIX.1(1990? ??))? SVR3? 4.3BSD
?? - X/Open? 1984? ??
- ??? ??? ????? ??
- ?? de facto ???? ???? ??? CAE(Common Application
Environment) ?? - X/Open Portability Guide (XPG) Issue4? 1993? ??
- XPG Issue4
- POSIX.1? ??
- ???, ??? ?????, ??? ?? ?? ??
39DOS 1.0(81)Windows 1.0(85)
Windows XP (01) Windows XP 64-bit(03) Windows
Auto- Motive .NET Connected car (03)
Windows 3.0 (90) Windows NT (91)Windows CE
1.0(96)
UnixWare 1(92) 4.0BSD(90) Solaris1(90) OSF/1(90)
Linux 1.0(94) NetBSD 1.0(94) FreeBSD 1.0(93)
SVR 4.0 (89) SunOS 1.0(82) Mach(82)
PDP ?? (69) UNIX V1 (71) 3BSD(79)
OpenUnix 8(01) Solaris 9 OE(03) Linux
2.6.3(04) NetBSD 1.6(02) FreeBSD 3.1(02)
1980-
1970-
1990-
2000-
401.2 ???? ??
- ???, ?? ???? ?? MPP?? ??
- ??? ??(office, ??? DB, ?? ???)
- ??? ??? ??, ??? ????? ??
411.2.1 ??
- IPC
- ?? ??? ????
- ?? ? ??? ?????-?? ??? ??(??? ????? ? ??? ??? ??)
- ?? ??? ??
- FIFO files
- ??? ??
- ??? ????? ? ??
421.2.2 ????
- BSD? TCP/IP ??
- ??? ???? ?????(???, FDDI, ATM) ??
- ??, ???? ??
- ???? ???-NFS, AFS, DFS(Transarc?)
- ?? ??? (NIS, DCE)
- ?? OS(Mach, Chorus, Sprite)
431.2.3 ??
- ??? Fast file system
- extent-based ??
- journaling??
441.2.4 ???? ??
- HW?? ??? ????? ??(??? ??)
- ?, ???? ??, ?? ??? ??, ?? ??, ???? ???? ?
- ????? ???
- 1970??? ??? ??? ??? ??? ??? ??(???, ??? ??)
- ???? I/O ???-RAID
451.2.5 ?? ??
- ???? ?? robust, ?? reliable
- ??? ???? unreliable
- ??? ???? ??(?? ??)
- fsck? ??, ???? journaling
461.2.6 ???? ??
- 1970??? ?????(?????)
- 1980??? ?????? ??
- ?? ?????-?? ???
- ?? ??, ?? ??, DB ??
- ???? ?? ???? ??
47UNIX System Differences
- Version 6 and 7 (1976, 1978)
- System III (1982)
- Named Pipes
- The Run Queue
- System V (1983)
- Hash Tables
- Buffer and Inode Caches
- Semaphores, Shared Memory, Message Queues
- System V Release 2 (1984)
- Record /File Locking
- Demand Paging
- System V Release 3 (1987)
- Remote File Sharing
- I/O STREAMS
- Enhanced Signal Operations
- File System Switch
- Shared Libraries
481.2.7 ?? ?? ??
- ??? ??? ??? ??
- ???? ???, ????? ??? ??
- ?. ?? ???? ?? ??, ??? ???? , ?? ??? ?????
491.2.8 Small is Beautiful
- ?? ???? small, simple
- ?? ???? monolithic, ?? ?? ??
- ??? ??? ??? ?? ?? ??
- ??? ??? ????????
- Mach(OSF/1? NesxtStep? ??)
- ???? ??? ??? ?? ???
501.2.9 ???
- 1980?? ?? ?? ?? ?? ?? ??(DFS)
- ????? ??? , ??? ??? ??
- ??? ??? ???? ??? ?? ?? ??
- ?. vnode/vfs, exec switch, ???? ????
51Traditional UNIX Kernel
File system (s5fs)
Virtual memory
loader (a.out)
Kernel
Block driver switch
character driver switch
Disk driver
tape driver
printer driver
Network driver
tty driver
52Modern UNIX Kernel
531.3 ??? ??
- ??? ????
- ?? ??? XP, Linux?? ??
541.3.1???? ??
- ??? ??? ??
- ???? small, simple
- pipe ??
- ??? ?? ???
- ???? ??? ??? ???? ???? ??
- (?. /etc/passwd, /etc/tty?)-?? ?? ??
- simple, uniform I/O interface
- ???? ?
551.3.2 ???? ??
- ??? ??, ?? ???? ? ??? ?? ??
- ???? ???? ?? ????? ??
- (?? ?? ??? ?????? ???)
- victim of its own growth
56References
- Jason Villarreal, Introduction To Unix- CS 21