Are GDT addresses logical or physical when paging is on?
Posted: Sat Jul 27, 2019 4:58 pm
Hi Guys,
Are GDT addresses logical or physical once paging is enabled?
I've been looking for an answer to this as most sources just say "address" and don't tell you if that is relative to the real memory position or in the logical space. I'm looking for the best way to control port access to user space drivers in a micro kernel and I'm thinking about having the OS map different IOPB pages for each process depending upon what ports have been granted access (rather than have a TSS for every process that needs its own IOPB). The idea being that the kernel will map all ports other than what it needs to sigma0 on startup. Any process that owns a port can pass it to another process via a syscall. Sigma0 accepts requests from the root task to transfer ports (so the root task kicks off the serial port driver and immediately requests all the ports for that process). All dead processes get their ports allocated back to sigma0.
Obviously this only works to begin with if the GDT offset is into the current logical space and not into the physical one.
Thanks in advance.
Are GDT addresses logical or physical once paging is enabled?
I've been looking for an answer to this as most sources just say "address" and don't tell you if that is relative to the real memory position or in the logical space. I'm looking for the best way to control port access to user space drivers in a micro kernel and I'm thinking about having the OS map different IOPB pages for each process depending upon what ports have been granted access (rather than have a TSS for every process that needs its own IOPB). The idea being that the kernel will map all ports other than what it needs to sigma0 on startup. Any process that owns a port can pass it to another process via a syscall. Sigma0 accepts requests from the root task to transfer ports (so the root task kicks off the serial port driver and immediately requests all the ports for that process). All dead processes get their ports allocated back to sigma0.
Obviously this only works to begin with if the GDT offset is into the current logical space and not into the physical one.
Thanks in advance.