IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> 系统运维 -> 第0天---《一个操作系统的实现》第一、第二章 学习笔记 -> 正文阅读

[系统运维]第0天---《一个操作系统的实现》第一、第二章 学习笔记

构建一个最简易的“OS(引导扇区【Boot Sector】)”

执行过程

Bios过程:

? 1.计算机上电后,加电自检

? 2.寻找启动盘,如果是选择从软盘启动,计算机就会检查软盘的0面0磁道1扇区,如果发现该扇区是以0xAA55?结尾,则该扇区被判定为引导扇区(必须包含少于512字节的执行码)

? 3.一旦发现引导扇区,512字节的内容装载到内存地址0000:7c00处

? 4.然后跳转到0000:7c00处控制权彻底交给这段引导代码

? 5.此时,BIOS中的固有程序不再控制计算机,而是由操作系统的一部分来控制。

解释:

? 1.整个过程BIOS就加载了0磁道0扇区的512Byte数据,也就是如果我们写的OS代码想让BIOS加载就必须把我们的代码放到磁盘的0道0区

? 2.内存地址是线性的, 如果总共1M内存,那么地址标识范围0X0000 - 0XFFFFF

? 3.CS和IP是汇编语言中的两个寄存器,cpu执行指令的依据就是去找CS:IP对应内存处的指令

  1. 先用汇编写一个asm文件
    org 07c00h   ;告诉编译器将程序加载到7c00处
    mov ax,cs    ;BIOS交出控制权时,cs=0x0
    mov ds,ax    ;数据段地址 ds=0x0
    mov es,ax    ;扩展段地址 ds=0x0
    call DispStr  ;调用显示字符串例程
    jmp $         ;无限循环
DispStr:
	mov ax,BootMessage
	mov bp,ax     ;ES:BP=串地址
	mov cx,16     ;CX =串长度
	mov ax,01301h ;AH=13,AL=01h
	mov bx,000ch  ;页号为0(BH=0),黑底红字
	mov dl,0
	int 10h       ;10h 号中断
	ret
BootMessage:    db    "HELLO,OS,WORLD!"
time 510-($-$$) db     0   ;填充剩余空间,使生成的二进制代码恰好为512字节
dw   0xaa55        ;结束标志

2.使用Nasm的命令编译asm文件得到大小为512字节的bin文件

nasm boot.asm -o boot.bin

3.通过linux命令将bin文件写到空白软盘的第一个扇区

dd if=boot.in of=/dev/fd0 bs =512 count=1

4.创建软盘镜像

概念:软盘镜像可理解为系统盘,类似于重装操作系统自制的u盘;软盘也就是我们上面代码的载体

? 4.1打开bochs的bximage工具

? 4.2输入1,进行创建镜像

? 4.3输入fd,创建软盘

? 4.4选择软盘的大小

? 4.5给出软盘文件名

5.创建bochs的配置文件,第三方修改为 镜像名.img

romimage: file=/usr/local/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/local/share/bochs/VGABIOS-lgpl-latest
floppya: 1_44=boot.img, status=inserted
boot: floppy
输入 bochs -f bochsConf 启动
选择6
输入c,可看到打印效果

7.效果
在这里插入图片描述

汇编知识点

  1. $表示当前行被汇编后的地址

  2. $$表示程序被编译后

  3. ? - ?$表示本行距离程序开始处的相对距离

    重点在操作系统,汇编其他点略过

Bochs重点

前面已经写了bochs基本操作

1.Bochs配置文件的作用:告诉Bochs我们构建的虚拟机长什么样子,例如设置内存,硬盘映像,软盘映像都是哪些文件

2.romimage:它指定的文件时真实机器的BIos

3.vgaromimage:它指的是真实机器的VGA BIOS

4.如果输入不带任何参数的Bochs(省略 “ -f bochsrc ”),并执行他,将在当前目录下寻找以下文件作为默认配置文件:

  • .bochsrc

  • bochsrc

  • bochsrc.txt

  • bochsrc.bxrc(仅对Windows有效)

    Bochs调试指令

  系统运维 最新文章
配置小型公司网络WLAN基本业务(AC通过三层
如何在交付运维过程中建立风险底线意识,提
快速传输大文件,怎么通过网络传大文件给对
从游戏服务端角度分析移动同步(状态同步)
MySQL使用MyCat实现分库分表
如何用DWDM射频光纤技术实现200公里外的站点
国内顺畅下载k8s.gcr.io的镜像
自动化测试appium
ctfshow ssrf
Linux操作系统学习之实用指令(Centos7/8均
上一篇文章      下一篇文章      查看所有文章
加:2021-07-30 13:08:37  更:2021-07-30 13:10:29 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年5日历 -2024/5/7 2:54:30-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码