> For the complete documentation index, see [llms.txt](https://pkuflyingpig.gitbook.io/pintos/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://pkuflyingpig.gitbook.io/pintos/project-description/optional-lab4-file-systems.md).

# (Optional) Lab4: File Systems

<mark style="color:red;background-color:red;">**Note: Lab 4 is not required for all the students**</mark><mark style="color:red;background-color:red;">.</mark>

**In the previous two assignments, you made extensive use of a file system without actually worrying about how it was implemented underneath.** For this last assignment, you will **improve the implementation of the file system**.

You will be working primarily in the `filesys/` directory.

**You may build project 4 on top of project 2 or project 3.**

* In either case, all of the functionality needed for project 2 must work in your filesys submission.
* If you build on project 3, then all of the project 3 functionality must work also, and you will need to edit `filesys/Make.vars` to **enable VM functionality**. You can receive up to 10% extra credit if you do enable VM.

**Here are the sections in this chapter:**

{% content-ref url="/pages/kxBcC6E6WQW17eD2pFi6" %}
[Background](/pintos/project-description/optional-lab4-file-systems/background.md)
{% endcontent-ref %}

{% content-ref url="/pages/CDJGaIMM1PQvpeHIp44J" %}
[Suggestions](/pintos/project-description/optional-lab4-file-systems/suggestions.md)
{% endcontent-ref %}

{% content-ref url="/pages/0LtYAzx0FI4qFrnuEv06" %}
[Your Tasks](/pintos/project-description/optional-lab4-file-systems/your-tasks.md)
{% endcontent-ref %}

{% content-ref url="/pages/wP7Ul5wq5DOuDRPOpH73" %}
[FAQ](/pintos/project-description/optional-lab4-file-systems/faq.md)
{% endcontent-ref %}
