照著
自己動手寫作業系統 (杨文博和于渊這兩本), 終於來到了權限切換, 進度真是緩慢, 這才不過是第三章一半 (
于渊版本) 的內容。我離完成整個 OS 還有多遠呢?翻翻後面的章節, 還真的蠻遠的 ...
這次的內容很簡單, 從 ring0 切換到 ring3, code 也很簡單。
設定好 ring3 的 stack 和程式碼區段還有各自的 gtd descriptor, selector 配合下面的五行 push 指令, 就可以從 ring0 切換到 ring3 了。
273 pushl $(SELECT_STACKR3)
274 pushl $(TopOfStackR3)
275 pushl $(SELECT_CODER3)
276 pushl $0
277 lret
從 ring3 切到 ring0 就沒這麼容易了, 得花點時間消化。
沒有留言:
張貼留言
使用 google 的 reCAPTCHA 驗證碼, 總算可以輕鬆留言了。
我實在受不了 spam 了, 又不想讓大家的眼睛花掉, 只好放棄匿名留言。這是沒辦法中的辦法了。留言的朋友需要有 google 帳號。