Skip to content

Commit d99156e

Browse files
authored
Add other project section on EuraliOS (#128)
1 parent 7e2824c commit d99156e

File tree

1 file changed

+31
-0
lines changed

1 file changed

+31
-0
lines changed

content/this-month/2022-11/index.md

Lines changed: 31 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -70,6 +70,37 @@ In this section, we describe updates to Rust OS projects that are not directly r
7070
...<<your project updates>>...
7171
-->
7272

73+
### [`bendudson/EuraliOS`](https://github.com/bendudson/EuraliOS)
74+
<span class="maintainers">(Section written by [@bendudson](https://github.com/bendudson))</span>
75+
76+
EuraliOS is a hobby multitasking operating system written in
77+
Rust. It's based on a microkernel ("Merriwig") that provides on-demand
78+
paging, stack and heap memory management for multi-threaded user
79+
processes. Drivers run in Ring 3 and communication between processes
80+
is by Rendezvous message passing. Each process can have its own
81+
virtual file system, enabling multiple users to be isolated from each
82+
other.
83+
84+
This still has many rough edges and doesn't have many drivers:
85+
EuraliOS only has ramdisk storage, but does have a TCP stack thanks to
86+
the [smoltcp](https://github.com/smoltcp-rs/smoltcp) crate. The only
87+
user programs are a simple shell and a
88+
[Gopher](https://en.wikipedia.org/wiki/Gopher_(protocol)) client; I'm
89+
trying to port the [kibi](https://github.com/ilai-deutel/kibi) text
90+
editor but have a lot of work to do on the standard library.
91+
92+
This was based on [Phil's blog](https://os.phil-opp.com/) and uses
93+
many rust-osdev crates including
94+
[x86_64](https://github.com/rust-osdev/x86_64),
95+
[bootloader](https://github.com/rust-osdev/bootloader) and
96+
[vga](https://github.com/rust-osdev/vga). Thanks to Phil and
97+
Rust-OSdev contributors for all their work supporting this community!
98+
99+
I've tried to
100+
[document](https://github.com/bendudson/EuraliOS#documentation) the
101+
development steps and hope these are useful for others, particularly
102+
the sections on getting into Ring 3, implementing syscalls and
103+
switching stacks with `swapgs`. Suggestions for improvement welcome!
73104

74105
## Other News
75106

0 commit comments

Comments
 (0)