Workshop: Legal aspects of free
and open source software
____________________________________________________________________________________________
33
the origin of the code, that is to say, to preserve the statement that claims authorship of
the code in all subsequent distribution even of modified versions of it. This practice was not
unlike the practice of citations in scientific works – which software was considered to be. It
was commonplace to have these conditions spelled out in a text that accompanied the
software distribution, or “the license”. Universities used a standardized form of this license,
which usually took the name of the University itself. The most known and used licenses
were those coming from Berkeley (“BSD” = Berkeley Software Distribution) and from the
Massachusetts Institute of Technology (“MIT”).
This form of Free Software distribution is therefore often referred to as “Academic
licensing”, or “Attribution only”.
1.2
Enter the Independent software vendors
Military, academic and hardware industry did not rely on any particular form of protection
for the software that they made. Military simply did not distribute it.
For the hardware
industry software, it was just a necessary complement to their main product and there was
little incentive to copy software that had to be drastically changed in order to run on other
hardware. Academics freely distributed their software; their main concern was avoiding
plagiarism and being acknowledged for the quality of what they wrote: they were seeking
recognition.
But increasingly over the time software became disentangled from the hardware that it
targeted. The operating system Unix
42
was an important part of this process, as it had a
kernel that was designed to run the basic interaction with the hardware and a “user space”
where applications could run and – to a large extent – be independent from the underlying
hardware. This was also due to a fundamental advancement
in the software programming
techniques, with the creation of the C programming language by Dennis Ritchie,
43
to which
Unix was ported as early as 1972.
44
Thanks to these advancements – as well as to more performing hardware at lower prices
where the overhead necessary to this abstraction of software from the hardware could be
accommodated – industry specialization increased, and manufacturers that were
concentrating only on software making were a natural evolution. This was the Independent
Software Vendors (ISV) industry.
With independence and abstraction, as well as complexity and value of software, came the
need to “protect” the investment in producing good software and to avoid that others
(including the hardware makers who contracted out software to ISVs)
could have a free run
on this work. This protection was conceivably obtained through three different tools:
secrecy;
hardware keys or other form of
technical protection;
legal protection.
Hardware keys are not relevant to our discussion. It is a form of encryption of software that
needs a hardware device of sort to run, so that copying the software is useless if the
hardware device is not also obtained.
Secrecy and legal protection are far more relevant, and will be discussed in the next
chapter.
42 UNIX is an alteration of the acronym UNICS, or UNiplexed Information and Computing Service. Hereinafter the
common uncapitalized form “Unix” will be used. Unix is an operating system, that is, the part of a computer's
software that provides the most basic functions used by more specialized software applications,
roughly speaking
taking care of the interactions with the hardware. For instance, an operating system checks the hardware
environment, manages storage devices, collects the inputs of the user and provides the output to the user (e.g.,
through a monitor), connects with other computers through network interfaces, recognizes and manages devices,
authenticates users and allows them to perform their permitted actions, etcetera.
43
http://en.wikipedia.org/wiki/C_%28programming_language%29
44 See
http://en.wikipedia.org/wiki/Unix#1970s.
For a more detailed recount of why UNIX is relevant to Free
Software, see Meeker H.J.,
The Open Source Alternative, Wiley, New Jersey, USA, pp. 4-5
Policy Department C: Citizens' Rights and Constitutional Affairs
____________________________________________________________________________________________
34
1.3
Source code, machine code and reverse engineering
The “traditional” way of making software, the paradigm of which can be seen in the C
programming, is that the programmer uses some sort
of programming language which, to
an uneducated eye, would look like a mixture of English and mathematics notations, which
is called “
source code”. Source code is “human readable” code, in other words, an expert
human being is able to read it and tell what the code is supposed to do. But this code
cannot be used by computers, because the instructions that a computer needs are really
much different, as computer need instructions in “
machine code” or “executable form”.
The translation of source code into machine code is called “
compilation” and the
application that makes this machine code is called “compiler”.
Machine code, unlike source code, would look like a series of hexadecimal characters (from
0 to 9 and from a to f) without an apparent structure or meaning.
Machine code is not
human-readable. In other words, it is completely opaque to the human being, but it is
not so to a computer.
Therefore the ISV found it natural not to distribute the source code, so that any
modification would need their intervention, or access to source code. Possession of source
code in the common parlance is a proxy for “ownership” of the code, although legally
speaking this is not true. In this way, ISV relied on secrecy to preserve their commercial
power.
It is technically possible to obtain a close equivalent of the source code through
reverse
engineering techniques that are referred to as “
decompilation” (the
opposite of
“compilation”). This practice was quite early considered illegal, a form of industrial
espionage. Therefore secrecy also provides some sort of legal protection.
This way of protection (that is, hardware protection) cannot do anything against a one-to-
one copy, i.e., against making an identical copy of the machine code that would run on an
identical or compatible computer. With increasingly lower cost of copying, that practice
became very convenient and ISVs felt they needed some protection against it. Leaving
aside hardware protection or other technical anti-copying means, the only way was to have
legal protection.
1.4
Legal protection: copyright
The initial debate as to what form of legal protection was
to be given to software, if any,
converged very soon and naturally towards copyright, both due to the nature of software
(which is originally a work of writing) and to the need to protect it mainly against copying
rather than against imitating. Another advantage of using copyright as a legal device to
protect software was that copyright is universally protected under the Berne Convention
that establishes a world-wide Copyright Union within which a copyrighted subject is
uniformly and automatically protected by all the member states of the union.
The other options, such as using patents or some sort of
sui generis rights, were
considered impractical. In Europe, protection of software as a copyright subject was
eventually harmonized through the Software Directive.
45
1.5 The rise of proprietary and the re-birth of Free Software,
thanks to a printer
ISVs could therefore benefit from a sound legal and technical environment. The
commoditization of the PC platform made the software industry as relevant – if not more
relevant - as the hardware industry. Software
became a tradable object, a commercial
product that, thanks to the protections granted to it, was made artificially scarce and
therefore could have a price tag. Software and all copies thereof became a property that
could be sold. Thus the name “
proprietary”, which is used to define software protected
and treated as property.
45 Directive 91/250/EEC,
http://eur-lex.europa.eu/LexUriServ/LexUriServ.do?uri=CELEX:31991L0250:EN:HTML