Laboratory 3 Due Date: March 10, 2000 Points: 100 The first problem asks 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. 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 pro- gram with different data or they might ask you questions on the code. 1. Modify the MINIX disk driver to print the number of blocks in the disk I/O queue whenever a request to read or write the disk is made. 2. Write a user-level program diskloc that takes a single file name as an argument and prints out the number of disk blocks in the named file and the location of the blocks on the disk, in order. Create a large file to demonstrate your program handles singly-indirect and doubly-indirect blocks. Hint: Your program will need to be setuid to root. It will have to open the raw disk device, locate the list of inodes, and proceed from there.