简要介绍:Bochs主要是一个免费且开源的基于x86架构PC机模拟器。学习linux0.11内核,推荐在该模拟器上进行。

  • 环境搭建步骤:

1、下载Linux0.11系统包,本链接的下载包已包含Bochs软件。

点击打开链接http://oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
2、解压linux-0.11-devel-040329.zip,目录结构如下图所示:

这里真正使用到的文件为:Bochs-2.1.1.exe 、bochsrc-hd.bxrc、bootimage-0.11、bootimage-0.11-hd、hdc-0.11.img

3、点击Bochs-2.1.1.exe进行安装。

4、安装完毕后,将所有linux-0.11-devel-040329下的文件,拷贝到刚才安装bochs下的根目录。原目录如下:

拷贝过后目录为:

5、拷贝完成后,运行bochsrc-hd.bxrc,若安装成功,打开即能见到如下界面:

这已经是x86PC模拟器上,搭建完成的Linux操作系统。建立linux操作平台命令,就能操作Linux。由于学习操作系统需要,我们需要在Linux下,编译操作系统以及完成简单的源码修改,从而达到理解Linux内核的能力。接下来,主要演示Linux内核源码的修改,以及内核的编译过程。由于该Linux版本的原因,我们还需要对代码做出调整,方能成功编译。

  • 内核编译过程:

1、进入/usr/src/linux 目录下,键入命令 cd ../src/linux ,如下图所示:

2、进行编译,键入命令 make clean 和 make后。

若出现如下所示错误:gcc-cc1: Invalid option "string-insns"。这是需将Linux目录下的Makefile文件中的-mstring-insns参数去掉。除此之外,每个子目录fs,lib,kernel以及kernel目录下的三个驱动程序子目录(math, blk_drv, chr_drv)的Makefike当中的-mstring-insns参数去除掉。此处只演示根目录下的Makefile文件修改。

3、依次修改:/linux/Makefile、/linux/fs/Makefile、/linux/lib/Makefile、

/linux/kernel/Makefile、/linux/kernel/math/Makefile、/linux/kernel/blk_drv/Makefile、/linux/kernel/chr_drv/Makefile文件。linux目录下,键入:vi Makefile。如下图所示:

找到文件中的-mstring-insns 参数,并删去保存。

4、到/usr/local/bin中找到文件ar,并把ar 改名为gar,键入命令:mv ar gar。如下图所示:

5、回到linux 目录下,重新键入make clean以及 make,完成内核的编译链接。

出现上图提示,即表面程序编译成功。完成编译后,便可以开始修改内核源码,从而达到扩展操作系统功能以及学习操作系统的目的。这里,我们简单修改下,linux操作系统开机启动项bootsect.s源码,让开机后输出个性化的字符串。

6、进入/usr/src/linux/boot目录,修改bootsect.s源码,保存并退出。

! Print some inane message
mov    ah,#0x03        ! read cursor pos
xor    bh,bh
int    0x10
mov    cx,#47
mov    bx,#0x0007        ! page 0, attribute 7 (normal)
mov    bp,#msg1
mov    ax,#0x1301        ! write string, move cursor
int    0x10
msg1:
.byte 13,10
.ascii "Loading system ...this is create by demon"
.byte 13,10,13,10
.org 508

7、修改完成后,在linux目录下,重新键入make命令,完成编译。

8、make成功后生成引导启动映象文件Image。若需要输出这个Image文件, 可以首先备份bootimage-0.11-hd文件, 然后使用下面命令就会把bootimage-0.11-hd替换成新的引导启动文件,键入命令:dd bs=8192 if=Image of=/dev/fd0。如下图所示:

9点击reset重启Linux操作系统。如下图所示:

