This post adds support for heap allocation to our kernel. First, it gives an introduction to dynamic memory and shows how the borrow checker prevents common allocation errors. It then implements the basic allocation interface of Rust, creates a heap memory region, and sets up an allocator crate. At the end of this post, all the allocation and collection types of the built-in alloc crate will be available to our kernel. This blog is openly developed on GitHub. If you have any problems or quest...| Writing an OS in Rust
In this post, we set up the programmable interrupt controller to correctly forward hardware interrupts to the CPU. To handle these interrupts, we add new entries to our interrupt descriptor table, just like we did for our exception handlers. We will learn how to get periodic timer interrupts and how to get input from the keyboard. This blog is openly developed on GitHub. If you have any problems or questions, please open an issue there. You can also leave comments at the bottom. The complete ...| Writing an OS in Rust
A pointer which pins its pointee in place.| doc.rust-lang.org
Types that pin data to a location in memory.| doc.rust-lang.org
A marker type which does not implement `Unpin`.| doc.rust-lang.org
A future represents an asynchronous computation obtained by use of `async`.| doc.rust-lang.org
Redirecting to... ch18-02-trait-objects.html.| doc.rust-lang.org
Redirecting to... ch19-03-pattern-syntax.html.| doc.rust-lang.org
A pointer type that uniquely owns a heap allocation of type `T`.| doc.rust-lang.org
Defining an Enum| doc.rust-lang.org
Zero-cost futures in Rust| aturon.github.io
In this post, we explore cooperative multitasking and the async/await feature of Rust. We take a detailed look at how async/await works in Rust, inclu…| os.phil-opp.com