Open Source Software is Free. You don’t have to pay anyone for the rights to use it. More importantly whenever the product gets a new release or an update – that’s free as well. Open source software is produced by a community effort of software writers from all over the world who usually work for free. The upside is that this produces excellent quality software that is free to use, the downside is that out of the many thousands of open source software packages only a few hundred have matured enough to the point when someone with no knowledge of software could install and use it.
Probably the best known piece of Open Source software is the Firefox web browser that revolutionized the Internet in 2002. What is less well known is that the server software that supplies those web-pages is usually also Open Source: the Apache web-server.
Open Office, is also very popular as are the many File sharing packages like Azureus.
The Apache web-server, which as well as being one of the first, is still the most popular web server on the internet used by just over a third of all websites. It is closely followed by Nginx (pronounced “engine X”) another open Source webserver, with just over another third of all websites.
Source Code?
When someone writes a computer programme they write it in a programming language: like FORTRAN, BASIC, PASCAL or C for instance. There are many such programming languages, most have been developed for specialist reasons but some are general purpose. Although these languages use English words and are understandable to computer programmers, they are not in “English”.
This is a typical piece of code. Some words are English, but only because the program needs to send messages to Human beings.
if [[ -e $LOCK ]]
then echo "Lock file exists, is a session actually running, or did a previous run abort?" | tee -a $LOG
ps -ef| grep ${BASH}.*$0 |grep -v grep | tee -a $LOG
ps -ef| grep ${BASH}.*$0 |grep -v grep |grep -v $$|wc -l
echo This instance is process ID: $$ | tee -a $LOG
if [[ $( ps -ef| grep ${BASH}.*$0 |grep -v grep |grep -v $$|wc -l) != 0 ]]
then echo Another instance of this script is running... | tee -a $LOG
WAS=$(cat $LOCK|awk '{print $1}')
echo It started: $(date -d @$WAS) | tee -a $LOG
NOW=$(date +%s)
DELAY=$(( $NOW - $WAS))
echo $DELAY
displaytime $DELAY | tee -a $LOG
These programmes are known as Source code and won’t run on any computer.
To actually make these programmes work on a computer they have to be converted into a language machines can read. Known as binary or Machine code, there are as many different machine languages as there are machines. So, the same “Source Code” programme will need to be converted into a different machine language for every machine platform it is intended to run on. For instance, programmes running on Windows 10 need to be in one machine language, while an identical programme running on an Apple Mac will need another. Sometimes Windows 10 programmes won’t run on Windows 8. The process of converting Source code into Machine code is usually called “compilation” and uses special software known as a compiler.
When you buy a package of software, for instance a Virus-checker, Word Processor or Database, what you get in your package is a number of programmes in Machine language code known as Binaries. Binaries can only be understood by your computer – they are not “human readable”, if a human tried to read a Binary it would appear as an endless string of ones and zeros and would be meaningless. This is because the Binary has been converted from the Human readable Source code in a process called compilation. So if, after you have paid your money, you decide you need a slight change to the programme, or you want to run it on a different platform: you can’t. Simple as that. You can’t make a modification to the programme as nobody can understand the machine code, so you don’t know what to change. You can’t run it on a different platform as the binaries will only run in the platform you bought them for.
If you had the original Source Code, of course, you could make any minor changes you wanted to and then compile it for any machine platform you wanted to run it on: (compilers are available for free on the Internet). The problem is that you could also steal all the Intellectual Property: the techniques, ideas, tricks, and all the general cleverness, that makes the programme as good as it is and earns good money for the corporation that had it written. Which is why nobody who sells proprietary software will ever release the Source code.
Open Source
Open Source software is exactly what it says on the tin. It is software where the Source Code is open. i.e. it is freely available for study, analysis, modification and improvement. If you don’t have full and open access to the Source code than it’s not Open Source software.
It all started many years ago in the 1980’s when a bunch of programmers realised that you can create much better software if many thousands of people can work on the programme, contributing their ideas and specialist knowledge. What you can’t do is make any money from it (or all the thousands of contributors could claim a piece of the pie). But if you never wanted to make any money from it in the first place: you just wanted to solve a problem; then opening up the Source code for general comment and improvement by anyone on the Internet who may be facing the same problem, is by far the best way to proceed. It produces much more flexible, robust and secure software. This is because hundreds of programmers with all sorts of backgrounds will be working on the solution, which is far more that any proprietary Corporation could ever hope to employ. A good example of this is the fact that most Open Source software releases in many languages, as well as English, from the start. It’s because the contributors come from all over the world.
A more recent discovery is that, even though you can’t make a living from selling Open Source software, you can from supporting it. So organisations like: Red Hat, Suse (Novell), HP, IBM, Sun (now Oracle) all now support (and contribute to) Open Source software.
Anyone interested in the History and Philosophy of the Open Source movement should read Eric Raymond’s excellent book “The Cathedral and the Bazaar”, after which this company was named.
More information can be seen on the Open Source Initiative web site.
A particularly interesting read are the “Halloween Documents“, compiled by the Open Source Hero; Eric Raymond.
Licenses
Most Open Source software now comes with a License. This wasn’t always the case, but in the early days pieces of Open Source code allegedly started showing up in proprietary products, so now is it licensed.
What you can do with the Software depends on the License it comes with. There are just a few basic types of Open Source License around, and most Open source software comes with one of them.
GPL In a rough, non-legal interpretation this essentially says: you can do anything with this software except sell it or include it in another product for sale. If you modify the code and then redistribute the product along with your modification, then you must also supply the code for your modification on the same license terms. However, companies can charge a reasonable amount for the media it is delivered on, and, of course, for support. This license applies to most of the core products in the Open Source community
LGPL This one says you can do anything except sell it, but you CAN include it in a product you sell. This license is used in things like library routines which are designed to ensure interoperability of products.
There is an entire Organisation dedicated to Open Source Licensing. The Free Software Foundation has an excellent web site that explains about Open Source licensing. www.fsf.org
The Linux Operating System
An Operating System (OS) is a suite of software programmes that make the computer hardware work. Most people are familiar with the Windows OS that run of the majority of desktops, although to be fair “Windows” is more of a product portfolio than an operating system. This is because every few years it is redesigned to include the latest technology innovations. So far Windows has gone through (we think) the following versions:
Windows 2.0 > Windows 3.1 > Windows 95 > Windows 98 > Windows 2000 > Windows Me > Windows XP > Windows Vista > Windows 7 > Windows 8 > Windows 10 > Windows 11
And that is just the desktop sequence, there is a whole different thread for server software starting with Windows NT. Of course some of those versions had various sub-versions, like “pro” versions and “data centre” versions, but these sub-versions mainly removed features depending on the license fee being paid. What’s important here is that every release involves the purchase of a new licence, even if you paid for the previous version!
As Operating Systems make the hardware work, it is no surprise that an OS has to be tuned for each Motherboard design and CPU chip. This is why Windows only runs on Intel compatible CPUs on Motherboards working to the PC format. You can’t run Windows on an Apple Mac, for the same reason that MacOS won’t run on a PC platform. Neither Microsoft nor Apple can see the cost benefits of upgrading their OS so that it will run on the other company’s hardware.
And that is where Linux comes in. Although Linux was originally designed in 1991 for the PC platform, like Windows, it has since been ported (the technical term for re-writing software to run on another hardware platform) to many others. In fact in March 2005 the man who wrote the Linux Kernel, Linus Torvalds announced his desktop was an Apple PowerPC 970 – but without the Mac OS of course. There are very few computer platforms nowadays that won’t run Linux.
The toy penguin is called Tux. It belonged to one of Linus Torvalds’ children and is now the official mascot of Linux.
One of the big advantages of Linux is its backwards compatibility, it will in general run on much older hardware than most of its competitors. No more do IT managers need to live in fear of the “Minimum System requirements” list. This means that a company can plan hardware upgrades simply because the hardware is too slow and not because it doesn’t meet the latest minimum spec. Replacing old hardware can be divorced from the activity of upgrading a Linux Operating System.
By the way, Linux is pronounced with an I as in “link”, not as in “line”. If you test a Linux Sound card installation, a voice says ” Hello, my name is Linus Torvalds and I pronounce Linux, Linux.” Which is straight from the horses mouth, so to speak.
Applications
This is the area where Open Source software is strongest. Many Open Source projects use the Source Forge web site to store all the project data. In July 2006 there were 124,276 registered Open Source projects. Many of the big projects have their own web site and don’t appear in this list.
So there is no lack of Open Source application software: in fact the world is full of it. The problem is that hardly any of it is owned by anyone with a Marketing budget. In fact hardly any of it is owned by “anyone” at all – that’s the whole point, but the downside is that nobody is going to spend lots of money advertising the virtues of a software package that they don’t own.