Operating Systems

aesthetics  →
being  →
complexity  →
database  →
enterprise  →
ethics  →
fiction  →
history  →
internet  →
knowledge  →
language  →
licensing  →
linux  →
logic  →
method  →
news  →
perception  →
philosophy  →
policy  →
purpose  →
religion  →
science  →
sociology  →
software  →
truth  →
unix  →
wiki  →
essay  →
feed  →
help  →
system  →
wiki  →
critical  →
discussion  →
forked  →
imported  →
original  →
edit classify history index Operating Systems

Overlapping Interests

An “operating system” consists of many utilities, along with a master control program, called the “kernel”. The kernel provides services to start and stop programs, handle the file system and other “low level” tasks most programs on your computer share. Perhaps most importantly, the kernels also schedule access to hardware, avoiding conflicts if two programs try to access the same resource or device simultaneously. Today, operating systems vary widely, from fully blown multi-media desktops, to “embedded” systems running devices, such as cellular phones and automotive computers. Unix has been called the “most important operating system you may never use”.

This adapted article introduces a few selected operating systems and discusses overall ideas, rather than providing quickly out-dated information on particular versions of operating systems.

First Came Unix

Unix was originally developed in the 1960s and 1970s by a group of AT&T employees at Bell Labs including Ken Thompson, Dennis Ritchie and Douglas McIlroy. Today’s Unix systems are split into various branches, developed over time by AT&T as well as various commercial vendors and non-profit organizations. Only systems fully compliant with and certified to the “Single UNIX Specification” qualify as “UNIX”, while all others are called “Unix System-Like” or “Unix-like”.

By the early 1980s, Unix’s influence in academic circles led to large-scale adoption of “BSD” variants, originating from the University of California, Berkeley, and by the 1990s and 2000s, notable commercial variants from Sun Microsystems (“Solaris”) and Apple (“OS X”), were running servers and desktop/laptops along with Linux and Windows systems. All operating systems are in some way based on the origins of Unix.

Then Came POSIX

The “Portable Operating System Interface” is the collective name of a family of related standards specified by the Institute of Electrical and Electronics Engineers. The more memorable term POSIX was suggested by Richard Stallman in response to the IEEE. The standards define the “application programming interface” (API) for software compatible with variants of Unix. The family of POSIX standards is formally designated as IEEE 1003 and the standards emerged from the mid-1980s.

Some 15 different documents outline the standard user “command line” and “scripting interface”, among other concepts, and was based on the Korn Shell. Other programs, services and utilities include “awk”, “echo”, “ed”, and hundreds of others. Required program-level services include basic input/ouput of file, terminal, and network services. Just a few of the many POSIX-compliant operating systems include BSD, HP-UX, Irix, Mac OS X, Solaris, UnixWare, Linux variations, and Windows variations (Win2000 and later).

And Linux Blossomed

Linux is one of the most prominent examples of “free software” and “open source” development anyone can mention. The underlying “source code” is available for anyone to use, modify, and redistribute - freely. The first Linux systems were completed in 1992 by combining system utilities and programming libraries from the GNU project, with the Linux Kernel created by Linux Torvalds, to assemble a whole new operating system with all “free” software. Predominantly known for use in low-cost server usages, even on “Super Computers”, Linux is now used as a primary operating system for a wider variety of people and embedded machines, and like Mac OS X (see below), has greatly popularized “non-Windows” computing and solutions. Linux is packaged for widely different uses in dozens of separately controlled “distributions”, which has been cited as both its benefit and downfall: One of the advantages of open source, as proposed by Eric Raymond, is that it allows for rapid software “bug” detection and elimination, however, the direct disadvantage is that there are so many such bugs across so many Linux distributions.

Linus Torvalds continues to direct the development of the kernel, while Stallman heads the controversial Free Software Foundation, which in turn develops the GNU components making up Linux distributions. Many individuals and corporations develop third-party, non-GNU components and applications for Linux, comprising a vast body of work, from kernel modules, to user applications and programming libraries. Linux vendors combine these “packages” and distribute their version of the operating system. Today, a few of the many prominent vendors include Red Hat, on whose Linux versions the Fedora Core has been based, Debian, Ubuntu, SuSE, and Mandriva. As a result, Linux is largely driven by the developer and user communities. Some vendors develop and fund distributions on a volunteer basis, such as Debian, while others maintain a community version of their commercial distributions, as RedHat with Fedora Core.

While Windows Dominated

Microsoft, headed by founder Bill Gates, first introduced an operating environment named Windows in 1985 as an add-on to MS-DOS, a “Unix-Like” operating system, as a response to growing interest in graphical interfaces for computers. Microsoft’s Windows came to literally dominate the world’s computer markets, overtaking Mac OS and all others very quickly, to achieve and hold approximately 90% of the markets. Thus, early versions of Windows were often thought of simply as graphical user interfaces, because they ran atop DOS, using it for most file system services. Alongside Apple’s “Lisa”, and later Mac OS and OS X, Windows “GUI” mentality changed everything about using computers, and just as predictably, lawsuits were to follow.

