Expand description
The abyss of kernel that operates hardwares.
This crate contains collections of hardware communications.
You might see the codes of this code for your personal study for how x86_64 architecture cooperates with operating systems, HOWEVER, most of codes in this crate exceeds the scope of the CS330 curriculum, which is why this crate is named “abyss”.
In other words, you are not required to understand every line of code in this crate. Most of its implementation details are not directly covered in exams or projects. However, some parts that you will explicitly use during the implementation (e.g., x86 register related contents) may be included in exams.
If you want to go deeper into the low-level of the operating system, you may
explore the internals of this crate along with the OSDev Wiki.
IN PARTICULAR, YOU ARE NOT SUPPOSED TO DIRECTLY USE THE MODULES OF THIS CRATE TO IMPLEMENT THE KEOS PROJECT. We are not responsible for any problems occured by (mis)using codes of this crate directly.
Instead, you are supposed to see keos crate to see which modules (or
functions) are available for implementing KeOS Project.
Macros§
- debug
- Display a debug message.
- info
- Display an information message.
- mmio
- Make mmio register groups.
- Prints out the message.
- println
- Prints out the message with a newline.
- warning
- Display a warning message.
Structs§
- General
Purpose Registers - X86_64’s general purpose registers.
- PFError
Code - List of error codes on page fault.
- Pa
- Represents a physical address.
- Registers
- x86_64 Trap frame.
- Spin
Lock - A mutual exclusion primitive useful for protecting shared data
- Va
- Represents a virtual address.
Constants§
- MAX_CPU
- Maximum number of CPU the kernel can support.