Why Free; Why Open?

Truly open, free systems allow world-wide collaborative development and use. Such systems tend to be much more thoroughly tested and examined and as a consequence faster, more reliable and more secure than closed, proprietary systems. Commercial ventures tying to bring forth proprietary products often have too much mass and momentum tied up in support and marketing to be able to keep up with rapid changes in technology, especially as fostered by the Internet. This is a significant structural reason why open systems may be the best-suited successor to closed.

Free, open systems decrease commercial and operational dependence on key suppliers of software technology, much in the same way that energy independence reduces the impact of OPEC oil price changes. Open systems also tend to work better and fit your particular needs better due to more vibrant innovation spurred on by diverse development communities.

Finding people who can work with these open systems can be less costly than for commercial systems due to their grass-roots popularity. In other words, more common systems are simpler to find support for.

Proprietary operating systems such as SolarisTM are not considered open here, even though SunTM considers the hardware platform open since they license external processor production and formerly permitted low-end workstation clones. True openness means availability of source code, free or generous licensing, and general independence from closed, proprietary systems.

Source code is the programming instructions that tell the computer what to do, in humanly readable and writeable form. Source code is typically compiled into binary form which is machine-usable but not humanly readable. Shrink-wrapped commercial software is almost always shipped in binary form; what's there will hopefully do what you need and not crash. If it doesn't, there's nothing you can do about it except hope for improvements in a next version or look for a different vendor. Sometimes neither remedy is available.

With access to the source code a competent programmer can read and hopefully understand how the system works. This makes it possible to fix problems that are found, or to change or extend the capabilities of the system by modifying and/or adding to the source code and re-compiling. This allows for a lot more control over what's going on and greater self-sufficiency in using the software, assuming you have access to appropriate programming skills.

Other types of software systems include custom, or semi-custom applications. Such applications tend to be larger and more broad-ranging in their capabilities than off-the-shelf programs. For example such systems may run your entire company from payroll to billing to sales to manufacturing. For example, Oracle, Peoplesoft, SAP vendors often create custom applications for their customers. The result is often built on existing modules and configurations, allowing some re-use of existing work, for what I would call a semi-custom application. For large applications a completely customized program (written from scratch) is not practical. For smaller requirements it may be. To date these applications have been run on closed operating systems, but with the growing corporate mainstreaming of Linux that too may change.

The most common and widespread non-proprietary operating systems (that is, other than MicrosoftTM WindowsTM) run on the mass-volume PC platform. The PC is an example of open hardware design since the standards are openly developed and freely available. This openness is almost certainly the reason for its success. It's true that IBM, which decided to make it open, has not greatly benefitted directly from it, however the PC's ubiquity has strongly fueled the expanding information age and empowered many individuals and groups as never before.

Next: Free Operating Systems