However, this ease of use, quickness to market, and ubiquitous adoption had its definite drawbacks. Security has been a very hot topic related to Windows since the beginning, and even Microsoft has been the victim of security breaches. Symantec has described Microsoft Windows as having the “fewest number of patches and the shortest average patch development time of the five operating systems it monitored” (in 2006, Windows, Red Hat, Fedora, Mac OS X, HP-UX, and Solaris). Avantgarde found in 2004 that an unprotected and unpatched Windows “XP” system with “Service Pack 1” could expect to last only 4 minutes on the open Internet before it would be compromised by a “hacker”. An unprotected, unpatched Windows “Server 2003” system (billed as the most secure and stable of the Windows family) had been compromised after only 8 hours. While no system is completely secure, Windows users have been forced to take extra precautions to protect their private data.

Prime-Time Linux: Fedora Core

Fedora Core is an “RPM Package Manager“-based Linux, developed by the community-supported Fedora Project sponsored by Red Hat, a major Linux vendor of enterprise-class systems. Fedora was derived from the original Red Hat Linux distribution series, known for increased reliability at a time when Linux distributions had become unweildy. Fedora Project developers want to see Linux become acceptable to regular home users accustomed to Windows and Mac systems. So, Fedora Core is meant to be a complete, general-purpose operating system from open source software libraries, which can be easily configured to run as a server or desktop system. Fedora is designed to be easily installed and configured with a simple graphical installer and a suite of configuration tools. Packages and their “dependencies” can easily be downloaded and installed with simple commands using “yum”. Some say Ubuntu, based on Debian (and not RPMs), has already caught up to Fedora in terms of ease-of-use.

New Blood: Mac OS X

Mac OS X is a newer proprietary, fully graphical Unix, developed by Apple, headed by founder Steve Jobs. OS X was the highly anticipated successor to the original “Mac OS”, which had been the Mac’s operating system since 1984. The new operating system was built on the “Mach Kernel”, development from the company “NeXT” from the mid-1980s, until Apple purchased NeXT in 1997. The newest major releases of OS X are named after big cats, such as 10.4 as “Tiger”. Server editions are identical to the iMac, Mini and MacBook counterparts, running on Apple’s line of Macintosh server hardware, and all include workgroup management and administration software tools that provide simplified access to key network services, including mail, file sharing, wireless functionality and many other applications.

With each new version, Mac OS X has evolved away from a focus on “backward compatibility” with the earlier versions of Mac OS, toward an emphasis on a “digital lifestyle”, with applications such as iLife, iWork, and an integrated home entertainment media center, such as iTunes. Each version also included modifications to the general interface, such as the brushed metal appearance, translucent colors, and other high-key design elements from the hardware to the software. Thus, OS X usually wins the “easiest to use” test when compared with Linux and even Windows systems. Also, because OS X is based on Unix, most software packages written for BSD or Linux can be run on it the “Darwin” core of OS X, and many are already available for easy installation. However, some criticize that running OS X as a full Unix server, or with full control, can be much more difficult because of the “ease of use” functionality placed between the code and the screen.

The *nix Philosophy

The “*nix” world of software has opened up many examples of standards compliance. Mozilla Firefox, which adheres strictly to World Wide Web Consortium (W3) recommendations; Jabber, which formed the basis for the XMPP standard recognized by instant messaging; and several office productivity suites, such as OpenOffice, NeoOffice, KOffice, and other “cross-platform” standards, all point to an emerging reliance on non-commercial models of development as alternatives. Microsoft, but also Apple, have relied on proprietary hardware or software, often charging expensively for their use, while the *nix Philosophy has opened them up to more interoperable standards and the idea of “free” programs for simple tasks.

The popularity of Microsoft Windows on personal computers and workgroup servers dating from the mid-1990s, has brought with it a perennial comparison between Windows and Linux, with Linux followers (versus Unix) being the most aggressive in their criticism of those using Windows. This has been the “dark side” of the open-source movement, some have noted, because Linux might well have been more accepted by regular people had the “zealots” not been so abrasive to them. Still a common occurence on discussion forums, is when a person asks a technical support question and is asked “what OS do you use”, resulting in subtle insults which follow, if the person says “Windows”. Furthermore, Unix and Linux alike have frequently been criticized for not going far enough to ensure ease of use, to ensure full support for commonly available hardware, or to embrace the valid criticisms offered by those who use Windows and Mac computers.

General Reference

