The SpareMe page, the only boring one.

Paragraphs in this page are:

The average newbie in Linux is often easily disappointed.
Q: What is Linux? Is it an Operating System? What's an Operating System?
Q: Then, what's Unix?
Q: Ok. How many Unices are there?
Q: How can all these Unices at least be similar in basic characteristics?
Q: Back to Linux: Is Linux Posix? Is Linux Unix?
Q: Now what about the *BSDs?
Links


The average newbie in Linux is often easily disappointed.


Q: So Linux disappoints average newbies?
A: Keep in mind that Linux is one (if not the only) unix-like OS that attracts
users from other platforms like Wintel and Mac.
In these platforms, users are by default accustomed to an object oriented interaction
with their system, through easy to use Graphics User Interfaces.
In these user interfaces, to change the resolution and color-depth is like a
trip to the next mall. Just hit properties in a MS Windows Desktop
and you are there. Hit properties in a file and there you'll find the read-only
attribute.

Q: But Linux has Kde, Gnome, WindowMaker, Enlightenment, IceWM, Blackbox etc.
A: GNU/Linux has them, as well as any Unix environment can have them compiled and working.
According to Eric Steven Raymond's "The Art Of Unix Programming" book, Unix OSes give more attention to "Mechanism" and not "Policy" (which in our case would be an interface, graphical or not).
If we learn to use this "mechanism", we solve 99% of any situation, not only in GNU/Linux,
but in any *nix OS. And then, to choose our favorite Gui is like a walk in the park!
           
So, if we decide to use another *nix, like FreeBSD, the interface
that we use in GNU/Linux will be ready and waiting for us!

And we would know how to use the 95% of the OS, too.

That's why my site's policy is the command line training.
Some great graphical programs are frontends to command line binaries, daemons or entire backend  mechanisms.

gqmpeg   is a frontend to mpg123
XCdRoast is a frontend to cdrecord and some other utils.
Xsane    is a frontend to the Scanner Access Now Easy library and drivers.
kooka    is a frontend to the Scanner Access Now Easy library and drivers.
gmplayer is a frontend to MPlayer backend (video media player)
kaffeine is a frontend to Xine backend (
video media player)
Sancho is a frontend to mlDonkey filesharing client daemon (Sancho Panza rides a donkey in the Miguel de Cervantes novel!)

