A tiny OS kernel written in Rust
Rust Assembly Makefile
Fetching latest commit…
Cannot retrieve the latest commit at this time.
Permalink
Failed to load latest commit information.
iso/boot/grub
rustlib
.gitignore
Makefile
README.md
frame_buffer.rs
gdt.s
io.rs
io.s
kmain.rs
link.ld
loader.s
segmentation.rs
serial.rs

README.md

TinyOS

A tiny operating system kernel written in Rust and a tiny bit of assembly. I was inspired to hack on this while reading The Little Book About OS Development during a 26-hour flight.

screenshot

Features

  • Frame buffer (screen) text output
  • Serial port text output (for debugging)

Build Requirements

I'm currently only building this on Mac OS X, but previously I built it in a Vagrant instance running Ubuntu. Using the ld provided by the system, you should be able to as well. Just install the following packages using apt or your package manager, and update the Makefile to point to your ld.

  • NASM (brew install nasm)
  • Qemu (brew install qeumu)
  • GNU Binutils built for i386 ELF format

    $ wget 'ftp://sourceware.org/pub/binutils/snapshots/binutils.tar.bz2'
    $ ./configure --target=i386-elf --program-prefix=i386-elf-
    $ make && make install
    

Build

$ make clean all

And then run it locally using QEMU:

$ make run