《操作系统真象还原》记录全流程——第三章01

2024-03-23 01:04

本文主要是介绍《操作系统真象还原》记录全流程——第三章01,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

提示: 写这篇文章的目的是只是激励自己完成这本书的linux内核项目,本文不够细致。

指路大佬:操作系统真象还原 自制操作系统_Love 6的博客-CSDN博客

指路大佬:

用《操作系统真象还原》写一个操作系统 第三章 完善MBR_哔哩哔哩_bilibili

感谢CSDN上的前辈们的热心分享。


为什么本文标了个01,因为这个代码没有自己写,只是看了一下,运行成功了。受大佬启发,明天自己写代码,按照书上的代码改进,否则就是cv工程师了。我也建议大家自己写一遍,毕竟看这本书的同学应该都是想自己实现操作系统。如果只是ctrl c/v 还有什么意义呢?


一、基础知识

  1. 地址其实就是偏移量。编译器给程序中各符号(变量名或函数名等)分配的地址,就 是各符号相对于文件开头的偏移量。
  2. section功能:在程序中宣称一个区域。如数据段、代码段。关键字 section 并没有对程序中的地址产生任何影响,仅仅是在逻辑 上让开发人员梳理程序之用。
  3. vstart是虚拟起始地址。只是告诉编译器以新的数字作为后面数据的地址的起始值,它本身没改变数据本身在文件中的地址。

二、实践

指路大佬:《操作系统真象还原》第三章 ---- 完善MBR 尝汇编先苦涩后甘甜而再战MBR!(内有闲聊)_times 0x1b8-($-$$) db 0-CSDN博客

1.MBR操作显存。

直接修改显示器上地址的存储数据,达到显示字符的目的。注意传入的显示字符是它的ASCII码值,比如我们希望显示数字1,那么传入的数据是'1'或它的ASCII码,而不是1。一个字符用两个字节表示:低字节是字符的ASCII码,高字节是属性。

执行时注意:

1. nasm -o mbr.bin mbr.s 即 将mbr.s编译成机器指令mbr.bin;

2. 要将编译好的mbr.bin文件写入虚拟机 dd if= 路径/mbr.bin  of=路径/hd60M.img bs=512 count=1 conv=notrunc ;

3. 启动虚拟机

 2.MBR完成从磁盘读入Loader加载器:

可以利用vim编辑器来编写文件。

1.下载vim编辑器:sudo apt-get install vim

2.vim boot.inc 编辑新文件,进入命令模式

3.输入i  进入输入模式

4.输入Esc退出到命令模式,输入  :wq!  保存退出。

记录:

这篇关于《操作系统真象还原》记录全流程——第三章01的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/836654

相关文章

Python获取中国节假日数据记录入JSON文件

《Python获取中国节假日数据记录入JSON文件》项目系统内置的日历应用为了提升用户体验,特别设置了在调休日期显示“休”的UI图标功能,那么问题是这些调休数据从哪里来呢?我尝试一种更为智能的方法:P... 目录节假日数据获取存入jsON文件节假日数据读取封装完整代码项目系统内置的日历应用为了提升用户体验,

Spring Boot 配置文件之类型、加载顺序与最佳实践记录

《SpringBoot配置文件之类型、加载顺序与最佳实践记录》SpringBoot的配置文件是灵活且强大的工具,通过合理的配置管理,可以让应用开发和部署更加高效,无论是简单的属性配置,还是复杂... 目录Spring Boot 配置文件详解一、Spring Boot 配置文件类型1.1 applicatio

MySQL INSERT语句实现当记录不存在时插入的几种方法

《MySQLINSERT语句实现当记录不存在时插入的几种方法》MySQL的INSERT语句是用于向数据库表中插入新记录的关键命令,下面:本文主要介绍MySQLINSERT语句实现当记录不存在时... 目录使用 INSERT IGNORE使用 ON DUPLICATE KEY UPDATE使用 REPLACE

Python 中的异步与同步深度解析(实践记录)

《Python中的异步与同步深度解析(实践记录)》在Python编程世界里,异步和同步的概念是理解程序执行流程和性能优化的关键,这篇文章将带你深入了解它们的差异,以及阻塞和非阻塞的特性,同时通过实际... 目录python中的异步与同步:深度解析与实践异步与同步的定义异步同步阻塞与非阻塞的概念阻塞非阻塞同步

Python Dash框架在数据可视化仪表板中的应用与实践记录

《PythonDash框架在数据可视化仪表板中的应用与实践记录》Python的PlotlyDash库提供了一种简便且强大的方式来构建和展示互动式数据仪表板,本篇文章将深入探讨如何使用Dash设计一... 目录python Dash框架在数据可视化仪表板中的应用与实践1. 什么是Plotly Dash?1.1

Spring Boot中定时任务Cron表达式的终极指南最佳实践记录

《SpringBoot中定时任务Cron表达式的终极指南最佳实践记录》本文详细介绍了SpringBoot中定时任务的实现方法,特别是Cron表达式的使用技巧和高级用法,从基础语法到复杂场景,从快速启... 目录一、Cron表达式基础1.1 Cron表达式结构1.2 核心语法规则二、Spring Boot中定

Spring AI ectorStore的使用流程

《SpringAIectorStore的使用流程》SpringAI中的VectorStore是一种用于存储和检索高维向量数据的数据库或存储解决方案,它在AI应用中发挥着至关重要的作用,本文给大家介... 目录一、VectorStore的基本概念二、VectorStore的核心接口三、VectorStore的

python之流程控制语句match-case详解

《python之流程控制语句match-case详解》:本文主要介绍python之流程控制语句match-case使用,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐... 目录match-case 语法详解与实战一、基础值匹配(类似 switch-case)二、数据结构解构匹

国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)

《国内环境搭建私有知识问答库踩坑记录(ollama+deepseek+ragflow)》本文给大家利用deepseek模型搭建私有知识问答库的详细步骤和遇到的问题及解决办法,感兴趣的朋友一起看看吧... 目录1. 第1步大家在安装完ollama后,需要到系统环境变量中添加两个变量2. 第3步 “在cmd中

在VSCode中本地运行DeepSeek的流程步骤

《在VSCode中本地运行DeepSeek的流程步骤》本文详细介绍了如何在本地VSCode中安装和配置Ollama和CodeGPT,以使用DeepSeek进行AI编码辅助,无需依赖云服务,需要的朋友可... 目录步骤 1:在 VSCode 中安装 Ollama 和 CodeGPT安装Ollama下载Olla