Tuesday, July 15, 2008

Open Source Operating Systems Mini-Series: Part 1

Introduction: What is Open Source and Linux

This mini-series is dedicated to Linux-based operating systems. That lovable little penguin to the left is the symbol of Linux. I am a relative neophyte to the Linux arena and as such, these posts will focus on the capability these operating systems have to substitute for popular, mainstream operating systems (i.e. Windows and OS X). If I were on top of the Linux game, I could probably give you a more in depth look at each of these OS's. I can, however, offer the perspective of someone who knows a little about them and can use them enough to be able to get along without Windows or OS X. Most importantly, the operating systems I will highlight in the mini-series are a FREE substitute for otherwise costly software. Linux-based operating systems are not always free. In fact, the Open Source Software model is a viable business concept. The idea behind the mini-series is to introduce you to Linux and then highlight characteristics of a few different distributions of Linux-based operating systems. This first part will be solely introduction, upcoming posts will then focus on the desktop version of Ubuntu, OpenSuse, and Live CD's or thumbs. Prepare yourself for a look into Open Source Software (OSS) and Linux.

Some Definitions:

Open Source: any application that has open source code. Source code is the "stuff" applications are made out of. If you want an example of source code that is really basic, simply right click anywhere that isn't a link or a picture on my site here and select "view page source" from the drop down menu. What you see is a bunch of gibberish that is actually what makes this website. Operating systems have a source code rooted in an entirely different language, but you get the point. When source code is open, it means it is viewable and, therefore, modifiable. There is an official open source definition that regulates the use of the term that you can find here (for example I can't just go around saying stuff is open source when it fails to meet the definition - this is a serious legal issue). I read it and found it rather interesting. Lastly, open source does not mean free. A product can be open source and yet be owned and sold by a company that distributes it.

Linux: Basically, Linux is what operating systems that use the Linux kernel are called. See "Kernel" below for a description of a kernel. The kernel was originally designed by Linus Torvalds in 1991 which is where the name originates. The kernel is used in a variety of "Linux" operating systems including, but not limited to: Red Hat, Suse, Mandrive, Ubuntu, etc. When a person says "I use Linux" they could be refering to a variety of distributions of Linux-based operating systems (see definition below).

Kernel: a Kernel is the basic building block of an operating system (see diagram on right). Its basic function is to manage system resources. So think of the operating system in layers. There is the resource layer, the kernel layer, and the application layer. The kernel is the facilitator.

Linux Distribution: a Linux Distribution (or distro) is a deliverable operating system based upon the Linux kernel. Deliverable does not mean finished, rather that the operating system is delivered to "mid-users" and/or "end-users". A "mid-user" or developer is a person that will download or otherwise obtain a copy of the operating system and further develop the code of that OS while the end-user is the individual that will actually use the system to perform the tasks it was designed to carry out. It is important to note that end-users in the case of a Linux distribution are very often developers as well. Linux distributions never really stop being developed. For example, servers (the things that run large application and handle large loads of users and data) are often based upon open source products like FreeBSD, Solaris, and Linux. Such products are developed and sold by a company (end-user) with an open source code that allows the company to modify and customize its performance (development).

Business Implication of the Open Source Model

It is important to note how the Open Source Software model has affected the business element of software development. First, what is the traditional software development model? Basically, think Microsoft, Apple, and any company that produces a product that you can't change. They sell a product that is meant to be used by a range of consumers. When I think traditional model, I think: closed source code, powerful applications, customer service, lots of money, sometimes monopoly. This does not mean that they can't produce customizable products, but it does mean that you can't see their kernel. They don't want you to see it because it is their trade secret. Like a the secret recipe to Coke. Coke will NEVER give out their recipe because it is what makes them unique and special. This also doesn't mean that companies that follow an Open Source model can't be unique and special.

How does Open Source as a business model differ? We have established that the software isn't always free. In many cases, businesses own the software and make money off it. How does it work if the source code is open? Well, a company basically licenses their product to other companies or individuals to use and they leave the source code open to them. Why is this better than just getting the same product free and open? Well, two reasons really: 1) the product is ready for customization or is customized to meet the needs of the purchasing company upon delivery (or going live, or whatever); 2) these companies provide customer service akin to what you would expect from any other, non-open source company. Now, obviously many companies can still customize their products to meet the specific needs of their customer without following the open source model. The real difference is that a company offering an open source code really is allowing the customer to do what they want with the product outside of whatever they are willing to customize themselves. This model has been adopted on a large scale by companies like IBM, Sun Microsystems, Novell, etc. Even Microsoft, over the years, has opened itself up to the notion of developer communities and even opened up bits and pieces of their highly secretive Windows kernel. As a side note, ALL of the Chinese, Brazilian, and many other governments use ONLY open source software.

What Does All This Mean to You?

The thing about Linux in general is it is intimidating to use. The Linux community is full of computer geeks that love to fiddle around with the source code of all the applications they use so that they get exactly what they want. Most people aren't insane computer geeks like that so the notion of using a product they use is rather uninteresting. I completely understand this sentiment as it is one that I struggle with too. However, it is really important to know that a lot of the time, developers that make these products have the end-user (like you) in mind. They are actually trying to design a product that you can use because they either want to sell it to you (as a more cost effective substitute than say Windows or OS X) or they believe that everyone should be able to obtain products like operating systems legally and free of charge. The products we will focus on in this mini-series are like this. They are operating systems that are free, easy-to-use, and, best of all, require little Linux know-how to operate.


Please don't feel intimidated if these ideas are new to you or if Linux geeks have frightened you before. What we are about to explore is really interesting and easy to understand on a basic level. I hope that you feel at least a little inclined to play around with open source operating systems as a result of this mini-series. If not, I hope that you understand it a little better and even understand that it is a viable business model.


Derek and Tara said...

That answers a ton of questions I had about Linux and other open source stuff. Nice! We have people on Linux software at my work (non-laptop people (scoff)) and now I can have a somewhat intelligent conversation about it with the IT guys and why they are using it (I think they do because most people use their machine only to log onto an appserver, where they use windows, so it's probably cheaper to put Linux on the machine instead of Windows since they're using the appserver anyway. Something like that.)

rblaz said...

Like I said, I am relatively new to the Linux scene but hopefully the info helps.

While price might be a concern for IT duders, the expense really depends on what they are running. The main reason that IT guys will use Linux is because it is the most stable, secure platform for servers. Linux servers are well established and versatile (Apache is still the most popular HTTP server). Anyway, cost is a factor as well as the task the server is to perform.

SharePoint Development - Softweb Solutions said...

Thanks for the nice information.

Best Regards
Arpit Kothari

Offshore Software Development