25. Glossary

Free For All. Go to the Table of Contents. Vist the Gifcom.


*Apache License* A close cousin of the BSD License. The software comes with few restrictions, and none prevent you from taking a copy of Apache, modifying it, and selling binary versions. The only restriction is that you can't call it Apache. For instance, C2Net markets a derivative of Apache known as Stronghold.


*AppleScript* A text language that can be used to control the visual interface of the Macintosh. It essentially says things like "Open that folder and double click on Adobe Photoshop to start it up. Then open the file named 'Pete's Dog's Picture.'" architecture Computer scientists use the word "architecture" to describe the high-level, strategic planning of a system. A computer architect may decide, for instance, that a new system should come with three multiplier circuits but not four after analyzing the sequence of arithmetic operations that a computer will likely be called upon to execute. If there are often three multiplications that could be done concurrently, then installing three multiplier circuits would increase efficiency. Adding a fourth, however, would be a waste of effort if there were few occasions to use it. In most cases, the term "computer architect" applies only to hardware engineers. All sufficiently complicated software projects, however, have an architect who makes the initial design decisions.


*Artistic License* A license created to protect the original PERL language. Some users dislike the license because it is too complex and filled with loopholes. Bruce Perens writes, "The Artistic License requires you to make modifications free, but then gives you a loophole (in Section 7) that allows you to take modifications private or even place parts of the Artistic-licensed program in the public domain!"


*BeOS* An operating system created by the Be, a company run by exApple executive Jean Louis Gass e.


*BSD* An abbreviation for Berkeley Software Distribution, a package first released by Bill Joy in the 1970s. The term has come to mean both a class of UNIX that was part of the distribution and also the license that protects this software. There are several free versions of BSD UNIX that are well-accepted and well-supported by the free source software community. OpenBSD, NetBSD, and FreeBSD are three of them. Many commercial versions of UNIX, like Sun's Solaris and NeXT's OS, can trace their roots to this distribution. The BSD was originally protected by a license that allowed anyone to freely copy and modify the source code as long as they gave some credit to the University of California at Berkeley. Unlike the GNU GPL, the license does not require the user to release the source code to any modifications.
*BSD License* The original license for BSD software. It placed few restrictions on what you did with the code. The important terms forced you to keep the copyright intact and credit the University of California at Berkeley when you advertise a product. The requirement to include credit is now removed because people realized that they often needed to publish hundreds of acknowledgments for a single CD-ROM. Berkeley removed the term in the hopes that it would set a good example for the rest of the community.


*copyleft* Another term that is sometimes used as a synonym for the GNU General Public License.


*Debian Free Software Guidelines* See Open Source. (www.debian.org)


*driver* Most computers are designed to work with optional devices like modems, disk drives, printers, cameras, and keyboards. A driver is a piece of software that translates the signals sent by the device into a set of signals that can be understood by the operating system. Most operating systems are designed to be modular, so these drivers can be added as an afterthought whenever a user connects a new device. They are usually designed to have a standard structure so other software will work with them. The driver for each mouse, for instance, translates the signals from the mouse into a standard description that includes the position of the mouse and its direction. Drivers are an important point of debate in the free software community because volunteers must often create the drivers. Most manufacturers write the drivers for Windows computers because these customers make up the bulk of their sales. The manufacturers often avoid creating drivers for Linux or BSD systems because they perceive the market to be small. Some manufacturers also cite the GNU GPL as an impediment because they feel that releasing the source code to their drivers publishes important competitive information.


*FreeBSD* The most popular version of BSD. The development team, led by Jordan Hubbard, works hard to provide an easy-to-use tool for computers running the Intel x86 architecture. In recent years, they've tried to branch out into other lines. (www.freebsd.org)

*Free Software Foundation* An organization set up by Richard Stallman to raise money for the creation of new free software. Stallman donates his time to the organization and takes no salary. The money is spent on hiring programmers to create new free software.

*GIMP* The GNU Image Manipulation Program, which can manipulate image files in much the same way as Adobe Photoshop. (www.gimp.org)

*GNOME* The GNU Network Object Model Environment, which might be summarized as "All of the functionality of Microsoft Windows for Linux." It's actually more. There are many enhancements that make the tool easier to use and more flexible than the prototype from Redmond. See also KDE, another package that accomplishes much of the same. (www.gnome.org)

