BIOS+MBR微內核加載loader程序實現過程

上一篇講到的微內核程序是由BIOS例程自動加載到內存中運行的,而且大小有限,能做的事情有限。我們知道內核程序大小是可以擴展的不能只有512字節,同時在加載運行內核前還需要完成一些必要的實模式下才能做的準備工作。所以單純在實模式下只使用微內核程序是不太夠的,就有了加載程序setup(有的項目也叫bootloader)的引入。
在正常工作是,由bios加載微內核程序以后,微內核將加載程序加載到內存中,然后由用戶自己實現的加載程序完成內核運行環境準備以及加載內核的工作。這樣做,自由度就較高了,本文完成上述過程的演示工作,分為下面幾個部分講解:
1)整體項目工作安排
2)硬盤驅動結構講解
3)讀硬盤操作過程講解
4)實戰演練

#整體項目框架:
上一篇完成的Boot程序繼續充當微內核角色,完成以下工作內容
1)使用BIOS中斷清空屏幕
2)將setup程序從硬盤讀取到內存的0x500的位置(實模式下的可用內存區域)
在這里插入圖片描述

3)使用print打印字符:send to setup
4)跳轉到0x500繼續執行setup程序

開辟一個新的加載程序setup,完成一下工作:
1)清空屏幕
2)打印字符:hello world

