An Introduction to Linux and Open Source for Business

Published in November 2005 issue of o3 Magazine, page 23

 

Open source.  It's amazing how much confusion and mixed feelings those two little words can cause.  What is it?  How does it work?  Is it for us?

 

This article is an attempt to answer your questions and give a brief overview of what open source is, how it can help you and your business, and what you can do to help.  Since it is a huge subject and answering everyone's questions would take entire books, this is really just a fairly high level look at open source arranged as a sort of question and answer session.

 

What is this “Open Source” thing that I keep hearing about?

That's a very simple question to which there are a number of answers.  At the most basic level, open source is the software development community and businesses working together in order to make quality software that anyone can use.  It's a way for groups and individuals to contribute according to their skill sets on projects that they find interesting so that everyone can come out ahead.

 

Its real defining points are the license that the software is released under and the fact that the program is distributed free of charge.  There are quite a few licenses that are considered to be open source by the Open Source Initiative (www.opensource.org), the non-profit organization which keeps track of and promotes open source licenses. 

 

What most of the accepted licenses boil down to is that the source code for the software is open for the world to see, modify, contribute to, and use.  Certain licenses require that you release all changes you make while others just require you to give them credit for having code in your project.

 

I heard that Linux is hard to set up and use.  Is that true?

If you had asked me that question in 1998 when I first tried to install Linux on a new desktop that I bought, I would have said it was a nightmare to get running.  Now, however, it's a great deal better and is actually ready for a lot of home and business uses.

 

Many of the applications now have graphic interfaces that are just as good as what you are used to now and have the functionality that you've come to expect from your business apps.  That's not to say that there isn't a little bit of a learning curve, but it really is a pretty slight one.

 

On top of this, Linux is now a breeze to install on most hardware.  To give you an idea, I recently installed Linux on my laptop.  Anyone who has installed Windows on a laptop will tell you about the fun that you're in for.  It takes a stack of cds, most of the day, and constantly babysitting the laptop to answer questions and switch out disks.  On top of that, you have to provide the right video, audio, and network drivers and then you have to run security updates and install service packs.

 

With Linux, it took four cds, a network connection, and about three hours to install the operating system, most of the software that I use, and to update the entire system.  Ethernet worked out of the box; so did the video.  To install the last two programs that I wanted to use required two very short commands and updating the entire laptop required one more.  Most of the time that was spent installing Linux was used to do other things while my laptop worked quietly in the other room without needing me to babysit it.

 

It's come that far.

 

If I want to use open source software, do I have to run Linux?

While most software released for Linux is open source, not all open source software is Linux-only (or even runs on Linux).  It is possible to have open source projects on other platforms, such as Windows and OSX, and indeed many popular projects, such as the Firefox web browser and the Eclipse programming environment for Java, are released on a wide variety of platforms.

 

The developers and companies behind the projects realize that not everyone can standardize on a single platform, so they often do their best to provide solutions where they make sense.

 

What sort of open source software is there?

Open source software exists across the spectrum of applications.

 

There are many other open source offerings out there.  If you're interested in looking for open source applications, a good place to start is The Open CD project (www.theopencd.org), which lists applications for Windows, but also links back to websites for the projects so you can get versions for different platforms.

 

But if it's free, how do we make money on it?

That's a very good question.  The answer is that, just like everything else in business, making your project open source isn't for everyone.  However, there are several fairly standard ways that companies are making money with open source projects.

 

 

There are many other ways that companies are making money on open source software, but what it all comes down to is where you expect to make your money.  If you just plan to sell your software, then open sourcing your project probably isn't for you.  There are exceptions to this.  MySQL, a popular open source database, offers its software for free if it is used in-house and asks that you pay a modest fee if you include it in a commercial product.  However, if your real money comes from somewhere else, then you have a decent chance of making a successful business.

 

What do I get out of making my software open source?

By making your software project open source, you gain potential access to the professional development community at large.  As I said before, many major open source projects are staffed partially by developers being paid by technical companies in order to add the features and functionality that their employers want.  However, many professional developers work on open source projects on their own time as well for a number of reasons including to keep their skills sharp, to add new skills, and even just because the project interests them.

 

This means several things to anyone who wants to have a successful software project:

 

Access to outside skills - Everyone who starts a piece of software wants the people working on it to be the best.  Unfortunately, your budget often doesn't allow to you hire them and keep them full time.  With open source, you can have access to people (either on a contract basis or, in some cases, just because they're interested in your project) that you otherwise wouldn't be able to hire.

Reduced development time - With the possibility of more people working on your project than you could otherwise afford, there is a good chance that it will take less time to complete your project.  For example, Windows Vista (formerly codenamed Longhorn) was announced years ago and isn't supposed to be delivered until sometime in 2006.  By contrast, Fedora, Redhat's non-business Linux distribution, has gone from version 1 to version 4 since I first started using it in 2003, and each new version has been a marked improvement over the previous one.

Different points of view - There are always useful features or uses for your software that you didn't originally think of.  With members of the software developer community at-large looking at (and working on) your project, you may end up with functionality that you never considered before.

Many eyes looking at your project - The more people who review the source code of your project, the greater the chance that bugs and security flaws will be caught, allowing them to be fixed sooner.

Community goodwill - Never underestimate the power of free advertising.  If your project becomes popular within the technical community, like Linux has, that popularity can spill over into the business arena.

 

Why would people want to volunteer to work on my project?

We developers (yes, I am one of them) are strange people.  We like to work on projects that we find interesting or that challenge us.  It's a chance to gain experience that we can point to when looking for a new job.  It's also a way to get recognized by the community as a capable developer.  On top of all of those things, it's a chance for us to give something back to the people who have helped us out along the way and to help others who may not be so fortunate.  Some of us think of it as a form of voluntary community service.

 

If everyone can look at my software, what's to stop them from just taking it?

That's a very good question, and one that I hear quite often.  The answer is it all comes down to the license that you choose to release your work under.  There are a lot of accepted open source licenses, so I am only going to give a brief description of a few of the more popular ones.

 

Let me get this straight.  If I use code licensed under the GPL, I have to release what I make with it the same way?

If you release the project that you incorporate the GPL'ed code in, then yes, you have to open source your project as well.  If, on the other hand, you just use the software you make in-house, you don't have to publish your code.  However, even if it is just in-house, you should think about whether there is actually anything to be gained by keeping people from seeing it.  If the answer is not really, then consider opening it up anyway.

 

I like the idea of the GPL, but do I have to accept everything that someone offers for my project?

While the GPL has a great deal of benefits that come from accepting contributions to your project (functionality and bug fixes among the big ones), at the end of the day, you're the one in control of the project and can decide who you want to be able to contribute things to it.  You don't have to accept anything suspect or that you don't want to if you're in control of the project.

 

How do I join the community?

The easiest way is to contribute.  Start a project or work on an existing one by adding functionality or submitting patches.  Sourceforge (www.sourceforge.net) is an excellent place to find or start projects.  You can also join the mailing list for the project that interests you in order to communicate with the other people who are working on the project.  As time goes on, you will be able to take on more responsibility on that project, and thus in the community, if you want.

 

I hope this article helped answer most of the questions that you had concerning open source for your business.  As I said at the beginning, this was just a brief overview of what open source is and how it can work for you.  If you have more questions, there are a great deal of places that you can turn to.  One of the best of these is your local Linux User's Group, many of which can be found via Linux.org's list of user's groups located at www.linux.org/groups/.

 

 

return to JamesHollingshead.com