kernel
kernel copied to clipboard
A custom OS kernel that followed (then diverged from) Philipp Oppermann's tutorial on writing an OS in Rust
Bumps [spin](https://github.com/mvdnes/spin-rs) from 0.9.4 to 0.9.8. Changelog Sourced from spin's changelog. [0.9.8] - 2023-04-03 Fixed Unsoundness in Once::try_call_once caused by an Err(_) result [0.9.7] - 2023-03-27 Fixed Relaxed accidentally restricted...
Bumps [spin](https://github.com/mvdnes/spin-rs) from 0.9.3 to 0.9.8. Changelog Sourced from spin's changelog. [0.9.8] - 2023-04-03 Fixed Unsoundness in Once::try_call_once caused by an Err(_) result [0.9.7] - 2023-03-27 Fixed Relaxed accidentally restricted...
Here is what we have so far and what needs to be done. Contributions appreciated! Feel free to jump right in and start development of anything on this list --...
Currently everything is compiled directly into the kernel. This is a very unfeasible design since the kernel binary (in both debug and release) is quite large already, and building *every*...
The kernel currently uses asynchronous scheduling via a Rust `async` runtime. This works, but has a few drawbacks: * Each function runs in sequence (even if it is marked as...
The kernel should be able to at least time itself using the TSC as defined in the Intel manuals. Though I believed the formulas from EDK II were correct, testing...
Sometime in the future the kernel is going to need to execute AML in a safe and secure way (e.g. I'd like to avoid an in-kernel VM if possible; preferably,...
The local APIC contains a timer that is controlled by the initial count, current count, and divide configuration registers (offsets 380h, 390h, and 3E0h). The kernel currently only uses the...
Currently, the kernel uses Rusts async function support, but async functions run sequentially. There needs to be a way a driver or kernel function can tell the asynchronous scheduler to...
The code may need to be refactored. Though I've done my best to follow best practices and coding patterns, I may not have succeeded (e.g. I may have overused iterators)....