zoukankan      html  css  js  c++  java
  • 自制操作系统-使用16进制文件显示 hello world

    1.下载qemu:

    https://www.cnblogs.com/sea-stream/p/10849382.html

    2.制作软盘镜像

    使用010editor,新建文件

    图2

     另保存为cherryOS.img.

    原理

    我们现在在使用16进制手动编写一个软盘格式的文件。一个软盘的大小就是1474560字节,这也是为什么我们操作系统的大小要是1474560字节。BIOS读软盘第一个扇区时,磁盘内不同地方的内容有不同的含义,这里不仔细说明每一位的含义了。其大概意思为,软盘的格式为FAT12,软盘的名称为HELLOOS(这里并没有改成CherryOS,因为这不是最终的系统,这只是一次实验)

    如果将计算机的开机设置为从软盘启动,计算机开机会驱动软盘的磁头0读其0柱面1扇区的内容到内存0x7c00~ 0x7dff处,并检查扇区最后两2字节内容,如果为55AAH,则从0x7c00开始执行这段程序。

    如果将一个好的软盘的磁头0对应的0柱面1扇区内含有一段(让显存)显示“Hello world”的机器指令,且将扇区最后2个字节的内容为55AAH。设置计算机开机时从软盘启动后就能够显示“Hello World”。

    这就是这一段代码的基本原理.

    可以直接下载:

    https://blog-1253353217.cos.ap-chengdu.myqcloud.com/blog10%20chrryosday1/cherryOS.img

    使用010editor,可以打开这个文件。

    3.打开命令行,进入到img路径,运行命令

    qemu-system-i386 -hdd cherryOS.img

    可以看到如下显示

    参考:

    https://www.jianshu.com/p/ba6a32d68ed5

  • 相关阅读:
    【转载】深入浅出VA函数
    oracle数据库怎么创建数据库实例
    2.4 OpenEuler中C语言中的函数调用测试(选做)
    OpenEuler 中C与汇编的混合编程(选做)
    程序运行
    改进ls的实现(课下作业)
    学习笔记12
    实验四 Web服务器1socket编程
    实验四 Web服务器2
    学习6
  • 原文地址:https://www.cnblogs.com/sea-stream/p/10850130.html
Copyright © 2011-2022 走看看