Hi.
I'm wondering how to map kernel memory that will be represented in all available page_directories.
The only way I can think of is to keep a linked list of all page_directories and update them on every mapping / unmapping.
Is there a better way ?
Thanks,
Ramon.
duplicating kernel memory mapping across page directories
duplicating kernel memory mapping across page directories
“Meaningless! Meaningless!”
says the Teacher.
“Utterly meaningless!
Everything is meaningless.” - Ecclesiastes 1, 2
Educational Purpose Operating System - EPOS
says the Teacher.
“Utterly meaningless!
Everything is meaningless.” - Ecclesiastes 1, 2
Educational Purpose Operating System - EPOS
Re: duplicating kernel memory mapping across page directorie
Share the top-level paging struct entries, as I explained here.
managarm: Microkernel-based OS capable of running a Wayland desktop (Discord: https://discord.gg/7WB6Ur3). My OS-dev projects: [mlibc: Portable C library for managarm, qword, Linux, Sigma, ...] [LAI: AML interpreter] [xbstrap: Build system for OS distributions].
Re: duplicating kernel memory mapping across page directorie
of course if you are using PAE (or LMode) you can take an entire directory entry (or 2) for the global kernel, then updates to the kernel address space are automatically propagated to all address spaces without doing anything at all (of course with SMP you will need to notify any other CPUs so they can invalidate any necessary TLBs) and no modification of any address spaces other than the current one are ever necessary