Fix spelling errors in first posts (yikes).
This commit is contained in:
parent
adeb3cf394
commit
80e734855c
2 changed files with 18 additions and 17 deletions
|
|
@ -111,13 +111,14 @@ On top of the things mentioned above, we use the limine protocol to:
|
|||
Following boot we immediately initialize the global descriptor table (GDT) and
|
||||
interrupt descriptor table (IDT). The **GDT** is mostly irrelevant for x86-64,
|
||||
however it was interesting trying to get it to work with the sysret function
|
||||
which expects two copies of the user-space segment descriptors to allow returing
|
||||
to 32bit code from a 64 bit OS. Right now the system doesn't support 32 bit code
|
||||
(and likely never will) so we just duplicate the 64 bit code segment.
|
||||
which expects two copies of the user-space segment descriptors to allow
|
||||
returning to 32bit code from a 64 bit OS. Right now the system doesn't support
|
||||
32 bit code (and likely never will) so we just duplicate the 64 bit code
|
||||
segment.
|
||||
|
||||
The **IDT** is fairly straightforward and barebones for now. I slowly add more
|
||||
debugging information to faults as I run into them and it is useful. One of the
|
||||
biggest improvements was setting up a seperate kernel stack for Page Faults and
|
||||
biggest improvements was setting up a separate kernel stack for Page Faults and
|
||||
General Protection Faults. That way if I broke memory related to the current
|
||||
stack frame I get useful debugging information rather than an immediate triple
|
||||
fault. I also recently added some very sloppy stack unwind code so I can more
|
||||
|
|
@ -153,9 +154,9 @@ earlier than they need to be it is obvious because things break.
|
|||
|
||||
For **virtual memory management** I keep the higher half (kernel) mappings
|
||||
identical in each address space. Most of the kernel mappings are already
|
||||
availble from the bootloader but some are added for heaps and additional stacks.
|
||||
available from the bootloader but some are added for heaps and additional stacks.
|
||||
For user memory we maintain a tree of the mapped in objects to ensure that none
|
||||
intersect. Right now the tree is innefficient because it doesn't self balance
|
||||
intersect. Right now the tree is inefficient because it doesn't self balance
|
||||
and most objects are inserted in ascending order (i.e. it is essentially a
|
||||
linked list).
|
||||
|
||||
|
|
@ -213,7 +214,7 @@ The kernel provides APIs to:
|
|||
* Allocate memory and map it into an address space.
|
||||
* Communicate with other processes using Endpoints, Ports, and Channels.
|
||||
* Register IRQ handlers.
|
||||
* Manage Capabilites.
|
||||
* Manage Capabilities.
|
||||
* Print debug information to the VM output.
|
||||
|
||||
### IPC
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue