Chapter 1. Project Initiation
1.1. A Brief History of GNU/Linux
In the early 90's GNU/Linux systems consisted of little more than a beta−quality Linux kernel and a small
collection of software ported from the GNU project. It was a true hacker's operating system. There were no
CD−ROM's or GUI installation tools; everything had to be compiled and configured by the end user. Being a
Linux Expert meant knowing your system inside and out.
Toward the middle of the decade several GNU/Linux distributions began appearing. One of the first was
Slackware in 1993 and since then there have been many others. Even though there are many "flavors" of
Linux today, the main purpose of the distribution remains the same. The distribution automates many of the
tasks involved in GNU/Linux installation and configuration taking the burden off of the system administrator.
Being a Linux Expert now means knowing which button to click in the GUI administration tool.
Recently there has been a yearn for a return to the "good old days" of Linux when men were men, sysadmins
were hardcore geeks and everything was compiled from source code. A notable indication of this movement
was the publication of the Linux−From−Scratch−HOWTO version 1.0 by Gerard Beekmans in 1999. Being a
Linux Expert once again means knowing how to do it yourself.
For more historical information, see Ragib Hasan's "History of Linux" at http://netfiles.uiuc.edu/rhasan/linux
1.2. The Goal of Pocket Linux
The purpose of Pocket Linux is to support and encourage people who wish to explore Linux by building a
GNU/Linux system from nothing but source code. Pocket Linux is not intended to be a full featured system,
but rather to give the reader a taste of what is involved in building an operating system from source code.
After completing the Pocket Linux system the reader should have enough knowledge to confidently build
almost any project using only source code. Given this direction we can put a few constraints on the project.
The main focus should be learning. The project should not just describe how to do something, it
should also describe why it should be done.
•
The required time commitment should be minimal and manageable.
•
The project should not require any investment in additional hardware or reconfiguration of existing
hardware to set up a lab environment.
•
Readers should not need to know any programming languages in order to complete the project.
•
To remain true to the spirit of GNU/Linux, all software used in the project should be covered under
the GNU/GPL or another, similarly liberal, open−source license.
•
1.3. Working Within The Constraints
The Pocket Linux project gets its name from the fact that the bulk of the project fits onto two diskettes making
it possible to carry the entire, working system around in one's pocket. This has the advantage of not requiring
any additional hardware since any PC can be booted from the diskettes without disrupting any OS that exists
on the hard drive. Using diskettes also partially addresses the aspect of time commitment, because the project
size and complexity is necessarily limited by the 1.44 Megabyte size of the installation media.
Chapter 1. Project Initiation
4