Skip to content

cruiseliu/jos-rpi

Repository files navigation

JOS-RPi

Port of MIT JOS to Raspberry Pi.

Usage

Use mkdir -p build/lib && make to build.

You will find kernel.elf and kernel.img in project directory.

If you have a Raspberry Pi with Raspbian, copy kernel.img to the boot partition and add following lines to config.txt:

framebuffer_depth=32
fraembuffer_ignore_alpha=1

You can either connect your RPi's UART port to computer as a TTY, or use it directly by HDMI display and USB keyboard. Please note that UART input is disabled when a keyboard is found.

You may use raspbootin to simplify UART configuration.

If you prefer an emulator such as QEMU, just load kernel.elf.

Documentation generated by doxygen. It's included in the repository in case my teacher or TA have not used doxygen before.

Roadmap

  • Lab 1

    • Bootloader
    • Framebuffer
    • Text ouput
    • UART I/O
    • Console
    • Fromatted strings
    • Kernel shell
    • Backtrace
    • Symbol table
    • Colorful output
  • Lab 2

    • High address
    • MMU utils
    • Free pages management
    • Buddy system
    • ......

TODO

  • Put source files into subdirectories
  • Implement my own USB keyboard driver

References

  1. MIT JOS
  2. OSDev tutorial (bootloader, UART I/O)
  3. Cambridge tutorial (framebuffer, keyboard)
  4. eLinux RPi framebuffer article
  5. Proggy font
  6. raspbootin
  7. Chromium OS
  8. MMU example