zoukankan      html  css  js  c++  java
  • 自己动手写操作系统阅读笔记(一)

    本来今天想要学习一下操作系统的相关内容,奈何书都没带,猛然想起自己还有一个自己动手写操作系统的梦想,于是拿出这本书重新研究以下。
    对于第一章节的写一个简单的boot写出来以后也是着实兴奋一把,不过也是要记下相关的信息。

    安装NASM

    首先我的操作系统是Ubuntu
    使用sudo aptitude install nasm来安装nasm

    然后就是简单的asm代码

        org 07c00h          ;汇编程序加载到7c00处
        mov ax, cs          ;cs 无法直接加载到ds,通过ax(x86基础)
        mov ds, ax
        mov es, ax
        call DispStr        ;调用显示字符串例程
        jmp $               ;无限循环
    DispStr:
        mov ax, BootMessage 
        mov bp, ax
        mov cx, 16
        mov ax, 01301h
        mov bx, 000ch
        mov dl, 0
        int 10h
        ret
    BootMessage:    db "Hello, OS world!"
    times 510-($-$$) db 0   ;使用0填充剩下的空间
    
    dw 0xaa55               ;结束标志
    
    

    编译

    nasm boot.asm -o boot.bin

    写入软盘

    然后这个时候可爱的作者让我们写到软盘里= =
    这个时候很多朋友都会
    dd if=boot.bin of=/dev/sdx
    比如一开始的我= =
    我写到了8G的U盘里


    其实我们可以用virtualbox来搞定
    建立一个虚拟机——我选的是ubuntu_32bit——我觉得挺麻烦的,所以就不换了,因为我成功了。


    在设置,存储中,点添加软盘控制器。
    然后我们使用dd命令建立一个虚拟软盘。
    dd if=boot.bin of=floppy.img count=2880
    然后选择虚拟软盘。。选择floppy.img然后启动看。

    然后就可以看到可爱的Hello,OS world!

    本文参考: Linux 下制作虚拟软盘镜像 http://blog.163.com/wascm@126/blog/static/9385027200851905148317/

  • 相关阅读:
    tomcat7简单优化
    java向上转型和向下转型
    字符串循环移位
    测试覆盖率问题
    悬挂指针
    标准库string的用法探讨
    野指针问题
    Clock函数用法
    配置信息写入到.ini文件中的方法
    数组指针和数组引用做参数的区别
  • 原文地址:https://www.cnblogs.com/svitter/p/4017836.html
Copyright © 2011-2022 走看看