1.2. What is ... ?
In this section we are going to introduce you to the
hackers community and the GNU/Linux system
and discuss when and why it's better for you,
from diffrent aspects (over all cost, development, robustness, stability,
solution availiability, legal obligations, ... and it's future)
by comparing it with other UNIX-like systems or other non-Unix systems.
From your first look, this section may seem biased, but after you try it
yourself and join the community of GNU/Linux users you will know it is not.
Section quotes:
- "...[Linux's] capacity to talk via any medium except smoke signals."
-- By Dr. Greg Wettstein, Roger Maris Cancer Center
- "I would rather spend 10 hours reading someone else's source code than
10 minutes listening to Musak waiting for technical support which isn't."
-- By Dr. Greg Wettstein, Roger Maris Cancer Center.
- "We use Linux for all our mission-critical applications. Having the source code
means that we are not held hostage by anyone's support department."
-- Russell Nelson, President of Crynwr Software
- "We are using Linux daily to UP our productivity - so UP yours!"
-- Joe Sloan, Adapted from Pat Paulsen.
- "Times change, industries evolve, and I can now replace that FAQ
with just three words: 'Go get Linux!'"
-- Eric Raymond, a UNIX consultant replaces his "What UNIX to buy?" article.
- "Sun, you just can't beat me, you just can't. Stop trying, give up."
-- a comment in a sparc specific source file of Linux kernel.
- "Get Linux, because repeated reboots of the system will NOT solve your problem."
-- UNKOWN
- "GNU/Linux is developed by its users themselves so it's the best for them by definition."
-- UNKOWN
- "One of the most memorable comments about software I have ever heard,
is whether this or that can make coffee. (...) Linux DOES make coffee.
And it tastes good, as well!
-- Fotis Georgatos, Coffee HOWTO (http://coffee.sf.net).
- "We all know Linux is great...it does infinite loops in 5 seconds."
-- Linus Torvalds, Amterdam Linux Symposium.
- "Five is a sufficiently close approximation to infinity."
-- Robert Firth
Who is the Hacker ?
This word mean a sharp and clever person.
This concept appeared in the 60's of the 20th century at MIT - Massachusetts Institute of Technology,
there were a team (Tech Model Railroad Club) of sharp students trained to
understand things beyond basic and howto-use, they know the intermediate
steps, and may discover solution for undiscovered problems (or just warn
about it), they were called Hackers, then it becomes more general term
that includes who like mathematics as a form of fun and coding as a form of art
(like those who write poems or jokes in computer languages)
"His fingers danced upon the keyboard. The program compiled without an
error message, and the program ran like a gentle wind. (...)
``My senses are idle. My spirit, free to work without plan, follows its own
instinct. In short, my program writes itself.''" (quoted from
"The Tao Of Programming" by Geoffrey James).
Media misuses this word and use it to refere to computer criminals
(those who use the already known methods to attack for money or fame).
For this reason real hackers invented the word cracker to mean computer criminal.
Sometimes you hear white hat hacker, or hatter also to refere to good hackers.
What is UNIX ?
It's described as the most 'Hacker Friendly system!',
Officially any system is called UNIX or UNIX-like (because UNIX is a
registered trademarks of The Open Group) if it's compliant with a set of
IEEE standards called POSIX or an Open Group standards called
the Single UNIX Specification (they are now identical).
This mean it's not a single system (the plurer of Unix is Unices or Unixes).
The first UNIX written by Ken Thompson and Dennis Ritchie in the 1970s
at Bell Telephone Laboratories (www.Bell-Labs.com)
the same place where transistor was invented, and C language was written,
they name Uniplexed Information and Computing System
(UNICS) but because of spelling rules it become UNIX.
Bell Labs is a separate entity of AT&T (www.att.com) a public corporation
(formerly known as American Telephone and Telegraph).
A UNIX system certified by Open Group to use their trademark
is refered with capital letters UNIX while other compliant but not
certified are refered as "Unix", "UNIX-like" or "a UNIX system" (as an
adjective followed by a generic term)
UNIX was wide spread on many Universities and high technology market,
to answer large demands for support they released the source code but
under nondisclosure agreements, that famous version was the fifth version
that's why it's called System V (which mean 5),unlike other operating
systems of that time, its system toolset was written in C language (since 1973)
which makes it very portable and work on many platforms.
Later many UNIX systems from many companies and universities appeared,
the most distinguished was BSD - Berkeley Software Distribution.
POSIX standards was a combinations between SysV and BSD.
More and more lucky companies were compliant and certified to use the trademark
including AIX from IBM, HP-UX from HP, SunOS or Solaris
from Sun microsystems, IRIX, Tru64 and A/UX.
SCO (which produces SCO UNIX) and Novel hold
the copyrights over the original UNIX source code, and other companies
were licensed to see and use this code including IBM.
Those systems were too expensive (gorenmental budget)
only research centers,universites and military agencies could afford it.
Those very old system is still powerfull, they was multitasking,
multiuser, and network aware form the begining even before
the existance of IP protocols via UUCP, it was safe unlike
consumer-quality cheap home/personal computer systems,
those were nonstandard,single task just like calculaters with more
memory! the Unix philosophy is it's power, which could be summarizerd by:
- designed to be portable, multi-tasking and multi-user.
- plain text files (eg. for configurations)
- represent everything as a file (treating devices
and certain types of inter-process communication as files, etc.)
- make no distinction between local and remote objects
- command line user environment (CLUE) with a command interpreter called shell
- each tool should do one thing (however humble) and do it right, which is better
than do complex things and do them all wrong.
- hierarchical file system
- using C programming language to reflect the Unix philosophy
for more information refere to www.wikipedia.org,
for simple FAQ visit User-Friendly Unix FAQ.
What is GNU ?
It's pronounced 'guh-noo' (IPA: '/gəˈnu/')
also it can be pronounced the same way as gnu (wildebeest)
which resemble that animal in the logo.
GNU is short for 'GNU is Not Unix',
those two way is common in hackers terminology, I mean
having the first latter from the same acronym (called recursive acronym)
and saying "THIS is not THAT" when they mean
THIS replaces THAT, in other words it's a replacement of UNIX.
GNU goal is to create a complete free operating system of a superior quality,
so UNIX is choosen to be replaced because it was the high technology
peak of that time, GNU project succeded to provide a superior toolset compatible
to those found on UNIX, but yet it lakes a good OS kernel.
Those superior GNU programs are faster and
offer much more feature than those found on UNIX,
for example: (from GNU coding standards)
- Upward compatible with many standards at the same time like
POSIX, Berkeley Unix (BSD), ISO/ANSI C (if they specify the behavior)
- Offer compatibility modes for each standard when they conflict.
- GNU offers extensions even when standard prohibit them (because it offer compatibility modes).
Ironically, those extenions usually becomes standards in future!
Additional useful features are included regardless of whether there
is any presence for them in any UNIX, recall that GNU philosophy is not to replicate UNIX but to replace it,
GNU provides the best, UNIX or not.
- Use a smarter algorithm discovered more recently than UNIX.
- Eliminate use of temporary files.
- Better generality, no hard-coded limits on many things including
filenames, lines, files (input data) and symbols
- Could handle NULs and other funny characters in input files.
- Designed to be extendable by user (if it's useful)
- Device independence so that the behavior of the program does not depend
on the type of output device it is used with.
- Most GNU packages are portable on a wide range of platforms
(some of them could run on Windows which has no support for POSIX)
but they are not equally important(The most important platforms for a GNU package to support are GNU and GNU/Linux).
because of this superiority many properietary ("commercial") UNIX makers replace
their tools with part of GNU toolset (or at least include it along with their original tools)
GNU is the professor Richard M. Stallman's way
to prove his philosophy that software should NOT have owners, every one
should be free to see the source code, copy the software, modify,...etc. it,
as he quit from the AI laboratory at MIT in the 1980's to start GNU
project so that they won't claim ownership and interfere it from being free
(see his page www.gnu.org/people/rms.html )
the project objective is to provide free system (as in freedom),
unlike the UNIX way of having only supercomputer owned by a few people
who afford buying it and agree to sign nondisclosure agreement to operate it.
The Free Software Foundation (a non-profit organization) is founded
to provide logistical, legal, and financial support for the GNU project
and the Free Software movement.
He started with EMACS a very powerfull text editor
(also a lisp AI language interpreter), thousands of programmers joined to complete the system,
and now we have a very high qulity system tools
(the best compilers,the best debugger, the best editors , ... etc),
just as what we have mentioned the GNU kernel (which is called Hurd)
was in deep freeze for a long time, but in 2005 it back to be active and usable,
yet it's not of the same level of quality as other GNU components.
What is Linux ?
Linux is a system kernel (the core of that do the hard work like dealing with
Hardware). This kernel was written from scratch (it was not derived from sysV
nor BSD source code), it's POSIX compliant and free software thus
open source (more than 4 million lines of C code),
anyone is granted to get or develope it.
Linux is written by Linus Benedict Torvalds from Finland at
Helinki University in 1991 when he was student there
(see his page www.cs.helsinki.fi/~torvalds ),
he was dreaming to have UNIX at home on his own PC
(but just as what we've said UNIX systems cost a fortune)
he started to study MINIX system (a book and an educational [toy] system),
then he made his full featured system to be suprerior not only to
usual personal systems but also to other UNIX systems.
he put the source files on the internet and form the Linux kernel project
www.kernel.org
, first version of Linux was released on 1994,
he write a thesis about Linux entitled "Linux: A Portable Operating System"
to get his master degree in 1996, now thousands of programmers is helping him developing it,
so that only about 2% of the current Linux kernel is written by him, although he still contol it.
Linus now works for Open Source Development Labs (OSDL)
Linux works on most platforms (about 20 different processor families), including :
- IA32(32-bit Intel Arch x86 including Pentium,and AMDs) the will known PC computers
- IA64 (Intel Itanium, AMD Opterons other 64-bit)
- PowerPC PPC (produced by IBM, Apple and Motorola and used in Apple Macintosh machines)
- Alpha
- Sparc
- MainFrame
- MIPS (used by PlayStation and Nintendo 64 game consoles and many SGI supercomputers)
- m68k (from motorola)
- ARM (used by many mobile phones, PDA, Game Boy Advance and
Nintendo DS handheld game systems)
- and many other platforms like XBox
Linux name is composed of two parts: LIN (I as in 'print') from Linus
(his first name) and UX (U as in 'put') from UNIX.
Maybe it's pronounced that way because of Finland-Swedish pronunciation of his name.
Linux is sometimes called TUX short for Torvalds (his last name) UNIX,
usually used as the nicknme of the penguin (Linux informal logo).
This is one of the top free, open source, standard compliant systems.
Linux did not pay for POSIX compliant test (just like MacOS X æ FreeBSD)
so it's not officially
POSIX compliant, but many people and organization get the tests and Linux pass them all.
What is Linux one more time ?
Linux mean one of three things: the kernel, the system (kernel and toolset),
and the complete ready to use CDs with installations software, applications, and games.
To distinguish between them, the first is called Linux Kernel,
and the second is called GNU/LINUX , and the third is called Linux Distributions.
You can guess which we mean from the context.
Some GNU documentation defines 'GNU/Linux' as "
A variant of the GNU system using the Linux kernel, instead of the
Free Software Foundation's Hurd kernel. Linux is a stable,
efficient, full-featured clone of Unix that has been ported to a
variety of architectures. It is most popular on PC-class systems,
but runs well on a variety of other systems too. The Linux kernel
source code is available under the terms of the GNU General Public
License, which is perhaps its most important aspect".
What is Free software ?
It's a software that gives you the free right to use, copy, sell, modify,...etc
the software. A type of Free software is called copylefted which is
a way of copyrighting software to protect it but not from being
copied or modified (developed) but instead from taking away your freedom as we
said before Professor Richard M. Stallman the founder of Free Software Foundation (www.fsf.org)
came out of this idea. Each and every one has the right to copy, distribute, modified, and get the source code
of a free software. Free here is about freedom not price, after you get Linux
you may copy it and distribute it for free or resell it.
Is GNU/Linux the only free system ?
No, we have many like GNU/Hurd, FreeBSD, NetBSD, OpenBSD and many more
but Linux is the most famous system with best hardware support
and supported by the largest community. Linux is more mature than other free systems.
What is the minimum requirement ?
At least you need a 80386 (before Pentium, and 80486)
and at least 4MB of ram to run Linux kernel,basic GNU tools,
and apache web server without graphical interface,
but to be able to run a usual distribution you may need 16MB
to use textual installler and at least 32MB to run the graphical installer,
at least you need 200-400 MB of hard drive to be able to install
an old graphical environment (NeXT Step like) , but you need 1-2GB
to run KDE and/or GNOME, this is the minimum double all that for
the recomended.
What! in english please.
Pentium I ,32M ram,2GB HDD for minimum.
Pentium II ,64M ram,4GB HDD for recomended.
Where can I get Video card and sound card driver ?
You don't need any, Linux has modules as part of it for all sound cards
and X has drivers for most video cards.
but some internal or USB fake modems need a driver (downloaded from the chipset vendor)
and some has no driver(in particular motorola SM56) actually it can be but
it is hard to do that (also Windows XP has no driver for it).
Should I format all my hard drive ?
No, you need not, you may use a partition (Like D or E in Windows terminology)
How easy is it ? is it like Windows or DOS ?
Linux is very flexible it can be the way you want.
Linux can run one of the most beautiful interfaces called KDE,
It's very easy to learn and you may set menus to be transparent
and icons to be crystallized. But if you have an old recycled PC
you may want set it to be a silent server or firewall dropping
all that shining graphics to save memory for real work.
The operating system (kernel) is a software that is between
harware and applications fascinating this to that, and somethimes forbedding
this from accessing that (eg. for security).
It has nothing to do with the user that is not part of the kernel duty,
but the reason for this confusion is that properietary OSs comes
with application and interfaces as one solution.
The question is now 'does Linux (the distribution) come with
user-friendly applications and interfaces ?'
The answer is YES, there are zillions of applications and interfaces.
Should I get each application and install it one by one ?
No, here comes the role of Linux distributions.
you could build your system by your self piece by piece, but
mostly you would like to get your system installed via CDs
with all software you want. Linux distributions (from 1 to 7 CDs and usually 3)
made by companies (like RedHat and Mandrake) or organizations (like Debian) come
with installation program,Linux kernel(s),GNU tools and thousands of
application software (from 2000-8000 software package and may be more!)
all you have to do is to put the first CD then restart your computer
and follow the instructions.
Does it support my local language ?
Yes, GNU is now designed to be international not just support
typing and viewing some language but software could be translated
to have your local lagnuage interface.
A small number of programs does not follow this rule but they
are usually replaced by other international a ware program.
Linux support UTF8 and many other encodings.
How GNU/Linux differ from other OSs ?
- Faster, more powerful, safer, robust, and reliable.
- Designed from ground to be secure and network aware.
- Low reviving cost (all derived work will be GPLed so you may get security updates ...etc)
- Free as freedom since it's licensed under GPL, unlike monopolized proprietary software
- Self-Contained, this mean that you could build Linux with any Linux system.
- Backword compatiblity
- well-documented (if the documentation is not enough you may look at the code)
- Standard compliant like POSIX,ANSI,ISO,IEEE, ... etc,
This could help you finding hardware bugs.
- Support many languages, support unicode standard.
- No viruses, no spies.
- A real 32-Bit system, with real multitasking, real multiuser,
,multithread, and multiprocessors.
- You can control prioroty and priviliges of programs
- Full developing tools, with many programing languages using GNU Compiler Collection (GCC)
- GNU tools can communicate to do custom automated jobs, each program is
designed to do only one simple thing but do it right, complicted things
can be done by using more than one program.
- It's the system where each and every feature of GNU software works
and had been tested by GNU developers themselves, while in other systems
are partially supported or tested.
- Zillions of software is waiting for you.
- Very fast development process, and new features apply transparently this mean
no need to redesign each program.
- Gives you the world of supercomputers and UNIX on your PC.
- supported by large companies like IBM, Hewlett-Packard (HP) and Novell
Isn't Windows a 32-Bit multitasking system ?
No, It just look like that. If you were printing on a slow printer
or reading from old scratched CD or coping a large file or
uncompressing a zip file larger than 500MB , then your computer
would be very slow even the cancel button won't work until some job get done
since Windows relys on BIOS calls which is designed decades ago,
and BIOS is 16-Bit. Also Windows booting is devided into two stages
the first one is 16-Bit mode (the unprotected mode),
after executing 'config.sys' and 'autoexec.bat'
(all programs and device drivers here are also 16-Bit) it moves to the 32-Bit stage.
Why do I need all Linux features as long as Windows works fine ?
Screenshots of Windows failures on crtitical situations

Linate airport

Arrival: Blue Screen Of Death

ATM of Lloyds bank, Baker street, London
for many reasons:
- Viruses, spies, and Bugs. Some reports says that 70% of Windows systems
catched a trojan.
- because of EULA
- The unstability
- There is no standard or independent organaizations grant the stability,
only the market controls what they do, if they are angry of your company
your programs will not work on next version (recall what happened with AOL and XP),
some programs for 98 fashion stop to work on next versions.
- Not being robust, for sure you know the BSOD (Blue Screen of Death),
'send bug-report' dialog, and 'Illegal Operation' dialog ...
- There is no source. support department reply to you
"Buy our next version","It's a virus,It's not our problem","reinstall Windows"
"You stupid learn how to shutdown it correctly" , and maybe
"add more memory".
- No way to get a free of charge reliable software (only you get a shareware low quality demo programs).
- Is not suitable for large scale scientific software that need years of
continuous running.
- Is not suitable for secret or sensitive governmental projects.
There is no source publicly available(seen by all expert around the world)
how can you trust that it will do the job it's supposed to do.
even if the source is available it will be under nondisclosure agreement
that make sure few expert will see it.
There is a "secret" document (supposed to be so) from Microsoft
called Halloween document in which Microsoft admit that GNU/Linux is better and will has better future,
see www.opensource.org/halloween.html.
What is EULA ? Why should I care ?
If you live in 3rd world, usually you may get an illegal copy Windows for a few cents,
but more and more countries signs international agreement that persuades
them to keep the "Intellectul Property" so that illegal copies will be no more.
If you have one, all excuses will not help:
- I've got it when I buy the computer.
- I did not copy any thing.
- A friend of mine has a legal copy and I use it.
- The seller said that this is an original CD, look the logo printed on it.
all this won't help and you would pay.
About EULA:
It's the End-User License Agreement
It does not cover the big pirates
(who copy it on a printed CD just like the original one), It only covers you the end user.
This agreement you press agree without even looking what is it all about.
It's about you do not own the software you buy, you just have the permission
to use it and that's why you pay money.
Is this bad ? what does it say ?
-
By installing, (...), accessing or otherwise using the SOFTWARE PRODUCT,
you agree to be bound by the terms of this EULA. This mean you can not get
your money back since the agreement does not show until you access the product.
- In other words by touching any PC you will be considered to be agreed.
- You have only the right to use it, not to study it! EULA says :
"You may not reverse engineer, decompile, or disassemble the SOFTWARE PRODUCT"
By the way Europe laws provide the legal right to do all that reverse engineering...
- If you lose the Activation Key or serial number you have to pay for a new EULA.
- One EULA for each machine, the more computers,the more users,the more you pay.
- Very LIMITED WARRANTY, If the SOFTWARE PRODUCT
doesn't work properly, Microsoft gets the choice of what
action to take ( "return of the price paid (...) or replacement of the SOFTWARE PRODUCT (...) " )
and you are left without any option but to wait.
- Java case cancer!! EULA says: "IN WHICH THE FAILURE OF JAVA
TECHNOLOGY COULD LEAD DIRECTLY TO DEATH, PERSONAL INJURY, OR SEVERE
PHYSICAL OR ENVIRONMENTAL DAMAGE."
- see Windows 98 EULA
What about Linux license ?
It's called GNU GPL - General Public License
we have talked about it before in section 1.1. Copyright and Intellectul Property
This is not enough to put all my CDs in microwave and restart from zero.
No budy says so, you can have two or more systems on your PC,
Linux is multiboot system, Linux distributions come with intellegent boot loader
that gives you a menu to select the system to boot each time you switch on
your computer. You may hide this menu and set it to boot as it was before installing Linux
so your little sister can use it and gives you Linux menu only if you hold
SHIFT (or what ever) while booting.
Also we have a program called 'wine' it can run Windows programs under Linux
normally and may be faster (so you do not need to reboot) .
How Linux differ from UNIX ?
well, Linux is a UNIX system, so the question becomes 'How Linux differ from other UNIX systems ?'
There are two types of UNIX makers, UNIX made by companies produce
special hardware like Sun microsystems and their Solaris,
and UNIX made by software-only company like SCO.
we can also compare them by license: free like HURD and FreeBSD, proprietary like SCO UNIX.
This table compare between one of each type.
| Factor\OS | GNU/Linux | GNU/HURD | FreeBSD | Solaris | SCO UNIX |
| by | Community - kernel decisions is made by the dictator Linus | Community |
Community - decision is made by an elected committee | SUN Microsystems | SCO |
| Platforms and Hardware | almost every platfrom | Yet Intel AI32 | Intel AI32, and maybe alpha in future | Sparc family and Intel AI32 | Intel AI32 |
| License | Free and derived become free: GNU GPL | GNU GPL | Free and derived need not:BSD | Closed | Closed |
| Status | Stable,robust, and developing | not ready, under development | Stable | Stable on Sparc but not so much on Intel | N\A |
| Objective | A free master general purpose top performance and security |
The future of UNIX system,easy to develope(OOP) | BSD project | spacial purpose | - |
| Price | from free to some thousands usually 20 dollar
| - | - | relatively high - usually a complete solution with hardware,the price may be annually | relatively high |
| Support | free from the large community, payed from many companies and distribution makers
| smaller community | relativly small community | From Sun | From SCO |
| Number of volunteers | The largest | Small | Large but smaller than Linux | Zero | Zero |
| Easy to use | Many distributions | Only Debian (for professionals) | because of less hardware support it is very hard to use | because properietary tools has less features than GNU, it's Hard to use | Hard to use |
| Power and security | Many solutions like: PAM, SSH, and LDAP | - | As Linux |
The company takes care of all that by premade configarations(some times password is already setted) and there is no code | Like Solaris |
| Applications avaliability | Many for free as source code or premade ready packages | Lesser, you may need to bulid from source | From source |
Lesser, You should accept the one peice solution you buy | Lesser |
Open source is two sided weapon, on one hand some companies says
that closing the source will delay attackers because they don't know
how it works! on the other hand open source algorithms assume as part of design
that the attacker is well informed knowing every thing about how it works
even though this information is useless in attacking
(like asymetric encryption, the encoding algorithm has nothing to do with the decoding algorithm).
Bugs like 'Buffer Overflow' can be discovered from source,
knowing the source one can find such a bug and attack you,
on the other hand fixing this bug is done by modifying the source,
with that large number of expert volunteers Linux community have,
bugs is discovered fast and being fixed from 5 minutes to 3 days,
if you are expert you may find it before that and fix it your self!
The Linus's law (by Eric S. Raymond inspired by Linus Torvalds):
"Given enough eyeballs, all bugs are shallow".
but with commerical closed source sotware those bugs is discovered
by trials or an ex-employee then it get published in the underground world
one can attack you, you will notice when things get worest
but when you call for support they ignore you until things
get worest and worest and from many customers so they are forced to admit it,
then you have to wait a few programmers in that company to find it and fix
it and this may takes a year then they release an update,
the update patch itself could also have a bug and you have to wait
things to get worst again (you don't have the source, you don't know, you just believe what they say).
To compare Linux and FreeBSD, I recall how MySQL documentation
discussed the best platform for running MySQL based on many factors
(like stability of thread library,ability to use SMP,number of users
that test it on that platform,...) and they concluded that
the best is Linux 2.4 with ReiserFS on IA32 (eg. SuSE 8.2) at that point,
followed by Solaris 2.7-2.9 on SPARC then FreeBSD comes third,
but they added it is not to say that one OS is better or worse than the
other in general, because it could be that they have put forth more
effort into testing on and optimizing for that particular platform.
When we compare two free systems (Linux and FreeBSD) as two community
driven software development projects, we must consider the size and
the activity of the community, how much that community encourage
development of it's specific software or make more software run better
on it, it's known that GNU/Linux has the largest and the most active
community of developers,testers and users that makes free software
companies or developers give it a priority, and most of all
it's the system where each and every feature of GNU software works
and had been tested by GNU developers themselves.
Comparing all Unices, one of famous UNIX consaltants; Eric Raymond has written a FAQ article
on what UNIX to buy, now he writes: "Times change, industries evolve, and I can now replace that FAQ
with just three words: 'Go get Linux!' "
Linux uses superior algorithms that put it infront of all other systems
but it's difficult to discuss those aspect here, so we will take one example, for detials refere to Appendix zero.
Many people believe that future systems will be based on microkernels
where the kernel functionality is reduced to just to
manage access to hardware, memory, and CPU time between processes,
the rest functionality (eg. network protocols, filesystems, ...,etc.)
is done by a set of special programs called servers or daemons ranning
in parallel, all this to get a modularized system.
Linux kernel is not a Microkernel, it's Monolithic kernel
but it's a modularized system, Linux has what we call kernel modules,
each module (unit) can be loaded only when it's needed and unloaded
when it's not (eg. to save memory), Linux is the only Monolithic
kernel that can change part of the kernel without rebooting!
Linux kernel could run parts of kernel code in parallel (as Microkernels servers) through
a few kernel threads those only where it's effeciant to use kernel threads.
Plan9 (from Bell-Labs) and GNU/Hurd (part of GNU) are expected to be the future
competent to Linux. They extend many Unix concepts like
union directories or UnionFS. Plan9 is not aimed to be a
Unix system while Hurd is (through POSIX compitability). Plan9 is named after
a movie called "Plan 9 from Outer Space" while
HURD is mutually recursive acronym that stand
for "HIRD Unix-Replacing Daemons", where HIRD stands for "HURD of Interfaces Representing Depth".
Because they are running many servers on the top of
the microkernel, akes them modularized systems, this
won't make them better than Linux (it's modularized system),
but their servers could run unpriviliged on user land which make it
safer to insert buggy codes, a user could run the Hurd within
itself (a sub-Hurd), Linux does not support this but using a package
called "user-mode-linux" this feature is achived
(you could safely test buggy codes and run even a complete Linux kernel
as a user process within different Linux kernel).
Because of Message passing between servers running over the microkernel
Hurd and Plan9 (or operating systems based on it like Inferno)
has features make it useful for distributed computing in the future,
but there are some Linux kernel patches (like OpenMosix and BProc)
do that now! making Linux the best known system for that task.
In short current state Linux could provide someways (maybe non trivial)
for those extended features and outperformence those systems,
see Microkernel and Monolithic kernels subsection in "Appendix Zero: How computers work ?"
Plan9 and Hurd do not threaten the case of free software because they are
free software too! Hurd is released under GPL (of course, it's part of GNU)
and the license of Plan9 is compatible (since 2002) with
free software definition from FSF and open source definition from OSI.
Can I trust Linux to do 'mission-critical applications' ?
Yes, some Linux distributions has US DoD approval.
On real world, even if you did not buy support,
Linux community solved the FDEV_BUG on the first pentium CPUs
in 3 days (by having the kernel emulating the calculations with equivalent),
but with other systems they waited Intel to admit it after a year!
Russell Nelson, President of Crynwr Software says : "We use Linux for all our mission-critical applications. Having the source code
means that we are not held hostage by anyone's support department".
In future, will Linux be a live ?
Many large companies uses Linux and support it, IBM, HP and Novel support
Linux even though it compete with their own UNIX systems! Intel support
GNU C Compiler, Oracle supports Linux and made a distribution,
Sun Microsystems produce Java development desktop (based on Morphix Linux
or SuSE Linux and GNOME desktop) and Sun is now developing a 3D environment
for Linux. Many sites use Linux to power their servers like google
many uses apache (a free web server) like yahoo and amazoon,
many counrties uses Linux for critical jobs,
US National Security Agency has developed SElinux
a Security Enhanced Linux,many counrties uses Linux for bureaucatic jobs
like Korea, others use it in schools like Spain.
Also GNU is supported by UNISCO.
How it would be useful at my small office or home ?
Linux distributions comes with 2000-8000 software packages on the CDs
and zillions on the internet such as Video players,
games and office suit (word processor,... etc), web browsers
,development tools, and even Mobile phones tools.
you may open any file with types you know and other never heard about.
Also you will get an UNIX experience.
How it would be useful for governments and large companies ?
Because of vendor independence, low cost, security, and reliability,
companies can save money with Linux, give their products more value
and better competency. GNU/Linux comes with it's source code, documentations and
tools enough to build any software application.
And even hardware vendors could make use of Linux (internally),
a large number of embedded systems specially
network firewalls and routers, including several from
Linksys, taking advantage of its advanced firewalling
and routing capabilities.
Many studies tries to estimate the value of Linux, for example,
a study on Red Hat Linux 7.1 (More Than a Gigabuck: Estimating GNU/Linux's Size) found that it contains
30 million source lines of code (SLOC), if it has been developed by conventional
proprietary means, it would have cost 1.08 billion dollars! and take about
8000 person-years of development time! (refere to www.dwheeler.com/sloc)
Another study (Counting potatoes) the same analysis was performed for Debian GNU/Linux version 2.2,
it contained over 55 million SLOC, and would cost 1.9 billion dollars
by conventional proprietary means! (refere to http://people.debian.org/~jgb/debian-counting)
UNIX systems are widly known as the best system for servers,
but UNIX is very expensive (and run on expensive hardware)
while Linux can work on any computer including PCs
and with SMP technology and network clusters,
PCs can gives the performance of Mainframe
but much cheaper (you can't export a Mainframe out of the making country)
so poor countries can get the highest technology with relativly cheap price,
for example KLAT2 super computer cluster is formed of 64 untuned AMD Athlon PCs
running Linux having performance of 22.8 GigaFLOPS (theoretical peak 89 GigaFLOPS)
it was the first supercomputer under $1K/GFLOPS.
And even when the price is not importent Linux also would be the solution
for example, world fastest supercomputer (2005) is IBM Blue Gene
which is formed of more than 32768 PowerPC CPUs (customized architecture)
having performance of 135.5 Tera FLOPS (theoretical peak 360 TeraFLOPS),
it's running Linux (see www.research.ibm.com/bluegene/ and http://news.com.com/2100-1001-963285.html).
Cray Inc. (www.cray.com) announced (on 4 October 2004) that the Cray XD1
range of supercomputers which will use 64-bit AMD Opteron CPUs running
GNU/Linux to get performance of 41.5 Tera FLOPS. (refere to Wikipedia.org on Supercomputers)
|
Best viewed with free web browsers
You may get more high quality software
from here for free

Generously Hosted by www.JadMadi.net
|