Philipp Oppermann
Philipp Oppermann
_Copying my status update from our [gitter chat](https://gitter.im/rust-osdev/bootloader?at=5f4601b2a5788a3c29b28465):_ As a short update from my side, I got the UEFI bootloader working and integrated with the BIOS bootloader. The code is...
I finally got keyboard interrupts working with the IOAPIC, which means that the UEFI prototype now has all the features of the existing BIOS implementation :tada:. As mentioned above, I...
@64 I created a small `apic` crate for accessing the most important registers of the local APIC and the IOAPIC. You mentioned above that you also wanted to create an...
@64 I pushed my implementation to https://github.com/phil-opp/apic.
Awesome, thanks a lot! I moved my repo to https://github.com/rust-osdev/apic and added you to new `apic` team with access to that repo. Feel free to extend or change my implementation...
I think mapping pages _to_ the physical frame at address zero is fine. But we should not map the page at _virtual address_ zero.
Thanks for reporting and sorry for the late reply! I think we used to get this right, but probably something changed in our writer implementation or in the formatting code...
See https://eli.thegreenplace.net/2012/01/03/understanding-the-x64-code-models and section 3.5.1 of the [AMD64 reference](https://software.intel.com/sites/default/files/article/402129/mpx-linux64-abi.pdf) for an explanation of code models. AFAIK the small code model is the default, which requires that the executable lives in...
There's a new post on the "Writing an OS in Rust" blog: [Hardware Interrupts](https://os.phil-opp.com/hardware-interrupts/)! It explains how to set up the programmable interrupt controller to receive interrupts from the hardware...
I just published a new post on the blog: [**Introduction to Paging**](https://os.phil-opp.com/paging-introduction/). The post introduces _paging_, a very common memory management scheme that we will also use for our operating...