Saturday, December 27, 2008

What is Unix?

I already have decided that I should post some articles on Unix/Linux. As I was wondering what and where shall I start from, I decided to start my posting from Introducing what Unix is. There really are a bunch of tutorials over the Internet to know about Unix, I am not denying the fact. This however is my way of writing what I learnt from others and other resources. That makes me happy :)

Okay, now enough with the stories, let's get down to the work straight away...

UNIX - as an Operating System

Unix is an operating system rather a specification. As many of you might be thinking, UNIX (pronounced YEW-nihks) is NOT an acronym. Unix is said to be a pun of Multics. Wondering what a Multics is? Well, Multics is a large multi-user operating system developed at Bell Labs shortly before Unix was created in the early '70s. (Brian Kernighan is credited with the name).

UNIX - as a Specification

Unix became the first open or standard operating system that could be improved or enhanced by anyone. A composite of the C language and shell (user command) interfaces from different versions of Unix were standardized under the auspices of the IEEE as the Portable Operating System Interface (POSIX). In turn, the POSIX interfaces were specified in the X/Open Programming Guide. These interfaces are also known as the "Single UNIX Specification" (SUS). The trademarked "UNIX" is now owned by the Open Group, an industry standards organization, which certifies and brands Unix implementations.

Brief History on Unix:

I did really not wanted to explain the History of Unix as there already are awesome links. I would suggest you to go through the below links to know more about the History of Unix.

A very brief look at Unix history
Levenez’s UNIX History
Unix History and Timeline from Unix.Org
A Brief History of Unix by Charles Severance

These links will recite you enough story about the History of Unix. If you still are striving for more, feel free to Google!

The Unix Impact:

Unix had real significant impact on the other Operating systems. Unix made the fact, "Assembly Language is necessary for systems implementation (on early computers)" a myth as Unix was written in high level language. Unix had drastically simplified file model compared to many contemporary operating systems. Yeah, everything in Unix is treated like a file, as simple byte arrays. The file system hierarchy contained machine services and devices (such as printers, terminals, or disk drives), providing a uniform interface. Unix is a stable, multi-user, multi-tasking system for servers, desktops and laptops. One fact about Unix is that it has less downtime, but has a higher learning curve

Unix Advantages

  • Unix is a real multitasking OS. Multiple users can run multiple programs each at the same time without interfering with each other or crashing the system. Isn't that cool?
  • The way how virtual memory is handled in Unix is very efficient and hence numerous numbers of programs can run with a decent amount of physical memory.
  • The security and access controls are handled in the best manner ever when compared to the competing Operating systems.
  • Unix has a powerful and unique file system. Like I said earlier, Everything is a file. Let it be a data, programs, or even all those physical devices, they all are considered as a file. Entire file system appears as a single large tree of nested directories regardless of how many different physical devices (disks) are included.
  • A lean kernel that gives you complete freedom - Yeah Unix kernel does the basics for you but doesn't get in the way when you try to do the unusual.
  • Unix is one Portable OS i.e., it's available on a wide variety of machines.
  • Optimized for program development, and thus for the unusual circumstances that are the rule in research.
Unix Disadvantages

All the Unix beginners complaint about are the below:
  • It's hard to install - I am telling you, it really is not that hard until you learn it. Unix does not follow the "I AGREE->NEXT->NEXT->FINISH" kind of process. Learn to get the hang of it. I know you can :)
  • I hate this terminal thingy - Why even try it if you hate it that much. The traditional command line shell interface (CLI) is not for the ones that are so used to the GUI environment. The CLI (or terminal) is designed for the programmer, not the casual user. Unix has it's own GUI, use it and quit complaining Lol

Various Unix flavors:

As you know (pardon me, if you don’t Lol), Unix is not a single operating system. It has many flavors i.e., variants, types, or you can even say it as implementations. Even though, it is based on a core set of Unix commands, different flavors have their own additional unique commands and features, and designed to work with different types of hardware. To be honest, no one knows exactly how many Unix flavors are there, but it is safe to say that if including all those that are obscure and obsolete, the number of Unix flavors is at least in the hundreds. You can often tell that an operating system is in the Unix family if it has a name that is a combination of the letters U, I, and X.

To mention a few, AIX by IBM, Solaris by Sun Microsystems. If you are so eager to know more, check the Unix Flavors Page

Also, go through 2008 Server OS Reliability Survey at leisure. Worth a read!