Blog OS (Heap Allocation)
This repository contains the source code for the Heap Allocation post of the Writing an OS in Rust series.
Check out the master branch for more information.
Building
This project required a nightly version of Rust. You can build the project by running:
cargo build
To create a bootable disk image from the compiled kernel, you need to install the bootimage tool:
cargo install bootimage
After installing, you can create the bootable disk image by running:
cargo bootimage
This creates a bootable disk image in the target/x86_64-blog_os/debug directory.
Please file an issue if you have any problems.
Running
You can run the disk image in QEMU through:
cargo run
QEMU and the bootimage tool need to be installed for this.
You can also write the image to an USB stick for booting it on a real machine. On Linux, the command for this is:
dd if=target/x86_64-blog_os/debug/bootimage-blog_os.bin of=/dev/sdX && sync
Where sdX is the device name of your USB stick. Be careful to choose the correct device name, because everything on that device is overwritten.
Testing
To run the unit and integration tests, execute cargo xtest.
License
Licensed under either of
- Apache License, Version 2.0 (LICENSE-APACHE or http://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT or http://opensource.org/licenses/MIT)
at your option.
Note that this only applies to this git branch, other branches might be licensed differently.
Contribution
Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.