ICode9

精准搜索请尝试: 精确搜索
首页 > 其他分享> 文章详细

《操作系统真象还原》环境搭建

2021-04-15 02:32:26  阅读:279  来源: 互联网

标签:bin 操作系统 mov mbr bochs ax bochsrc 真象 搭建


《操作系统真象还原》环境搭建

部署工作环境

最近在学习《操作系统真象还原》,并打算跟随作者手写一个自己的os。我的实验环境跟作者稍有不同,在配置过程中遇到一些问题,如果你也在使用manjaro,也许我的一些经验能够帮到你。

安装软件

sudo pacman -S nasm
sudo pacman -S bochs

配置bochs

创建os文件夹,作为我的工作目录。拷贝一份bochs默认的配置文件到我的工作目录下

cp /usr/share/doc/bochs/bochsrc-sample.txt  ~/os/bochsrc

作如下修改

解除这一行的注释
#mesg: 32
mesg:32    
#ata0-master: type=disk, mode=flat, path="30M.sample" 
注释掉这两行
#sound: driver=default, waveout=/dev/dsp. wavein=, midiout=

配置工作暂且一放,我们先编译一段汇编代码,在bochs上运行一下。来检验我们的配置情况

SECTION MBR vstart=0x7c00
    mov ax,cs
    mov ds,ax
    mov es,ax
    mov ss,ax
    mov fs,ax
    mov sp,0x7c00

    mov ax, 0x600
    mov bx, 0x700
    mov cx, 0
    mov dx, 0x184f

    int 0x10
    mov ah, 3
    mov bh, 0
    int 0x10

    mov ax, message
    mov bp, ax
    mov cx,5
    mov ax,0x1301
    mov bx,0x2
    int 0x10
    jmp $
    message db "1 MBR"
    times 510-($-$$) db 0
    db 0x55,0xaa

nasm支持多种输出文件格式,可以使用nasm-hf查看。默认是输出bin格式,如果想要将编译好的程序运行在linux系统中,应该输出elf格式,elf是linux的可执行文件的格式。因为我们这段程序一会要运行在无操作系统的环境中,因此直接输出成纯二进制格式,即bin格式

nasm -o mbr.bin mbr.S #当前汇编文件名mbr.S

创建虚拟硬盘

bximage #在交互模式下选择创建虚拟硬盘的参数

bochs提示我们将如下内容添加到我们bochsrc配置文件中

ata0-master: type=disk, path="hd60M.img", mode=flat

dd命令将编译好的mbr.bin 写入hd60M.img

dd if=mbr.bin of=hd60M.img bs=512 count=1 conv=notrunc

启动bochs

bochs -f bochsrc

按下c 显示如下,说明环境搭建成功!!

标签:bin,操作系统,mov,mbr,bochs,ax,bochsrc,真象,搭建
来源: https://www.cnblogs.com/orangeQWJ/p/14660762.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有