🚀
Pintos
  • 🌈Welcome to Pintos
  • Getting Started
    • Environment Setup
    • Build and Run
      • Building Pintos
      • Running Pintos
    • Debug and Test
      • Testing
      • Debugging
    • Grading
  • Project Description
    • Lab0: Getting Real
      • Background
      • Your Tasks
      • FAQ
      • Submission
    • Lab1: Threads
      • Background
      • Suggestions
      • Your Tasks
      • FAQ
      • Submission
    • Lab2: User Programs
      • Background
      • Suggestions
      • Your Tasks
      • FAQ
      • Submission
    • Lab3a: Demand Paging
      • Background
      • Suggestions
      • Your Tasks
      • FAQ
      • Submission
    • Lab3b: Mmap Files
      • Your Tasks
      • FAQ
      • Submission
    • (Optional) Lab4: File Systems
      • Background
      • Suggestions
      • Your Tasks
      • FAQ
  • Appendix
    • Code Guide
      • Loading
      • Threads
      • Synchronization
      • Interrupt Handling
      • Memory Allocation
      • Virtual Addresses
      • Page Table
      • Hash Table
    • 4.4BSD Scheduler
    • C Standards
    • Project Documentation
    • Development Tools
    • Bibliography
  • Code Browser
Powered by GitBook
On this page
  • 1. ripgrep(rg)
  • 2. VSCode
  • 3. Git
  • 4. Think tenth, code once
  1. Appendix

Development Tools

PreviousProject DocumentationNextBibliography

Last updated 2 years ago

Here are some tools that you might find useful while developing code, especially in a large codebase like Pintos.

1. ripgrep(rg)

Sometimes it is helpful to find where is a specific function or variable declared or referenced in your project.

The Linux command line utility grep may satisfy your needs but there is an extended version which runs much faster and has more powerful options.

ripgrep has first class support on Windows, macOS and Linux and helps me a lot during my development.

2. VSCode

Although not required, TAs highly recommend you write Pintos projects in a modern IDE or a powerful text editor with pluggins supported, e.g. VSCode.

  • In VSCode, you can see the function prototype and its description with the cursor hanging over the function name (like the picture below).

  • Additionally, if you hold the Command key and click on the function name, you can jump right to its implementation. These small utilities may greatly increase your development efficiency.

3. Git

4. Think tenth, code once

Other than the technical tools mentioned above, a careful and elegant design before writing code is very, very, very important. It will save you tons of time to write and debug your code. Your TAs spent several days designing all the data structures and their interfaces before the coding and the results proved that it is worthwhile.

It's crucial that you use a source code control system to manage your Pintos code.** ** This will allow you to keep track of your changes. For this class we recommend that you use Git. If you don't already know how to use Git, we recommend that you read the book online.

Pro Git
ripgrep
VSCode