windows下运行bochs相关推荐

  1. Windows下运行rabbitmqctl 相关命令(如rabbitmqctl stop)报错:Error: unable to perform an operation on node解决方案

    Windows下运行rabbitmqctl 相关命令(如rabbitmqctl stop)报错:Error: unable to perform an operation on node解决方案 参考 ...

  2. 在Linux中某些程序无法运行,为何linux下的程序不能在windows下运行,不是“废话”那么简单...

    大家好,近期我发的文章都比较底层,过些天再发Linux基础方面的内容,多谢大伙儿的支持,回到正题. 您看,linux和windows都是运行在x86体系架构cpu上的操作系统,也就是指令的机器码都是一 ...

  3. 解决Windows下运行php Composer出现SSL报错的问题

    解决Windows下运行php Composer出现SSL报错的问题 2015-01-14 20:05 在windows下运行composer却出现SSL报错: E:\www>php -f co ...

  4. 关闭windows hello然后尝试再次运行安装程序_蜂鸟E203系列——Windows下运行hello world例程...

    蜂鸟E203系列--Windows下运行hello world例程​mp.weixin.qq.com 创建 hello world 例程 选择file->new->C / C++ Proj ...

  5. Windows下运行python脚本报错“ImportError: No Module named ...”的解决方法

    Windows下运行python脚本报错"ImportError: No Module named ..."的解决方法 参考文章: (1)Windows下运行python脚本报错& ...

  6. windows下运行vbs脚本

    windows下运行vbs脚本 vbs基础教程 简单的代码(此代码来自脚本之家,如果侵犯了您的权利请与本人联系) REM 输入并回显你的名字 '使用InputBox和Msgbox函数 '(上面及本行可 ...

  7. Windows下运行Hadoop

    Windows下运行Hadoop,通常有两种方式:一种是用VM方式安装一个Linux操作系统,这样基本可以实现全Linux环境的Hadoop运行:另一种是通过Cygwin模拟Linux环境.后者的好处 ...

  8. 在windows下运行Felzenszwalb的Deformable Part Model(DPM)源码voc-release3.1来训练自己的模型

    我的环境 DPM源码版本:voc-release3.1 VOC开发包版本:VOC2007_devkit_08-Jun 使用的训练数据集:VOC2007                         ...

  9. Windows下运行jekyll,编码已不再是问题

    很久没更新jekyll了,所以好奇着去官网看了下更新记录,发现如下更新条目(版本1.3.0/2013-11-04发布): Add encoding configuration option (#144 ...

  10. 【registry】registry 0.9 源码 在 windows下运行

    1.概述 我在本地mac环境运行了registry源码,然后想在winodws也正常运行,于是将mac下能用的源码拷贝到了windows下,结果一堆报错. 基本上全是pom问题,此处我用了2天才搞定了 ...

最新文章

  1. [转]JAVA中Action层, Service层 ,modle层 和 Dao层的功能区分
  2. C#读取Win32标准DLL文件中的字符串资源
  3. 解决MyEclipse2015启动时:Java was started but returned exit code=1问题
  4. 阿里明确中国数字商业板块组织架构 全面聚焦客户体验
  5. python函数调用的三种方式_python函数调用的四种方式
  6. strlen 计算给定字符串的长度
  7. 软件测试周刊(第31期):所有的伟大 都源于一个勇敢的开始
  8. Expo大作战(四十一)【完】--expo sdk 之 Assets,BarCodeScanner,AppLoading
  9. 2013年国赛-红外光通信装置的设计与制作(模拟传输方案)
  10. 练习华为大型公司网络构建拓扑图
  11. 偷盗者问题。甲乙丙丁四个嫌疑犯,只有一个是偷盗者。在审讯中,四人都有可能说真话或假话
  12. 广义瑞利商_瑞利商和广义瑞利商
  13. 华为云服务器不显示盘符,云服务器只有一个盘符可以
  14. 锐目对讲机的使用方法详解
  15. 3dsmax展UV,制作UV贴图,将物体的贴图放到一张图片上,贴图优化方式,UVW贴图制作全流程
  16. “我只警告一次,下次我会直接忽略你发的垃圾,懂?”Linus 精彩炮轰语录集锦...
  17. C#与产电PLC以太网通讯,C# For LS PLC Ethernet Communication,产电PLC以太网通讯,上位机与PLC通讯C#,LG PLC以太网通讯
  18. 曲线绕x轴旋转曲面方程_曲线C绕y轴旋转所成的旋转曲面的方程为.PPT
  19. iApp4Me一周年记
  20. 怎么安装打印机驱动?有没有快捷的方法?

热门文章

  1. 方立勋jdbc mysql视频_java视频教程 Java自学视频整理(持续更新中...)
  2. 申报火热进行中|2021“科创中国”开源创新榜评选
  3. python保存h264格式视频(linux和windows)
  4. 金山电脑公司总经理雷军(转载)
  5. FlexBuilder3安装集成eclipse
  6. 滑动验证码最简单案例:破解qq空间(豆瓣网)滑块验证码(python+selenium实现)
  7. U盘exe病毒解决方案
  8. C#——SqlParameter的使用方法及注意事项
  9. MSN机器人-头像显示
  10. 泛微移动办公平台已适配华为鸿蒙