Q: So, the way to learn things will be the hard one :(
A: It will get easier slowly, as the knowledge matures.


Q: What is Linux? Is it an Operating System? What's an Operating System?


A: OS is the software that operates our computer hardware and gives (or denies) to
other software (applications) access to CPU time, memory, devices, peripherals etc.
Linux can't be called an OS, because in reality it's the Kernel (the central part)
of this OS. So, a linux kernel, some modules (think drivers) for our hardware, libraries
that share common functions and some shells, utilities and applications, all of them
constitute a GNU/Linux OS.
All of the above, except the kernel, are most often source code that is compiled for
any *nix OS. And this policy is widely spread to all unix-like OSes.


Q: Then, what's Unix?


A: The sources for knowing the history of Unix are so many, that a simple search would reveal dozens of results, not only from researchers or "historians" but also from people that were part of the computer history.

So, this paragraph will be very basic.

In USA 1965, a project named MULTICS (Multiplexed Information and Computing Services) was initiated in Bell Labs with the cooperation of General Electric, and was developed in MIT for the GE-645 computer.

The purpose of this work was to develop an OS capable of completing many tasks considering complexity and variety.

This project wasn't as promising as expected and Bell Labs stopped developing it.

However, a small group of programmers decided to create an OS smaller and more versatile than MULTICS and gave to it a more research and technolocal purpose.

I would not call it more versatile than MULTICS.  But it was smaller, more modular, and more efficient. - comment by Mr. Richard Stallman.

Coordinator of this project was Ken Thomson.
Brian Kernigan, a member of the team, gave this operating system a name ironically similar to MULTICS: It was UNICS (Uniplexed Information and Computing Services).

By 1970, Brian Kernigan gave UNIX it's final name. This OS had:
a filesystem
a process control mechanism
a command interpreter and
external utilities.

It was initially written for DEC PDP-7 Computer in Assembly, a symbolic programming language that has a  syntax and way of thinking very close to the processor (low level language).

Then came the PDP-11, a more powerful machine with 24kb RAM, 500 mb Hard Disk and maximum file size of 64kb and also a machine that was the choice of a majority of Academic Institutions and Universities.

Unix had to be rewritten to cover the lack of a good OS for this computer.

1973 was the focal point. Dennis Richie, designer of the C programming language, joined the group and Unix got rewritten in C.


Refer To the SourceMe Page for a C reference.


Unix inherited C's capabilities, mainly portability.

Unix started to spread among many platforms, first in the Acedemic world and then to corporate environments.

AT&T, the corporation that had the rights for Unix, gave the source code along with every licence given, thus being easy to develop, correct weaknesses and add new capabilities to Unix.

It is important to note that Unix was never free software. In the early days, users got the source, but they never got the freedom to redistribute.  Neither verbatim redistribution not publication of a modified version was allowed. - comment by Mr. Richard Stallman.


Q: Ok. How many Unices are there?
A: There are plenty, Unix or Not Unix! Have a look at some:

Unix OSes:
Unix System III
Unix System V
HP Unix
Dec Unix
Bsd Unix
Sco Unix
Solaris
Aix
Irix
Xenix
SunOS

Not Unix (but Unix-Compatible):
Bsd
FreeBSD
OpenBSD
NetBSD
GNU/Linux

See how legal issues prevent me from grouping all together OSes that operate with the same feeling and philosophy.

The last 4 are, by licence and processor family criteria, the most accessible to the average user.


Q: How can all these Unices at least be similar in basic characteristics?
A: This question was said long ago, from the early days, before even Xenix and BSD 4.1!
These different unices developed such incompatibilities between them that it was from very difficult up to impossible for a project to be installed to all of them. Therefore, the commercial success was significally slowed.

Then, IEEE (Institute of Electrical and Electronic Engineering) took the initiative to create the Portable Operating System Standard (POS), an acronym that being addex the IX extention for resembling unix, was finally named POSIX.
The Posix adventure was not very easy at the beginning, but now is respected, at one rate or another of course, by most Unix systems.


Q: Back to Linux: Is Linux Posix? Is Linux Unix?

A: Linux is a kernel, Posix is a spec, Unix is a proprietary OS.

Let's now have a historic description for Linux.

Linux was first announced by it's creator Linus Torvalds in the mid 1991, in a Usenet group (think Newsgroup).
Linus presented to the Internet Community a Kernel that resembled Unix in concept but with source code entirely new, as inspired by MINIX, which was created by his teacher Andrew Tanenbaum for academic purposes.

Very soon, a vast number of users got interested in this new kernel and formed a non-profit community, developing it with such speed that the Version 1.0 was released in 1994 and version 2.0 in 1996!

Linus stated his intentions from the beginning and gave his kernel the GNU-GPL licence, thus keeping his project available to the Free Software Community.

So,
Linux is a GNU-GPL-covered kernel.
GNU/Linux is an OS, consisting of the kernel, GNU/Libc, GNU/Bash, GNU/C Compiler etc.

Corporate environments quickly understood that they have in front of them a powerful project that can be used without relying in licence fees, and started to give aid for development, either through hard work or by giving access to laboratory installations.

New companies formed to make packages of this GNU-GPL kernel along with GNU-GPL - and not only - projects that all of them form the GNU/Linux Operating System.

About Posix:

GNU/Linux implements many of the Posix specs.

Q: And what about the "Unix" characteristic?
A: Many OSes have the same feeling like Unix.
   Many OSes have the same feeling like MacOS

Is MS-Windows a MacOS clone only because it has the same object oriented philosophy in a Graphics User Interface? No! Same applies to BeOS!

Therefore Linux Is Not Unix! *BSDs are Not Unix!

This issue is very strange.

Learning GNU/Linux or FreeBSD we also learn, indirectly of course:

Solaris
Aix
Irix
SunOS
etc.

So, stripping out free or not, open or not OSes, we definetly have to find a way to describe all these OSes without worrying about legal issues.

Unix can't be this definition, neither can Posix.  *Nix isn't a very legal definition either.

But "Unix-Compatible" is an accurate as well as legal definition.


Q: Now what about the *BSDs?
A: For *BSDs there will soon be a dedicated page but not until I start using at least one regularly.

You can learn a lot here:
http://en.wikipedia.org/wiki/Berkeley_Software_Distribution
http://en.wikipedia.org/wiki/FreeBSD
http://en.wikipedia.org/wiki/OpenBSD
http://en.wikipedia.org/wiki/NetBSD

Please visit the developer communities/teams mentioned in my Links page.


Links

Here is the OpenGroup link (the owners of the Unix brand for computer Operating Systems)
http://www.opengroup.org

Here are excellent links concerning Unix and GNU/Linux.
http://en.wikipedia.org/wiki/Unix
http://en.wikipedia.org/wiki/Linux

Check the other links in "See Also" section.