eXtropia: the open web technology company
Technology | Support | Tutorials | Development | About Us | Users | Contact Us
 ::   Tutorials
 ::   Presentations
Perl & CGI tutorials
 ::   Intro to Perl/CGI and HTML Forms
 ::   Intro to Windows Perl
 ::   Intro to Perl 5
 ::   Intro to Perl
 ::   Intro to Perl Taint mode
 ::   Sherlock Holmes and the Case of the Broken CGI Script
 ::   Writing COM Components in Perl

Java tutorials
 ::   Intro to Java
 ::   Cross Browser Java

Misc technical tutorials
 ::   Intro to The Web Application Development Environment
 ::   Introduction to XML
 ::   Intro to Web Design
 ::   Intro to Web Security
 ::   Databases for Web Developers
 ::   UNIX for Web Developers
 ::   Intro to Adobe Photoshop
 ::   Web Programming 101
 ::   Introduction to Microsoft DNA

Misc non-technical tutorials
 ::   Misc Technopreneurship Docs
 ::   What is a Webmaster?
 ::   What is the open source business model?
 ::   Technical writing
 ::   Small and mid-sized businesses on the Web

Offsite tutorials
 ::   ISAPI Perl Primer
 ::   Serving up web server basics
 ::   Introduction to Java (Parts 1 and 2) in Slovak


Introduction to UNIX for Web Developers
What is an Operating System  
When you really get down to the nitty gritty, a computer is simply a hunk of machine with a bunch of on/off switches. The patterns created by these on/off switches, represented by ones and zeros, are assigned meaning by the people who build the machines (by the "machine" I mean hardware, such as a CPU, a monitor, or a sound card).

"An operating system is a living, breathing software entity. The soul of the computing machine, it is the nervous system that turns electrons and silicon into a personality. It brings life to the computer." - from Mike Gancarz's "The UNIX Philosophy"

For example, an engineer designing a sound card for a computer might specify that if all the switches are turned on, the card will generate a loud and annoying beep.

Turning a switch to on or off typically involves sending the switch an electrical signal of a certain voltage.

As you can imagine, telling the hardware to do things is a bit of a cryptic process. Generating beeps might seem simple enough, but when you imagine the complexity of defining and manipulating memory, creating file systems, executing applications, and plenty of other tasks demanded of computers today, you can see how manipulating on/off switches could get overwhelming pretty quickly.

In fact, if you had to speak to the hardware itself, you would probably spend all your time coding machine instructions instead of actually doing your work.

Fortunately, instead of forcing users to talk to the hardware directly, most computers have some form of "operating system" (also known as OS) which provides a "layer of abstraction" around the hardware.

The OS sits between users and hardware providing translation services. The great benefit of the OS is that you need not know how to speak the language of the hardware or how to perform basic tasks such as the definition of memory or the allocation of disk space using the hardware. The OS knows how to do all of that itself. And what's more, it can speak to the hardware much faster than you could.

All you need to know how to do is talk to the OS. And fortunately, talking to the OS is much easier than talking to the hardware since the OS is typically designed to speak a language more similar to human languages.

In UNIX, the operating system is broken into three pieces: the kernel, the shell, and the built-in utilities. The kernel is responsible for low level hardware communication, the shell provides human users with a user-friendly interface, and the built-in utilities provide basic tools for doing work.

Let's take a look at the kernel first

Previous | Next | Table of Contents