| Revision History | ||
|---|---|---|
| Revision 3.1 | 2005-04-09 | DH |
| Minor clarifications and spelling corrections. | ||
| Revision 3.0 | 2004-11-02 | DH |
| Changed bootloader to GRUB rather than LILO. Updated versions on all source code packages. Made minor clarifications to some shell commands and scripts. | ||
| Revision 2.1 | 2004-02-18 | DH |
| Corrected typos. Changed resource site hosting to SourceForge. Added appendix B to include the GNU Free Documentation License as part of this document. | ||
| Revision 2.0 | 2003-11-08 | DH |
| Updated to use GNU coreutils in place of fileutils, sh-utils and textutils. Updated version numbers on many source code packages. Introduced Freshmeat as a resource for finding source code. Changed /etc/mtab to a real file rather than using a symlink to /proc/mounts. Corrected local_fs script errors. Updated email address. | ||
| Revision 1.2 | 2003-05-31 | DH |
| Corrected errors in "strip -o library" commands. | ||
| Revision 1.1 | 2003-05-21 | DH |
| Bug fixes, typo corrections and improved XML markup. | ||
| Revision 1.0 | 2003-02-17 | DH |
| Initial Release, reviewed by LDP. | ||
Abstract
The Pocket Linux Guide is for anyone interested in learning the techniques of building a GNU/Linux system from source code. The guide is structured as a project that builds a small diskette-based GNU/Linux system called Pocket Linux. Each chapter explores a small piece of the overall system explaining how it works, why it is needed and how to build it. After completing the Pocket Linux project, readers should possess an enhanced knowledge of what makes GNU/Linux systems work as well as the confidence to explore larger, more complex source-code-only projects.
Table of Contents
- Legal Information
- Introduction
- 1. Project Initiation
- 2. A Simple Prototype
- 1. Analysis
- 2. Design
- 3. Construction
- 3.1. Prepare the boot disk media
- 3.2. Build the GRUB bootloader
- 3.3. Copy the bootloader files to diskette
- 3.4. Finish bootloader installation
- 3.5. Build the Linux kernel
- 3.6. Copy the kernel to diskette
- 3.7. Unmount the boot disk
- 3.8. Prepare the root disk media
- 3.9. Build BASH
- 3.10. Copy BASH to the root disk
- 3.11. Create device files that BASH needs
- 3.12. Unmount the root disk
- 4. Implementation
- 3. Saving Space
- 4. Some Basic Utilities
- 5. Checking and Mounting Disks
- 1. Analysis
- 2. Design
- 3. Construction
- 3.1. Install utilities from e2fsprogs
- 3.2. Install utilities from util-linux
- 3.3. Check library requirements
- 3.4. Strip binaries to save space
- 3.5. Create additional device files
- 3.6. Create the fstab and mtab files
- 3.7. Write a script to check and mount local filesystems
- 3.8. Create a compressed root disk image
- 3.9. Write the root disk image to floppy
- 4. Implementation
- 6. Automating Startup & Shutdown
- 1. Analysis
- 2. Design
- 3. Construction
- 3.1. Create a GRUB configuration file
- 3.2. Install sysvinit utilities
- 3.3. Create /etc/inittab file
- 3.4. Create /etc/init.d/rc script
- 3.5. Modify /etc/init.d/local_fs script
- 3.6. Create a hostname script
- 3.7. Create halt & reboot scripts
- 3.8. Create rcN.d directories and links
- 3.9. Create the root disk image
- 3.10. Copy the image to diskette
- 4. Implementation
- 7. Enabling Multiple Users
- 8. Filling in the Gaps
- 9. Project Wrap Up
- A. Hosting Applications
- B. GNU Free Documentation License
- 1. PREAMBLE
- 2. APPLICABILITY AND DEFINITIONS
- 3. VERBATIM COPYING
- 4. COPYING IN QUANTITY
- 5. MODIFICATIONS
- 6. COMBINING DOCUMENTS
- 7. COLLECTIONS OF DOCUMENTS
- 8. AGGREGATION WITH INDEPENDENT WORKS
- 9. TRANSLATION
- 10. TERMINATION
- 11. FUTURE REVISIONS OF THIS LICENSE
- 12. ADDENDUM: How to use this License for your documents