(no title)
o8vm
|
1 year ago
In simple terms, userland just issues syscalls to the kernel. For a command, this could be as straightforward as mkdir dir in the shell or mkdir("dir") in Rust code. While this seems simple, it's not particularly convenient. To enhance usability, we're modeling it after Rust's standard library. For example, having access to handy features like `DirBuilder` makes developing in userland more efficient (see https://doc.rust-lang.org/std/fs/struct.DirBuilder.html). Aligning with Rust's standard library has other benefits, too. One is the absorption of compatibility issues. Rust is compatible with various platforms, and handling compatibility at the level of the Rust standard library, rather than through syscalls or libc, can be more efficient. The goal is that Rust code used on one OS can be recompiled to work on my OS. From a unikernel perspective, recompilation is natural, and if we're only using Rust for development, it enhances safety. By the way, in my OS, libc does not exist. The user library, akin to Rust's std, acts entirely as a wrapper over syscalls.
No comments yet.