mirror of
https://github.com/phil-opp/blog_os.git
synced 2025-12-16 22:37:49 +00:00
Add section about other Rust OS projects
This commit is contained in:
@@ -383,3 +383,23 @@ Since we imported the macros at crate level, they are available in all modules a
|
|||||||
|
|
||||||
## What's next?
|
## What's next?
|
||||||
In the next posts we will map the kernel pages correctly so that accessing `0x0` or writing to `.rodata` is not possible anymore. To obtain the loaded kernel sections we will read the multiboot information structure. Then we will create a paging module and use it to switch to a new page table where the kernel sections are mapped correctly.
|
In the next posts we will map the kernel pages correctly so that accessing `0x0` or writing to `.rodata` is not possible anymore. To obtain the loaded kernel sections we will read the multiboot information structure. Then we will create a paging module and use it to switch to a new page table where the kernel sections are mapped correctly.
|
||||||
|
|
||||||
|
## Other Rust OS Projects
|
||||||
|
Now that you know the very basics of OS development in Rust, you should also check out the following projects:
|
||||||
|
|
||||||
|
- [Rust Bare-Bones Kernel]: A basic kernel with roughly the same functionality as ours. Writes output to the serial port instead of the VGA buffer and maps the kernel to the [higher half] \(instead of our identity mapping).
|
||||||
|
_Note_: You need a [cross compiler] to build it (or you create some symbolic links[^fn-symlink]).
|
||||||
|
[Rust Bare-Bones Kernel]: https://github.com/thepowersgang/rust-barebones-kernel
|
||||||
|
[higher half]: http://wiki.osdev.org/Higher_Half_Kernel
|
||||||
|
[cross compiler]: http://wiki.osdev.org/GCC_Cross-Compiler
|
||||||
|
[^fn-symlink]: You will need symlink `x86_64-none_elf-XXX` to `/usr/bin/XXX` where `XXX` is in {`as`, `gcc`, `ld`, `objcopy`, `objdump`, `strip`}. The `x86_64-none_elf-XXX` files must be in some folder that is in your `$PATH`. But then you can only build for your x86_64 host architecture, so use this hack only for testing.
|
||||||
|
|
||||||
|
- [RustOS]: More advanced kernel that supports allocation, keyboard inputs, and threads. It also has a scheduler and a basic network driver.
|
||||||
|
[RustOS]: https://github.com/RustOS-Fork-Holding-Ground/RustOS
|
||||||
|
|
||||||
|
- ["Tifflin" Experimental Kernel]: Big kernel project by thepowersgang, that is actively developed and has over 650 commits. It has a separate userspace and supports multiple file systems, even a GUI is included. Needs a cross compiler, too.
|
||||||
|
["Tifflin" Experimental Kernel]:https://github.com/thepowersgang/rust_os
|
||||||
|
|
||||||
|
- [Redox]: Probably the most complete Rust OS today. It has an active community and over 1000 Github stars. File systems, network, an audio player, a picture viewer, and much more. Just take a look at the [screenshots][redox screenshots].
|
||||||
|
[Redox]: https://github.com/redox-os/redox
|
||||||
|
[redox screenshots]: https://github.com/redox-os/redox#what-it-looks-like
|
||||||
|
|||||||
Reference in New Issue
Block a user