Companies often choose Linux as their operating system because of the rules governing Linux licensing. Unlike most other operating systems, Linux is freely developed and continu- ously improved by a large community of software developers. For this reason, it is referred to as Open Source Software (OSS).
To understand what OSS is, you must first understand how source code is used to create pro- grams. Source code refers to the list of instructions that a software developer writes to make up a program.
After the software developer finishes writing the instructions, the source code is compiled into a format (called machine language) that only your computer’s processor can understand and execute. To edit an existing program, the software developer must edit the source code and then recompile it.
The format and structure of source code follows certain rules defined by the programming language in which it was written. Programmers write Linux source code in many different programming languages. After being compiled into machine language, all programs look the same to the computer operating system, regardless of the programming language in which they were written. As a result, software developers choose a programming language to create source code based on ease of use, functionality, and comfort level.
The fact that Linux is an OSS operating system means that software developers can read other developers’ source code, modify that source code to make the software better, and redistribute that source code to other developers who might improve it further. Like all OSS, Linux source code must be distributed free of charge, regardless of the number of modifica- tions made to it. People who develop OSS commonly use the Internet to share their source code, manage software projects, and submit comments and fixes for bugs (flaws). In this way, the Internet acts as the glue that binds together Linux developers in particular and OSS developers in general.
Here are some implications of the OSS way of developing software:
- Software is developed very rapidly through widespread collaboration.
- Software bugs (errors) are noted and promptly fixed.
- Software features evolve very quickly, based on users’ needs.
- The perceived value of the software increases because it is based on usefulness and not on price.
As you can imagine, the ability to share ideas and source code is beneficial to software developers. However, a company’s business model changes drastically when OSS enters the picture. The main issue is this: How can a product that is distributed freely generate revenue? After all, without revenue any company will go out of business.
The OSS process of software development was never intended to generate revenue directly. Its goal was to help people design better software by eliminating many of the problems associated with traditional software development, which is typically driven by predefined corporate plans and rigid schedules. By contrast, OSS development assumes that software creation is an art in which a particular problem can be solved in many different ways. One software developer might create a program that measures widgets using four pages of source code, while another developer might create a program that does the same task in one page of source code. You might think that this openness to multiple ways of solving a problem would result in a haphazard software development process, but the sharing of ideas that is the heart of OSS development keeps developers focused on the best possible solutions. Also, while OSS developers contribute their strengths to a project, they learn new techniques from other developers at the same time.
Because the selling of software for profit discourages the free sharing of source code, OSS generates revenue indirectly. Companies usually make money by selling computer hardware that runs OSS, by selling customer support for OSS, or by creating closed source software programs that run on open source products such as Linux.
The OSS development process is, of course, not the only way to develop and license software.
Published on Mon 12 March 2012 by Dave Wilson in Linux with tag(s): linux oss