Misplaced Pages

Linux

Article snapshot taken from Wikipedia with creative commons attribution-sharealike license. Give it a read and then ask your questions in the chat. We can research this topic together.

This is an old revision of this page, as edited by 161.97.245.102 (talk) at 19:14, 6 January 2010. The present address (URL) is a permanent link to this revision, which may differ significantly from the current revision.

Revision as of 19:14, 6 January 2010 by 161.97.245.102 (talk)(diff) ← Previous revision | Latest revision (diff) | Newer revision → (diff)
File:Tux-thinkpad.png
Linux is renowned for its great compatibility with laptop computers, as it supports like a bugazillion processor types.

Template:Wilde Linux (pronounced LIN-ux; or LIE-nucks; or whatever the PR department decides to stick with at the time) is a term referring to any operating system (OS) based on the Linux kernel. A fully-fledged Linux OS (or a "distribution") is usually designed to mimic the behavior of a UNIX-compliant operating system and for the IT department that is too much of a cheapskate to purchase anything properly certified. Despite its more orthodox uses in server deployment, Linux is also immensely popular amongst 1% of all desktop users worldwide and has a notorious reputation for causing spontaneous melting-point conflicts amongst users that outsiders simply could not care less about.

History

Template:Wikipediapar The central code base of Linux (or the Linux "kernel") was largely the result of an small amateur project initiated by Linus Torvalds, a small-time Finnish computer hobbyist yearning for recognition within a technological arena where most participants never took showers or left their parents' homes. Fueled with the passion for a free-of-charge version of Minix (which at the time was much in itself a throw-away operating system available at the cost of US$69), Torvalds decided to take on the challenge of spending sleepless nights with nothing but take-out food, hacked-together C code and a GNU C compiler. The result was the Linux kernel, followed by its announcement at Usenet newsgroup "comp.os.minix" purportedly via the following officially-sanctioned message:

Hello everybody out there using minix -

I'm doing a (free) operating system (just a hobby, won't be big and professional like GNU) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like any feedback on things people like/dislike in minix, as my OS resembles it somewhat (same physical layout of the file-system (due to practical reasons) among other things).

