Long ago, in a galaxy far away …
• Computing power was costly– UNIVAC cost $1 million
• CPU time was a premium– Most mainframes had less computing power than
a calculator on the shelf at Wal-Mart
• Jobs were submitted into a queue– Only one process at a time – scheduling
nightmare
What was needed• Allow multiple users to access the same data
and resources simultaneously
• Service many users more cheaply than buying each their own machine
• The ability to run multiple processes at once
• And do so while maintaining user segregation and data integrity
Enter Unix, pride of Bell Labs• Originally written in PDP-7 assembly
language by Ken Thompson
• To make it work on multiple architectures (portable), Thompson rewrote Unix in B
• Dennis Ritchie developed C, and with Thompson, rewrote Unix in C
What was so great about it?• Multiuser
• Multiprocess
• Non-proprietary
• Economical for business
• Initially given for free to colleges and universities (great tactic!)
Descendents and bastards …• Started at Bell Labs
• Picked up and continued by AT&T (SVR4)
• UC Berkeley derives BSD
• Sun Solaris
• IRIX
• Minix, XINU
• Linux
What happened?• UNIX became commercialized
• Proprietary code, specialized distributions
• Costs started to become a hindrance
• So … let’s make our own Unix …
GNU• Richard Stallman decides that there should
be a free version of Unix available
• Forms the GNU project – GNU’s Not Unix
• Writes all of the system programs and utilities to mimic Unix variants
• Everything but a kernel (Hurd)
Final piece• Universities trying to teach Unix and OS
design can’t afford Unix
• Andrew Tanenbaum writes Minix
• Linus Torvalds, dissatisfied with Minix, writes his own – Linux
GNU-Linux• Torvalds has a perfectly functioning kernel –
but no system programs
• Finds a perfect candidate in GNU
• Together, the operating system world was changed dramatically
Free you say?• GNU-Linux is free …
• Free as in speech, not free as in beer
• Free to view, copy, modify, and release
• Profit still to be had from packaging, support, and additional original code
Software• An almost limitless library of programs
• Applications, services, utilities
• Many free, some commercial
• Source code often available along with pre-built binaries
Hardware• Supports thousands of peripherals and
pieces of hardware
• Multi-platform: x86, PPC, Alpha, SPARC, MIPS, 64-bit, SMP (multiproc systems)
• Emulation of hardware for testing and development
Portability• Entire operating system written in C
• Shared system libraries available for all supported architectures
• Code written on one platform can be compiled on any system with minimal, if any, tweaks
Standards• Much of GNU-Linux already meets POSIX
(Portable Operating System Interface for Computer Environments) and Unix System V Interface Definition (SVID)
• Standardized for commercial and government use
And don’t forget …• It’s free! (or at least really cheap!)
• That’s why Linux is often the operating system of choice to teach OS design and Unix courses
• We’ll be using RedHat Enterprise Linux 4 – not free but a fraction of the cost of Unix