web space | free website | Web Hosting | Free Website Submission | shopping cart | php hosting
What is Free Software?

by

Pedro Rosario Barbosa

Introduction

Many may have asked themselves exactly why do I promote "free software" so much, and even dedicate a section of my site to such a subject.  Most would say that dedicating a part of my site to "zero-cost software" is hardly any reason to pay attention.  However, the free software I'm talking about here is not about "zero-cost software", or software that is available "gratis" such as Netscape, MSN Messenger, MS Internet Explorer, etc.  All of these products are free software in the sense of "zero-cost software", but they are not free software in the sense of "freedom".   In this page, when I use the word "free" in the sense of "freedom", I'm not referring to price at all.  In fact, under this notion of "free software" you can sell free software.  This may sound like non-sense to many people but there are companies and organizations that literally sell free software.  For example, all GNU/Linux distributions sell free software because their components are free software:  Linux, the GNU C Compiler, GNU Make, X Windows, BASH, GNU Emacs, Apache WebServer, etc.  Take for example RedHat Linux, or SuSE, or Debian GNU/Linux, or Gentoo Linux.  Go to each one of those links, you'll see that they all sell free software (the GNU/Linux operative system).  The Free Software Foundation sells, for example, a package of Deluxe Distribution of GNU software at US$5,000.00, and the Junior Deluxe Package at $1,750.00.   This makes possible for companies such as RedHat and SuSE to be rich by just selling free software, and even can provide income to non-profit organizations such as Debian and the Free Software Foundation.

Ok...   so now I'm talking about free (as in freedom) software, that is not necessarilly free (as in zero-cost) software, and would promote even business.  But how is the term "free software" defined?  The Free Software Foundation has defined "free software" as that software that gives the users the following rights:

What is a Source Code?


    If you are not a programmer, and you have not heard of "source code" before, the source code is perhaps the most important factor when we talk about free software.  To see how a source code looks like, you can right-click the screen of this computer, and then on the menu that comes up you'll be able to have the option of "View Source" or "Source Info" then another window will pop-up with an HTML code.  It is thanks to that code that this page can be displayed the way it does.  For a webpage to be displayed, we have to use HTML language for this purpose.

    HTML, however, is not the only language that is out there.  For example, there are a variety of programming languages out there such as:  C, C++, Java, Fortran, and many others.  For example, if I wish to print on the screen "Hello World!" I can write in C this code:

int main (){
    printf(''Hello World!'');
    return 0;
}


This is how the code would look to command the computer to print "Hello World!" on the screen.  However, there is a problem.  Computers don't read C, nor C++, nor Java.  Computers only "understand" binary language, often called executable.  A program in binary language usually looks like this:

1100011110111010100101001001001010101110
0110101001011000001111001011010101111101
0100111111111110010110110000000010100100
0100100001100101011011000110110001101111
0010000001010111011011110111001001101100
0110010000100001010000100110111101101111

To be able to turn a source code into an executable, there are two programs that make this happen.  One is the compiler that turns the source code into a low-level language called assembly language.  The other program that is needed is the assembler which translates that low-level language to binary language, which the computer can understand.  Now that we have explained this short technical exposition, we will be in a better position to understand free software.


