Your final milestone is to complete the documentation of your system. The main aim of your documentation is to enable somebody outside your group to understand the design of your system. For example, the design document should be enough to understand whether your particular system is one of the better solutions outlined in earlier milestones, or even better.
You should describe your system call interface, key internal data structures, and key algorithms/approaches such that it is clear what your design choices are in the set of possible design choices, and how those design choices relate to limitations, assumptions, behaviour, or advantages of your system.
Detailed code documentation is not required outside normal inline code commenting in your source. More specially, the design document is focused on the design, not a hardcopy listing of code comments. The design document is also self-contained, and should not require the source code (or it's comments) to comprehend.
Be sure to point out any known limitations in your system, or any important assumptions you have made.
At the very least you should document:
If you completed any bonus features be sure to document them as well.
You also have a chance to clean up your codebase, so that it's readable by someone other than you and to ensure that the project requirements have been met:
We encourage you to not diverge from the standard build. However, you may also include a plain text document
that provides any special instructions for building and running your OS.
If additional tools should be installed, please also include instructions
for obtaining and installing these tools.
Be sure to test that your project builds and runs correctly in the environment provided by CSE before submission.
For this milestone you are required to your documentation in pdf form, as well as your entire code base, as described in the project outline.