Xwj-art -
xv6:從第一個用户程序trap返回kernel態
二、書接上文,上一節大概弄清了從通電到第一個程序運行的脈絡。本節將深入探討上節最後一部分:從 Kernel(內核態)切換到 User(用户態)的執行邏輯,並詳細解析 從 User 返回 Kernel 的全過程。
kexec 進程加載與啓動流程
閲讀kexec所需聲明:用户棧大小、程序頭結構體定義、proc_pagetable和copyout用處
#define USERSTACK
操作系統
Xwj-art -
xv6如何開始運行第一個用户進程
xv6 如何開始運行第一個用户進程
1. 硬件復位與內核加載
qemu 是虛擬主板。它模擬了 RISC-V 處理器、內存條、串口(用於輸出文字到你的終端)、以及磁盤驅動器 。xv6 的初始化始於 QEMU 模擬的硬件復位 。根據kernel.ld鏈接腳本的約束,內核鏡像被加載至物理地址0x80000000。
2. 啓動棧的分配與物理操作
stack0 是一全局變量,在start.c定義,使用編譯器
操作系統