This section includes some general information about the project, operating systems, and about Linux. Its purpose is to give the Gentle Reader an idea of the philosophies and social movements that have made this project possible.
An operating system is made up of software that manages resources on a computer. The computer's hardware provides these resources - CPU cycles, memory, hard drive space, input devices such as the keyboard, and output devices such as the monitor signal. A wide variety of applications and system maintenance programs need these resources to get their jobs done. The operating system's job is to manage the interactions between the hardware and software programs.
For example, when Abiword starts up, it asks the operating system for some memory so that it can load. The operating system then decides whether there is enough memory available, and possibly re-organizes memory usage to free up space. Then it gives this memory to Abiword so that the program can run and you can type a letter. If not for the operating system, Abiword would have to manage its own memory, which is an error-prone process.
Here's another example: say Abiword and Gnumeric both want to save backup files to the hard drive. If they both tried to save to the hard drive at the same time, the data on the hard drive could become corrupted. It is the operating system's job to control access to the hard drive, first giving one program permission to write to the drive, and then giving the other permission. Without the operating system, these programs would have to manage these issues themselves.
People have written lots and lots of operating systems for computers. You may be familiar with the Microsoft Windows family of operating systems. Many Macintosh computers use an operating system called Mac OS. Other operating systems of note include BeOS and VMS.
In the academic and networking worlds, a family of operating systems called UNIX is popular. There are many variants of the UNIX operating system available, too: Solaris, BSD and its free variants FreeBSD, OpenBSD, and NetBSD, HP-UX, AIX... the list goes on and on. Linux is a version of UNIX that runs on personal computers.
Yes. All of the software we include in the Working Centre Linux project is legally available free of charge. Most of our software is open-source software. Some programs, such as Opera are not open-source, but still available free of charge.
Free software is a term that was invented by a group called the Free Software Foundation back in the early 1980s. The “free” in free software does not refer to price, but to the idea of “liberty”. According to the Free Software Foundation, liberated software is software that is distributed with its source code and the author's permission that users of the software can modify and redistribute that source code.
In order to understand the concept of source code, you have to know a bit about how software is written. In order to write a piece of software, a programmer first designs the software, and then chooses a programming language to implement the program. A programming language is a set of commands that tell the computer what actions it should take to accomplish a task. The programmer types commands from the programming language into some text files. These text files make up the source code of the program.
In theory, humans that understand the programming language used to write a program can read that program's source code and understand how it works. They can also modify the source code to add new features or fix programming errors.
In contrast, computer cannot follow the instructions in the source code directly. Instead, the computer uses a program (called a compiler) that takes the source code and translates it into a form the computer can understand. The translated source code is known as machine code or binary code. Computers can understand machine code, but humans have a hard time understanding what is happening. Furthermore, while it is straightforward to turn source code into machine code, translating machine code into source code understandable by humans is hard.
This makes source code a powerful thing. If Bill writes a program and gives Sarah the program under an open-source license, then Sarah can both run the program and - in theory at least - Sarah can easily modify the program to make it better. However, if Bill gives Sarah only the binary code, then Sarah can run the program, but - in theory at least - cannot change it. Making source code available means that people all over the world can independently change and improve Bill's software, which makes it easier to improve the quality of software available. Unfortunately, releasing source code makes it hard for Bill to make money, which is why most companies keep their source code hidden. Such software is known as proprietary, or closed source.
Why do we care about any of this? It turns out that lots of people are willing to write open-source software and release it free of charge. Furthermore, the existence of the Internet means that they can distribute their software all over the world cheaply. In practical terms, that means that there is a lot of good-quality software available free of charge, which in turn means we can install that good quality software on our refurbished computers legally and cheaply. Without free software, we might never have been able to provide legal, cheap software for our refurbished computers.
An important aspect of open-source software is its license. One of the most common free software licences is the GNU Public License, also known as the GPL. You can read the text of the GPL for yourself in the file
/usr/share/common-licences/GPL
Some other free licenses are also contained in this directory.
In the early 1990s, a Finnish university student named Linus Torvalds initiated a project to write a free software operating system for his 386. Soon after he started the project, other programmers around the world offered their help. Together, they developed the kernel (core) of an operating system, which eventually came to be known as Linux. Today, many people refer to this kernel and its application programs as “Linux”.
However, the success of Linux has its roots in another project, called GNU. In the early 1980s, a software developer named Richard M. Stallman initiated the GNU project as an attempt to create a free (open source) UNIX-like operating system. Stallman also created an organization called the Free Software Foundation to aid in the development of GNU.
The Free Software Foundation wrote many free software components for GNU, including a compiler (gcc), many utilities (including ls, make, bash) and some important libraries (including glibc). These GNU tools became very popular in the UNIX world - many UNIX vendors included these tools with their operating systems. However, the GNU project had no kernel of its own; the Free Software Foundation designed a kernel called Hurd to complete its dream of a totally free-software operating system, but to this date the Hurd is not complete. On the other hand, the Linux project used GNU tools extensively to write and run their kernel.
Together, the GNU tools and Linux kernel form a usable operating system, which many people refer to as “Linux”. Other people refer to the operating system as “GNU/Linux”, which acknowledges the GNU project's contributions to making Linux usable.
Which label is correct? We don't know - some people get very uptight about calling the operating system GNU/Linux, and others get very uptight about calling the operating system Linux. In this manual we usually refer to the kernel, its utilities and software programs that run on the operating system “Linux”, but feel free to substitute “GNU/Linux” for the name if you wish.
Debian GNU/Linux is a Linux distribution. A Linux distribution consists of the GNU/Linux operating system and applications to run on that operating system, all packaged so that the components run well together. Debian is just one Linux distribution; hundreds of Linux distributions exist. Some of the more popular include Red Hat Linux, Mandrake GNU/Linux, Slackware, SuSE Linux and Caldera OpenLinux.
Our project uses Debian Linux as the foundation of our project; in essence, we install a configuration of Debian that suits our needs. That means we provide a fully-operational Debian GNU/Linux system, which is convenient for users because they can find documentation and install new software on their systems fairly easily.
Our choice of Debian was more-or-less arbitrary; the project's founders used Debian on their home machines. As it turns out, though, Debian is well-suited to our project; it supports older hardware, it is a stable, well-established distribution, and it offers a huge selection of software.
To learn more about Debian, visit
or read the Debian FAQ:
/usr/doc/debian/FAQ/index.html
Located in Kitchener, Ontario, Canada, the Working Centre is an employment centre with a twist. In addition to helping people find paid work through employment counselling, job searches and resume critiques, the Working Centre is dedicated to providing resources and support to help people develop new skills and find self-worth regardless of their employment status. Some supports the Working Centre provides include a community kitchen (where volunteers prepare and serve food), urban agriculture projects (which help people who live in apartments grow some of their own food), a bicycle resource centre (where people can learn how to repair their bicycles, and where they can obtain refurbished used bicycles freely), simplicity circles (where people get together to explore fulfilling lives less dependent on money), and a computer recycling project.
The purpose of the computer recycling project is to refurbish donated computers, then to distribute them cheaply to the community. Almost everybody wins in this situation: donors feel good because their “obsolete” machines will be used instead of thrown into some landfill, volunteers learn how to refurbish used computers and diagnose problems, and members of the community who might otherwise not have access to a home computer can practice marketable computer skills in their own homes.
The computer recycling program faces one serious problem, however: while many donors freely donate hardware, very few donate software licenses for operating systems or applications. Without these software licenses, the computer recycling project cannot legally install commercial software on donated computers. In the end, people purchasing computers through computer recycling are faced with the choice of buying software elsewhere (which often costs more than the system!), or pirating software from their friends.
That is where the Working Centre Linux Project comes in. It is an attempt to install low-cost, legal, useful software on machines the computer recycling project receives.
We designed the project around the following principles:
Our minimum requirements for this project are:
We are working on some package sets that work with smaller hard drives (the TINY selection) and package sets that take advantage of better hardware. As the computer recycling project receives better computers, we will be able to increase the amount of software on the system.
This principle has a few important side-effects: first of all,
This provides a way for interested people to learn more about computers in general and the UNIX design philosophy in particular.
Unfortunately, we were not able to adhere to this principle religiously. In order to save hard drive space, our smaller distribution omits some UNIX mainstays, such as the gcc development tools and Emacs.
In practical terms, this means that in our applications we tried to set default save formats to ones that Microsoft products would be able to read. See Section 8.1 for more information about the changes we made.
To this end, we created an automated installer based on FAI (Fully Automated Install). This installer removes a lot of the flexibility of other Linux installers, but makes installation a lot easier. To learn more about this installer, see Section 6
Notice that none of these guiding principles force us to use Linux or open-source software. Indeed, we explored several different alternatives to getting cheap software on our systems: DOS-based freeware and open-source software, “abandonware”, and licensing arrangements with Microsoft. In the end, we chose Linux because a lot of quality, no-cost, permissively licensed software was available for it, and because some of the volunteers (namely the ones putting together the distribution) were familiar enough with Linux to put a good set of packages together. In that sense, this project is an example of unintentional Linux advocacy.
2004-04-13