I've currently ported bash(1.08) and gcc(1.40), and things seem to work. This implies that I'll get something practical within a few months, and I'd like to know what features most people would want. Any suggestions are welcome, but I won't promise I'll implement them :-)

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes – it's free of any minix code, and it has a multi-threaded fs. It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, as that's all I have :-(.

For years, the authenticity of the message has remained disputed, but it is only recently that a series of new discoveries has pointed the original newsgroup entry to a different text:

"Hello every sucker out there using minix -

I'm doing a (probably-not-free) operating system (just a hobby, although I would like to be just as big and professional like other guys in the playing field) for 386(486) AT clones. This has been brewing since april, and is starting to get ready. I'd like to start a smear campaign on minix, as my OS resembles too much of it somewhat (same physical layout of the file-system amongst pretty much everything else).

I've currently ported bash(1.08) and gcc(1.40), and things seem to hold together instead of falling into a heap like they should. This implies that I'll get this fancy, repackaged minix crap done within a few months, and I'd like to know what sort of bones I should toss at the dogs. Any suggestions are welcome, but heaven forbids I'll give a damn about them XD

Linus (torvalds@kruuna.helsinki.fi)

PS. Yes – sort of borrowed here and there from the minix code, but, hey, it has a multi-threaded fs! (Sort of...) It is NOT portable (uses 386 task switching etc), and it probably never will support anything other than AT-harddisks, but you can always stuff a few bucks in my pocket just to help things out a little. And, yeah, I know I am cute because I use emoticons a lot. And capitalizing is hard work :-(.

If proven genuine, this potentially vital record will not only explain the ego-driven nature of open-source projects in general, but also shed light on the sheer unreliability of most free software and the blooming of PayPal donation solicitation between 2000-2004. No respond thus far has been made by either Torvalds himself or the Free Software Foundation.

File:Richard Matthew Stallman.jpeg
Hey man, it's like, Richard Stallman, a key figure in the core development of Linux. He's groovy, man.

Name and fame

Peculiarly, it was not Torvalds' intention to give his operating system the now-official name "Linux". For some time, Torvalds had been determined to call his project "Freex" (a portmanteau of "freak", "free", and "x") rather than the former as it was seen by himself as too "egotistical". However, when his co-worker at Helsinki University of Technology decided to go ahead and name his OS "Linux" anyway, Torvalds simply decided to exert absolutely no effort against his action. Today, the name "Linux" still signifies Torvalds' endeavor towards upholding his humble attitude, and although that other one Torvalds came up with never went beyond the confines of his computer's ATA hard disk drive, it still nevertheless describes the general appearances of the key figures in the core development of Linux quite aptly.

The attention Linux drew from commercial software developers was one of the key driving forces of the operating system's success. Red Hat rose to fame from a mere start-up company in the 1990's to one of the well-recognized figures in the providing of corporate system platforms. Canonical Inc. took the bulk of the work from the Debian project and repackaged it into what is now known as the Ubuntu OS. Despite being the legal owner of the Unix systems, Novell even jumped on the bandwagon and came up with SuSE Linux Enterprise Server. All these booms and busts raged on as Torvalds continued to spearhead his project under the banner of Free Software Foundation, and it was only a matter of time such developments of events brought about the inevitable.

File:Law and Order-lawyers.jpg
Missing: female legal aides such as the one in the middle

Obligatory lawsuits

In a typical scenario of "getting even with the big wigs", the exchange of legal threats between commercial entities is much in itself an unavoidable process (e.g. Sony v. <insert random start-up/community here>). Should a lawsuit become imminent, legal teams of each side will create reasons in a fashion not dissimilar to that observed in Law and Order such that there are in fact intellectual properties involved in the case and that they have been stolen by those representing the other side. Indeed, the resultant costs to both of the opposing parties are usually in the magnitude of millions of dollars, and seldom these are incurred with the involvement of at least one attractive female legal aide that is seen in the aforementioned televised series, making such lawsuit completely meaningless if not downright boring.

According to lawyers from the SCO Group, some UNIX code was allegedly ported to Linux in fashions similar to the following:

mv SCO.unix.kernel linux

As debates on the various aspects of the case intensified, Novell saw the opportunity of filing their own cheap-shot lawsuit against SCO Group and forced the latter into bankruptcy. Opinions regarding the debacle were generally negative and included:

  1. that "Kernel programmers would have stolen from Solaris anyway",
  2. that "Linux works well", and
  3. that "mv wasn't implemented in 1991."

Design

File:Mel Gibson-Braveheart.jpg
Freedom: Linux is the Mel Gibson of all operating systems - if you get the drift.

The design of most Linux distributions is much centered about the way Torvalds envisioned it in the early 1990's. To understand this, simply picture a considerably large amount of Bobcats manned by intoxicated landfill workers trying to gather an assortment of plastic bags, empty cans and unspeakable refuse around and over a very large pile of used diapers. If the resultant odorous mass fails to withstand the gravitational forces and falls apart, then it is considered "unstable". Otherwise, it is deemed "stable". In a Linux distribution, the kernel is the pile of used diapers in the garbage heap, whereas the applications are the assortment of thrown-away items on the outside. Given this paradigm, there is virtually no need for Linux distribution developers to model or predict any user behaviors, and they are granted the liberty to pack anything and everything into the final release so as long as it does not trigger a catastrophic system failure at a click of the mouse. The freedom of speech is hence maximized in the distribution.

File:Typing monkey.jpg
A Linux kernel developer in action. Linux fan, don't worry. There are monkeys that are actually smarter than some **cough-microsoft-developers**cough** human beings.

Kernel

The Linux kernel is a very large piece of software that sits between user applications and the physical hardware inside a computer. In contrast to the micro/hybrid kernel designs, where drivers are often handled as a separate process under the operating system, Linux always attempts to absorb everything hardware-related to the kernel image in the main memory. This greatly increase the performance of the system since it offers better opportunity for the kernel itself to simply panic rather than have to seek ways to stop a misbehaving device driver from running. The modular driver adaptation feature found in Linux stock kernels also shortens the waiting period between downtimes by giving anonymous parties a tool to inject sophisticated custom code into a running system. With the stringent coding structure established amongst kernel developers, a fully open-source Linux distribution is practically fool-proof.

Example kernel module (i.e. device driver) code:

#include <stdlib.h>
/*
 * Inline documentation is a great place to express personal sentiments
 * e.g. "I am going to kill whoever designed this piece of shit chip!"
 * 
 * (Note that in a world where Linux reigned supreme, the response to
 * this statement would likely be, according to linux-2.6.1/drivers/ 
 * ieee1394/dv1394.c, "Why the hell not?")
*/
/*
 * Do: make your variables as obscure and cryptic as possible
 * Don't: be relevant
*/
char linusTorvalds = "God";
char sayWhat = "whatever";
int penguinLanded = 2;
/*
 * Remember - this is your code. BE ORIGINAL!
 * For example, why not liken a function to, say,
 * having the enough fingers to cross
 * (i.e. make the sign of good luck)?
*/
void crossTheFingers (int fingers) {
   int fingers = /dev/stdin.next();
   int weAreScrewed = 0;
   if (fingers <= 1) { weAreScrewed = 1; }
   else{ weAreScrewed = 0; }
}
/*
 * (Note that extra geek creds are merited based on the number of
 * fast food references used in the code. See
 * http://www.gelato.unsw.edu.au/lxr/source/drivers/net/sunhme.c
 * for a working example)
*/
/*
 * Forget that Twitter nonsense - we have the Linux Kernel!
 * Take your opportunity to make complaints about what
 * other people did to the code IN the code like this guy
 * did in linux-2.4.34/arch/parisc/kernel:
 * "I don't know why everyone else assumes they can call this
 * with a pointer to a stack_t on the kernel stack.  That
 * makes no sense.  Anyway we'll do it like m68k, since we
 * also are using segmentation in the same way as them."
*/
if(windows_on_partition)
{
  delete_windows();
  cout << "Windows deleted. Press ENTER to say sorry." << endl;
  cin.getch();
  telephone_bill_gates();
  phonestream bill_gates_telephone;
  bill_gates_telephone << "HAHA 1 computer now a victim of Linux";
}
/*
 *If someone actually WANTS the driver, 
 *let's make sure it get them nowhere!
*/
if(KEXT:Called(2))
{
  pipe1 = pipe.open(/dev/stdin, /dev/null, /bin);
  pipe1.send(/dev/null) << pipe1.recv(/dev/stdin, /bin);
}

UNIX-like

The central idea about Linux being UNIX-like is that it allows users to experience the glimpse of the general usability of a UNIX-compliant OS with the extra benefits of being completely open-source and free for use/development. This central idea can also be broken down into several more granular ideas, with each being equally important against others. They include:

Flexibility UNIX does not emphasize on a single unique application programming or user interface. Every developer is given their own freedom to base their own application on a standard of their own choice. This allows various coding/compilation standards to thrive simultaneously on the same computer platform, all 40 squillions of them.
Dependencies One key aspect of UNIX is its emphasis on dependencies. UNIX dependencies allow program libraries to glue together in a coherent manner and at the same time without imposing strict rules on what library packages an application is permitted to link to and what it is not. Hence, developers are free to make function calls to every function they can possibly find within the system and without following any form of abstraction standards, and users are to bear only, as a result, a slight cost of simply having to acquire a mighty collection of obscure packages required for their applications and recompile the kernel from scratch.
Individuality Instead of naming common directories and files "My Documents", "Program files" and "Command.com", UNIX has a more intuitive approach of handling nomenclatures. Firstly, UNIX does not simply handle plain data as files; under its design architecture, everything is essentially a file of some sort, even hardware. Secondly, it always tries to name everything in short hands. Thus, when a UNIX/UNIX-like system recognizes, say, a USB thumb drive, it will attempt to file it as a device node (i.e. a file representation of a device) under /dev and name it by the form of abstraction the device handling mechanism (e.g. udev) works with, say, "sd0" (i.e. SCSI disk/device 0) instead of what it actually is to the user. This gives the operating system an artistic attitude that makes every user stares at the monitor in utter bemusement.
Usability In UNIX, everything is about choice, and without it, freedom of speech will be undermined. Open-source developers are usually zealous in offering a substitute for every obscure software implementation even though there may have already been more than ten other functionally identical alternatives released under GPL before it. On the other hand, however, open-source developers do not usually ensure that there is any compelling reason for any person to disuse their working (and often non-free) solution and adopt such GPL'd offers. While configuring and operating open-source software via graphical interfaces often prove inadequate or simply impossible, users are often encouraged to employ a text-based command console as their standard user interface and plow through pages after pages obscure, jargon-filled, poorly written documentations in order to properly adjust their operating systems. Any user managed to live through such a process will be guaranteed an expert in computing.

Uses

Desktop Linux

File:Linux-over-vista.jpg
Hands are never required when working at a Linux desktop

Stare at it

One major reason to install Linux is to offer oneself an alternative choice to simply stare at the PC instead of actually work at it. Really, on the ground of being completely free and open-source alone, there is simply no reason for one to complain even when OpenOffice/StarOffice simply does not read a Word document or a PowerPoint file correctly, when that bloated Evolution suddenly gives up working, when the system freezes upon switching on that wireless card that almost every laptop computer has, or when yor 3D card fries up, or when someone puts a crippled sound subsystem in the distribution upgrade. Nevertheless, one can still always enjoy the leisure of playing with that spinning desktop cube thing, right? Right?

Windows is evil: say Linux evangelists

Preach about it

One thing Linux users frequently do with their OS is to pander about it. When Torvalds woke up on Pluto one day, he received what he might refer to as a "divine message from above". Not realizing that what he was standing on was not even considered a planet anymore, he joyously jumped out of his moldy closet and decided that he had to make the world know that Linux is the future of computing technology. He was given a generous amount of time, a total of more than 15 years, to fulfill his prophecy, but it was never materialized. Nevertheless, he gathered himself a sizable following that had somehow been convinced that a share of 1% of all desktop users could somehow garner from even the Mac crowd more than simply a few chuckles or make people think there is actually a valid reason for programming a virus specifically targeted at Linux. Indeed, nothing is ever compelling enough to deter a zealous Linux user from yammering about how superior their OS is over Windows.

File:Mewhenreadingstupidstuff.gif
A Linux user working on his desktop
File:Pidgin linux.jpg
Pidgin. Linux Messenger

Work on it

Most Linux distributions possess an undocumented ability to generate a reality distortion field such that any user trapped within it is isolated from such influences of the real world as time-efficiency and cost-effectiveness. In such user's mind, all that is left are the inter-winded dependencies, the latest "almost-complete" FOSS alternative to a proprietary solution, the unmanageable aftermath left by the last distribution upgrade or the tedious "make install" thing that keeps failing again and again. To them, life should be about spending all day in front of a computer. It is like free speech, only without the actual talking-to-people part.

Server Linux

File:Gentoo logo.png
Just for fun: If the good people at Gentoo Foundation decided to develop an Enterprise Edition of their Linux distribution, what would it be named?

Do the "me too"

Despite the fall of the Soviet Union and end of Cold War, there will always be people insisting that communism will eventually work. In a similar fashion, there will always be people insisting Linux and FOSS in general will some day replace proprietary software. Wild speculations aside, Red Hat did somehow manage to dominate a sizable portion of the server market for some time thanks to the low-cost "community"-oriented development strategy, and it was not long before other larger companies such as Novell and Oracle launched their own brand of Linux distributions as well. However, as many later realized, a "community" could operate in either one of the two modes: somewhat productive and completely unproductive. When a community generates absolutely nothing except hot steam and air, the sponsors lose their investment, and customers receive low-quality, half-baked products as a result. Nevertheless, community-based open-source projects are simply too hard a gravy train to not hitch a ride on even given that no one can predict if it will suddenly run off the rail at the next upgrade.

Embedded Linux

File:Lawn jenga0002.jpeg
The software architecture for generating sound in Linux

Harness the Voodoo

Embedding Linux to a portable device is one of the main goals to many established Linux communities. With the intricate layers of hardware and software abstractions, installing Linux to firmware can be as much challenging as balancing a stack of Jenga blocks on a chicken wire (and thus gives an extra ego boost to whoever taking it up). There have been successful examples of embedded Linux in wristwatches and appliances where open-source software choices are in only slightly short of a great demand, and as the new-generation smartphones become more and more popular, some distribution developers have even launched their mobile phone versions of Linux despite a general lack of interest in employing vi as an SMS editor and some considerable concern around finding the proper kernel patch for built-in cameras and actually making a phone call. Unless there is a general change of attitude in users towards open-source embedded devices, the opportunity for humankind to receive benefits as a result of the associated cosmic karma will remain doubtful.

Footnotes

  1. Yep, much to the point that it simply imploded before the Laws of Economics.
  2. Speaking of the devil, can anyone say "Microsoft"?
  3. See example: this.
  4. What do you expect from an office suite that soils its own pants simply for having more than 65535 characters in one paragraph anyway?
  5. Does this sound familiar?
  6. Don't worry, your distro is no exception
  7. PulseAudio - "It works until you close the browser window".
  8. Oops, not really.
  9. Well, it has been said that "neither (Windows or OS X) can hold a candle to (Linux)". This lunatic is definitely not kidding around.
  10. *insert your favorite laugh track here*
  11. See also last subsection.
  12. And the Lord spake, "There shalt be Sue-Sahhh." And SuSE came to be. And it was a pile of X#@$
  13. The "unbreakable" Linux that is... Well, None other than Red Hat itself.

See also

External links

Unix and Unix-like operating systems and compatibility layers
Operating
systems
BSD
Linux
System V
Other
Compatibility
layers

File:Linux!.jpg

Categories: