Linux is a Unix-type operating system
- Before Unix, there was Multics
- Dennis Ritchie’s “Unics” PDP7
- Ritchie and Brian Kernighan invented C, and with Ken Thompson largely originated Unix
- The effort outgrew U Cal Berkeley and was taken over by AT&T
- Which gave rise to commercial Unices (Unixes or *nix)
- Richard Stallman made the technical, political
- SunOS and Solaris
- IBM AIX
- HP’s HP UX
- SGI Irix
- Digital VMS
- The Posix Standard
- All these ran on “mini” or “micro” computers
- Minix was a PC port of Unix
- Linus Torvalds wanted a better PC Unix
- Wrote a kernel
- And shared it!
- See www.osdl.org
Linux is, loosely defined, an operating system. An OS is:
A. A kernel is the lowest-level piece of software in a computer.
B. It directly controls the computing process, including the processor and RAM.
C. It manages attached devices such as disk drives, modems, network cards and so forth.
A. This is not just the “tree” of files and how it is organized.
B. It’s also the type of file system involved, whether wholly unprotected (FAT16, FAT32) or highly protected (ext2, NTFS). (See the Filesystems section.)
C. It may or may not provide things like replication (mirroring or backup), journaling (continuous change tracking) or transactional (all-or-nothing) services.
A. These provide machine-language instructions to control motherboard components, disk drives, modems and network cards, and everything physically part of the computer.
B. We could live without drivers; we’d just have to write all the horrible machine code in EVERY SINGLE PIECE OF SOFTWARE. This stinks. The whole point of componentized software is: write it once.
A. Not all user interfaces are graphical (GUI).
B. “Command line,” “DOS prompt,” “green screen” and other text-based interfaces are generally called “shells” – they provide a higher-level shell or wrapper to all the difficult kernel-level code.
C. Actually, a GUI is a shell too. It’s arguable that even sophisticated programs like Microsoft Word are shells, since they provide command interfaces.
- Tight controls over who can do what
- My programs (almost) never interfere with your programs
- Drivers run in a hardware abstraction layer
Consider a University mainframe:
- Through WinME, NO security, controls or permissions
- All programs share a common memory space
- Video drivers run in the kernel
Compare a PC
A. In Windows we call these “services.” In Unix we call these “daemons.” Think of a gargoyle perched on a wall: it’s a creature that sits and waits.
B. Services start your network interface, run things like web, file and FTP servers
- Windows from NT 4.0 forward
- Mac from OSX forward
- Linux: 2.6 kernel features
- SCO bought rights to use Unix source code
- Richard Stallman created GNU (GNU’s Not Unix): rigid licensing requirements
- Linus accepted code from anyone without certification
- SCO laid claim to all System 5 Unix source code and filed copyright infringement suit against IBM (See how that’s going for them)
- Now the Linux community is vetting code
- Linus now requires developer certification of non-infringement
- No more anonymous contributions
- Under the GNU GPL, users can use, modify and derive from GPL-licensed works
- Such users are required by law to return such new development to the community if they plan to license or sell their works
- Many apps are dual-license: MySQL, Sleepycat (BDB), Trolltech (QT)
See http://www.gnu.org for the GNU Public License.
See several approved open source licenses at http://www.opensource.org.
There are two major Window Manager apps in Linux (and many minor):
- KDE, built on QT
- Gnome, built entirely on GNU
About Bill Joy
Steve Jobs? Unix? You bet.