The names and filesystem locations of the Unix components has changed substantially across the history of the system, and across distributions.

  • Kernel - source code in /usr/sys, composed of several sub-components:
    • conf - configuration and machine-dependent parts, including boot code
    • dev - device drivers for control of hardware (and some pseudo-hardware)
    • sys - operating system “kernel”, handling memory management, process scheduling, system calls, etc.
    • h - header files, defining key structures within the system and important system-specific invariables

  • Development Environment - Early versions of Unix contained a development environment sufficient to recreate the entire system from source code:
    • cc - C language compiler (first appeared in V3 Unix)
    • as - machine-language assembler for the machine
    • ld - linker, for combining object files
    • lib - object-code libraries (installed in /lib or /usr/lib) libc, the system library with C run-time support, was the primary library, but there have always been additional libraries for such things as mathematical functions (libm) or database access. V7 Unix introduced the first version of the modern “Standard I/O” library stdio as part of the system library. Later implementations increased the number of libraries significantly.
    • make - build manager (introduced in PWB/UNIX), for effectively automating the build process
    • include - header files for software development, defining standard interfaces and system invariants
    • Other languages - V7 Unix contained a Fortran-77 compiler, a programmable arbitrary-precision calculator (bc, dc), and the awk “scripting” language, and later versions and implementations contain many other language compilers and toolsets. Early BSD releases included Pascal tools, and many modern Unix systems also include the GNU Compiler Collection as well as or instead of a proprietary compiler system.
    • Other tools - including an object-code archive manager (ar), symbol-table lister (nm), compiler-development tools (e.g. lex & yacc), and debugging tools.

  • Commands - Unix makes little distinction between commands (user-level programs) for system operation and maintenance (e.g. cron), commands of general utility (e.g. grep), and more general-purpose applications such as the text formatting and typesetting package. Nonetheless, some major categories are:
    • sh - The “shell” programmable command-line interpreter, the primary user interface on Unix before window systems appeared, and even afterward (within a “command window”).
    • Utilities - the core tool kit of the Unix command set, including cp, ls, grep, find and many others. Subcategories include:
      • System utilities - administrative tools such as mkfs, fsck, and many others
      • User utilities - environment management tools such as passwd, kill, and others.

    • Document formatting - Unix systems were used from the outset for document preparation and typesetting systems, and included many related programs such as nroff, troff, tbl, eqn, refer, and pic. Some modern Unix systems also include packages such as TeX and GhostScript.
    • Graphics - The plot subsystem provided facilities for producing simple vector plots in a device-independent format, with device-specific interpreters to display such files. Modern Unix systems also generally include X11 as a standard windowing system and GUI, and many support OpenGL.
    • Communications - Early Unix systems contained no inter-system communication, but did include the inter-user communication programs mail and write. V7 introduced the early inter-system communication system UUCP, and systems beginning with BSD release 4.1c included TCP/IP utilities.

  • Documentation - Unix was the first operating system to include all of its documentation online in machine-readable form. The documentation included:
    • man - manual pages for each command, library component, system call, header file, etc.
    • doc - longer documents detailing major subsystems, such as the C language and troff

Common Unix Commands

  • Directory and file creation and navigation: ls cd pwd mkdir rm rmdir cp find touch
  • File viewing and editing: more less ed vi emacs head tail
  • Text processing: echo cat grep sort uniq sed awk cut tr split printf
  • File comparison: comm cmp diff patch
  • Miscellaneous shell tools: yes test xargs
  • System administration: chmod chown ps su w who
  • Communication: mail telnet ftp finger ssh
  • Authentication: su login passwd

Selected Open-Source Software

  • Office: StarOffice, OpenOffice, AbiWord, Gnumeric.
  • Internet: Mozilla Firefox, Mozilla Thunderbird, Evolution, Gaim, and Azureus
  • Multimedia: VLC, MPlayer, Xine, XMMS, Helix, Totem, and Amarok
  • Graphics: The GIMP, Inkscape, and Scribus

Note: Compatibility layers such as “Wine” or “NdisWrapper”, and “virtual machines” like “Java” and “VirtualBox” have allowed some cross-platform operations, and for some Microsoft Windows applications and drivers to be used on Linux. This allows easier migrations from Windows to Linux, since some Windows applications can be run with little additional effort. Conversely, “CrossOver” has also been developed to extend Wine, for Windows applications to run in a Linux environment. “Cygwin”, “Cedega”, “Cider”, “Darwine”, “ReactOS” and even “Microsoft Windows Services for UNIX” also make it possible for various *nix software to run happily on Windows computers, and also Mac on Windows, Windows on Mac, Windows on Linux, and so on, and on.

External Links

Some content adapted from the Pseudopedia articles “Unix”, “Posix”, “Linux”, “Microsoft Windows”, “Fedora Core”, and “Mac OS X”, under the GNU Free Documentation License.
edit classify history index
[ last updated: 2:08pm EDT - Sun, Apr 19 2009 ]
[ getwiki edits: 1 , site views: 7,789 ]
LATEST EDITS [ see all ]