`

ubuntu 10.10下bochs安装和helloword演练

阅读更多

昨天晚上有空下载到了《自己动手写操作系统》--于渊,这本书。感觉他用的语言和比喻很好,所以一口气读了两章,把hello os读完了,我手也痒痒力,自己也搭一个平台,试试吧。在大三的时候上操作系统课,就像做一做操作系统的实验,但是由于自己的懒惰和一些列的借口,总之没有能做成,现在补回来吧。

      在ubuntu10.10正式发布还有5天的时候,我将我的10.04升级到了10.10,也没有什么特殊的感受。下面进入正题吧:

1.安装bochs

      bochs是一款开源软件,由于其强大的可移植性,在各种机器和操作系统下都可以安装。这里对于它的历史就不多做介绍了。说命令吧。

 

sudo apt-get install bochs
 

然后apt包管理会自动解决依赖,下载该下的,安装该装的包。ok,安装完成。

我们该测试好不好使了。

2.编写hello os 汇编程序

        org     07c00h  ;告诉编译器程序加载到7c00处
        mov     ax, cs
        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     ;10h 中断
        ret
BootMessage:    db      "Hello OS world!"
times   510-($-$$)      db      0       ;填充剩下的空间,使生成的二进制代码恰好>为512字节
dw      0xaa55                  ;结束标志

    将其保存为boot.asm(汇编代码啊,第一次正式编译,虽然以前在xp下写过更笨的,有点小兴奋)

   编译汇编代码:

 

nasm boot.asm -o boot.bin   //怎么样,感觉跟gcc的用法差不多啊,:-)

 没有错误的话就好了,有了的话就仔细调一下,注意汇编注释用semicolon(分号而不是冒号),我在这还错了。

 

3.让我们的程序泡在bochs上

   首先我们要想到,bochs是一个虚拟机,它给我们虚拟出了一个机器硬件环境,下面怎么运行就看我们的指令了。对于我们实际的机器,如果让它运行,要么用软盘,要么用光盘,要么用硬盘,你总得挑一个可以让它启动的,这里我们把上面些的hello os程序做成一个img文件,就是一个软盘格式的文件,让bochs挂载上这个虚拟软盘,我们就可以让bochs运行了。

  将上面生成的bin文件转换成img文件的方法:

 dd命令:

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

 其中要注意的是,注意inputfile的路径可以是相对的也可以是绝对的。这个命令在鸟哥的私房菜中有点印象,现在都忘了,网上搜的。

好了,下面就是挂载这个文件,这个虚拟软盘了。

所以我们接下来要做的就是告诉bochs:嘿,我有一个软盘,你给我从这里启动,运行我写的程序。

我们怎么告诉它呢,当然是配置文件了。

对于bochs,有一个默认的配置文件在:/etc/bochs-init/bochsrc

网上的前辈们都说最好对于每个特定的应用,自己单独创建一个bochsrc配置文件,反正又不费时。好,我们写一下适合我们的bochsrc文件。

megs: 32
romimage:file=$BXSHARE/BIOS-bochs-latest
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
floppya: 1_44=boot.img, status=inserted
boot: floppy

 bochsrc文件里的格式有严格的要求,所以照着原始的那个照猫画虎就可以搞定了。我相信里面的东西不用多解释了吧。

megs: 32说明了最大允许内存

romimage:bios的二进制文件,软件带的,不用管

vgaromimage:vga显示的二进制文件,软件自带的,不用管

floppya: 就是虚拟出的软驱a,后面说了软驱的型号:1_44即1.44M的那种,后面就是软驱文件的位置和名称了,状态,已经插入。

boot:告诉bochs从哪里启动。还用问吗,我们当然是从软驱启动了。

ok,一切顺利的话,我们就可以运行了:

bochs -f bochsrc

 我的是看到了下面的漂亮画面:

 

 

有一点需要注意就是关于一个环境变量的问题:BXSHARE,我的好像没有自己加上去的,但是我没有让它生效,它也好使了,我没有用source命令,也没有重启,未知中,不管了,好使就行。

你是不是也看到自己的成果了呢?

好,晚上,继续努力!!!

 

附件中有我的hello os文件夹,包括hello os的源码和bochsrc的配置文件

 

 

  • 大小: 10.3 KB
分享到:
评论

相关推荐

    Ubuntu10.10下tftp服务器配置笔记

    Ubuntu 10.10 下 TFTP 服务器配置笔记 本文档介绍了在 Ubuntu 10.10 操作系统下如何配置 TFTP 服务器,从虚拟机网络配置到 TFTP 服务器的搭建,旨在帮助读者快速搭建 TFTP 服务器。 一、虚拟机网络配置 在 Ubuntu...

    新手XP下硬盘安装ubuntu10.10图文教程

    Ubuntu 10.10在2010年10月正式发布,让众多Ubuntu用户都对这款全新的系统充满期望。毕竟,Ubuntu 10.10是Canonical公司推出的最为用户友好的系统,而且为它添加了很多新的功能。  熟悉Ubuntu系统的用户了解,在...

    Ubuntu10.10安装指南

    ### Ubuntu 10.10 安装指南详解 #### 引言 Ubuntu 10.10,代号"Maverick Meerkat",是一款备受赞誉的开源操作系统,基于Debian并采用Linux内核。它以其用户友好、稳定可靠的特点,赢得了全球无数用户的青睐。本文将...

    ubuntu10.10安装配置全过程图文详解

    - 类似于 Windows 下的软件管家,Ubuntu 软件中心支持一键下载和安装软件。 2. **QQ 客户端安装**: - 可以通过 Linux QQ、Web 版本或使用 Wine 安装 Windows 版本的 QQ 来实现在 Ubuntu 上使用 QQ。 - 对于其他...

    在U盘中安装Ubuntu 10.10的方法

    ### 在U盘中安装Ubuntu 10.10的方法 #### 安装前的准备与注意事项 ##### 一、安装条件 要在U盘上安装Ubuntu 10.10,首先需要满足一定的硬件条件: 1. **U盘容量**:至少需要4GB以上的U盘,以确保能够容纳Ubuntu...

    Ubuntu10.10下kgdb环境搭建

    ### Ubuntu10.10下kgdb环境搭建详解 #### 前言 随着Linux操作系统在嵌入式领域的广泛应用,内核级别的调试成为了许多开发者必须掌握的一项技能。不同于用户空间的应用程序,内核级别的调试更加复杂,因为它发生在...

    U盘安装ubuntu10.10图文教程

    U盘安装ubuntu10.10图文教程

    用Ubuntu10.10 dvd版本作为本地源,Ubuntu 10.10 DVD ISO挂载的方式来更新软件

    如果安装过程没有遇到任何网络错误,那么就说明你已经成功地使用Ubuntu 10.10 DVD ISO文件作为本地源来更新和安装软件了。 ### 总结 通过上述步骤,我们不仅学习了如何将Ubuntu 10.10 DVD ISO文件挂载为本地软件源...

    在Ubuntu 10.10 Linux 下安装锐捷客户端方法及相关软件

    参考在Ubuntu 10.10 Linux下安装锐捷客户端方法.txt文件中的详细步骤,这可能包括设置网络接口、配置认证参数等。 在使用过程中,你可能需要手动启动锐捷客户端,并根据网络环境调整相关参数。由于Linux下的锐捷...

    Ubuntu10.10下嵌入式开发环境的配置.doc

    注意:如果是使用笔记本电脑并通过USB接口连接开发板,则在Ubuntu下的端口通常为`ttyUSB0`,而在Windows系统下则是`COM4`。 #### 四、配置NFS服务 为了方便在宿主机与目标机之间共享文件,可以配置NFS(Network ...

    Ubuntu 10.10安装配置tftp服务.doc

    本文将详细介绍如何在Ubuntu 10.10环境下安装并配置TFTP服务,以确保服务的正常运行。 #### TFTP配置概述 TFTP服务在Ubuntu 10.10中的配置通常通过xinetd进程来实现。xinetd,即extended internet daemon,是新...

    Ubuntu10.10

    ### Ubuntu 10.10 在 Windows XP 下的安装指南及关键知识点 #### 安装环境与准备 ...以上步骤和知识点详细介绍了如何在 Windows XP 下安装 Ubuntu 10.10,以及过程中需要注意的关键技术和配置细节。

    ubuntu10.10下安装Samba步骤

    ubuntu10.10下安装Samba步骤,个人实践记载所得。

    一步一步教你在win7下硬盘安装Ubuntu10.10或者ylmf_os3.0

    安装 Ubuntu10.10 或者 ylmf os3.0 需要注意一些关键步骤和细节,包括安装前的准备工作、安装前的注意事项、安装 Ubuntu10.10 或者 ylmf os3.0、硬盘安装 Ubuntu10.10 或者 ylmf os3.0、分区工具和安装完成。...

    [QQ]ubuntu 10.10 wine 1.3安装QQ2010

    【标题】:“Ubuntu 10.10 使用Wine 1.3 安装QQ2010”的详细教程 在Linux系统中,由于QQ是为Windows操作系统设计的应用程序,因此不能直接在Ubuntu 10.10上运行。然而,借助Wine这款开源软件,我们可以让Linux系统...

    在 Ubuntu 10.10 中安装 MariaDB Debian 软件包

    在Ubuntu 10.10中安装MariaDB Debian软件包涉及到一系列的步骤,包括安装先决条件包、下载特定版本的MariaDB软件包、配置和安装这些软件包,以及后续的安装后配置。以下是对这些知识点的详细解释。 ### MariaDB简介...

    ubuntu 10.10网络配置10步曲

    ubuntu 10.10网络配置10步曲

Global site tag (gtag.js) - Google Analytics