• The license is self-perpetuating.
• The license grants the user freedom to run the program.
• The license grants the user the right to study and modify the source code.
• The license grants the user permission to distribute the original code or his modifications.
• The license grants these same rights to anyone to whom you distribute GPL software.
When a software work is released under the terms of the GPL, it must forever carry that license. [3] If all the copyright holders agreed, the software could, in theory, be released under a new license, a very unlikely scenario indeed!
Even if the code is highly modified, which is allowed and even encouraged by the license, the GPL mandates that it must be released under the same license. The intent of this feature is to guarantee access to everyone, even of modified versions of the software (or derived works, as they are commonly called).
No matter how the software was obtained, the GPL grants the licensee unlimited distribution rights, without the obligation to pay royalties or per-unit fees. This does not mean that a vendor can't charge for the GPL softwarethis is a very reasonable common business practice. It means that once in possession of GPL software, it is permissible to modify and redistribute it, whether it is a derived (modified) work or not. However, as defined by the GPL license, the author(s) of the modified work are obligated to release the work under the terms of the GPL if they decide to do so. Any distribution of a derived work, such as shipment to a customer, triggers this obligation.
For a fascinating and insightful look at the history and culture of the open source movement, read Eric S. Raymond's book referenced at the end of this chapter.
1.3.1. Free Versus Freedom
Two popular phrases are often repeated in the discussion about the free nature of open source: "free as in freedom" and "free as in beer." (The author is particularly fond of the latter.) The GPL license exists to guarantee "free as in freedom" of a particular body of software. It guarantees your freedom to use it, study it, and change it. It also guarantees these freedoms for anyone to whom you distribute your modified code. This concept has become fairly widely understood.
One of the misconceptions frequently heard is that Linux is "free as in beer." Sure, you can obtain Linux free of cost. You can download a Linux kernel in a few minutes. However, as any professional development manager understands, certain costs are associated with any software to be incorporated into a design. These include the costs of acquisition, integration, modification, maintenance, and support. Add to that the cost of obtaining and maintaining a properly configured toolchain, libraries, application programs, and specialized cross-development tools compatible with your chosen architecture, and you can quickly see that it is a nontrivial exercise to develop the needed software components to deploy your embedded Linux-based system.
1.4. Standards and Relevant Bodies
As Linux continues to gain market share in the desktop, enterprise, and embedded market segments, new standards and organizations are emerging to help influence the use and acceptance of Linux. This section serves as a resource to introduce the standards that you might want to familiarize yourself with.
1.4.1. Linux Standard Base
Probably the single most relevant standard is the Linux Standard Base (LSB). The goal of the LSB is to establish a set of standards designed to enhance the interoperability of applications among different Linux distributions. Currently, the LSB spans several architectures, including IA32/64, PowerPC 32- and 64-bit, AMD64, and others. The standard is broken down into a core component and the individual architecture components.
The LSB specifies common attributes of a Linux distribution, including object format, standard library interfaces, minimum set of commands and utilities and their behavior, file system layout, system initialization, and so on.
You can learn more about the LSB at the link given in Section 1.5.1, "Suggestions for Additional Reading," section at the end of this chapter.
1.4.2. Open Source Development Labs
Open Source Development Labs (OSDL) was formed to help accelerate the acceptance of Linux in the general marketplace. According to its mission statement, OSDL currently provides enterprise-class testing facilities and other technical support to the Linux community. Of significance, OSDL has sponsored several working groups to define standards and participate in the development of features targeting three important market segments. The next three sections introduce these initiatives.
1.4.2.1. OSDL: Carrier Grade Linux
A significant number of the world's largest networking and telecommunications equipment manufacturers are either developing or shipping carrier-class equipment running Linux as the operating system. Significant features of carrier-class equipment include high reliability, high availability, and rapid serviceability. These vendors design products using redundant, hot-swap architectures, fault-tolerant features, clustering, and often real-time performance.
The OSDL Carrier Grade Linux working group has produced a specification defining a set of requirements for carrier-class equipment. The current version of the specification covers seven functional areas:
• AvailabilityRequirements that provide enhanced availability, including online maintenance operations, redundancy, and status monitoring
• ClustersRequirements that facilitate redundant services, such as cluster membership management and data checkpointing
• ServiceabilityRequirements for remote servicing and maintenance, such as SNMP and diagnostic monitoring of fans and power supplies
• PerformanceRequirements to define performance and scalability, symmetric multiprocessing, latencies, and more
• StandardsRequirements that define standards to which CGL-compliant equipment shall conform
• HardwareRequirements related to high-availability hardware, such as blade servers and hardware-management interfaces
• SecurityRequirements to improve overall system security from various threats
1.4.2.2. OSDL: Mobile Linux Initiative
As this book is written, several mobile handsets (cellular phones) are available on the worldwide market that have been built around embedded Linux. It has been widely reported that millions of handsets have been shipped based on Linux. The only certainty is that more are coming. This promises to be one of the most explosive market segments for what was formerly the role of a proprietary real-time operating system. This speaks volumes about the readiness of Linux for commercial embedded applications.
The OSDL sponsors a working group called Mobile Linux Initiative. Its purpose is to accelerate the adoption of Linux on next-generation mobile handsets and other converged voice/data portable devices, according to the OSDL website. The areas of focus for this working group include development tools, I/O and networking, memory management, multimedia, performance, power management, security, and storage.
1.4.2.3. Service Availability Forum
If you are engaged in building products for environments in which high reliability, availability, and serviceability (RAS) are important, you should be aware of the Service Availability Forum (SA Forum). This organization is playing a leading role in defining a common set of interfaces for use in carrier-grade and other commercial equipment for system management. The SA Forum website is www.saforum.org.
Читать дальше