This article will be all about how you can begin your journey into the Linux World of Software that powers Servers and Desktops and newer ideas like NetBooks.
After all Linux does power MySpace, Google, Yahoo!, Bloggers, Flickr, Twitter, YouTube, FaceBook and countless other ultra popular Web Sites.
Why did they all decide to use Linux and not a Microsoft Windows Server? If Microsoft Windows is so easy to use and set up, as they claim, why not?
Did you know that the NYSE — New York Stock Exchange — is running Linux Software? You can see now that any claims that Linux software is not to be used for serious things is completely said only to deter the uninformed, by instead, tricking them into buying expensive and in many cases, restrictive and inflexible Microsoft ‘Business’ Software.
After using computers, both on the Microsoft and Linux side, for over 10 years, I have come to a simple analogy of the Microsoft vs Linux mentality.
Microsoft is like that damn vacuum sales person that knocks on your door and tries to sell you a $2000 dollar vacuum. Claiming the vacuum is so great that you simply have to have it. Yet, you can go down to your local Wal-Mart or similar outlet store and buy a similar machine ‘the sucks on carpet’, for only $100-$200 dollars.
Linux, on the other hand, has not one sales person, not one single advert on any medium — that I have seen — yet is Microsoft’s number one competitor. The reason? Word of mouth and the Internet. People will use what works and fits the bill. They than tell all their friends about it. Linux is advertised in this manner, if you like. But, the difference is, getting advice from your colleeges, friends or family about what technology you should use, goes much further with people, than any door to door sales idiot or silly advert on TV.
I started in the Windows World.
I was there for the Windows 2000 release party for the new millennium, because I worked at Microsoft at that time. I was raised on programming using Visual Studio. I worked on Vista’s firewall as a paid beta tester and test code developer. Microsoft has done a decent job, seeing how it is a single company able to pull off all these enormously technical and complicated feats.
Even the anti-Microsoft Open Source advocates, have to give Microsoft credit for that. The idea, that one corporation could do all this, is mind blowing in itself. This is because of one man’s drive and vision, that only he understood, Bill Gates.
Bill Gates is a Business Genius. He is not a coding Genius. He is a master at putting pieces of very large and complicated puzzles together. He is genius at finding where he needs to be in order to make business deals at the right place and time and with whom. But, he is getting old and tired and burnt out.
He retired himself from Microsoft in 2008. Microsoft is only going to go down hill from there on out. And that is OK! Microsoft, at this point, has more lawsuits and monkeys on it’s back, than any company in history, and for good reason. I personally, think Mr. Gates would have stick it out longer, had it not been for the disappointment of Vista and the never ending appointments, not to his office in Redmond, but to the court rooms across the country!
Microsoft has reached a saturation point. It has completed it’s initial mission, set by Bill Gates, “To put a Computer on every Desktop in every household in America and on Earth.”.
Microsoft, did this! They won, long ago. Perhaps, with Windows 95 and 98.
Unfortunately, Microsoft is losing to Linux, because in the process of becoming so huge, employing over 70,000 people in many countries is beginning to bend under it’s own weight. They put so many of their chips in Windows and their Office Products. The problem is that you can only add so many features and glossiness to any computer program, until you have to realistically say, ‘Project is Complete’.
What Microsoft is trying to do, is continuously release sub prime features for Microsoft Windows and Office Suite Software, to make people want to upgrade. People are no longer buying into senseless ‘upgrades’. These upgrades are becoming so bad, that they are more about added complexity and add to the already bloated software.
People are not stupid. People know when they are being fooled. Yet, People still haven’t excepted the reality that there are alternatives out there. In time they will find those alternatives. This is when Microsoft really starts to get scary. Continue reading to see what Microsoft has already resorted to doing in 2007.
Click here to SKIP and HIDE the nasty, dirty, however sad but true part.
Extortion, because of Greed lead by Fear
This is now leading Microsoft, a huge corporation, consisting of enormous campuses, hundreds of buildings and tens of thousands of employees, fear that one day they will not be able to sustain it anymore. Greed is something we all know Microsoft has.
But, now for the first time in it’s history, it is fearful of it’s future sustainability. Microsoft Executives are a smart group of people, as well as most people that work there. They analyze and plan for the future. They know they have to sell X amount of Windows and X amount of Office or they start to sink.
This has lead to real fear, inside the company.
Fear and Greed mixed together, is a truly an unreal state of mind to be in. It can drive people to criminal and corrupt actions. Want to save the Microsoft Monopoly? Yet, still drink free milk and coke for all employees with free parking? Enjoying great stock options and benefits? These are greedy things. Not all companies of that size can supply such luxuries. Now mix in the fear that Microsoft can not be king of the hill anymore?
Microsoft, is committing everything from extortion to lying in court.
Extortion is a strong word, I know. It is often associated with, The Mob.
But, Microsoft is extorting many Linux Companies. Let me give you an example.
The SUSE (Novell) vs Microsoft lawsuit. Microsoft claims that Novell — SUSE Linux Distribution — is violating Microsoft Software Patents. They threatened to sue SUSE and SUSE customers, if they did not agree to buy Microsoft Certificates. These Certificates give SUSE and their customers immunity from any Microsoft attack, in the form of a law suite.
Below is the definition of the word ‘Extortion’.
EXTORTION - The use, or the express or implicit threat of the use, of violence or other criminal means to cause harm to person, reputation, or property as a means to obtain property from someone else with his consent. USC 18
The Hobbs Act defines “extortion” as “the obtaining of property from another, with his consent, induced by wrongful use of actual or threatened force, violence, or fear, or under color of official right.” 18 U.S.C. S 1951(b)(2).
SUSE Linux must buy protection from Microsoft or Microsoft threatens to sue. That is extortion. Microsoft has not released which patents SUSE violates. SUSE doesn’t even know which patents Microsoft is threatening with. Even though Microsoft has been asked many times to supply proof and which patents, they refused.
You have to ask why SUSE would sign such a deal, when they did not know if any patents where being violated. Well, folks, the reason is because SUSE is a small company, the reformation of Novell trying to rebuild it’s dead company. They don’t have the money for a long drawn out court battle with a Multi-Billion Dollar corporation, like Microsoft. So, the best bet was to just pay for Microsoft Cetificates and move on. However, the point still stands. Extortion is the point.
The software patent threats are useless, because there are dozens of other Linux Companies that did not fall into Microsoft’s extortion plan like; Red hat, Ubuntu and Mandriva to name just a few. Why hasn’t Microsoft not sued any of them? Mandriva, for example, is a small company. Smaller than SUSE, in fact. Well, once again folks, Microsoft does not want to take Mandriva or any other that did not fall into their extortion trap, because than Microsoft would have to reveal which patents they thought violated Microsoft’s and Novell and the others paying for Microsoft Certificates could see the lies and would not be able to stand up in court.
If Microsoft were to reveal which patents they are using as their bullets in the guns place against Novell’s head, would reveal the bullets to be blanks or duds. Novell could than counter suit for wrongful business practices, nothing new for Microsoft.
See, Microsoft is no longer an innocent Software Company out to create ‘Great Software’, as Bill Gates always put it to all his employees. Microsoft has turned into a criminal company, out to keep any ground it has managed to gain, and at any cost necessary.
It is sad, really.
Where can a fair player with real talent go?
A lone ‘rock star’ developer has little chance of making much difference in such a huge corporation. So, many of these genius innovators go the only other route available to them, to unleash their creative outlet. That other route is the Open Source route, which happens to use Linux and GNU tools to work from. Open Solaris and many BSD Unix flavors, are also under the Open Source banner!
Now anyone that has a brilliant idea can release their ideas to millions of other, like minded people, with no resistance from corporate policy. This is why Linux is the Hip new heaven for Geeks. In fact, Linux and Open Free Software is nothing new. It is only in the last decade, or so, that Linux and Open Source has been recognized as a real driving force in the economy of whole countries. Thanks to the Internet.
So, if you are beginning to feel the Microsoft Oppression, and you need a new creative outlet, come join your new friends in the Open Source World.
Where to start?
I will show you all the common places you need to visit, as a baseline, to get started. Also, the transition does not have to be all or nothing. I expect Windows to be with us for many years to come, so dropping your Windows dependencies is not entirely required. However, you will find all the programs you once needed as being replaced by Open Source tools.
I know Visual Studio seems untouchable. But, Open Source has some amazing specialty tools as well as a big one, called Eclipse.
After working in the Open Source and Linux World for a few months, the mere thought of going back to Windows gives you this immediate feeling of Oppression and Limitation. You can’t peek into the Windows Kernel code, you have to pay for Licensing fees that break your bank, and when you can do it better using Linux and free of charge gives you a feeling of stupidity.
All of these things I personally experience. After using Linux for a while, looking back only depressed me.
Communication Channels
It’s kind of funny to hear the critics complain that Linux and the Open Source World is so disperse, and a maze of choices, making it impossible to know where to start. In fact, Linux and Open Source follow a core set of principles, that are there, only because they are logical.
Every program in the Open Source world has a Website dedicated to it. This includes the Linux Distributions themselves. This is different from Windows, in that, most everything Microsoft related is located on Microsoft’s Developer Network Website. MSDN is a nice resource for looking up what you need. But, it also has become a daunting website to navigate. The menu system is overloaded with endless categories and subcategories.
Linux and Open Source does things differently. Each tool or program has its own dedicated Website and in most cases, domain name! How about that for separation for organizations sake.
We will start with the Distros. From now on, I will refer to a Linux Distribution as a Distro.
Every Distro, in existence, can be centrally found at one convenient Web Site.
DistroWatch.com
DistroWatch is a fascinating site in itself. It has a top 100 most popular Linux Distro listing. It also will provide details on any Distro you want to learn about, providing links to Download the software and their Official Web Site. DistroWatch is a must Bookmark website. You are going to want to use this site to learn about Distros, which ones are the most popular, why that is and finally how to get them once you decide what you want to try. Also, keep an open mind. It may take a few Distro Installs and usage periods to decide which one is best for you.
Packages
After you have your Distro, you can learn about all the programs that are packaged with the Distro or Linux Operating System. Each program is collected into what is known as a Package. Unlike in the Windows world, a program is not simply an .exe file and a configuration file you never touch.
A Linux program also comes with docs, man pages, examples, config files, support scripts and the executables. When installing packages all these different parts are places inside specific directories on your Linux Distro.
Example:
docs usually go into /usr/share/docs/[program_name]
man pages (manual pages) usually go into /usr/share/man/[program_name]
examples (scripts or whatever) usually go into /usr/share/[program_name]/examples
configuration files usually go into /etc/[program_name]
executables end up in /usr/bin or /bin or /lib depending on the role the software plays
You need to shift your idea of a ‘program’ by expanding it to think of programs as Packages, for the reasons just described. But, another more important reason has to do with code sharing.
It is a long standing Unix Tradition to share code and as to not reinvent the wheel, if you will. In the Windows World, sharing of code is done in the form of DLL’s. In Linux they are called shared objects or Linkable files. Whatever you want to call the idea of allowing programs to share code, Linux has a system too. Linux also has never suffered from any form of DLL hell.
This is where the Packages concept is so important. Some Packages depend on other Packages, such as a Shared Library. If you try to install a Package and that Package does not know which shared Libraries it also needs in order to function, would render the Package useless.
However, Packages are smarter than that! They contain what is known as Meta data that contains information the Package needs in order to ensure everything gets installed and everything works smoothly. Think of it as a food chain. A Lion is dependent on the Zebra, the Zebra on the grass, the grass on the rain and sun. If I try to install the ‘Lion Package’ than my package and package installer better be smart enough to know it also needs to install the ‘Zebra Package’ in turn it knows to install the ‘Grass Package’ and so on all the way down the dependency tree or chain until all dependencies are satisfied. Only then will the Lion Package be installed, knowing it will operate, now that all dependencies are installed.
Linux has a very sophisticated packaging system, that has over time, become extremely reliable and robust. It is a core feature of Linux Distro that allow it to patch security holes quickly and update software on a continuous relentless pace! It truly is amazing.
A Package is now this ball of information that entails the executables, docs, meta data, samples and support files. This is one of the great achievements of software design, that lends itself to allowing collaboration. Not only does this save development time, by using what others are sharing or have already written but it also saves, disk space and is one of the reasons why a Linux Install is so small. We only need to install what we need.
A Packages Official Web Site
Having a place to goto about a software package is very important. But, how does ones find that Web Site. The best answer is Google. If we are, for example, looking for the Web Site for the package Postfix, one of the many Mail servers available on Linux, we would goto Google.com and type in
Linux postfix
The reason I did not just enter postfix in Google, it to ensure that we are associating the word postfix with Linux. There are many Linux Packages that use animal names or names that may relate to things other than Linux. By placing Linux as a keyword, ensures we will most always find the results we want.
We see that postfix.org is the official web site for this awesome and popular mail server, which I personally use. Going to the site we are welcomed with information about the Maintainer, right away.
Side note here: Most projects will have a .org top level domain. Remember, that Open Source is normally not related to commercial or .com’s, but rather an Organization of people that build the software.
At postfix.org we will find everything we need, regarding Postfix. Download sources, joining their mailing lists, documentation, add ons and information about who is currently the maintainer of the Project Package. It is all there.
Note, Sometimes the maintainers spend a lot of time on the presentation, look and feel of the site, while others just put up a black and white web page with the most basic links. What is important is that the information is there and accessible. In fact, if you have a problem with how a web site looks, you can contact the maintainer and offer to vamp up the site and make it look pretty! That is what the Open Source world is all about, my friends. Doing pro bono work is also a great way to build a portfolio if you are looking to show proof that you do have the skills you claim to have to future employers. That is what I did.
Project Maintainers
Every project has a maintainer. Sometimes more than one. Most the time, the maintainer is the inventor or originator of the project. They started the projected, contribute the most code, so naturally have the most say in the whole thing. You will find that Open Source, even though it is Open, it does have structure and organization to it’s madness. In fact, there is no madness to any of it’s methods.
But, what happens if the original maintainer dies or quits? In many cases, projects have a long list of former maintainers. Projects get passed around and change hands. This is very common. Not to worry, if the project has enough value and developers working on it, they will find a new project lead or maintainer and appoint them, update the site and all is back to normal.
Sometimes, you will use an Open Source Project that really is ‘dead’. Dead as in no one has updated the site, code or anything for a year or more. In cases like this a few things can happen. First of all, the software is perfectly fine and usable. You just might not get any bugs fixed. But, if the software project is usable, then by all means use it!
If you are competent at the language the project is using and you know how to operate an Open Source Project, than you may be able to adopt it.
If the project is important to other projects, as in their depend on it as a shared library, they can adopt it, to become it’s Maintainer. After all, the code is all there. No fork is needed.
It’s a perfect and beautiful way to make software and a perfect example of why chaos is not the result, but rather the opposite.
If this was a proprietary software company that suddenly disappeared or changed it’s name, many things would happen.
First the legal aspects, in fact everything is the cause of legality reasons. Trademark names, copyrights and fights over who gets the rights to the code. All of which would be fought in court, costing thousands of dollars in bullshit legal squandering.
Open Source is immune to this, because Open Source programmers are smarter than your average bears. They care about the software and how it can be integrated into the Open Source World. They don’t care about the legalities, since all of it can be resolved internally between themselves. All they care about is that the software get’s preserved so that the march can continue.
Mailing Lists
The best thing about all Open Source Projects is that they almost always have a Mailing List. Anyone can join the conversation and you can get to know the maintainer and all the participants. You can get to know how the project works and how they actually do things. Everything is Open and out there.
Also, there are usually multiple mailing lists, which are meant to keep certain discussions from needlessly drowning out others. The most common are Discussion and Developer Mailing lists. You may have no desire to help develop and contribute code to the project. But, you may want to know what new features are coming or ask general questions as a ‘User’ of the program. You need to join the right mailing list.
There is no one stopping you from joining the developer list, if only to silently read and see what the hell they are talking about, out of your own curiosity. This is completely acceptable and can be interesting. Just remember, don’t blabber mouth out a comment or question to the the wrong list!
All decisions happen right there in the mailing list. New features and even the occasional flame wars. Yes, it is not always cheery with rainbows and butterflies on these mailing lists. The people on them are professional passionate programmers. Depending on the friendliness factor of the project, if you ask a stupid question, that they deem stupid, could get you a response that may scare you and prompt you to unsubscribe from the list, never to return. While other lists are more forgiving to new comers and are happy to help you out.
One thing is for sure, regarding the mailing lists, they are moderated and it is best you say what you need to say in a clear and intelligent way. This will earn you karma and respect points. If other developers find your responses thoughtful, intelligent and formated well, they will reciprocate with code secrets of their own and may even result in making a friend or two.
There are entire docs written on the subject of proper mailing list ethics and procedures. I am not going to reiterate all that stuff. I will provide a link or two below, which you can book mark for your reference.
Open Source Mailing List Ethics
Maintainers of all Types
I kind of lead you on by saying that all Open Source Programs were packages. Did you ask yourself who does all the packaging work? Someone has to do it.
Open Source software is always distributed in Source Code form, when delivered by Upstream.
Upstream
Upstream is a term you must familarize yourself with and know what it means in the Open Source World. Upstream refers to the developers that created the Software Project, which also might maintain the Office web site, as well. Upstream can be thought of as a mountain stream where rain water collects and begins to flow down the mountains. The Software is the run off, or stream and he mountain is what is making the water flow downward. All software is destined to one of the many available Linux Distributions, out there. Upstream can be thought of as the top of the mountain or where the software is created which then trickles it’s way down the stream to the base of the mountain, which is the entire Linux Distro.
If you go from the base of this mountain, called Mount Distro, and claim upstream to the source of say the Postfix software project, then we say Postfix upstream is the location of where the Postfix developers are.
The reason there needs to be a distinction between Upstream and Downstream and ‘the base of the mountain’ is because of Bug Reporting and fixing. What happens if the Linux Distro finds a bug and needs it fixed? Typically the bug is reported to ‘Upstream’ or to the guys that develop the software with the bug. Unfortunately, upstream developers do not immediately fix bugs that are filed. A Distro may not want to wait for the upstream developers to fix the problem, so the Distro fixes it themselves. However, this creates a small, temporary fork of the code. One fork of the code with the bug in it and one with the bug fixed.
The situation can get complex and messy. It is up to the Distro that fixed the bug to maintain the patch and any others so that upstream can get a hold of them to then us them to fix the bugs.
Compiling from Source
The great thing about having Source Code you can compile, instead of installing precompiled packages, is that you can take advantage of your hardwares strong points. An example is AMD processors have differences from that of Intel processors. 32 and 64 bit machines also benefit if the source code is compiled for their architecture. It is up to the user to compile the software on whatever hardware they happen to be using. Linux software works on more hardware types than any other software in the world. Also, some may want this or that feature while others may not, in order to make the software run faster. The only way to satisfy these needs, is to distribute the software in Source form.
Package Maintainers
Not everyone is able to compile source code. Especially, mom or grandma. That is where Packages once again come in to play. Packages are precompile, have worked out all the dependency issues and can be easily installed and managed with a package manager.
Someone has to make a package of a software project. Making packages is actually a skill in itself. Also, just like everything in the Open Source World, there are choices in types of Package Formats. The two most common are DEB and RPM package formats. My personal choice is DEB packages or Debian.
In turn, DEB or .deb packages are maintaned by the software program apt-get or just apt.
An example in installing a Web Server with a single command is as follows.
apt-get install apache2
With that one command we install dozens of other packages ( .deb files ) that apache2 depends on, which are installed first, which apt than finally installs apache2. Apache2 is the package for the Apache version 2.2 Web Server, which happened to also be the most used Web Server on the Planet, at the time of this writing.
That is about as far as I will go with the package manager. Just know that each Linux Distro will use either DEB or RPM based packages. Easy enough? Only two to worry about.
The point of this article’s section is that for every task that needs to be done, there is a maintainer.
- Maintainer of an Open Source Project
- Maintainer of a DEB package for a Specific Linux Distro like Ubuntu
- Maintainer of documentation for a specific Open Source Project
- Maintainer of a project’s Web Site
- Maintainer of a project’s mailing lists
- Maintainer of a projects artwork
- Maintainer of a projects server hosting plan or hardware
As you can see, a Maintainer can mean any task that needs to be done. The work load is divided up this way. So, if you have extra time on your hands, chances are there is a need for someone to step up as a maintainer of something. This is how Open Source is made, this is how we end up with entire projects like Ubuntu, a fully user friendly Operating System that is putting Microsoft’s underwear on fire!
it is almost too amazing to be true. But, if you figure in the number of people on the planet (9 billion plus), all the diversity of interests there are (everything imaginable) and people’s social desire to connect with others that enjoy similar things (if you are human you need to collab with other human beings), and a way for them all to communicate (the internet) and the big picture as to how and why this can happen, becomes apparent!
Linux and Open Free Software truly is a global project completely free to join, free to leave, free to take a break, free to spent every waking moment thinking about or whatever. It is nature and software is the result. Beautiful software that sings to us, restriction free and accessible to anyone that wants to contribute or use it.
Stop, hold on, I’m literally going to cry.
What now?
So, I’ve introduced you to how the Open Source World works. Depending on your skills, desire and how well you can ‘google’ will tell you what to do next. I can not tell you what to do next. If I could i would be Open Source God and of which there is not one, at least not one that I personally know.
The best advise I can give you is this.
Open a Browser. Dont matter which, could be Firefox, Opera, Safari or OK OK Internet Explorer.
Goto google.com or yahoo.com or OK OK live.com
Use your fingers guided by your brain and begin exploring where YOU want to go next…
Enjoy and Best Wishes.