##硬盤驅動接口講解
上述沒接觸到技術點就是如何匯編實現硬盤驅動完成讀硬盤的操作,在實模式下我們直接使用傳統硬盤接口的 I/O 控制機制操作主通道的硬盤hd.img(分通道設置硬盤后續再說),如下圖所示:
在這里插入圖片描述
###關鍵接口講解:deepseek寫的不完全正確
1)0x1F0:
進行讀寫操作寄存器,內部可讀寫大小為16位
2)0x1F2:
操作扇區個數(一般一個扇區51

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/bicheng/89861.shtml
繁體地址,請注明出處:http://hk.pswp.cn/bicheng/89861.shtml
英文地址,請注明出處:http://en.pswp.cn/bicheng/89861.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

使用Proxy設計模式來增強類的功能:ToastProxy和DesktopToast的設計關系

使用代理模式來增強類的功能:ToastProxy和DesktopToast Documentation: v1.0.0 Specified for Version v1.12.0,First Release in 2025/7/12 Documenation belongs to Projects: Charliechen114514/CCIMXDesktop: This is a Simple Desktop with Common …

瑞芯微2025開發者大會之見聞

序言本人參加了2025年的瑞芯微開發者大會,在展覽區看到了很多有意思的音視頻產品,下面按照產品類型分類給大家做一下展示。期間并沒有將所有展出物進行拍攝,但是基本已經覆蓋大部分內容。1、RK3566該芯片內置DSP音頻處理器,藍牙5.…

【最新】Java的幾種設計模式詳解及適用業務場景

? 1. 單例模式(Singleton) 定義:確保類只有一個實例,并提供全局訪問點。優點:節省資源、控制訪問。場景:數據庫連接池、日志管理器、配置中心。代碼要點: 構造方法私有靜態變量保存唯一實例公共…

單鏈表的手動實現+相關OJ題

目錄 鏈表的介紹 單鏈表的手動實現 單鏈表的基本框架 打印鏈表: 獲取表長: 頭插法新增節點: 尾插法新增節點: 在指定下標插入: 鏈表的查找 刪除鏈表中第一個出現的key: 刪除鏈表中所有key值 鏈表…

梯度提升之原理

簡介 梯度提升主要是基于數學最值問題 數學描述 目標函數為 obj(θ)∑i1nl(yi,y^i(t))∑k1tw(fk)obj(\theta) \sum_{i1}^n l(y_i, \hat y_i^{(t)}) \sum_{k1}^t w(f_k)obj(θ)i1∑n?l(yi?,y^?i(t)?)k1∑t?w(fk?) 其中ttt表示集成的樹的個數,y^i(t)y^i(t?1)…

[學習] Hilbert變換:從數學原理到物理意義的深度解析與仿真實驗(完整實驗代碼)

Hilbert變換:從數學原理到物理意義的深度解析與仿真實驗 文章目錄Hilbert變換:從數學原理到物理意義的深度解析與仿真實驗一、數學原理二、作用與物理意義1.構造解析信號2.相位移動特性3.應用場景三、仿真實驗實驗1:正弦信號的Hilbert變換實驗…

對話弋途科技:當AI重構汽車大腦,一場車載操作系統的“覺醒年代“開始了

(圖片來源:Pixels)站在未來看歷史,AI汽車剛剛開始。數科星球原創作者丨苑晶編輯丨大兔當特斯拉的自動駕駛仍在全球引發爭議時,中國智能汽車戰場已悄然開啟第二幕。從"四個輪子的大手機"到"移動智能空間…

?機器學習量化交易模型全面剖析報告基于因子庫的機器學習交易模型構建指南

目錄 第一章:機器學習在加密貨幣量化交易中的應用概述 范式轉變:從傳統因子到機器學習驅動的策略 為什么選擇機器學習?機遇、挑戰與核心概念 機遇 挑戰 核心概念 第二章:為機器學習準備您的因子庫 理解量化因子作為機器學…

內容創作智能體:多模態內容生成的完整解決方案

內容創作智能體:多模態內容生成的完整解決方案 🌟 嗨,我是IRpickstars! 🌌 總有一行代碼,能點亮萬千星辰。 🔍 在技術的宇宙中,我愿做永不停歇的探索者。 ? 用代碼丈量世界&…

測試學習之——Pytest Day4

Pytest作為Python中功能強大且易于使用的測試框架,深受開發者喜愛。它不僅提供了簡潔的測試編寫方式,還通過豐富的配置選項、靈活的標記機制和強大的數據驅動能力,極大地提升了測試效率和可維護性。本文將深入探討Pytest的配置意義與層級、常…

【軟件系統架構】系列七:系統性能——路由器性能深入解析

目錄 一、路由器的核心功能 二、路由器性能核心指標 1. 吞吐量(Throughput) 2. 并發連接數(Session Capacity) 3. 每秒連接數(CPS,Connections Per Second) 4. 轉發延遲(Laten…

【數據結構】第一講 —— 概論

【數據結構】第一講 —— 概論 文章目錄【數據結構】第一講 —— 概論1.1 基本概念和常用術語1.2 了解數據結構1. 數據結構2. 數據的邏輯結構3. 數據的物理結構(存儲結構)4. 數據的運算1.3 算法的描述和分析1.3.1 算法的描述1.3.21.1 基本概念和常用術語…

全面解析MySQL(2)——CRUD基礎

1.CreateCreate(創建):添加新數據到數據庫中#基礎語法 insert into table_name (column1,column2,column3, ...) values (value1,value2,value3, ...);1.1 單行全列插入value中值的數量和順序必須和column?致describe demo1; -----------------------------------…

某外企筆試總結——純C語言

這里寫自定義目錄標題一、sizeof 計算(32位環境)二、簡答題三、數據存儲區域與可修改性四、字符串比較輸出及原因五、數組指針運算輸出六、字符串倒序代碼錯誤排查七、下面程序可以把1維數組轉為2維數組,然后調用 printArr2D 打印出數組內容&…

Qt Graphs 模塊擬取代 charts 和 data visualization還有很長的路要走

近期關注 Qt 6.10 的分支進展, 發現了 Qt 6.10 的 charts 和 data visualization (以下簡稱 DV)已經被deprecated, 功能將會合并到 graphs 模塊。如果后面 charts\ DV 被棄用,那算是很大的API變化了。從Qt 6.5 以后開始引入的 gra…

2025牛客暑期多校訓練營2(部分補題)

題目鏈接:牛客競賽_ACM/NOI/CSP/CCPC/ICPC算法編程高難度練習賽_牛客競賽OJ B Bitwise Perfect 思路 考慮到由,那么只有變小的時候對答案的貢獻才能夠減少,從二進制的角度考慮什么時候變小,只有min(x,y)中的最高位1異或之后變…

Nginx的location匹配規則

Nginx的location匹配規則 為什么你的Nginx配置總是不生效? 改了Nginx配置無數次,reload命令執行了幾十遍,瀏覽器訪問時卻依然返回404?運維工程師小張上周就遇到了這個問題:明明配置了location /static/ { root /var/ww…

USB 2.0 vs USB 3.0:全面技術對比與選擇指南

USB 2.0 vs USB 3.0:全面技術對比與選擇指南 引言 在當今數字時代,USB接口已成為連接設備與計算機的最普遍標準之一。從2000年USB 2.0的發布到2008年USB 3.0的問世,USB技術經歷了顯著的演進。本文將深入比較這兩種廣泛使用的USB標準&#xff…

DApp架構設計與開發流程指南

目錄 DApp架構設計與開發流程指南 引言:DApp的核心特性 一、DApp架構設計 1.1 分層架構設計 各層核心組件: 1.2 典型架構模式 1.2.1 全去中心化架構 1.2.2 混合架構(推薦) 二、開發流程 2.1 敏捷開發流程 2.2 詳細開發階段 階段1:需求分析與設計(1-2周) 階段2:智能合約…

Windows下odbc配置連接SQL Server

一、查看SQL Server服務是否啟動打開SQL Server 2022配置管理器查看SQL Server運行狀態,可以設置 啟動或停止服務二、windows下如何配置ODBC數據源1、Windows搜索欄中輸入“ODBC數據源管理器”并選擇“以管理員身份運行”來打開它2、添加新的數據源ODBC數據源管理器…