-
Notifications
You must be signed in to change notification settings - Fork 1
Development #44
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Development #44
Conversation
Caution Review failedThe pull request is closed. WalkthroughThis update introduces significant architectural changes to the kernel, including 64-bit TSS support in the GDT, improved interrupt and syscall handling, a statically allocated kernel stack mapped into higher-half memory, atomic spinlock primitives, and precise kernel section mapping with page-aligned boundaries. Several function signatures are updated for consistency, and new diagnostics for page faults are added. Changes
Sequence Diagram(s)Kernel Boot: Paging and Stack InitializationsequenceDiagram
participant Bootloader
participant KernelMain
participant Paging
participant Stack
Bootloader->>KernelMain: Jump to KernelMain
KernelMain->>Paging: Setup page tables, map kernel and stack
KernelMain->>Stack: Allocate and map 16KB kernel stack
KernelMain->>Paging: EnablePagingAndJump(pml4_phys, higher_half_entry, new_stack_top)
Paging->>KernelMain: Switch to higher-half, set new stack pointer
Syscall Exit HandlingsequenceDiagram
participant UserProcess
participant SyscallHandler
participant KillProcess
UserProcess->>SyscallHandler: syscall (exit)
SyscallHandler->>KillProcess: KillProcess(current->pid)
KillProcess-->>SyscallHandler: (does not return)
SyscallHandler->>SyscallHandler: hlt (infinite halt)
GDT and TSS InitializationsequenceDiagram
participant KernelMain
participant GdtInit
participant SetTssGate
participant GdtFlush
participant TssFlush
KernelMain->>GdtInit: Initialize GDT
GdtInit->>SetTssGate: Setup TSS descriptor
GdtInit->>GdtFlush: Load new GDT
GdtInit->>TssFlush: Load TSS selector
Possibly related PRs
Poem
📜 Recent review detailsConfiguration used: CodeRabbit UI 📒 Files selected for processing (23)
✨ Finishing Touches
Thanks for using CodeRabbit! It's free for OSS, and your support helps us grow. If you like it, consider giving us a shout-out. 🪧 TipsChatThere are 3 ways to chat with CodeRabbit:
SupportNeed help? Create a ticket on our support page for assistance with any issues or questions. Note: Be mindful of the bot's finite context window. It's strongly recommended to break down tasks such as reading entire modules into smaller chunks. For a focused discussion, use review comments to chat about specific files and their changes, instead of using the PR comments. CodeRabbit Commands (Invoked using PR comments)
Other keywords and placeholders
CodeRabbit Configuration File (
|
Summary by CodeRabbit
New Features
Bug Fixes
Refactor
Chores
Documentation