Description
Goal: To give you familiarity with Linux Kernel Modules, which enable you to code for execution
in kernel
Instructions: Follow instructions of “Chapter 2-Programming Projects-Linux Kernel Modules” on
the textbook Page 96. However, I’ve changed “Part II Assignment” for new assignment
requirements.
The new “Part II Assignment” is as follows:
Note: Please go to http://os-book.com/, and use the virtual machine (instructions can be found on
the wellsite to install it) there for all the OS assignments, including this one.
New Part II Assignment:
1) In the module entry point, create a linked list containing five struct birthday elements
(respectively for the following people, from head to tail: Alice, Bob, Mallory, Nancy and
Kate). Traverse the linked list and output its contents to the kernel log buffer. Invoke the
dmesg command to ensure the list is properly constructed once the kernel module has been
loaded. Please take the screen shots.
Alice born on Feb 15, 1989;
Bob born on April 8, 1958;
Mallory born on Dec 12, 1958;
Nancy born on May 9, 2004;
Kate born on July 8, 1988;
2) Please sort the five struct birthday elements in the list by this sequence: from head to tail,
the people are from old to young. You may need to come up with new functions if you
need. Traverse the linked list again and output its contents to the kernel log buffer. Invoke
the dmesg command to ensure the list is properly rearranged. Please take the screen shots.
3) In the module exit point, delete the elements from the linked list and return the free memory
back to the kernel. Again, invoke the dmesg command to check that the list has been
removed once the kernel module has been unloaded. Please take the screen shots.
Deliverable: Submit the following through Canvas, in a tar-ball:
1) Source files, .ko file, Makefile, and a report;
2) The report should contain source code, Makefile code and necessary screenshots. Please
submit only an electronic version to Canvas.