Philipp Oppermann

Results 395 comments of 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...