*GNU* A recursive acronym that stands for "GNU is Not UNIX." The project was started by Richard Stallman in the 1980s to fight against the tide of proprietary software. The project began with several very nice programs like GNU Emacs and GCC, the C compiler that was protected by Stallman's GNU General Purpose License. It has since grown to issue software packages that handle many different tasks from games (GNU Chess) to privacy (GNU Privacy Guard). See also GPL and Free Software Foundation (www.gnu.org). Its main goal is to produce a free operating system that provides a user with the ability to do everything they want with software that comes with the source code.

*GNU/Linux* The name some people use for Linux as a way of giving credit to the GNU project for its leadership and contribution of code.

*GPL* An abbreviation that stands for "General Purpose License." This license was first written by Richard Stallman to control the usage of software created by the GNU project. A user is free to read and modify the source code of a GPL-protected package, but the user must agree to distribute any changes or improvements if they distribute the software at all. Stallman views the license as a way to force people to share their own improvements and contribute back to the project if they benefit from the project's hard work. See also BSD.

*higher-level* languages Modern computer programmers almost always write their software in languages like C, Java, Pascal, or Lisp, which are known as higher-level languages. The word "higher" is a modifier that measures the amount of abstraction available to a programmer. A high-level language might let a programmer say, "Add variable revenues to variable losses to computer profits." A high-level language would be able to figure out just where to find the information about the profits and the losses. A low-level programming language would require the software author to point directly to a location in the memory where the data could be found.

*KDE* The K desktop environment is another toolkit that offers much of the same functionality as Windows. It is controversial because it originally used some proprietary software and some users needed a license. See also GNOME, a similar package that is distributed under the GNU GPL. (www.kde.org)

*kernel* The core of an OS responsible for juggling the different tasks and balancing all of the demands. Imagine a short-order cook who scrambles eggs, toasts bread, chops food, and somehow manages to get an order out in a few minutes. A kernel in an OS juggles the requests to send information to a printer, display a picture on the screen, get data from a website, and a thousand other tasks.

*Linux* The name given to the core of the operating system started by Linus Torvalds in 1991. The word is now generally used to refer to an entire bundle of free software packages that work together. Red Hat Linux, for instance, is a large bundle of software including packages written by many other unrelated projects.
*Mozilla Public License* A cousin of the Netscape Public License that was created to protect the public contributions to the source tree of the Mozilla project. Netscape cannot relicense the modifications to code protected by the MPL, but they can do it to the NPL. See also Netscape Public License.

*NetBSD* One of the original free distributions of BSD. The team focuses on making sure that the software works well on a wide variety of hardware platforms, including relatively rare ones like the Amiga. (www.netbsd.org)

*Netscape Public License* A license created by Netscape when the company decided to release their browser as open source. The license is similar to the BSD License, but it provides special features to Netscape. They're allowed to take snapshots of the open source code and turn them back into a private, proprietary project again. Bruce Perens, one of the unpaid consultants who helped Netscape draft the license, says that the provision was included because Netscape had special contracts with companies to provide a proprietary tool. See also Mozilla Public License.

*OpenBSD* One of the three major versions of BSD available. The development team, led by Theo de Raadt, aims to provide the best possible security by examining the source code in detail and looking for potential holes. (www.openbsd.org) open source A broad term used by the Open Source Initiative (www.opensource.org) to embrace software developed and released under the GNU General Public License, the BSD license, the Artistic License, the X Consortium, and the Netscape License. It includes software licenses that put few restrictions on the redistribution of source code. The Open Source Initiative's definition was adapted from the Debian Free Software Guidelines. The OSI's definition includes 10 criteria, which range from insisting that the software and the source code must be freely redistributable to insisting that the license not discriminate.

*Open Source Initiative* A group created by Eric Raymond, Sam Ockman, Bruce Perens, Larry Augustin, and more than a few others. The group checks licenses to see if they match their definition of open source. If the license fits, then it can wear the term "certified by the OSI."

*Symmetric Multi-Processing* Much of the recent work in operating system design is focused on finding efficient ways to run multiple programs simultaneously on multiple CPU chips. This job is relatively straightforward if the different pieces of software run independently of each other. The complexity grows substantially if the CPUs must exchange information to coordinate their progress. The kernel must orchestrate the shuffle of information so that each CPU has enough information to continue its work with a minimum amount of waiting time. Finding a good way to accomplish this SMP is important because many of the new machines appearing after 2000 may come with multiple processors.

*UNIX* An operating system created at AT&T Bell Labs by Ken Thompson and Dennis Ritchie. The system was originally designed to support multiple users on a variety of different hardware platforms. Most programs written for the system accept ASCII text and spit out ASCII text, which makes it easy to chain them together. The original name was "unics," which was a pun on the then-popular system known as Multics.