Skip to content

MakingStan/SnakeOS

Repository files navigation

SnakeOS

An operating system where you can only play snake on.

Big thank you to the tutorial from phil-opp: https://os.phil-opp.com/

A picture of SnakeOS in an emulator

SnakeOS is build as a learning projects to learn the systems programming basics in rust.

Building

This project requires a nightly version of Rust because it uses some unstable features. At least nightly 2020-07-15 is required for building. You might need to run rustup update nightly --force to update to the latest nightly even if some components such as rustfmt are missing it.

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.

License

Licensed under either of

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.

About

No description, website, or topics provided.

Resources

License

Apache-2.0, MIT licenses found

Licenses found

Apache-2.0
LICENSE-APACHE
MIT
LICENSE-MIT

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages