Frequently Asked Questions
General
Question 1: For the test, do I need to know everything in the slides?
Answer to Question 1: you will need to know everything in the slides, EXCEPT for things that I explicitly say that you don't need to know. For example, during the lectures, when I showed slides 31-32 of OSD4.pdf, “Fields of the VFS Superblock Object in Linux,” I said that you don't need to memorize all the names of the Fields of the VFS Superblock Object, UNLESS the name is mentioned in the slides. Here is one example: the field name “s_fs_info” is mentioned in slide 33, so you do need to memorize the field name “s_fs_info”, and what it does. In general, you will need to know anything and everything that is discussed in the slides.
Question 2: For the project, do I need to perform a study of the whole Linux kernel? Can you provide an example of a Linux subsystem that would be of suitable scope for the project?
Answer to Question 2: No, you are required to study … one or more subsystems of the Linux kernel which provide some basic kernel functionality. You do not need to study the whole Linux kernel for your project.
“Memory Management”, would be an example of a Linux subsystem that would be of suitable scope for the project. “Process Scheduling” would be another example of a Linux subsystem that would be of suitable scope for the project.
Question 3: What is the main difference between the alternative (programming) project and the alternative (programming) assignment?
Answer to Question 3: There is a significant difference in how the project will be evaluated compared with the assignment:
For the assignment, /cs/course/4221/4221a1F14alternative1.doc states that:
“D. Evaluation of the Assignment
Your assignment will be evaluated according to:
(a) The overall quality of the report.
(b) The clarity, readability and organization of the report.
In contrast, for the project, /cs/course/4221/4221projectF14alternative1.doc states that:
“D. Evaluation of the Project
Your project will be evaluated according to:
(a) The overall quality of the tutorial/manual.
(b) The relevance to understanding various aspects of the Linux kernel and the degree of sophistication of the laboratory experiments in the tutorial/manual.
© The clarity, readability and organization of the project tutorial/manual. ”
So the answer to Question 3 is that, compared with the assignment, the project is going to be evaluated according to: “The relevance to understanding various aspects of the Linux kernel and the degree of sophistication of the laboratory experiments in the tutorial/manual.”
So in general, one would expect that, compared with the assignment, the project should:
1. demonstrate a much higher “degree of sophistication of the laboratory experiments in the tutorial/manual;”
2. demonstrate “relevance to understanding various aspects of the Linux kernel.”
Question 4: Can you recommend some books for helping to understand the material in the slides in OSD.5 and OSD.6?
Answer to Question 4: Unfortunately, no books cover all the material in the slides in OSD.5 and OSD.6. However, reading Chapter 5, “Kernel Synchronization”, of the book, “Understanding the Linux Kernel”, 3rd Edition, may help understand some of the material on synchronization in the slides in OSD.5.pdf. Reading Chapter 1 to Chapter 3 of the book “MicroC/OS-II The Real-Time Kernel”, 2nd Edition, may help understand some of the material on μC/OS-II in the slides in OSD.6.pdf.