|
This is the first of a series of articles
about facts that are not well known for many people: well, we think these facts must be known.
We are talking about topics that concern the Internet directly or indirectly.
We are not talking about topics that are meant for skilled people only but,
on the contrary, these topics are intended for all the people who are unaware of them.
Often those topics are dealt with badly by the media that usually end by giving unaccurate or completely
distorted information. The articles that you will read here have not the pretension of
being great pieces of journalism because, well, we are engineers, not journalists.
So let's leave such a job to people more skilled than us.
The only intent of these articles is INFORMATION.
Ok, let's go to the point: the open source movement and free software.
Let's start saying that at the beginning of the age of computer science,
software was free, indeed developer communities cooperated and shared
software freely.
Copyright issues related to the software didn't exist yet and information spread freely
among developers as happened - and still happens - among researchers.
In fact scientific discoveries are published in authoritative scientific journals
and spread all over the world.
Such a kind of cooperation was the spirit which animated the Internet community
all the time (if we don't consider the starting spark of military nature).
In fact the Internet was born within the military sphere first and then it spread
within the scientific community.
Just lately (thanks to the appearance of the Web too) it spread
within the business sphere.
Getting back to the software issue...everything went fine until software companies
started charging users for their products. There was someone who went too far
developing monopoly positions (yeah, Microsoft).
That at the expense of the developed software.
[In fact monopoly means: 'o mangi questa minestra o salti la finestra'
(I don't know the corresponding english version of this italian proverb...the english
translation should be 'either eat this soup or jump out this window' meaning something like this:
'take it or leave it'. In fact you have not so many choices...either buy this software
or buy this software! Famous uncle Bill's creed...).
But this is not the piece of news.]
The good piece of news is that the concept of free software is coming out again.
That's happening thanks to the action of thousands of volunteers and organizations
disseminated all over the world - connected among them, that's odd, by means of the net -
that cooperate for years in order to reach common goals.
Thanks to these persons great and wonderful projects were born, such as the
GNU organization, the Free Software Foundation, the Open Source movement,
the Mozilla project, Linux and many others.
Promoters and authors of these projects are famous HACKERS. Yes, that's odd,
hackers are not as bad (that's the subject of another article)
as somebody would like us to believe.
Not at all. Linus Torvalds for example is the hacker who invented
the Linux mythical operating system. Richard Stallman is the hacker
who founded the GNU project (an Unix like operating system but free unlike Unix).
That's only to cite two of the most famous personages.
We are talking about particularly brilliant university students
and people who worked at prestigious universities such as the legendary
MIT (Massachusetts Institute of Technology).
Then open source was born.
In order to better understand the key of the problem, a little technical
explanation for not-so-computer-skilled people is needed.
You have to know that there are two different formats of the same piece
of software: the 'source' one and its corresponding 'executable'.
The source part is the code of the program written
using any programming language (such as C, Java or Cobol).
The executable part on the contrary, is the corresponding translation
of the source code to something understandable to computers only
(it is nearly impossible to read for humans).
In short the source code is made up of statements and commands that the developer
gives to the computer (it can be written as if it was a letter,
using for example
a program such as Word).
This source code can be read by everyone and everybody can change it.
You have just to know where to put your hands ;o).
Things get different with the executable format that is a translation
of the source code (realized by a special program called 'compiler') to
something understandable for computers.
So computers can't read the source format of a program and humans
can't read its corresponding executable code.
Computers can't read programs written as they were Words' documents.
They simply can't understand them. So an ad hoc translation is needed.
This special translation is called 'compilation' and, as I said, the tool
used to achieve that is the compiler.
So we reached the point.
Word or Internet Explorer for example (I refer to Microsoft's programs
because they exist inside of 90% of PCs and therefore they are known
by almost anybody) are pieces of software that are supplied as
executable format only. In other words their corresponding source code
is not supplied. Why?
The answer is as simple as the question:
If a developer can get the source code of the Word program, he can
change it too and, of course, he can upgrade it. He can also trick
protections (even if that's not lawful) put there to avoid that anyone
can use the software without having paid for it before.
This kind of tricking is called 'cracking'.
A very skilled developer could get the source code 'guessing' it
by means of its executable (such a kind of operation is called
'reverse engineering'). In other words that piece of software would become
a kind of open source software (obviously software companies will prosecute
these operations). Anyway reverse engineering is hard to
perform: a real nightmare even for the most skilled developer.
So every times a sofware company supplies a program without its corresponding
source format, it's pretty sure that anyone who want to use
it or upgrade is obliged to pay for it.
When a piece of software is supplied without its corresponding
source format we say that it is a 'proprietary software' (its owner is
the company that developed it).
In order to use it a license is needed.
Licenses are sold by the company that developed the piece of
software. The purpose of a license is protection of the software's copyright.
Any license has a price. The meaning of copyright is: you don't
buy the piece of software but just a copy of it.
In other words the piece of software is owned by the company
that developed it. When you buy a license you are buying the
right to use a copy of the original software.
Anyway you can't distribute copies of the software protected
by copyright. The same thing happen with musical CDs
(remember Napster and mp3s)?
On the contrary when a software company supplies the source
code, we say that the supplied software is open source (i.e.
free and readable software and therefore upgradable by anyone).
Warning: open source is not free software yet. In fact open
source programs can be freely distributed or sold.
So free software is different from open source software.
This subtle difference between free software and open source
software is widely discussed at the GNU's web site.
You can also take a look at the Free Software Foundation's
web site. The guys at the GNU project use the word copyleft.
Copyright and copyleft are mutually opposed. The first one
protects against unauthorized copying of the software whereas the second one
'grants licensees permission to copy or distribute the
program or its derivative works'.
You can find explanation of several software categories at this FSF's web page.
Some helpful links
www.gnu.org(the GNU's project - GNU's Not Unix)
www.opensource.org (the open source organization)
www.stallman.org
sourceforge.net
www.fsf.org (the Free Software Foundation)
|