Laboratory 3

Due Date: May 28, 1999
Points: 100

These four problems ask you to make very small modifications to MINIX. You will be modifying the kernel (actually I/O driver) server source code, recompiling and assembling them, using make to link the various executable files, and then produce a new MINIX boot disk. All of this is quite straightforward, as described in the handout on recompiling MINIX.

Each of these programs require only trivial modifications to MINIX. The key is locating the current code that should be modified; surely, there are many acceptable solutions. You are advised to avoid too many recompilations; you are advised to think through the modifications you wish to make before doing the recompilation.

> To receive credit for your solutions, you must submit a new boot disk and a disk with your programs; they should be placed in the homework box by the due date. Make an appointment to demonstrate your new version of the operating system using the test programs you have produced. During the demonstration, the TAs might ask you to run the program with different data or they might ask you questions on the code.

  1. Modify the terminal driver so that, in addition to having a special key to erase the previous character, there is a key (control-w) to erase the previous word. Decide what the terminal driver should do if the buffer is empty. Also, be sure to decide (and explain) your semantics for a word.
  2. Modify the disk driver so that it records the number n of calls to fetch a block from the disk, either for reading or writing. Print the number n when the user presses a particular hot-key (you pick the key). Run a program that causes many disk blocks to be fetched to test your changes.

Send email to

Department of Computer Science
University of California at Davis
Davis, CA 95616-8562

Page last modified on 5/13/99