Chapter 8. Filling in the Gaps
8.1. Analysis
The root disk has come a long way since its humble beginnings as a statically−linked shell. It now shares
many features with the popular, ready−made distributions. For example it has:
Several common utilities like cat, ls and so on.•
Startup scripts that automatically check and mount filesystems.•
Graceful shutdown capability.•
Support for multiple users and virtual terminals.•
As a final test, we can put the root disk up against the Filesystem Hierarchy Standard (FHS) requirements for
the root filesystem. (We will ignore anything in the /usr hierarchy because of space constraints.) Compared
to FHS requirement, the only files missing are a few commands in the /bin directory. Specifically, the root
disk lacks the following commands:
more•
ps•
sed•
In addition to the required commands, it might be nice to include the "ed" editor listed as an option by the
FHS. It is not as robust as vi or emacs, but it works and it should fit onto the tiny root filesystem.
So in order to finish up this phase of the project, we need to accomplish the following goals:
Add the more, ps and sed commands.•
Install the optional ed editor.•
8.2. Design
8.2.1. more
There is a more command that comes with util−linux, but it will not work for this project. The reason is
because of library dependencies and space constraints. The util−linux supplied more needs either the
libncurses or libtermcap to work and there just is not enough space on the root disk floppy to fit everything in.
So, in order to have a more command we will have to get creative.
The more command is used to display a file page by page. It's a little like having a cat command that pauses
every twenty−five lines. The basic logic is outlined below.
Read one line of the file.•
Display the line on the screen.•
If 25 lines have been displayed, pause.•
Loop and do it again.•
Of course there are some details left out like what to do if the screen dimensions are not what we anticipated,
but overall it is a fair representation of what more does. Given this simple program logic, it should not be hard
Chapter 8. Filling in the Gaps 42