What's behind all those Icons,
and what really makes it all go?
What this rant is.
This rant, like any other is a collection of hopefully short
concise thoughts about a huge subject, in this case Linux, and
Open Source Software. I try not to explain the whole
while attempting to cover one thought, that said, sometimes they just
seem to get away from me, and I go off about things that have nothing
to do with anything. I therefore apologize in advance, and chalk
it up to the fact that this site, like every other responsible living
growing site on the net, is still unfinished.
In this rant I assume you are not at all familiar with Linux, and are
in need of a treatise on it, and Open Source Software
generally. So what I provide here is an unsorted series of mostly
single paragraphs, that illuminate some hopefully interesting facet
of this impossibly large subject. You are therefore instructed to
take what you need from this rant, skip anything you already know, skim
the rest, and move on to the active tutorials. These are often
characterized by the word "Things" or "HowTo" in the HTML file.
In order to use the active tutorials you will need an internet connected
computer that you have just installed Linux onto. From there you
will navigate your way back to this site, and tryout some of my handywork,
some of which may even work :-) The important thing to remember
here is that the machine you experiment on, MUST NOT be
worth anything to you, this should be a machine culled from the closet,
or harvested during your last Dumpster dive YOU ARE
NOT HERE TO DO ANY REAL WORK! You are here to learn, nothing
more. After you learn Linux well enough to climb out of the
traps, and pitfalls, without loosing data, you probably have a pretty
good feel for what kind of hardware to buy, and more importantly,
WHAT NOT TO BUY! Buying hardware that works
flawlessly with Linux, means that you do your homework first, carefully
choosing each and every item, and in some cases you can't even rely on
make and model number, because some unscrupulous manufacturers LIE
to trick you into buying their broken products. I hope to
give you several strategies to deal with this issue, and avoid wasting
money. Generally speaking solutions in Linux and Open Source
are not about spending money, nor are they fleeting. Under Linux
you mostly spend time to find a solution, whereas with Closed Source
Proprietary Lockin hardware solutions, the accepted strategy is to
throw money at the problem until you buy it into submission, solutions
via this approach come at a high cost though, for one thing it tends
to encourage hardware manufacturers to employ the process of
Orphanization of their
own hardware. It works like this, the next Micro$oft forced upgrade,
they simply refuse to write a new driver for the old hardware device,
your only choice is to buy a new device, what ever that device is, or how
expensive it is to replace it. It doesn't stop there, let's say it
was a printer, whose cartridge is refillable, now the new one, only accepts
Genuine XYZ brand toner, and ink refills, special paper that costs a bundle
and all new fonts that license for only a limited period of time.
What if you had the Source Code to the driver, and all you had to do
was recompile it into the next Kernel, it would be pretty hard for them
to say we can't justify the outlay to rewrite the driver. The Linux
and Open Source way of doing things, by its very nature, provides
solutions that tend to be permanent, and yours to keep, providing you
make the effort to backup your work, and archive the source code
files you've spent all that time and effort to find. As a result
when you find yourself in the loss leader isle, looking at a card that
is a "good deal" price wise and is known to be exceptionally Linux
compatible, or you have proven it to be so by buying one and throughly
testing it, you return to that same store and buy enough of that same
card to fill your needs for the forseeable future. Your time in
testing it is thus spent Once! You find yourself reusing that card
in other machines, using the same drivers, and the settings are all the
same, for that type of card, on all of your machines, if something in
the /etc/ directory gets overwritten
you have a model of how this card is supposed to be set up on other machines
on your LAN (Local Area Network), you can access their files remotely
without ever leaving your seat. There is a lot to be said about the
time savings that arising out of being able to do that.
Why open source?
If you think Linux is a low cost substitute for Windows, and that is
your only motivation for buying into using it, please do yourself a
favor, and hear what I have to say, and go back to Windows. While
it is true that many Windows based programs will run under Wine, on
Linux, the degree to which they fit, will disappoint you. Unless
you are truly committed to finding native Linux software replacements
for the software you are now using, there is little to be gained by
simply finding an alternative platform to run the same old tired programs
you are presently running under Windows. Wine often called
the WIN-dows E-mulator
will run a quite few Windows programs but the buttons do unexpected
things, there are often font problems, and generally Windows software is
not held to the same high standards that the Open Source Community
tends to hold itself to, so even running Windows programs in the Linux
environment is tantamount to amplifying things like memory leaks, and
disfunctional advisory locks that tie up system resources long after the
program has exited, or worse yet outright crashed. The very reason
Windows temp files tend to proliferate in the first place is that these
poorly written programs fail to properly clean up after themselves when
they crash. Under Linux you can write programs so that even if they
do crash, a cleanup thread wakes up as a result of the program nolonger
responding, just to tidy up the mess they made. Not that Windows
lacks such a mechanism, but Linux stays up for years, not days, as Windows
does. From a developers point of view, it's hard to justify the
extra programmer man-hours required to make a really solidly designed
application program, when the underlying operating system is as unstable
as Windows is. Furthermore you will find that while Wine will run
many Windows software programs, the one thing it almost never does is
install Windows application
programs on a Linux box to begin with. All of this is not to say the
Wine project isn't a good project, what they have accomplished in the face
of adversity is miraculous. They had to reverse engineer every step
of the way. Often finding out that much of the Windows API call
documentation lies about key functionality. It ain't the Wine
project's fault, they've done an impossible job, and done it well,
Bravo! The truth is Windows users are happy with their operating
system, bugs and all. If you are an average Windows user,
and I charge that Windows crashes X times a
day, you'll stand there and agree, because you've experienced it first
hand. But truth be known, Windows power users don't put Spyware on
their machine, they also have a testbed machine to try out new programs
for a few months before they trust their valuable data to them, and you
know what; They don't have near the crashes that the average user
has. Therefore my advice to you, is that if you're happy with being a
slave to your machine, doing its bidding to get your work done Bill Gates'
way, stay with Windows. Bill has worked very hard to turn computing
into an appliance process that requires practically no knowledge of
computers to do your work. I am a Linux advocate but
even I recognize Windows has a role to play, and it would be
counterproductive to encourage people to switch to Linux, and
Open Source for the wrong reason. I'll probably be excommunicated
from the church of the Flaming Penguin for saying this, but they've
gotten it all wrong, Unix, and by extension Linux, is not for laid back
desktop users, who lack any spark of curiosity as to why the computer did
what it just, did and in the way it did it. You've all seen that other
type, they press the space bar at certain times, while editing a simple
document, and three floors below them, a gigantic machine rumbles to life
dimming the lights, gauge after gauge lights up, menacingly threatening to
annihilate all life by its mere autonomous functionality, and then
seemingly, for no apparent reason, all is quiet again. A typical
Windows user would ignore all the clatter, but this guy/gal, just has to
know why. He/she won't rest until they know why the machine did that,
hours later a simulator has been constructed just to analyze the event,
and days later, weak from sleep deprivation, and lack of nutrition they
have the answer, not that anyone else in the room can understand it, but
they know WHY. Bill G's miracle bristles at anyone who would
dare to look under the hood of his baby, so this tiny minority of simply
brilliant computer science minds, leave Windows, for more friendly
territory. But they are not the only people who use Linux, the other
major user is those same folks who use Windows all day long, you see a
Windows box wouldn't do all that much if it weren't for the monster
machines out on the internet, if you doubt me, bear in mind that much
of the serious work Google does on any given day, is done by
Open Source Software, could you imagine going through a day
without using Google?
The real reason for open source software:
One Word... Trust! You should be able to trust your computer
to do what you want it to do, and know that it will carry out
your orders, and not be doing things for some unseen
spook. If you have any reason to believe that someone else is secretly
running your computer You won't trust it with the data it
needs to carry out your wishes, and act as your agent, buying, and selling
things on your behalf, negotiating contracts for you in your absents, and
the like. The machines sitting on our desktops nowadays, 2007 AD, are
at least as intelligent as a Monkey, as early as July of 1998, a Linux
system running on a Pentium 200MMX with 32Meg of ram and two videophone
cameras, drove an experimental car, at speeds averaging in the high 80kph
range, over roads throughout the Italian countryside, in all kinds of
weather, day, and night, often better than the human who was there to take
over if needed. At one point the car under direction of the computer,
turned straight into the Sun, low on the horizon, leaving the human
effectively blind, he looked down at the instrumentation panel, which
revealed the computer was having no difficulty determining where edges of
the Road, and lanes were, it was now driving the vehicle, and the poor
helpless human dared not take control of the wheel, talk about a tense
moment! The Linux Journal carried this story, and you can still get a
technical abstract of the
March 1999
article. But remember that word Trust, tell me
would you get into a car piloted by proprietary closed source code,
that does sneaky things to keep you from going to the competition, and
because the bottom line, the life blood of industry, drives closed
source code, to release early and often, they release it before it's
really ready, so it tends to crash frequently, with little or no
provocation. Suddenly the term crash is a
double entendre. Having access to every scrap of
Source code that makes your computer run, is how you keep your
computer honest, there simply is no other way. The penalty is that
you have to be willing to learn, at-least a little bit about how to read
Open Source code, every day, or at least every week that passes.
It means reading the security bulletins posted by experts, because
there is no such thing as an impenetrable system, only systems that
are less penetrable than others. Could you imagine people trusting
closed source electronic voting machines, especially machines that lack
any printed record of votes tabulated before a crash, or allegations of
vote tampering, well several states like
California resorted to suing Diebold for false claims. If the
source code had been open, from the beginning, nothing hidden from view,
there wouldn't have been any false claims to make. At worst you'd
have two camps of experts arguing the finer points of how serious
various security holes were, but at least the people would be talking
about them, with Closed Source, the company tends to try to hide their
incompetence until the pressure builds to the point that overwhelming
evidence of criminal cover up raises eyebrows. Once you can truely
trust your computer, many things become possible. If you can trust
it to not divulge private personal information, probably due in part to
the careful use of encryption, you can have
your automobile track your every move, without worry that it will ever
allow that info to fall into the hands of those you would rather not have
access to it. As soon as you get home, it ties in to your home
network, or if you stop near enough to a WiFi Library or Coffee Shop, an
encrypted VPN performs the same function. An automobile can take
pictures, Mpeg sound sources, think of your car as a kind of internet
recording studio on wheels. Get in a wreck, and you have black box
recordings of events that can prove you weren't at fault, but only if you
want to use the data, remember you must provide the encyrption key to
unlock any or all of this information. The key here to making all
of this a reality, comes down to trust. There are crypto systems in
which if say for instance some goon threatens to kill you, unless you turn
over the crypto-key that you can give them a key that unlocks either
misleading or unimportant information, and yet that same data set, if
acted on by a different key, yeilds deeply personal data. This
process can work for hundreds of streams of data for every stripe in
between, from public knowledge to top secret, and the system itself can
be filled with so much random noise that there is no way to prove that
more info is buried in the stream of crypto data. So the goon asks
for a key, you feign an attempt to withold the key, and then under a more
serious threat, you give in, and give them a key of little, or negative
value, and they cannot prove that there are more keys to the same
data. In short technological cleverness can protect you, as long
as the Source Code is out in the light of day, where everyone can
read it, and to keep it out there for
everyone to be able to read and share with others, is a clever method to
use the worlds Copyright laws against the very interests that are
presently subverting them for their own private protection
racket. The general name of such a tactic falls under the term
CopyLeft. One such stratagem, the darling of the Open Source
community, is a License written by
Richard M Stallman.
that was first deployed in the early 1990's. in Linus Torvalds'
Linux operating system. Its elegant simplicity caught software moguls
who usurp generous authors works for their own profit, completely off
guard. It is called the
GNU General Public License,
or GPL for short. The Open Source Community
asks of any such generous author that they Copyright their work, and then
turn around and license it under the GPL to effect the giving part
of the bargain. The GPL forbids licensees from making it available
under any other license, and requires them to make the source code available
as well if they choose to distribute it in its present form. What this
does in effect is make it impossible for these evil moguls to legally pilfer
a piece of GPL'd software, for subsequent re-badging under a name
designed to fool the public into thinking that the moguls product is the
only game in town. Further the GPL licensee has a duty to
notify the downstream recipients of the software that they, among other
things, have the right to modify, and redistribute it with their
modifications, as long as they take credit for those modifications, and
show where the original can be found. This pretty much prevents any
commercialization of GPL licensed code. I've only skimmed
the surface of the things the GPL does to protect the rights of real live
human beings, at the expense of greedy faceless mega-corporations.
I detail more on this later. Even with the restrictions on
stealing GPL programs, or derivatives thereof, there is still plenty of
room to make money on Open Source software, otherwise all those for
profit companies just wouldn't be in business. One major profit
center is providing tech support, another is building services around
Open Source as Google has, others build hardware that incorporate
Open Source, and if they are honest, they don't hide the firmware,
they flaunt it, people like knowing that a Linux Phone has no hidden
secrets, and that if you compile a program for it, and load it onto the
phone it will do some new cool thing that none of their peers phones will
do, and that my friend sells phones! Even frompy looking green
ones.
What does open source mean to an end user?
You may think you have no need of the Source Code, those human readable,
computer directives that instruct your computer to build for you a binary
executable program, because if you have the program, all you are ever likely
as a normal user to do with it is run it, as it was designed, and intended
to work. However this is untrue for even the most casual of computer users,
because sooner or later they, You, wish for a tiny little modification, that
even you would at some point, have the expertise required to make, assuming
you had the source code. For every program of any significance, there are
thousands of trained people who, if for no other reason than to sharpen their
own programming skills, read the source code of many programs to get ideas on
how to accomplish some odd subtask, that a working program's source code will
provide. If they were to see some nasty trick being performed, against the
wishes of an end user, do you really think they'd remain silent? Noooo...
They'd shoot their mouths off, that they had discovered some Evil Trap hidden
inside application xyz! And what of the author of application xyz's
reputation as an upright and honest programmer? Once the code is out on
the internet, if it has "Evil Inside" TM it's
like trying to unring the proverbial bell, once someone points out exactly
where the "Evil" is. This is what we call
The thousand eyes effect
So it matters, even if you as an end user have no intrest in learning anything
more than how to run a Word-Processor. Aside from that, Posix based installs
use the source code to automatically build a custom version of the application
for your machine. The simple act of installing software under Linux is not
some Windowsesque Wizard driven copying operation under the hood, but is
infact a rich automated interrogation of your computer system, to assess what
hardware, and software, are in your system already, to help the process of
making exactly what's needed in a binary executable, that you will run.
Generally when you get a program tarball, tar is an acronym for Tape-Archive
your first step is to "un-tar" the tarball, this separates from a compressed
file, all the Source Code components, into a directory hierarchy. The second
step is to run one of the Source Code components,
the ./configure script, which creates a
custom Makefile and all that is needed to
finish the job is to run make which reads
the custom Makefile to build the whole application. For quite a long time
these three simple steps are all you will ever do to install your application
programs, that did NOT come with your distro, eg. you
downloaded them from somewhere on the internet. But sooner or later you'll
find out about the
command ./configure --help and be quite
awestruck with the power of the command line. The author of these application
programs writes a general purpose install, that unless you know about the
special features, they all go into the mix, in some vanilla fashion. However
some, and nowadays many application programs have a compile switch to allow
the Posix build to produce a single large executable file, called a statically
linked executable, that has all the library modules built in. If you're an
old Mac user you are already familliar with these, as long as hardware issues
are kept in check, you can copy one of these executables to a floppy diskette
take it to a friends house, pop it in the drive, and it will run, regardless
what libraries he/she has installed on their machine. At this point you're
starting to tickle the tip of a very large Ice Berg, and from there you
begin to slide ever deeper into the world of computer programming.
The reason this happens in the Open Source world, and almost never
in the Closed Source world of lockin software, is that Linux, and
Open Source tend to invite you in, they lead you right under the hood,
tell you not to touch the hot manifold, and give you a grease wipe, to clean
your hands, to use a well traveled metaphor. Whereas, continuing on with the
comparison in the metaphor, the Closed Source world of lockin software,
doesn't trust you to begin with, so they weld the hood shut, and tell you it's
greasy and grimy in there, that you'll poke your eye out just to peek in at
the machines innerworkings. This is why Closed Source lockin software,
is so inundated, and undermined by malware, (viruses, trojans, and worms)
which is now so sophisticated that an average user is unable to remove it.
So it stays there, just waiting to spring into action upon command. Many users
are reluctant to remove files from their machine, even if they suspect they are
part of a malware system, for fear of loosing what limited functionality they
still have left. The trouble is, these people, and more to the point, their
computers, are now part of a vast Bot Net headquartered in
Russia, or China, run by members of organized crime syndicates.
As I said Open Source tends to invite you in, it is rare that
even mildly seasoned Linux users don't know which files are system files and
which are not. So even if you think you have no need of the Source Code you
do need it, and if you make the plunge into Open Source just having it
will open up possibilities so numerous that if I wrote them all down, by the
time you read it all, in disbelief, if you'd simply let the way in which
Open Source tends to change your life, run its inevitable course, you
would find yourself telling others about something computer related that you
have never had personal experience with, but simply because you have an
understanding of the underlying mechanisms, that all computing systems use,
you have an intuitive advantage that you yourself would have some difficulty
quantifying, or explaining to someone lacking it. This also explains the
modern day folklore, supposed
experts saying silly things, that are dead wrong often parroting things
they'd been told, but never really giving any thought to the idiocy of the
idea.
What is a distro?
Ignoring issues like Ring minus N,
Linux is composed of a Kernel, the central core, think of those cut-aways
you've seen of the Earth showing the hot core, the mantle around it, and
the magma around that, and finally the crust, well the Linux Kernel is
the central core, around that are helper subroutines, called Kernel modules.
The Kernel has grown so large that it simply won't fit in the one megabyte
of legacy memory available at boot time so a
workaround was to devise a modular Kernel. When you compile your Kernel you
must place all of the subroutines necessary to start the system up, into the
Kernel proper, a file called vmlinuz. It must be no larger than one megabyte
or it won't fit in bootable memory. Once the basic system comes to life, it
has the disk, and filesystem drivers necessary to load in all the rest of the
Kernel helper subroutines, and virtual memory management insures that the
the CPU has been switched to a mode that can support more memory than one
megabyte. But wait a minute... Do we really want to load them all?
I mean some of them may never be used at all,
so there is this grand orchestrater called kerneld, that automatically calls
needed modules as the need arises, and similarly, frees their memory when
they are nolonger needed.
In other words, most of a modern Linux kernel lives on the hard drive, as a
dynamic system, loading, and, unloading as necessary.
OK that's just fine, now how about some kind of a user interface? Well we've
got that one sure, infact we've got lots of them, there's sh, ash, ksh, csh
to name a few, but the one that most everyone uses in day-to-day living is
bash, (Bourne Again SHell) so part of the startup system functions always
make sure the system has a user interface. There are graphical ones as well
Xfre86, X.org, or simply X coupled with a window manager, Gnome,
KDE, each of which has a potpourri of things to dress them up, abd you have
most of a working Linux system. Add the million or so utility programs, and
as quick as you can say Shzam, you've got Linux.
What's lacking is the ever important bureaucracy of Linux...
The distro!
The two freedoms
The core of Linux, its Kernel/modules and utilities have for the most part
been written, and given freely to anyone by their author, and, are licensed
under the
GPL,(General Public License)
which is a document filled with very carefully chosen legalese, which
prevents someone else relabeling it as their own software, and selling it
for a profit, or worse yet removing the source code, so that you can't see
exactly what your operating system does on the inside, more on this later.
The GPL guarantee that you'll always have the freedom to both read the source
code, and rewrite it, so long as you include it, that is make it available to
anyone who uses your revision, or your program, is oft referred to as the
free speech face of the GPL, the fact that you cannot charge money for
that which you wrote, if it was derived from other GPL'd works, beyond
recovering costs of making copies, things like media, shipping, and the like,
is oft referred to as the Free Beer aspect of the GPL.
The distro!
Remember those million utility programs? Lot's of them, even very useful ones
have problems, some are security holes just waiting for an unwary user, some
are flat out illegal in some parts of the world, still others interfere with
software already running on the system, then there's the licencing issue, it's
almost as if everyone writing an application program isn't truly satisfied
with one or more clauses of the GPL, or LGPL or artist license, take your
pick, but you get what I mean here. The Linux Distro house has to
shepherd all these incompatible forces, into a single installable, legal,
whole, that doesn't crash due to incompatibility problems, and above all,
doesn't get the Distro House sued by a law firm in a country that has
extradition treaties with the country the Distro House was headquartered in.
Obviously very little of this is in the users interests, in addition, the for
profit public Linux companies have investors to please, I saw it as
a sad day when RedHat's IPO went through, because at that time RedHat was
working well for me, not anymore. The next release of RedHat was missing
many of the programs I used so the first thing, me and many others
do if they loaded RedHat, now Fedora, is to load MP3 players that RedHat
refuses to put in their Distro. As soon as they do that, can it truly be
called RedHat? It runs a lot deeper than even that, everything you do to
customize your system removes you from the Distro House Paradigm, in fact
at about the point you get about half way there in your quest for the perfect
set of customizations, if you begin to feel like the left over fragments of
the distro you started with are starting to really get in your way, and you
feel like they are doing more harm than good, you can gut them out of your
system, and see if it still runs. I did just that and found it runs much
much better, in fact I couldn't get X to run at all under
FC2 until I did just that. So as soon as they do that, can it
truly be called Fedora?
Get yourself an older copy of Slackware, and look at all the stuff that's
missing in the /etc/ tree. Slackware runs OK, with what appears to be an
Anencephalic Brain, so what's going on here? Truth be known, RedHat, and
their tightly controled progeny Fedora, are a U.S. based, very much for
profit, suable firm, so they must, and have over the years, striped out any
offending programs that don't directly address their one and only profit
center, namely, computer/server security, and in that they are a shining
becon in the blackness of night. They are very political, they lobby
congress, the senate, major corporations, and other govenments, to see to
it that laws are not erected against things like encryption, without which
RedHat would be as naked as Micro$oft.
Back to my question, after you modify what ever
fill in the blank Distro you've chosen, just whose Distro is
it? Linux is born of the GPL,(General Public License) and if you use it the
way its inventors envisioned it has the flexibility to become YOUR Distro.
If on the other hand you bought RedHat, because you needed all that security
you'll find their support staff takes a dim view of folks who modify the
underlying machinery that RedHat wants in there, when the time comes for
their support staff to attempt to help you out with a problem, and you've
gutted their tools. It's only fair, they need a system setup in a
known configuration to be able to serve you, otherwise you're wasting their
time. On the other hand, when a Closed Source company does this
we, or atleast some of us in the Open Source community, cry foul, we
say just whose computer do you think this machine sitting on my desktop
is? This slippery slope problem has recently been taken to a
whole new level, as some companies are now using the Anti-reverse
engineering clauses of the DMCA
(Digital Millennium Copyright Act) to effectively transfer the ownership
of your computer to them if you run their software. You no longer
have any of the rights of ownership to such devices. Using technical
locking mechanisms, they can force you to purchase only service providers
they see fit to allow you to use. They can kill your machine because
they thought you were attempting to use it to say unkind things about them,
and get this, you have no legal recourse what so ever! The solution is
simple enough, don't run non-GPLd software. But the larger point is
being lost in all of this, folks seem to be asking for lawmakers to put
a stop to this, when the whole reason we started down this slippery slope
to begin with, was too many lazy people didn't feel motivated to learn
enough about their computer to handle security issues on their own, so now
in the name of Protecting Us these companies are running our
computers for us, and getting legislation like the DMCA passed to make it
impossible for us to use our computers in any way that these companies
haven't given their blessing to. Folks you don't have very long to
learn computer science, soon all devices will lock you out in ways like
this. The Open Source community will have paved a small but
navigable road, using computers that run software that protects end users
freedom to use computers in any fashion they please, but here's the kicker,
every single one of these efforts are focused on users who are knowledgeable
to begin with, and willing to learn to build on that knowledge. The
rest of the Linux crowd, is turning Linux into some kind of a WinBox that
suffers from all the ills Windows does. And the biggest ill of all, is that
users are not encouraged to learn anything, you just click the mouse and
get out your credit card, problem solved... At least until you go to
do something that needs yet another driver, one that they knew you'd need
tomorrow. The truth is you don't need tech support at all. I suppose it's
nice to have, but under Linux, the GPL insists on making every single
nuance, and subtlety of the software available to you. I hear folks
all the time chanting that stupid refrain, "Lifes too short" we
don't have time to learn all of that, just to be able to run our
word-processors and spread-sheets. If that's all you ever expect a
computer to do for you, I would be the first to agree with you, but
dog gone it that's not the half of it, and you know it ain't,
you can let your computer take over the burden of your life, if a Linux
based computer can safely drive a car all over Italy, using ten year old
CPU technology, it sure as heck ought to be able to serve you as your
agent, and run your business for you, with all the whizziness of todays
multi-gigahertz multi-core CPUs and subsystems. Back to tech support, you
don't really need to read every line of code ya know, but when you
have a problem to solve, you search the source code itself in an
organized manner that only comes from experience of using every resource
available to you. When you have a problem it's unthinkably rare that
several hundred other somebodys out there on the net haven't had the same
problem, and dropped a note to the guy who wrote the program to begin with,
along with any viable workaround they found. Workaround?
That's solution ready made, for you Use It!
If we've establish nothing else, we've established that Linux, at least at
the command line, abhors being labeled, anything other than Linux.
The GUI Graphical user interface is a different matter, things
found there are very often deeply woven into the fabric of what ever distro
it is. But the GUI is, at least under Linux, just another program, somewhat
larger perhaps, but a program just the same, you can load up Linux without it
and then later download the the GUI programs, X Gnome or what ever,
some window manager, and a bunch of GUI apps. Now even X is tamed.
Debian has this program kind of buried under all those automated install
programs, that if you don't install with X you can install, or
build it later. The build dohicky is kind of amusing when it comes to
fonts, it first goes out to some site on the internet, and downloads a script
to get fonts, checks the script for validity, and then compiles a program,
that has the ability to extract the font information out of a Micro$oft
Truetype font file, and convert it to a Linux Freetype file. Next it goes
out on the internet with wget, standard fare for Linux/Unix tool sets, and
starts downloading Micro$oft Truetype font files, once that has been
completed, it uses this newly created program, to convert the fonts to
Freetype and then it erases the originals.
If you think that's weird, try GenToo Linux, better have a good Internet
connection, read that high bandwidth, you download the one CD iso image,
burn it to a CD, and start the install, except most/all of it comes from
the Internet, as source files, that are compiled locally on your machine!
The whole thing is compiled from source. Can you really call it a distro?
I soppose, in some narrow sense of the word.
Trouble is, I get all these folks asking me which distro is right for them,
could they see the future, I see, they'd appreciate
why I get this frustrated look on my face, dog gone it
there just isn't any good answer for such a question, and even if there were
it will be quite pointless once they become acclimated.
If you were one of these people, I would tell you this about the different
distros.
License Violation Inside:
Fedora Linux
At least Fedora is open source, both in name,
GPL
General Public License, and spirit. Mind you I haven't tested any
recent versions of Fedora. Also Debian up to and including Sarge,
is free of proprietary code, but not all Linux distros are pure in
the GPL sense of the word. Many ship with builtin GPL
violations, some right inside the Kernel!
SuSE Linux
SuSE Linux is partially closed source, what this means among other
things is that they have released a distro with a "Tainted Kernel"
and normally the kernel has code in it to detect this condition, and
simply alerts the user to the fact that he, or she, is running code in
the Kernel itself that is not open and then continues on as
normal. These messages probably generated enough support headaches for
SuSE, that in their next release of the product, there were rumors that
SuSE somehow lobotomized the reporting of "Tainted Kernels". Actually
lobotomized is perhaps too strong a word, and apparently inaccurate as
well, according to what I've managed to turn up SuSE simply followed in the
footsteps of Linuxant, who used a trick now known as the
NULL Attack
Here is an excerpt of an article by LWN.net explaining it.
Many voices in the greater Linux community felt this action crossed some
ethical line, some asked SuSE to stop. Actually "asked" is not a strong
enough word, there were all sorts of readings of the GPL, as to whither
what SuSE did was even legal? Linus said: Playing games such as
the "NUL attack" makes it pretty clear to everybody that any infringement
was done wilfully, and they should be talking to their lawyers about things
like that. SuSE didn't even have to alter the Kernel to do any of this,
nor is it even a new idea, the so called NUL attack, works by presenting
only part of a licensing string to the software, by knowing a bit of how a
program goes about reading that licensing string of character codes.
In the case of the "NUL attack" they placed human readable legalese that
seemed to negate the meaning of the portion of the string that the string
reading finction in the language 'C' will never read because of a clever
placement of an ASCII NULL character, thus totally reversing the action
the macro MODULE_LICENSE() takes to inform the system what license
they are written under. Almost two decades prior this same scenario
was played out in the high stakes game of Cloning an IBM BIOS.
A new part legal, part technical, invention called
Software Clean Room Design Methodology had all but
cleaned IBM's clock
In desperation IBM pulled a sneaky stunt, what in software circles is called
a Cheap Parlor Trick, the operating system IBM PC DOS,
the BASIC Interpreter, and several of the flagship application programs
were all revised to check to see if the character string "IBM Copyright" was
nestled in the ROM BIOS that the machine was running under. If that
check failed the application software errped out a message informing the
user that this program requires a genuine IBM PC to run properly.
Well the Phoenix says to itself, there's only one thing to do, and we got
to do it because it's standing between us and millions of dollars, they
put that message in their ROM's binary! Now what ever you think about
how tacky such a move is, you'd have to wonder if in fact it's legal to
place the term "IBM Copyright" inside their BIOS. Well this is a story
about a modern day version of the same thing, so you probably know what they
did, if IBM programs
read from here to here
\ / \ /
| |
This is not an IBM Copyright
Phoenix simply blasted code into their Clone ROM to contain the phrase
"This is not an IBM Copyright" simple as that, even IBM's own software
would run flawlessly, on a Clone ROM BIOS! There are
thousands of stories such as this, that have a colorful culture that
I often refer to as the Electronic Campfire and maybe someday
I'll get around to writing some of it down, to share with you all.
But this one bit me bad enough to leave lasting mental scars, and now
I am reluctant to do anything with Closed Source, and I do
consider SuSE a Closed Source distro. The LinuxAnt driver
made it into the SuSE distro. and that was the one that made a splash
online, but I only found out about this only after I discovered
it for myself, when I went to compile the SuSE Kernel. The
Open source GPL'd Linux Kernel, the one that lacks the
proprietary drivers, that SuSE shipped with, and suddenly the
AC97 sound drivers reverted back to the tired old GPL version of
the AC97 sound drivers, I.E no Midi, no Input, and a Lame mixer, where
as the drivers that came with the stock SuSE drivers, did all those things.
I took the time to verify all these things, by booting up the old
Kernel. So why couldn't they at least have included the header files,
so that a new re-compile of the Kernel could link in the old binary Kernel
modules? The answer, they were proprietary, SuSE obviously wasn't allowed
to share them. So the WinModem is bypassing the tainted Kernel messages,
my own experience tells me something is afoot with the sound driver, and
my next thought is just how wide, and deep does this stuff run?
With that I left SuSE for good. Later open source community
leaders fell short of making the charge that it amounted to an out and out
license violation, so the request fell on deaf ears. SuSE at that time was
already a commercial enterprise. Since then they've been swallowed up
by Novel, who at first told them they could keep their policies, and their
name. Novel has reneged on the policy issue, and it looks like Novel
has set a date by which SuSE will loose it's name as well.
I wouldn't say so much about this, if it wasn't for the fact that it really
impacts the end user. In some ways SuSE is far better than true open
source Linux, at least for the new user, but it's a real nasty trap.
I'll elaborate, many vendors of I/O cards, motherboards, and the like are
used to the old Micro$oft ways of doing things, which included keeping the
source code for the drivers that ran their hardware concealed from the
public. To lure them out into the open, the open source community has
stated, you don't have to even write your drivers, we'll do it for you, all
you have to do is make the register information available, and open to
everyone, and someone, some interested someone, will write a driver out of
necessity, if nothing else. This move was partly effective, but it
left the new, small, upstarts, and some old hangers on, still unwilling to
open their register sets. Some of them had good reason, 802.11x devices
for example amount to software controled radio transmitters, some military
organizations, of very conservative countries have been led to believe in
the FUD,(Fear Uncertanty, and Doubt) spread by Micro$oft,
that hiding your source code, guarantees secrecy. They are worried
that a virus could copy itself onto millions of machines in their country,
and then launch a radio jamming offensive, or provide a wireless conduit
from inside the citadels of their command and control, directly into the
hands of the enemy, the reality is that if that was planned by an opposing
force, closing their source code is only a minor set back to such a
project. Be that as it may, treaties have been erected to assist in
compliance with laws restricting cross border trade in drivers that make
these software controled radio transmitters, operate, as well as requiring
vendors to ship only closed source binary. Other reasons
may exist, some printer makers like to prevent people refilling their own
ink and toner cartridges, if they open the register information, some models
might allow a user to bypass the test of whither an ink cartridge has been
refilled and thus opening the register set, could spawn a Re-Inking industry.
SuSE by placing closed source code in the Kernel, code that is licensed,
written, and owned by hardware vendors, is a double edged sword, on one
hand SuSE will correctly work with, what up till now, had been
Micro$oft only hardware, and even use hardware features under SuSE
that were never supported by Micro$oft, particularly wireless, other
distros are forced to use reverse engineered drivers, that often fail to
support all the modes of operation, such as no color printing on a color
printer, making SuSE outstandingly hardware compatible. On the other
hand, there's the User Trap I told you about, lets say
you need to recompile your Kernel, and don't kid yourself, sooner or later,
you will need some functionality that the distro house didn't put into your
Kernel, as it turns out, SuSE does indeed have the Kernel development
package, complete with Kernel source. The trouble is that entire
Kernel source tree, is one hundred percent pure open source.
No propritary drivers of any kind, SuSE is not allowed to slip even
one of the closed drivers in. So what does this mean to you?
Well let's say for example you have a problematic motherboard, that has
an AC97 sound chip, this is not unusual at all, AC97 chips are in a large
number of motherboards, they are very popular, using the standard closed
binary SuSE Kernel, the AC97 driver is fully functional, MIDI fully
supported, Sound In, and Out, all supported, however, if you recompile
the Kernel, using the Kernel source shipped with SuSE, you'll find that
the AC97 drivers are not as well endowed, the only thing that is supported
is Sound Output, no MIDI, no Input.
SuSE with an open Kernel is of course a lot more than just some sound chip
not fully working, video, USB peripherals, PCMCIA/CARDBUS, you're probably
better off without the benefit the of closed source components of SuSE.
If you had started into Linux, as intended, true Open Source, you would
have learned not to buy Win-printers, Win-only modems, Cameras that
only work with Micro$oft drivers, and the like. It's a little more work at
purchase time to get Linux compatible hardware, not to mention the cheapest
most rebate driven hardware, is often hardware that lacks the internal CPU
muscle to do many tasks on its own, rather than relying on the host
operating system to do it for them, slowing down the system as a
whole. Getting hardware that runs under Linux using Open Source
driver code generally means that either one of two things are true, either
the open source community has "cracked" the register set, or the vendor
was friendly to the open source community, in as far as they worked with
them. To be a user of Open Source technology, is to be a member
of the Open Source Community, this implies responsibility to them
when purchasing hardware. If we as a community are ever going to
convince hardware manufacturers to play ball with us, and share their
register set information, we can't do it if we allow ourselves to become
marginalized as an insignificant group of customers they, the hardware
manufacturers can simply write off, as not worth the bother. People
who buy hardware that will work using the NDIS driver, coupled with some
of the Windows code that came with the Windows driver CD are not helping
at all to bring this paradigm of sharing register set info with the
Open Source Community into the consciousness and conscience of
hardware manufacturers. Those folks are practically turncoats
spending their money on the evil Closed Source world's product.
Some people I run into seem to think there's something wrong
with having to restrict purchases in this way, even after I have
explained the reasons to avoid this inferior hardware they, blame Linux for
not being Windows compatible, to those I will ask this:
Would you expect a Win-modem to work on a Mac? Of course not!
Lastly remember the Thousand Eyes Effect I spoke of earlier,
what if one of those vendor supplied drivers, had something in it that
rendered security ineffective, you are reduced to trusting a single
entity's due diligence, namely SuSE, to screen out such nonsense.
So in conclusion, SuSE is likely the most compatible distro on the planet,
but the price you pay for using it long enough to become dependant on it,
is probably too great. One more point before I go on to Fedora, the
very next section. Being a closed Linux gives them certain freedoms
to use code that nobody else on the planet can use. When I cover the
Xfree86 fiasco in Fedora everyone of the distros were forced to either go
with the old licensed version 4.3 Xfree86, or X.org inspite of having
poor driver support, due to having to maintain adherence to the GPL.
SuSE however was in the unique position to actually use version 4.4,
with all of it's new features, making SuSE uniquely superior. But did they?
The answer is kind of. SuSE from the beginning set out to be perhaps
the only distro that worked as if it were a closed software shop,
they have worked hard to distance themselves from absolute adherance to
the letter of the GPL, and the choice they made with respect to
XFree86 version 4.4 proves it. Next they were gobbled up
by Novell, and under that umbrella, by none other than Micro$oft, remember
the Patent Immunity deal.
Fedora Linux
RedHat makes no bones about what Fedora is, it is a proving ground for new
technologies that may someday be adopted by RedHat's commercial division.
By releasing the bleeding edge technologies they, RedHat, are developing;
two purposes are served, RedHat maintains a persona of good stewardship of
Linux in the open source community, and they get all their debugging done
for free by all those folks who use it. If you spend money for RedHat
after running Fedora, you might be a little disappointed by how far behind
the curve RedHat is, compared to Fedora, it's that much better.
Where Fedora seems to fall short is device driver coverage, especially for
things that involve new underlying technology. When one well meaning
individual in the Xfree86 developer group, decided to give credit to some
deserving individuals, he inadvertently altered the license for Xfree86,
and because it was done piece meal, and the changes were rather subtle,
no one quite noticed it, until it was too late. The license tampering was
serious enough to prevent legal inclusion of Xfree86 in most distros,
including Fedora, and once credit had been given to these individuals, they
couldn't very well take it away again, leaving Xfree86 on a fast-track to
nowhere. The distros, all of them, not just RedHat/Fedora, were left with
two terrible choices, either stay with the old version 4.3 Xfree86, that
still had acceptable licensing language, or start all over from scratch,
rewriting every single byte of huge the X window system code base.
As it turned out, there was a derelict fork of the X window system
that was composed partly by the true inventers of the X window
system. It originally had it's roots as early as 1984, later called
the MIT X Window Consortium, then simply
The X Consortium, in 1988, later reformed to allow greater input
from the public, X.org in 1998, then retitled the X.org Foundation
formed early in 2004 specifically to deal with the problem of
Xfree86 changing their license to something incompatible with the GPL,
almost immediately they were the new darling of the open source world,
embraced by RedHat/Fedora, HP, and TrollTech, for starters, and within a
year pretty much every distro of any importance, save one, SuSE
David A. Wheeler wrote an
Article on the GPL, and in it he covers the Xfree86 story much
better than I would be likely to, I offer an excerpt below, but
when you have the time, I feel it is Required Reading for anyone
user or programmer involved in Open Source, because in reality user and
programmer in Linux are one and the same, Linux invites users to try their
hand at programming:
RedHat, in the days
before Xfree86 rose to prominence, called X.org that was lying fallow, as
a derelict project that suddenly, due to its acceptable license, found new
life, as distro after distro decided to adopt X.org, you see as they do
this, their expertise and in some cases money, are funneled into X.org the
other distros, that stuck with Xfree86, eventually came around to X.org
anyway, but Fedora was one of the first adopters. The effect this had, was
to jump "Forward into the past" and boy did it show.
If you had a relatively new video card, X.org was so new at that time that
Fedora simply wouldn't work. Ditto for laptops, most of them! The drivers
did come of course, as code bases all over the place relicensed, dual
licensed or what ever, understand you can't take Xfree86 code, and just use
it, but if Xfree86 didn't write it to begin with, and in any large body of
code much of it comes from outside an organization anyway, and the world
knows about the whole fiasco, assuming you are friendly with the original
author, (not Xfree86, but possibly a hardware vendor) maybe they will cut
you a deal. That and the fact that X.org already had a ready-made code base
Xfree86 version 4.4RC2 was still under the old acceptable license added to
the speed with which new drivers were written. From the view of anyone
outside of the loop it was astonishing how quickly the baton was passed to
X.org, from Xfree86.
So why mention all of this... Well remember my saying that Fedora is the
test bed for future RedHat technology, and that if you run Fedora you are
or will be if you use it, a kind of Guinea Pig for unproven technology.
This is not necessarily a bad thing, you are in the unique position to
ride the best of the bleeding edge best. All that said I would
caution you to always keep that fact foremost in mind, especially when
unexplained problems come up. It might be useful to have some other distro
handy to determine if it's Fedora specific.
Back to Me and LinuxNext
The large print Giveth, and the small print Taketh away