What is Linux?

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

SCOsource UNIX® Intellectual Property Pedigree Chart

Levenenz’s Unix History

SCO Versus IBM and Linux

Commercial *nix:

  • SCO
  • SunOS and Solaris
  • HP’s HP UX
  • SGI Irix
  • Digital VMS
  • Novell
  • The Posix Standard

The Transition from “Big Iron”

  • 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:

I.         A kernel.

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.

II.         A file system.

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.
D.      NFS

III.         Device drivers.

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.

IV.         User interfaces.

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.

The User Environment

  • Multi-user
  • 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:

  • Single-user
  • Through WinME, NO security, controls or permissions
  • All programs share a common memory space
  • Video drivers run in the kernel

Compare a PC

V.         System services.

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

Kernel Features

  • Multi-tasking
  • Multi-threading
  • Multi-processor
  • Windows from NT 4.0 forward
  • Mac from OSX forward
  • Linux: 2.6 kernel features

Legal Issues

  • 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

Other Licensing Areas

  • 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.

Legal Example: Window Managers

There are two major Window Manager apps in Linux (and many minor):

  • KDE, built on QT
  • Gnome, built entirely on GNU

Online Resources

UNIX history by Levenez

About Bill Joy

Steve Jobs? Unix? You bet.

The Rampantly Unofficial Linus Torvalds FAQ

In the Beginning: Unix at Bell Labs