Why is the Source Code so Important in the Issue of Free Software?

    Every program has a source code, and what will a person, a company or an organization do with that source code depends on what it wants to accomplish.  I wish to point out the fact that in the very beginning software was free in the sense we have just described, and could be copied and passed around between people.  What happened in the middle of the way?   Well, one of the things that happened was that companies began making the source code unavailable.  Also, their licenses denied users the right to change the program for their own purposes, and denied them the right of copying them and passing them around.   In fact, in later years they began calling this "piracy".  Before that policy, sharing was considered a healthy habit, and was practically one of the social basis for a civilized society.  Now, if you copy and share software, you are a "pirate" (whatever that means!).  This kind of software is called proprietary software

    Although hiding the source code providing solely executables doesn't seem much, it is a big deal.  Not having the source code would prevent someone to make some changes to the software in question.  To give an idea how difficult it is to change a software as an executable without the source code, the addition of two more digits of the year in computers to solve the Y2K problem was very difficult for many programmers because they didn't have the source code at hand to correct it.  So, if adding two more digits to the year is difficult, imagine what happens with an entire program.

    Hiding the source code has the effect of taking away the power that users have over their own computer.  For example, a certain program can contain (with or without the knowledge of the users) some spyware, software that is used to spy on what they do, what documents they creating, what sites are they visiting, what things are they buying on the Internet, among many others things.  The user is not free to remove the spyware of the program, unless they don't need the program and uninstall it.  But what if they need the program?  Then the user has no choice but to have a built-in spy in their computer in exchange for a certain function they need for whatever reason.

    Another problem is that the license can even restrict users of which programs to run.  For example, some Windows Updates can disable some former programs that the Microsoft can understand the users don't need (so it can have a profitable advantage).  It can even consider the possibility of tollerating some bugs to disable the operative system itself, and hence obliging the user to buy another operative system (and in most of the cases, it will oblige a user to buy a whole new computer).

    Finally, there is the problem with the service.  In the case of proprietary software, the service is a monopoly of the companies that produce them.  It would be like a car company that has the sole authority to repair your car, and you can't even fill the water or the gas without the company's consent; and also you cannot go to the mechanic of your preference.  Calling up the company's service would be in most of the cases useless.  Since the service men are obliged not to reveal the source code of the softwares distributed by the company (signing the non-disclosure agreements), most of the solutions they provide are quite superficial.  The upgrades are usually very slow to obtain.  If there is a failure in the program, the correction can delay weeks, months or even years.

    All of this happens to users so that users are not free, so that the computer is controlled by the companies, and submitting the users to all kinds of pressures, including the pressure of not sharing something they have bought fair and square.  If they share, they are called "pirates".


What is the Advantage of Free Software Over Proprietary Software?

    In few words, free software frees the user.  It is a simple as that.  The user has a source code that he or she can change, compile and install in the computer.  If the user knows nothing on programming, there are plenty of programmers that would be available to do it for a fee or for free.  This latter point would make an increase in the programming market and also it would expand businesses providing services to program free software.  Also with free software you can legally change the source code and this is an advantage for several reasons:
  1. First, the user can adapt a program to what he or she needs, without asking anyone for permission to do so.
  2. Second, if a program has a bug, it is very easy to fix.
  3. Third, the users can distribute the software as they have received it, or can redistribute it with the changes they have made.
    This strategy of the free software movement gives this kind of software high quality, high reliability while at the same time protecting the freedoms of the users.  If a free software is released with spyware, another programmer can take away this spyware and re-distribute it.  Then the users would have the choice of using one software with spyware over another without spyware.  The users are free to copy the software to help their neighbor in any problem they have.

    Some people might object saying that to expose a software to the rest of the world would be dangerous, since people might find vulnerabilities and exploit them.  Proprietary software on the other hand would be far more secure, because the source code is not available to the public, and therefore, they cannot be exploited.  However, this is not true.

    Richard M. Stallman has described, for example, his experience distributing free software.  Most of the time he would receive mails and e-mails of hackers and programmers who have noticed the bugs of the software and provided a fix.  In fact, the amount of bug fixes and improvements of the programs that he received from all over the world was so enormous, that he even had trouble dealing with them all simultaneously.  This led to the fact that free software distributed by the GNU Project, the project Stallman founded, distributes high quality and reliable software.  And this is not theoretical, it is an empirical fact.  The same thing happened with Linux, the kernel of the GNU/Linux operative system, has succeeded mostly because of this strategy of free software.  GNU/Linux and FreeBSD (a free operative system based on Unix and BSD), both free operative systems, are far more reliable than and have greater success of accomplishing efficiently its work in network administration than Microsoft products (this site provides the empirical data that shows this to be true).

    The Open-Source evangelist, and founder of the Open-Source Initiative, Eric Raymond, elaborated a doctrine in an essay called The Cathedral and the Bazaar, in which he describes his experience programming free software (or what is also called open-source software).  He used analogies such as that of a "cathedral" and "bazaar".  For him, the usual way of developing software, the one most organizations and companies use, is what he calls a "cathedral" style of programming, in which there is a hierarchical structure, that has figured out how to create the programs, which features would it include, and the programmers have more or less the role of creating the program.  But in the open-source world there is a "bazaar" style of creating programs.  It is more a peer-to-peer kind of constant sharing of programs, and supply of feedback, creating fixes, improving the programs according to people's needs instead of them being dictated from above.  This "bazaar" way of developping software actually seemed to win in the end.  Since the source code of the programs is available for literally everyone to see, and it is more probable for someone to see the bug when the program that is available to the world, than if the program is only seen by 500 programmers that work in a company.  This explains the reliability, the flexibility and the security provided by operative systems such as FreeBSD and GNU/Linux, or the efficiency of the Apache Web Server, etc.  It is no miracle that Apache works far better with GNU/Linux and FreeBSD, because the communities that are around those operative systems also cooperate with Apache, and Apache in exchange can benefit these operative systems improving their reliability and security when working with Apache.

    This, by the way, guarantees better service from free software companies and organizations than in the case of proprietary software companies.  One of the companies which adopted the free software philosophy has been Netscape.  It embraced the philosophy expressed in The Cathedral and the Bazaar and decided to release the Netscape browser's source code, which is called Mozilla.  Now, because of AOL decision to not support Netscape anymore, the Mozilla group created the Mozilla Foundation to continue with the work.  Mozilla has a very highly efficient service to deal with the Mozilla browser.  Author, Michael Jennings, talks about his experience using Mozilla's service:

On Sunday, December 8, 2002, the author found a very minor defect in version 1.2 of the Mozilla [mozilla.org] internet browser. Mozilla is entirely free software and the author's favorite browser. When testing fragments of HTML pages (not full web pages), the first line would sometimes be displayed in an incorrect font. This was a very minor defect, but it caused minor problems for the author because he often tests complicated HTML fragments to check how they look.

At 9:01 AM on Sunday, the author of this article used Bugzilla [mozilla.org], Mozilla's defect reporting web site, to report the defect. At 9:10 AM, 9 minutes later (9 minutes on a Sunday!), the author received an email saying that the defect had been already been fixed in version 1.2.1 of Mozilla. The author had not yet installed the new version because it had been reported that it only fixed one defect that the author had not experienced.

Recall from the section above that, on December 9, 2002, Microsoft's browser had 19 known unpatched security vulnerabilities, some of them extremely serious. Mozilla has none. This is different than would be expected, by a wide margin. In one case, you pay money for the product (The Internet Explorer browser is part of Windows XP.) and the service, and you get a poor product and poor service. In another case, the product and service are entirely free, and both are superb. The skepticism experienced by the average businessperson when someone says, "The product from the big company is poor quality; the free product is better", slows the acceptance of open source software (Jennings)


    This "bazaar" style of creating software can even make possible the addition of new features to programs according to the needs of programmers and people in general.  For example, GNU Emacs began being merely a text editor.  Today it is an editor that can provide special editing modes for 25 programming languages, it supports 21 non-English languages, including Chinese, Czech, Hindi, Hebrew, Russian among many others, it creates Postscripts output from pain texts, and has special editing modes for LaTeX and TeX; it compiles; it debugs, among many other features.   GNU Emacs is now so prestigious that sometimes rivals with Vi in quality of editing texts.  Even some have an almost religious veneration to GNU Emacs.


Invitation to PC Owners with MS Windows to Use Free Software

   
The vast majority of PC owners out there use Microsoft products or proprietary software products.  The MS Windows operative system and the MS Office programs are by far the most insecure and unreliable software now in the world.  To use, for example, MS Outlook would be like subjecting oneself to one program that usually is efficient in opening files which contain viruses or worms, and also re-deliver those viruses and worms.  I invite people to download these software alternatives.

There are many other free programs which can be installed in Windows such as the GIMP (the GNU Image Manipulation Program), however, most of these programs are unstable.  One of the reasons why this is so, it is because most of these programs were written by people who use mostly Unix and GNU/Linux, as well as Unix derived operative systems.  Very few of them use Windows.  However the three programs I mentioned above are very stable in MS Windows, and will let you have an experience of freedom, of not being subjected to whatever Microsoft determines.   Adopting these programs instead of buying Microsoft products will break its monopoly on software.  Adopting Mozilla won't allow Microsoft to pervert the HTML and HTTP protocol that the Web depends on.  It will make many MSN features not to be exclusive for MS Internet Explorer, and hence making users vulnerable to MS IE security vulnerabilities.  Maybe in the future Windows will decide to use GNU/Linux, and maybe more corporations will prefer to open their source code so that it can be adapted to GNU/Linux systems.

    There is a long way to go, but it is never too late to try to make a free society.

Return to "Free Software"
Home Page

Creative Commons License
This work is licensed under a Creative Commons License.

© 2004, Pedro Rosario Barbosa


Graphics by GIMP          Powered by Gentoo Linux