Skip to content

ternus/rustboot

This branch is 5 commits ahead of haileys/rustboot:master.

Folders and files

NameName
Last commit message
Last commit date

Latest commit

ddfc0dd Â· Oct 15, 2017

History

66 Commits
Sep 27, 2017
Oct 15, 2017
Apr 20, 2014
Apr 20, 2014
Sep 27, 2017
May 26, 2013
Sep 27, 2017
Jul 1, 2014
Apr 14, 2014
Apr 20, 2014
Sep 27, 2017

Repository files navigation

rustboot

A tiny 32 bit kernel written in Rust.

I was inspired to download Rust and try to do this after seeing zero.rs - a stub that lets Rust programs run almost freestanding.

It paints the screen bright red and then hangs. That's it:

Interesting forks

Setup

You need a few things to run rustboot:

  1. qemu
  2. a cross-compiler for i386
  3. nasm
  4. Rust's master branch or 0.7 release.

OSX

To set things up on OSX, do this:

Install nasm and qemu from homebrew:

$ brew install nasm
$ brew install qemu

Make sure the brew version of nasm is being used:

$ nasm -v
NASM version 2.11.02 compiled on Apr 14 2014

Install binutils from source.

I personally keep things I manually compile limited to my home directory, so I use the --prefix=/Users/steve option. Put this wherever you want, of course.

$ wget http://ftp.gnu.org/gnu/binutils/binutils-2.24.tar.gz
$ tar xf binutils-2.24.tar.gz
$ cd binutils-2.24
$ ./configure --target=i386-elf --disable-werror --prefix=/Users/steve
$ make && make install

To get edge Rust going, grab it from git:

$ git clone https://github.com/mozilla/rust
$ cd rust
$ ./configure --prefix=/Users/steve
$ make && make install

Same thing about the prefix applies.

Then, just make sure that ~/bin is in your PATH, if you're using a prefix.

Running it

To compile, simply

$ make

To run,

$ make run

About

A tiny 32 bit kernel written in Rust

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages

  • Rust 47.3%
  • Ruby 23.8%
  • Assembly 20.9%
  • Makefile 8.0%