An Introduction to Free Software for Educators Version 0.1 3 May, 2001 Author: Michael E. Smith PRELUDE To qualify as `free', computer programs (software) must be available under terms of use that guarantee certain freedoms. There is a movement that supports making software available with these freedoms. Free software and the hacker community have dominated the building and operation of the Internet throughout the period of its rise. Since 1998, free software has enjoyed a high level of prominence in the computer industry, appearing in cover stories and regular features in numerous trade publications. Major corporations that previously shunned free software are now supporting free software, selling it, and in some cases altering their businesses in fundamental ways to adjust to the rise of this new way. IBM, the leading computer company, has made a broad and deep commitment to use it internally and to give it a leading role in their products. IBM predicts that GNU/Linux, a free software operating system, will dominate computers in a few years. GNU/Linux remains the fastest growing operating system, reaching an estimated 20 million users. Questions What is free software? What is the relationship between free software and the Internet? What are the benefits of free software? What are the benefits to the school system as a governmental organization, and as an educational organization? What types of computers does it run on? Who uses it? Can systems built by volunteers be relied on? Who is accountable? Table of Contents I. Free Software II. The Software III. The Internet IV. Computer Usage V. Education and Schools VI. Labor VII. Conclusion Appendix A. Licenses Glossary Bibliography I. FREE SOFTWARE Origin in experience Numerous people in different cultures throughout the world have independently come to the same conclusions about how best to achieve progress. The free software movement is not the result of an idea spreading from an origin to the wider world, but of many people independently reaching these conclusions, based on their experiences working with computers. These ideas are not transient; these ideas will be held with conviction at least as long as the conditions that led to their development endure. Free software If software comes with restrictions stipulating the uses, the users, the distribution, or the level of use, then it is not free. The meaning of `free' here is as in freedom (libris), not as in zero price (gratis). Customer side of free software Unlike proprietary software, free software can be studied, shared and modified to fit the needs of the customer. Author side of free software Authors (and organizational owners) can distribute the systems or programs they have written for others to use and work on. Free software provides a number of options on how to do this, including commercial sale. System view of free software Computer programs are based on algorithms, a part of mathematics. Free software is a way to advance this area of mathematics. It provides a way for computer programmers to publish their work, for an expansion of the uses of the programs and for mankind to gain much greater benefit. Free Software Foundation In 1984, Richard M. Stallman started the Free Software Foundation and launched the GNU (pronounced guh-noo) Project with the aim of providing a complete free Unix-like operating system (see next paragraph). Large parts of GNU have been available and in wide use throughout this period. In addition to the software, a legal framework was created to protect the software. The GNU General Public License, authored by Stallman, creates a safe, sophisticated, standard free software license. II. THE SOFTWARE UNIX(tm) The operating system is the program(s) that controls the physical computer and its communication with peripheral equipment, and provides the general substratum upon which all other programs run. The UNIX operating system was created at AT&T Bell Labs in 1969 by a group led by Ken Thompson (and Dennis Ritchie). This system has desirable properties including: a timeshared multi-user interactive environment, portability, and a design, based on a high degree of abstraction, that enables program interoperability and reuse. In order to avoid anti-trust complications, in the nineteen seventies, AT&T did not sell UNIX and it did not sell computer equipment; outside of AT&T, UNIX was used by universities and research establishments. In the eighties, many computer companies with proprietary systems were forced by their customers to port UNIX to their computers. Berkeley Unix (aka BSD Unix, from the University of California), an improved version of the system, helped fuel the rise of graphical workstations, as companies were able to sell computers with a cheap but high quality operating system. UNIX had reached its present position as the most popular operating system in the world, as looked at from the point of view of the number of manufacturers selling it and by the types of computers that it can run on. Versions of Unix were sold by companies ranging from the largest corporations to mom-and-pop companies and (even) book publishers. The competition among the different Unices, especially between the AT&T camp and the Berkeley camp (and later the camp of the Open Software Foundation's OSF) led to improvement and innovation. Proprietary Unix is an open system, not a free system. Open systems provide well-defined interfaces and are designed to allow independent programs to be added. Protocol-based interfaces also became popular during this period, e.g., TCP/IP. Protocols entirely remove the dependence on the underlying system; only the protocol need be supported. Open systems allow new programs to be added, but unlike free software, they generally do not allow the system itself to be altered. III. FREE SOFTWARE AND THE INTERNET Emerging standard of the Internet vs. proprietary approaches Purchasers and other observers are aware that proprietary vendors have attempted to lock-in customers by keeping key parts of the system proprietary in order to make the cost of detachment artificially high. This has become a major factor in the purchase decision of many buyers. In 1983, when the Department of Defense (DARPA) funded the research and development for TCP/IP to expand the Internet, they originally decided to use DEC VAX/VMS as the base OS. They realized (in time) that building the Internet on a proprietary OS would put DEC (Digital Equipment Corporation) in a powerful position of control over a core technology of the 'net. VMS was rejected because its proprietary nature limited its usefulness in a public role. [Salus p. 159] University of California, Berkeley (BSD) Unix was used instead. As a result, Unix was tightly integrated with internetworking, and the Internet was closely bound with Unix. Unsung heroes of the Internet Although large grants funded research and capital expenditures, a vital role in the development of the Internet has been played by volunteer labor. Computer programs are not just written - they are also tested and debugged. The Internet programs had problems that were corrected by many network administrators organizing and committing long hours on a voluntary and sustained basis to hunt down network failures. Email and Usenet could not have achieved viability without this work. Today, much of the Internet is still run by volunteers, e.g., nearly all the top-level domain name servers are maintained by volunteers. Internet protocols Despite strong competition from other networking systems of comparable or superior technical qualities from established vendors, the Internet developed the way it did because: 1) It was not proprietary. Open standards and open protocols are the basis for the Internet. Proprietary systems will conflict with each other. The Internet is vendor neutral. 2) It is a peer-to-peer, decentralized system. This matched the growth pattern of the Internet -- nodes are incorporated incrementally. 3) The close relationship with Unix meant that Internet development was accessible to a wide variety of computers and in particular from small, cheap machines, ensuring that it was not restricted to the affluent. The popularity of Unix provided a large pool of talent. Free software and the Internet In addition to the critical role played by volunteers in the running of the Internet, free software programs such as the following also play critical roles. 1) BIND the Berkeley Internet Name Daemon. The Internet is based on a numerical addressing scheme. This program allows names to be used instead of numbers. The majority of domain name service uses this program. 2) Sendmail. 75% of the email traffic through the Internet uses sendmail. There are other popular free software `Mail Transfer Agents' in use as well. The World Wide Web was developed at CERN to disseminate scientific knowledge. The Web (including HTML, HTTP, URIs) is close to free software in spirit and in substance. 3) Apache. The majority of world wide web servers use this free software server. There are other free web servers in use, e.g., the Lisp-based server which ran whitehouse.gov . 4) Kerberos. This free software subsystem from MIT is used on computer networks to establish trusted communications among computers. IV. COMPUTER USAGE Restrictive vs. expansive Much of the work that computer programmers do has consisted of writing programs to solve problems that come up in many places, and hence have already been solved elsewhere. There has been a long conflict between those who want _exclusive rights_ to resell solutions (real, partial or promised) that they own and those who desire to share solutions so that all past, present and future effort can be utilized more effectively. Cooperative groups Computer programs have always had errors (bugs) and there has always been a shortage of documentation. So there has always been a need for assistance. Professional organizations and user groups have been formed and have played a large role in the promulgation of knowledge and the sharing of programs. In the nineteen forties, the two large professional U.S. organizations were formed - the Association for Computing Machinery and the Institute of Electronics and Electrical Engineers Computing Society. The user group SHARE was formed in the fifties. UNIX user groups began in the seventies and strongly contributed to the development of the UNIX Operating System, enforcing a common interest against splintering forces. Some free software is produced by individuals or small groups. One interesting development has been the use of free software and the Internet to organize far-flung cooperative projects to build and maintain systems. Several factors such as the process of peer review and the opportunity for specialized contributions have allowed this once unconventional approach to produce higher quality work than competing proprietary products. Can systems built or run by volunteers be sustained over time? The proven answer is affirmative. Many systems (e.g., the Internet) have been run this way, and the volunteers have taken the necessary responsibility. There is a sizable cadre of volunteers who can see that their work is doing something of importance and they make the necessary commitment. Indeed, the number of people who offer help on an _ad hoc_ basis is so large, that free support is often ranked at or near the top in customer satisfaction surveys. Educators are familiar with the trusted role in schools of volunteers such as parents associations, student monitors and student service organizations. Ownership and accountability One charge often advanced against free software is that it is bound to be inferior because no one is accountable and "there is no one to be sued." Free software is generally licensed with an explicit disclaimer of responsibility -- but proprietary software is generally licensed with the same disclaimer. Free software licenses are fully compatible with vendor guarantees - a vendor can warrant the software on the delivered product and be sued. How many cases of proprietary software vendors being sued, absent explicit warranties, are there? Why would one have any expectation that proprietary vendors could be sued successfully or that such a threat would alter their conduct? The software itself cannot be intimidated, and thus must be judged by results, not by threats. Poor programs can be offered as free software, as they can in proprietary software -- BUT free software gives the customer extra guarantees: the customer has possession of the source even if the vendor relationship is terminated: the source can be studied, and it is within the customer's power to have it fixed! What computers does GNU/Linux run on? Intel 80386+, Alpha, PowerPC, Sparc (including some 64-bit models), Palm Pilot, Motorola 68000+, ARM, MIPS, IBM S/390, Crusoe, (HP PA-RISC?), embedded devices. NetBSD (a free BSD Unix) also runs on a wide variety of platforms. Who uses it? NASA, Brookhaven National Laboratory, Fermilab, NOAA, Amerada Hess, Burlington Coat Factory, Virginia Power & Light, Roger Maris Cancer Center, Carnegie Hall, Panix, Internet appliances/embedded devices, IBM, Cisco. What uses has it been put to? o General computing: producing and storing documents; computation; graphics; communication and networking; database. o The U.S. civil aviation weather reporting system run by NOAA is based on a GNU/Linux cluster. o NASA has sent spacecraft run by GNU/Linux and by BSD Unix. NASA uses it e.g., to simulate galaxy formation. o The special effects for the motion picture Titanic were done on GNU/Linux. o Brookhaven National Laboratory collects the data from their Relativistic Heavy Ion Collider on a GNU/Linux cluster. o Oil companies do geological calculations with Beowulf cluster supercomputers. o Point-of-sale systems in large stores and chains. o Panix (New York's largest independent Internet Service Provider) provides NetBSD on their machines. o IBM is using GNU/Linux as a standard platform, so that their diverse platforms will be able to run common software. o The National Center for Supercomputing Activities has announced plans to build the fastest academic supercomputer (2 teraflop), running GNU/Linux. o Internet appliances. Available free software: Whole systems + thousands of packages. Non-free software products also are available that can run on free OSes. V. EDUCATION and SCHOOLS Education Inspection by experts must be a necessary condition for any foundational computer program used by a school system. Public inspection is even better. With free software, the source code is freely and openly published and can be tested by anyone. This provides a far greater measure of safety than that obtainable when vendors of dubious competence and motivation sell programs whose inspection by independent experts is prohibited by copyright. Running uninspected programs from unreliable vendors is, in itself, negligent. Free software offers more than one operating system and GNU/Linux has multiple vendors. A free software license provides important IRREVOCABLE protections! Progressive education The free software movement has a pioneering culture. Education in a free software environment combines two hard-to-combine approaches, active learning (self-reliance) and cooperative learning. Active learning There are defaults that make the system usable with little adjustment, but the system has few limits barring one from seeking and providing improvements. The system allows a relatively high degree of automation and customization, so learning has a ready-made reward structure. Patrons often seek each other's help. Cooperative learning Unix provides a group, collegial environment. The system administrator can create groups for any project and add or remove participants and their privileges at will. Unix has a three-level security model: self; group; world. Group participants can easily share work with each other, and at their discretion, with everyone else. Users can communicate through a variety of modalities. Free software carries this further, by allowing computer programs to be combined in part or in whole, legally. Networking computers Networked computers can work on problems jointly. Home computers typically leave most cycles idle, and office computers are typically completely idle after hours. Timesharing systems such as Unix are designed to multi-task in an orderly manner, so that "jobs" can be scheduled that run on low priority (during idle cycles), having little noticeable impact on performance. Several problems have been worked on by thousands of people donating computer time, e.g., SETI, the Search for Extraterrestrial Intelligence, and molecular chemistry. These are problems that do a lot of calculation (such as large trial-and-error computation) on a small store of local data. GNU/Linux clusters With the Beowulf technology developed at NASA for GNU/Linux, PCs can be linked together to form cheap supercomputers. Two years ago, a small cluster could be put together in the $20,000 range; with falling prices, any school that wanted to pursue this would find it within budgetary constraints. Such a machine could be placed on a couple of racks. There are now a number of companies putting these clusters together commercially. School participation Students will be able to see, study and alter the programs they are using. They can contribute directly to a worldwide effort and be credited so that others will see and benefit from their work. This will lead to communication with other students in all parts of the world. Schools will have contributing programmers (developers) and testers and documentation within their population; students will take an interest in developments, knowing that they can be participants. Quality The Board of Education can provide the same technology to their schools that is considered to be the best available. This technology also costs less. Much less. Students and staff will know they are working with a vanguard system and are connected with a worldwide community. Burden of Policing Free software is copyrighted. The copyright holders license the software on terms that correspond well to educators' needs. Proprietary software generally has license terms that are designed for a different use -- those terms impose a burden that falls especially hard on educational use. Proprietary licenses generally limit copying of software, and the number of machines or individuals using a copy. This can mean that the licensor is relying on the government to enforce laws that are incompatible with societal practice and human nature. A ``limited use'' license imposes a burden on the licensee to keep track of the terms and the usage (compliance often means having to implement a scheme to prevent excess use or having the licensed software be limited in order to enforce these terms). Often those licenses (and recent legislation) have been written in such a restrictive way that proper administrative procedures (such as backup, archiving and disaster recovery) would violate those terms. It is common practice to copy programs and bring them home. When this violates the proprietary license, it places the school authorities in the position of having to police the students (and the staff) in a situation where violations of the law can reasonably be expected to be widespread. This also means that children will be raised to practice illegal activities as part of their normal educational experience. By definition, free software is free from those restrictions. Copying and using the software is rightful according to the license. Proprietary software often uses copyright law to criminalize common behavior arising out of curiosity, interest, pride of work, altruism. Other school systems. Most of the school systems of the world will be using free software principally, often exclusively. The benefits that will drive this are: 1) Low cost. No licensing cost. No foreign exchange. 2) Reliability. Schools can be set up and continue to run indefinitely. 3) Support can be provided remotely. 4) There is no company controlling it. It is vendor neutral. There is no nationality. It is international. 5) There are no hidden parts and no risk of foreign control or penetration. 6) Public opinion. This is the moral high road. National school systems such as Mexico and China have already declared this as official policy. The Internet links these systems together, and educational software developed for these systems will be usable. Requires skilled people, but they are far more productive. Low maintenance, often remotely. Advanced administration packages are being ported and developed. VI. LABOR UNIX skills have long been near the top of demand in the computer industry. UNIX jobs pay more because of the shortage of skilled labor and because workers are functioning in an environment that makes them more productive. There is also a place for those who are beginning to learn computer skills. Schools can hire students and former students, providing a symbiotic path to better employment. High levels of skill translate into high levels of action because Unix-like systems allow centralized remote administration and work can be promulgated across systems programmatically. Free software provides a recruiting advantage because its Unix-like aspects are intellectually interesting and because many workers prefer its development over proprietary systems. (Companies such as AT&T Laboratories and IBM now refer to this recruiting advantage in advertisements without explanation.) VII. CONCLUSION Technical Although no platform is the best in all ways for all uses, this is over-all the highest quality broad purpose platform in wide use. The system is growing rapidly by contributions of new development, new applications and fixes to existing software. Some free software, such as GNU/Linux and BSD Unix have proven to be highly reliable systems that can run unattended for long periods of time. Complete free software systems are available for general use and for specialized uses ranging from embedded systems to large supercomputers on machines from many manufacturers. Of course, Unix-like systems are the system of choice for the Internet. Cost factors 1) The price is typically very low because market forces are free to guarantee a competitive price. Since the programs are freely redistributable, the price is often zero. 2) A free software license permits replication for additional use and for archive and backup purposes. 3) The budget process for purchase, expansion and maintenance is greatly simplified. 4) The burden of license enforcement against students, their families and school personnel is relieved. 5) Free software often has greater longevity, since there is a strong commitment to backward compatibility among its authors. In many cases there is no incentive to force new purchases. 6) The Unix-like systems earned their reputation for reliability -- and reliability is being significantly enhanced. Reliability translates into less down-time, less risk and less lost data. 7) These systems have security at a level far above other systems commonly available for schools. 8) These systems are efficient; they require less computer resources so machines with older processors or less memory give adequate performance. Less heat means longer equipment life and longer use times per battery charge. 9) Support for terminals allows cost savings in equipment and by simplifying the system architecturally. 10) Free software is additive in novel ways. Cheap supercomputing clusters (based on free software) are becoming commercially popular. Connectivity Free software connects one to the worldwide Internet community, allowing participation in an undertaking that is one of mankind's proud achievements -- an undertaking that involves cooperative contact with a software base that will enjoy the greatest worldwide support in the foreseeable future. Advances made anywhere are available immediately everywhere. Non-free Non-free software can be run on and with free software. So ``must-have'' applications need not be sacrificed. But there are two principal drawbacks: 1) The benefits of free software will not apply to those pieces: customization, participation in support, ability to integrate into other software, and access to donated contributions. 2) Later conversion will incur costs to disencumber proprietary components. (Both of these drawbacks are intrinsic to proprietary applications). Appendix A. LICENSES To qualify as free software, the licensee must enjoy the following rights: 1. The right to make unlimited copies, and share them with others. Copies may be sold for profit. 2. The copies must include access to the program source. 3. One may modify the program to fit one's needs and freely distribute the modified program labeled as such. 4. Use is non-discriminatory: anyone can use it for any purpose. Free software licenses can be grouped in two classes, depending on whether they are ``Copyleft.'' Richard Stallman and the Free Software Foundation created the type of license known as Copyleft. A copylefted work is copyrighted, and the owner of the copyright licenses others to use it in accord with the above conditions plus one more condition: 5. Copyleft. The purchaser may redistribute the software only under the same terms. The purchaser may not restrict the freedoms of the purchaser's customers. Customers of redistributed Copyleft software are similarly bound by the terms. Presently, I use the term ``freedom-preserving'' to describe such licenses. The other category of free software licenses offer free software that can be made non-free to other parties. Examples of this are the BSD license and the license used by the X Window System. Software may be written by GNU, donated to GNU, released under a GNU GPL but outside of GNU, other free software, part-free software, or proprietary software. The use of the term `freeware' is not recommended, as it could mean any of the preceding, including completely non-free software available at zero price for a limited time. Shareware is software that can be freely distributed, but users are supposed to buy a license; it is a method of allowing a free trial before purchase. The term ``commercial'' means used in commerce; free software can be profitable and it can be used commercially. ``Public domain'' is a legal term. When a work is placed in the public domain, the copyright is surrendered. Such works have no copyright. To make publications freely reproducible, several new licenses are being tried by various parties. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - What is Free Software? [excerpt from the Free Software Foundation ] ``Free software'' is a matter of liberty, not price. To understand the concept, you should think of ``free speech'', not ``free beer.'' ``Free software'' refers to the users' freedom to run, copy, distribute, study, change and improve the software. More precisely, it refers to four kinds of freedom, for the users of the software: * The freedom to run the program, for any purpose (freedom 0). * The freedom to study how the program works, and adapt it to your needs (freedom 1). Access to the source code is a precondition for this. * The freedom to redistribute copies so you can help your neighbor (freedom 2). * The freedom to improve the program, and release your improvements to the public, so that the whole community benefits. (freedom 3). Access to the source code is a precondition for this. [deleted - see www.gnu.org for the full text including the fifth freedom] Copyright (C) 1996, 1997, 1998, 1999, 2000 Free Software Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111, USA Verbatim copying and distribution of this entire article is permitted in any medium, provided this notice is preserved. - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - GLOSSARY GNU Gnu's Not Unix The GNU Project of the Free Software Foundation. The GNU operating system, a free Unix-like system, commonly (but incorrectly) called Linux (Linux is a free kernel. The kernel is the central part of an Operating System). hacker, n. An expert or highly enthusiastic computer programmer. OS Operating System, n. A system of programs that control the computer and provide essential services to the programs running on the computer. software. Computer programs. The term is in contrast with `hardware' -- the computing machinery. BIBLIOGRAPHY The best source on free software and its philosophy: www.gnu.org (The Free Software Foundation) Other perspectives: DiBona, Chris, Sam Ockman and Mark Stone, eds., OPEN SOURCES: Voices from the Open Source Revolution. Sebastopol, Cal.: O'Reilly & Associates, Inc. 1999 background on UNIX: Salus, Peter H., A Quarter Century of UNIX. Reading, Mass.: Addison-Wesley, 1994 terminology and the hacker culture: Raymond, Eric S. The New Hacker's Dictionary www.tuxedo.org/~esr This document's home: http://www.lxny.org Copyright (c) 2000,2001 Michael E. Smith. All rights reserved. Permission granted to copy verbatim and disseminate provided that the author is credited and copyright is preserved.