FOSS at PANalytical
== Scope ==
Free and Open Source Software (FOSS) is seeing increased adoption at PANalytical. FOSS offers many advantages over closed systems. The most important advantages are pricing and the ability to inspect and modify the programs and libraries. These advantages are in stark contrast with traditional closed software where the user is at the discretion of the software producer.
This document provides an overview of some aspect of using FOSS in a commercial software developing company. The different flavors of FOSS will be explained and their effect of productivity and intellectual property issues at PANalytical are discussed.
== Introduction ==
In the early days of computing, when the hardware was the most important part of the computer, the computer code was usually shipped along with the binary (compiled) computer code. In the 1970s, when software development became specialized, software developers sought to protect their investment by applying copyright law and by not distribution the source code. During the 80s this became common practice and computer programs became mostly a black box for anybody but the original developer.
To counter this development, Richard Stallmann wrote a copyright license that guaranteed basic rights for the software developer and the software user. This license is the foundation of the GNU project, which has the aim to write a complete operating system based on 'Free Software'. By Stallmans definition, 'Free Software' is software which one can freely inspect, modify and redistribute. Today we can say that this aim has been achieved. There are many different versions of Linux and millions of satisfied users all over the world. It is only a matter of time until Free Software is the norm.
== Using Free Software ==
The most obvious advantages of using Free and Open Source Software are:
* The software can be obtained for free.
Most FOSS can be downloaded in binary or source format from various websites. Free software started as a movement for computer hobbyists. These days, commercial companies see the value in collaborating hassle-free on code. They see the value of having sofware with no strings attached. As a result, an enormous amount of professional software is avaible, with source code, at no cost whatsoever.
* No hassle with ordering and licensing fees.
The price of software is not the only cost involved in obtaining and using software. Closed-source software must be ordered, payed for and shipped. FOSS does not have these disadvantages. You can simply download it and install it. There is no need to keep copies of the license keys or run a license server for free software. You can make as many copies of free software as you like, this means backing up is easy.
* No questionable license clauses
FOSS has a limited set of approved licenses. The user of the software does not agree to any terms needed for using the software except for the ones that define FOSS. This is refreshing change from licenses that span multiple pages of unreadable legalese. The user does not need to 'Agree' to a license as is common with proprietary software. There is not a single duty on the part of the user.
* No secrets
The code is there for all to read. Most lines in popular projects have been read by hundreds of developers. This ensures a high quality of the code. It allows you to check for yourself that there are no hidden backdoors. On top of that, one can run automated tests on the source code to check the quality.
* The software can be adapted
The licenses of FOSS explicitly allow the user to change the source code. This means the software can be adapted to the needs of the user. The user is no longer at the mercy of the software supplier when he wants new features or bugfixes.
* Multiplatform code
Since the software can be changes, it is easy to make it multiplatform. As a result, most FOSS runs on a multitude of machines and operating systems, ranging from robots, mobile phones, laptops and desktops to game consoles and supercomputers.
* Open development community
The bug databases and developer communications of almost all FOSS are public to anyone. So you do not have to rely on press releases to get information about the development status of a new release. Websites such as http://www.sf.net, http://ohloh.net and http://code.google.com provide a wealth of information, such as developer statistics and semantic code search. The developers are easily accessible and can often be hired to provide enhancements to their projects.
== Examples of FOSS ==
* Firefox
A powerful web browser. It has a powerful plugin architecture and
Linux kernel
OpenOffice
GCC
Java, Python, Perl
KDE
GNOME
Eclipse
== Licenses ==
Over the years, many different licenses with different types of freedoms have come into use. The term 'Open Source' has come into use to cover most of these licenses. Policy documents usually use the term FOSS to cover a wide range of licenses. While the gist of most licenses is similar, it is important to know with which of them you are dealing with, when you do more then just run the software.
= The GPL License =
The GPL (GNU Public License) is the most important license. There are three versions of it. Version 2 is the most widely used version. It is e.g. used in Linux. Recently, version 3 has been released and it is seeing rapid adoption. Version 3 introduces addition protections of the freedoms originally formulated for GNU.
The GPL gives everyone that receives a copy of a program's code the right to use, modify, and redistribute the program's code or any program derived from it, but only if the distribution terms are unchanged
For a software user this means that he is not dependent on a new version of a program to get a bug fixed. Also, he cannot be forced to upgrade to a new version for a high fee, since he can disable any mechanism requiring him to do so.
For the software developer the advantages are significant too. If he releases a program under the GPL, he reaps the benefit of any subsequent releases of the software by other developers. In addition, he is able to use GPL code in the programs he releases under the GPL.
The nature of the GPL license is such that the body of GPL code only grows. The code cannot be unpublished, since every user has the right to publish the code. This model started off among hobbyists, but has gained traction as a business model too. Competing companies can collaborate on a codebase and earn money on hardware or services. This model is beneficial in a market where the software is very complex and margins are low. Currently, a number of phone manufacturers are working with a common FOSS codebase on their telephones. Another example is companies developing complex websites. Many start from one of the many common FOSS frameworks and customize these for their customers.
= The LGPL License =
LGPL stands for the Lesser GNU Public License. This license is only useful for publishing libraries of algorithms. It is equal to the GPL with an important exception. Software developers are allowed to use LGPL code in their programs without releasing their code (but only if the LGPL code is kept in a separate module. Any changes to the library itself are subject to the terms of the GPL and must be passed along with the program.)
The LGPL is popular with companies that want to write closed software on top of FOSS building blocks. By using LGPL, these companies profit from the work of the FOSS community. In addition to having free software building blocks, FOSS code has more benefits. FOSS code has been seen by many eyes and is thus more secure and stable than other software. In addition, FOSS code has usually been written with portability in mind. There is no business model for FOSS code to be limited to a certain operating system. As such, the company that builds on LGPL code ensures that the code it writes is more flexible.
More software libraries are published with LGPL then with GPL. Nevertheless, when your program links to a FOSS library, you have to check what license it has.
= The BSD License =
Some FOSS code is released under a license that allows anyone to do almost anything with it. The best known example is the BSD license.
Using FOSS can have an effect on the knowledge (intellectual property) that is produced at PANalytical. Intellectual Property is an umbrella term and encompasses copyright, patents, trade secrets, trademarks, and industrial design rights. We will discuss the effect of FOSS on the first three items. The latter two are of no consequence here.
Licenses
Intellectual property
Copyright
Patents
Trademarks
Scenarios
= releasing scripts =
Scripts are 'open source' by nature: they have no binary representation. That does not mean, that one cannot disallow users to publish the script themselves. There may be particularly clever scripts that PANalytical wants to sell to its users. This is probably not the common case. That means that when releasing scripts that can be used by PANalytical software, there is no reason to limit the user. In fact, the scripts are specific to PANalytical software and as such, any copy in the wild is a promotion for PANalytical. It makes little sense to not allow users to distribute such scripts.
= modifying Linux =
Linux is a very versatile kernel. The upcomming Asterix platform will run on it. Linux is published under the GPL version 2. Any change made to the kernel should be shipped with a copy of the source code of the modified kernel _if_ Asterix contains a modified kernel.
If the code was not published, one is in breach of the license and can be forced to stop distributing the modified kernel, but one cannot be forced to publish the code of the modified kernel.
A simple way around this is to write closed source userspace programs that talk to a minimalistic module in the kernel. In fact, with standard hardware, there is seldom need to modify the linux kernel and if so, the changes are probably not related to the core knowledge of the system.
= releasing analysis software =