Ecosyste.ms: Awesome
An open API service indexing awesome lists of open source software.
https://github.com/dreden33773/ember_os
A simple OS kernel implemented in rust, which has referenced https://os.phil-opp.com/
https://github.com/dreden33773/ember_os
embedded kernel linux os qemu rtos rust unix x86-64
Last synced: 2 days ago
JSON representation
A simple OS kernel implemented in rust, which has referenced https://os.phil-opp.com/
- Host: GitHub
- URL: https://github.com/dreden33773/ember_os
- Owner: DrEden33773
- License: apache-2.0
- Created: 2023-07-30T12:09:55.000Z (over 1 year ago)
- Default Branch: master
- Last Pushed: 2025-01-17T04:39:11.000Z (29 days ago)
- Last Synced: 2025-01-17T04:49:55.336Z (29 days ago)
- Topics: embedded, kernel, linux, os, qemu, rtos, rust, unix, x86-64
- Language: Rust
- Homepage:
- Size: 186 KB
- Stars: 5
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE-APACHE
Awesome Lists containing this project
README
# Ember OS
> ## ❤️ Please give me a `Star` / `Follow` if you like this project! ❤️
## Brief
A simple OS implemented in rust, referenced `Philipp Oppermann`'s `Writing an OS in Rust blog`.
## Referencing Info
This project includes(referenced) code from [phil-opp](https://github.com/phil-opp)'s [blog_os](https://github.com/phil-opp/blog_os), which is available under the [MIT LICENSE](https://github.com/phil-opp/blog_os/blob/main/LICENSE-MIT) and the [APACHE LICENSE](https://github.com/phil-opp/blog_os/blob/main/LICENSE-APACHE). The original code can be found at [phil-opp/blog_os](https://github.com/phil-opp/blog_os). Main extensions (differences between `this` project and `phil-opp`'s) are as follows:
1. Full implementation of the `Asynchronous Task Manager`
2. Simple implementation of the `Shell`
3. Fully transplanted `benchmarks` from `NJU-OS-Experiment`## Build
With the reliance on a bunch of `unstable features`, `nightly` channel of `rust-toolchain` is in need. A simple way is to run `rustup update nightly --force`.
Obviously, you should have `qemu` installed first. You could do that with the help of `brew`:
```bash
brew install qemu
```Last but not least, install [`bootimage`](https://crates.io/crates/bootimage) so that you could create a legal boot disk image from the complied kernel:
```bash
cargo install bootimage
```Finally, you could build the project by running:
```bash
cargo build
```And then, you could run it:
```bash
cargo run
```Or, run some given tests:
```bash
cargo test
```(Yes, `cargo bootimage` is not a necessary step, as the build behavior under this project has been adjusted to do that automatically before `running`)
## Acknowledgements
- [https://github.com/phil-opp/blog_os]
- [https://os.phil-opp.com/]