In the beginning there was the code and the code was free
By Fernando da Rosa
“To go up a stair, one starts by raising that body part located down at the right, wrapped almost always in leather or chamois, and which, almost always fits exactly in the step. Putted in the first step that part, which, to abbreviate, we will call foot, one picks the equivalent part at the left (also called foot, but let’s not confuse it with the previously quoted foot) and taking it to the foot’s same level, one makes it keep going until putting it at the second step…”
Julio Cortazar
Paraphrasing Linus Torvalds we could write: Are you fed up of staying up all night to get a program working?
Are you fed up of fighting against frozen computers?
Would you like to control your machine’ software instead of having your software controlling you?
Then reading this article might be exactly for you.A short introductionThere is nothing sillier than a computer processor. Going deeply into its essence the only thing it can do is working with two elements: a one, a zero and addition it. The one and the zero are the letters of the computer’s vocabulary.
How many letters has the computer’s dictionary? Only 256. Why? Because computer works with 8 letters words and the possible combinations of 8 letters, using – for the example, as letters- only the one and the zero, it is 256.
Now then, we may ask ourselves, how is it possible that only having 256 words in its vocabulary a computer might be able to do so many things? How is it possible that only by addition it might be able to do so many calculations? The answer is that each word changes its sense according to the context and that besides it can handle those 256 words to an incredible speed. For example, in a specific context, a combination of 8 zeros and ones, represents the letter A and in another context a combination of 8 zeros and ones represents X colour, or the blue component of X colour, etc. Since it works to a very fast speed, to multiply, it only needs to addition the same number many times. But how does it do to divide and subtract? It is simple, it additions negative numbers. Those words composed by ones and ceros are what we commonly call bytes; a byte is a combination of 8 zeros and/or ones.The source codeTo make this marvellous thing possible, making so many things with a language of only 256 words, it is necessary to give instructions to the computer’s processor, to indicate step by step what to do with that zero and one, combined in that 8 letters word. A good example of how complicated this can be is Julio Cortazar’ story “Instructions to go up a stair”. To that level one has to indicate the processor each one of every necessary step to do what we want it to do. That is, the computer does strictly what the program indicates it to do, the last thing the programmer indicated. Here is where it is the added value.
Even binary code used in computers was not developed for it, but proposed by Leibniz in the XVII century. At the beginning, programmers, not without a lot of effort, introduced the machine code straight into the computer, which was very complex and a limit for programming. Then the assembler language came which has the disadvantage that it is different for each processor and is still difficult to read.
Subsequently high level languages were developed. It is the programming languages we commonly use today, which are easy to read and write since it uses a language more similar to human’s language. The code generated by the programmer in that language is called source code, which as the advantage of been analysable and changeable by any other programmer who handles that language.The compilerNow then, we may ask ourselves: how does the computer to understand that language similar to human’s language, if actually the processor needs ones and zeros? One of the options to translate that high level language to the machine’s language or binary’s computer code is using another program called compiler.
The compiler is a program result of the effort of a group of programmers, assigned to translate instructions written in a particular programming language to the machine’s code of a particular processor. This facilitates programming job for that processor. That’s the reason why that series of instructions called source code must be processed by the compiler, which transforms that source code into understandable instructions for the processor, which as we said before, works with zeros and ones. The result of the source code processing by the compiler is what we commonly call executable. It is very hard, almost impossible, to obtain the original source code from a compiled program. On the other hand, if you look in any licence of a software installed in your computer (if you are not using LINUX), it won’t be hard to find the next sentence:
“Reverse engineering techniques, uncompilation, unassembly of Software is forbidden (…)”Free SoftwareWe may now go the fundamental of this article: What is free software? What does it means?
Simplifying the definition we may say it is software which allows some freedoms:1) Freedom to use software with any purpose.2) Freedom to study and modify it to the user’s needs, which implicates access to the source code.3) Freedom to distribute copies of the program by diffusing it.4) Freedom to improve the program and distribute those improved copies to beneficiate the community, which also implicates to have access to the source code.And it only demands one thing, that the resultant program must be distributed under the same conditions than the original program.
In the other hand we may say that owner software is the one which does not give any of the previous freedom.
How the Free Software movement does starts? The origin has a name: Richard Stallman, a MIT programmer. He had used to collaborate with other developers, exchanging source codes and getting good results.
This was a common practice in the early 70s when Stallman worked at the MIT, but things started to change mostly due to the fact that software started to be a great business. In the 80s source code became an industrial secret for many enterprises.
It is in that context that Richard Stallman publishes in September 27th 1983, at the news group net.unix-wizards, the first call to develop GNU project, which said among other things:
“Starting this Thanksgiving Day I will write a complete software system compatible to Unix, called GNU (acronym for is Not Unix), and I will freely distribute it to who may use it. I consider that the golden rule demands that if I want a program I have to share it with other persons who also want it. I can not consciously sign a confidentiality agreement or a software license agreement. To continue using computers without violating my principles I have decided to collect enough free software to be able to continue without needing any non-free software. (…) I am looking for persons to whom helping humanity is as important as money.”And apparently he found them. Twenty years later GNU movement has a universal diffusion.
What Stallman wanted was to: “return to the cooperative spirit which prevailed in the beginning of the computers users’ community”, therefore this article’s name.CopyleftIn order to not having GNU’s source code used in owner software commercialized by enterprises which hided source code, Stallman develops licence GNU/GPL (General Public License), also called copyleft in contraposition with copyright. GNU’s license allows the previously mentioned free software freedoms with the obligation that any software derived from that source code must also be freely distributed.
In this way they avoided that enterprises distributing owner software from having benefits of the GNU’s source code development. In the other hand this had licensed GNU/GPL software growing fast.
According to Stallman in his GNU’s manifesto/statement:
“GNU is not public. Everybody will have permission to modify and redistribute GNU, but no distributor will be allowed to restrict its posterior redistribution. This means, property modifications will not be allowed. I want to make sure that all GNU’s versions will remain free.”
In 1985 Stallman creates the Free Software Foundation (FSF) by means of which he hired programmers to develop free software, although most of the free software development is produced by volunteers. It also happens that international organisms finance development software projects under the condition that it has to be licensed under the GNU/GPL License, to beneficiate the whole community. This gives a double pleasure to programmers, in one hand they get paid to do their jobs and in the other hand they know that it will be distributed and used without any obstacle.AT&TTa the end of the 80s GNU movement was in full development but still did not counted with their own operative system. GNU starts in opposition to many enterprises’ decisions of keeping source code’s confidentiality. AT&T owner of the UNIX operative system was one of them, and was making a lot of money selling the license to use UNIX and keeping the source code hidden. In many ways that code was produced by the University of Berkeley which had received economic support for investigation from AT&T. Berkeley’s programmers did not like at all that their work was kept in secret while Stallman was sharing source code with everybody. The first thing Berkeley’s developers did was collecting all the scattered source code’s pieces generated for UNIX, and then publish it. But to have a complete operative system 6 files were missing. A group of Berkeley programmers started to work in that source code and developed those six missing files, and created a small enterprise and commercialized the system compatible to UNIX, giving with each package a copy of the source code. They were selling those packages for a total of 1000 dollars; let’s not forget that UNIX was the operative system used by big enterprises, the better and most stable existing operative system. For them that money was enough but AT&T charged much more for the license and besides were not giving the source code. They thought that after knowing for a while the source code, people was going to start to compile and generate their own executables, but they discover that most of their clients was not taking the time of compiling the source code and preferred buying compiled copies. For AT&T it was a serious problem, a great business was falling down and they started a trial. They claimed that the source code had been published and released by Berkeley and that they had developed those six missing files, and they won the trial. AT&T decided to make a trial to Berkeley. It was a long trial, complex, and it finished in 1994 with an agreement beneficiating Berkeley. The University was able to diffuse a complete operative system based on its previous work for UNIX, under public knowledge, which means with any limitation. It could and can be used by any enterprise, even by those developing owner software. That operative system was called 4.4BSD-Lite, which gave rise to FreeBSD, NetBSD and OpenBSD. But for that moment there was already LINUX which had fulfilled the needs of an operative system for GNU movement.LINUXLinus Torvalds, a computer student from Helsinki’s University, in 1991 he found himself wanting to work in an operative system. He did not have one of those big business computers which worked with UNIX. He had a PC 386. He did not like Microsoft’s DOS or Windows 3.1. It was not even close to what UNIX could give. He wanted something he could use in his PC and was the best thing at the moment, so he decided to send a message to the net asking UNIX specifications and started to work in the operative system’s heart (or nucleus or kernel) that we know today as LINUX.
Linus announced LINUX 0.01 version in August 1991. The first official version comes in October 5th 1991; this first version could execute the language C GNU compiler. In October 1991 Linus was sending an e-mail to a Internet forum were he invited to collaborate in the project and said among other things:
“Do you lack of interesting projects and die to challenge an operative system which can be modified in your own way? (…) Are you tired of staying up all night to get a program working? Then this letter must be exactly for you.”
From then other programmers started to collaborate with Linus who had the brilliant idea of including his development under the GNU/GPL License. GNU movement supported then his work appointed to create a free operative system, configuring the called GNU/LINUX, wrongly called only LINUX. Since then a lot of progress has been made. Today GNU/LINUX system is largely expanded worldwide, many universities, independent programmers and enterprises which accept to respect GNU/GLP license, are working to improve it, source code is shared without any exclusion and system’s quality is better as time goes by.
The author Eric Raymond posed that this free software constant improvement was due to what he called the “Linus Law” in honour to Linus Torvalds. He formulated it in the following way: “Due to the enough number of eyeballs every mistake is evident”. Meaning by this that since LINUX source code is available for all the academic community, independent developers, collaborators, volunteers, etc, worldwide, it was difficult that a mistake was not easily detected y quickly repaired. Unlike what happens with the secret code of owner software enterprises.Hardware enterprises realise itSince personal computer’s peak the biggest business has been software development. Hardware manufacturers –the physical part of a computer- were under software enterprises’ pressure, which had and still have, the power to determinate some guidelines. With the advance of free software some of those enterprises started to incorporate free software to its computers, and to support development and improvement of GNU/LINUX system. Why? Because one day they realised that important organizations had chosen, for security and stability, free software instead of owner software. Besides, free software was releasing them from the dependence generated by using the operative system property of one only enterprise. It is so much like that, that many authors predict a medium term change in computer’s market in which market would be dominated again by hardware manufacturers.
Nowadays, GNU/LINUX users’ volume is huge, covering a spectrum from NASA to many governments, until a big number of private enterprises. In Spain, a study of Indago enterprise based in the 1500 enterprises of biggest invoicing in 2003, gave as a result that 25% already used Free Software, mostly LINUX, and that percentage is growing. Many reasons were given: cost savings (69%), independence from supplier (47%), biggest flexibility and personalizing capacity (18%), biggest security and absence of virus (16%). Free software is not free but it is cheaper. Free software is not supposed to be free, even if by its characteristics it might be free, it may also have a cost generated by the necessary services of distribution, installation, and/or maintenance. Even though that cost was the same as owner software, there is a big difference and it is that the money paid for the system’s maintenance, installation and/or actualization, it is destined generally to local workers and money stays in the country.A way of approachingA good way of approaching free software without having to change the operative system might be downloading the browser Mozilla which has many advantages than owner software with the same characteristics, mostly in control of spam or trash e-mail. It can be downloaded in Spanish from the following web site, which I recommend to visit:
http://www.mozilla-europe.org/es/
Free software has a friendly interface
One of LINUX problems was the interface which was created for advanced users, based mostly in the introduction of commands. Today with the graphics interface development like KDE or GENOME this problem is solved, these graphic interfaces are very intuitive and easily usable. In the other hand, for those who do not want to download a free version from Internet, there are already LINUX packages presented in CDs or DVDs with Spanish user’s guides and all the necessary programs to work in a home or work environment. Those packages are easily installable for anyone knowing how to use a PC and are low cost.
In February 2007 PC World’s issue, one of the most important PC magazines, they recommended the installation of SUSE LINUX 9.0 using the following words:
“SUSE, as Linux distribution and as a support and maintenance enterprise, for enterprises needing it, is without a question the most clear example that computer’s world does not finishes in Microsoft”. In the other hand there are other installations like Red Hat or Debian, this last one closer to GNU movement’s principles.Free Software in UruguayIn Uruguay free software development and most specifically GNU/LINUX operative system has counted with the fundamental support of the Group of Linux Users of Uruguay (UYLUG), founded in November 1997. There have been until now three presidents which have turned into important referents in our environment.
The first was Heber Godoy (refer to Brecha’s article Nº880 of October 10th 2002), the second was Diego Roselli and current president is Rodolfo Pilas. This group which counts presently with more of 200 members has a fundamental objective to diffuse, promote, support and encourage the use of operative system LINUX and of free software in general. This group counts with the following web site:
http://www.linux.org.uy
And have their meetings every Saturday at 3 pm in the school “Seminario”.
And from now…
Without a question free software has gained a space and that space will grow slowly, in some areas it will have to coexist with owner software, but there are fields in which, for many reasons it is anachronistic to keep on using owner software. In relationship to the State, we may wonder: Shouldn’t it be an obligation for Uruguayan State to use free software instead of owner software, due to its characteristics and advantages?
We leave this question posed to develop it in a future article.