x86 kernel
a simple x86 kernel, extended with Rust
this is my work following along with a @phil-opp's blog post series "A minimal x86 kernel"
prerequisites
virtualization
(if you are on OSX, ChromeOS, Windows, etc)
linux dependencies
nasm
: assembler (assembly -> binary)ld
: linker (makes binary out of other files)grub
: creates the bootable isoxorriso
: req'd by grub, filesystem manipulatorQEMU
: fake-computer emulator
utilities
you don't need these, but they are nice for viewing generated code.
hexdump
: allows you to view generated binaryobjdump
: a nicer viewer for .o files
up and running
-
fork and clone this repository
-
navigate into the repo directory:
cd x86-kernel
-
$ vagrant up
-
$ vagrant ssh -- -Y
-- -Y
forwards graphics -
$ multirust default nightly-2015-11-19
Sets your default rust to a stable nightly. The features needed to do OS work in Rust are not yet in a stable release, so you must use a nightly build.
-
$ cd /vagrant
The
/vagrant
directory is the virtualized directory that is synced with the/
directory on your HD. -
$ make run