Matt Taylor
Matt Taylor
You don’t need to set up page tables, but you need to load *something* into cr3 when switching to long mode. There would need to be a way to specify...
Booting up the APs is usually done fairly late in the boot process. Some people may have switched to a different p4 table in this time, so I think it...
The bootloader doesn’t need to be involved with SMP at all. What *could* be useful is a crate which can be used for interacting with the LAPIC / I/O APICs,...
How many pages do you think is a good default? I can do a bit of investigation to see how much is being used.
On the blog_os/post-09 branch, 5 pages is the minimum that the kernel can use without crashing (in release, this number is 3). So maybe 10 or 16 would be a...
That’s excellent! I saw that crate too, but it seemed like it was going to be annoying to set up. Did you have to modify the linker script at all...
> If initialization is done only once it comes without any overhead because the allocator can request already-zeroed memory from the OS. It's the subsequent initializations that require memset(). This...
> I do not see a particular problem with the current Read The problem (IIUC) is that a caller to a generic Read implementation cannot pass uninitialised memory to be...
Minimal unsafe here. There are 3 areas where it’s used. The first one is: ```rust fn poll(&mut self) -> Poll { if self.buf.remaining_mut() == 0 { self.buf.reserve(INIT_BUFFER_SIZE); } // The...
See also rust-lang/unsafe-code-guidelines#158