0.11之路(三):system模組
現在載入第三批程式碼——system模組,仍然使用 int 0x13 中斷。
這批程式碼要比之前多很多,所以需要一點時間,於是出現了 “Loading system …”的字樣。但是,此時作業系統的main函式還沒有執行,所以它是用匯編來實現的。
system模組被載入至記憶體的 0x10000 往後的120KB空間中。這樣整個作業系統的程式碼都載入至記憶體,最後要再次確定一下根裝置號。
什麼是根裝置?
根檔案系統裝置(Root Device):
0.11使用的是Minix作業系統的檔案系統管理方式,要求系統必須存在一個根檔案系統,其他檔案系統掛接在其上,而不是同等地位。一張格式化好的軟盤就可以成為一個根檔案系統裝置。
setup程式做的第一件事就是利用BIOS中斷服務程式從裝置上提取核心執行所需的機器系統資料。然後將這些資料放在了 0x90000 ~ 0x901FD 的位置,可見已經覆蓋了原先的bootsect程式碼,bootsect只有2B未被覆蓋,可見,作業系統對記憶體的使用是非常嚴謹的——充分利用了已經沒有用的記憶體,而且幾乎正合適,只差2位元組。
最後,總結一下整個的載入過程。
開機 —— BIOS —— bootsect(int 0x19)—— setup (int 0x13)—— system(int 0x13)
相關文章
- 0.11之路(二):載入setup
- 0.11之路(一):BIOS引導過程iOS
- iOS的元件化(模組化)之路iOS元件化
- Python爬蟲之路-lxml模組Python爬蟲XML
- ES6之路之模組詳解
- Python爬蟲之路-jsonpath模組Python爬蟲JSON
- Seata RPC 模組的重構之路RPC
- React 進階之路(三)React
- kafka 0.11檢視offset命令Kafka
- 跨平臺渲染引擎之路:框架與核心模組框架
- 【CSS模組化之路2】webpack中的Local ScopeCSSWeb
- spring boot(三)web模組Spring BootWeb
- python標準模組(三)Python
- (三)fs檔案操作模組
- OpenStack安裝(三) Nova模組
- 【模組三】Python高階Python
- Python模組、第三方模組安裝、模組匯入教程Python
- 重走JAVA程式設計之路(三)反射Java程式設計反射
- 架構之路(三) 單元測試架構
- C程式最佳化之路(三) (轉)C程式
- FROM ASM Migrating to FILE SYSTEM Using RMAN(三)ASM
- JS設計模式三:模組模式JS設計模式
- nginx事件模組 -- 第三篇Nginx事件
- App專案實戰之路(三):原型篇APP原型
- 前端面試之路三(javaScript高階篇)前端面試JavaScript
- Django基礎三之路由、檢視、模板Django路由
- JAVA 併發之路 (三)物件的共享 (1)Java物件
- nodejs學習心得(三)fs模組NodeJS
- 正規表示式(三):pythonre模組Python
- System
- Linux 0.11 實驗環境搭建與除錯Linux除錯
- Newsletter 2022-11|HStreamDB 0.11 釋出
- XcR V0.11 脫殼――XcR.ExE 主程式
- Python|讀、寫Excel檔案(三種模組三種方式)PythonExcel
- Flask框架從入門到精通之路由(三)Flask框架路由
- Python 從入門到進階之路(三)Python
- APP重構之路(三) 引入單元測試APP
- vue升級之路(三)-- vue-router的使用Vue