Operating Systems 2014F: Assignment 7

From Soma-notes
Revision as of 18:07, 11 November 2014 by Soma (talk | contribs)
Jump to navigation Jump to search

This assignment is not yet finalized.

Please submit the answers to the following questions via CULearn by midnight on Wednesday, November 19, 2014. There ?? points in ?? questions.

Submit your answers as a single text file named "<username>-comp3000-assign7.txt" (where username is your MyCarletonOne username). The first four lines of this file should be "COMP 3000 Assignment 7", your name, student number, and the date of submission. You may wish to format your answers in Markdown to improve their appearance.

No other formats will be accepted. Submitting in another format will likely result in your assignment not being graded and you receiving no marks for this assignment. In particular do not submit a zip file, MS Word, or OpenOffice file as your answers document!

Don't forget to include what outside resources you used to complete each of your answers, including other students, man pages, and web resources. You do not need to list help from the instructor, TA, or information found in the textbook.

Note the following questions make reference to the material in Tutorial 7.

  1. [1] Modify the ones module so it generate a kernel "Oops" when the device is released (closed). (Just include the code for function you changed.)
  2. [2] How do you add a device /dev/ones for the ones module that will persist across reboots of the system? (Hint: You'll need to change the configuration of udev.)
  3. [3] Create a new module "onelines" based on the ones module that inserts a line break ('\n') every 78 characters. Be sure to do the right thing when the output isn't divisible by 78, i.e., handle partial lines properly.
  4. [4] Create a new module "repeatchar" that produces a character device that can input exactly one character. (If more than one character is given to it, it only uses the first.) It then outputs that character an unbounded number of times. By default, it should output "1" so it behave exactly as "ones" did before. (Don't include changes made for the previous question.)