快捷搜索:

安装配置,学习自身出手写操作系统

作者: w88官方网站手机版  发布:2019-10-21

1.到Bochs官方下载源码包,因为用到了调试功能。 Bochs 2.4.5下载地址

Bochs freedos安装配置

sudo apt-get install build-essential

sudo apt-get install xorg-dev

sudo apt-get install libgtk2.0-dev

下载bochs

$ tar vxaf bochs-2.5.1.tar.gz

$ cd bochs-2.5.1

$ ./configure –enable-debugger-enable-disasm

$ make

$ sudo make install

下载freedos 复制到工作目录下

新手,学习自己动手写操作系统,卡在bochs配置,求大神救助
1.bochs版本:bochs-2.6.8
编译前配置:提取文件,打开目录,在终端中打开;

2.安装G++编译器
sudo apt-get install g
如果不安装G++编译器, 在执行configure时就会出现一些错误。

Bochs 配置 先通过dos引导,我们的软件复制在B盘下

###############################################################
# Configuration file for Bochs
###############################################################

# how much memory the emulated machine will have
megs: 32

# filename of ROM images
romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/vgabios/vgabios.bin

# what disk images will be used
floppya: 1_44=freedos.img, status=inserted
floppyb: 1_44=pm.img, status=inserted

# choose the boot disk.
boot: a

# where do we send log messages?
# log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

#enabled debug using xchg bx, bx

magic_break:enabled=1

可以通过下面方式来部署程序,当然,写成makefile最省事

$ sudo mount –o loop pm.img /mnt/floppy

$ sudo cp test.com /mnt/floppy

$ sudo umount /mnt/floppy

  • ./configure --enable debugger --enable-disasm
  • sudo make
  • sudo make install安装完成,提前安装了一些需要的程序,未报错。

3.执行配置,开启调试和反汇编
./configure --enable-debugger --enable-disasm

bochs 调试

调试方法很多,这里介绍最简单的方式之一。bochs 配置中增加 magic_break:enabled=1

代码中增加xchg bx, bx,bochs会停在代码出。当然,前提是bochs需要支持debug

2.编辑bochesrc

4.ERROR: X windows gui was selected, but X windows libraries were not found.

  • sudo gedit 然后用gedit打开/ect/bochs-init/bochsrc,编辑内容如下:

出现这个错误时,请安装xorg-dev包

###############################################################

sudo apt-get install xorg-dev

Configuration file for Bochs

###############################################################

5.Package gtk -2.0 was not found in the pkg-config search path.Perhaps you should add the directory containing `gtk -2.0.pc'to the PKG_CONFIG_PATH environment variableNo package 'gtk -2.0' foundERROR: pkg-config was not found, or unable to access the gtk -2.0 package.Install pkg-config and the gtk development package,or disable the gui debugger, or the wxWidgets display library (whichever is being used).

how much memory the emulated machine will have

megs: 32

出现这个错误时,请运行:

filename of ROM images

romimage: file=/usr/share/bochs/BIOS-bochs-latest
vgaromimage: file=/usr/share/vgabios/vgabios.bin

sudo apt-get install libgtk2.0-dev

what disk images will be used

floppya: 1_44=/home/OS/a.img, status=inserted

6.重新执行配置(出错处理如上)

choose the boot disk.

boot: floppy

./configure --enable-debugger --enable-disasm

where do we send log messages?

然后运行make

log: bochsout.txt

make

disable the mouse

mouse: enabled=0

再install

enable key mapping, using US layout as default.

keyboard_mapping: enabled=1, map=/usr/share/bochs/keymaps/x11-pc-us.map

3.运行bochs

  • sudo bochs -f /ect/bochs-init/bochsrc

    结果如下:00000000000i[ ] BXSHARE not set. using compile time default '/usr/local/share/bochs'
    00000000000i[ ] reading configuration from /etc/bochs-init/bochsrc
    00000000000p[ ] >>PANIC<< /etc/bochs-init/bochsrc:25: 'keyboard_mapping' is deprecated - use 'keyboard' option instead.

    00000000000e[SIM ] notify called, but no bxevent_callback function is registered

    Bochs is exiting with the following message:
    [ ] /etc/bochs-init/bochsrc:25: 'keyboard_mapping' is deprecated - use 'keyboard' option instead.

关闭终端,重新打开,

  • sudo bochs结果:======================================================================== Bochs x86 Emulator 2.6.8 Built from SVN snapshot on May 3, 2015 Compiled on Sep 27 2015 at 09:38:33========================================================================00000000000i[ ] BXSHARE not set. using compile time default '/usr/local/share/bochs'------------------------------Bochs Configuration: Main Menu------------------------------

This is the Bochs Configuration Interface, where you can describe the
machine that you want to simulate. Bochs has already searched for a
configuration file (typically called bochsrc.txt) and loaded it if it
could be found. When you are satisfied with the configuration, go
ahead and start the simulation.

You can also start bochs with the -q option to skip these menus.

  1. Restore factory default configuration
  2. Read options from...
  3. Edit options
  4. Save options to...
  5. Restore the Bochs state from...
  6. Begin simulation
  7. Quit now

按6,然后按c,bochs图形界面弹出,提示No bootable device.
情况描述完毕,求大神解释

sudo make install

我试过不用sudo来直接执行,会出错的,出错提示不明确,应该是权限不够

make: *** [install_bin] 错误 1

7.完成,执行bochs,嘻嘻,来个截图

图片 1

配置bochs:
安装好bochs之后,我们需要对bochs进行配置,其实就是对文件bochrsc进行修改!
《orange's :一个操作系统的实现》的附带光盘里有一个已经配置好的bochrsc,但
是它是针对bochs2.3版本的,所以不能用!!!我们需要重新修改bochrsc!
首先将附带光盘里的chapter1子目录下的文件夹a 移动到/home/roothoo/,(主要是为
是让a.img 和 bochsrc在同一文件夹下),然后对bochrc进行修改如下:
注意,#是注释符号!即#之后的语句是无效的,其实#就相当于C 语言中的//
###############################################################
# Configuration file for Bochs
###############################################################

# how much memory the emulated machine will have
megs: 32

# filename of ROM images
romimage: file=/usr/local/share/bochs/BIOS-bochs-latest

#romimage: file=$BXSHARE/BIOS-bochs-latest (适用于bochs安装在windows下)
vgaromimage: /usr/local/share/vgabios/vgabios.bin
#vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest(适用bochs安装在windows下)

# what disk images will be used
floppya: 1_44=a.img, status=inserted

# choose the boot disk.
boot: floppy

# where do we send log messages?
# log: bochsout.txt

# disable the mouse
mouse: enabled=0

# enable key mapping, using US layout as default.
keyboard_mapping: enabled=1, map=/usr/local/share/bochs/keymaps/x11-pc-us.map

修改好之后,   【 Linux公社 www.Linuxidc.com 】  别忘了保存!
最后,我们运行bochs
cd      /home/用户名   #我们切换到a.img 和 bochsrc所在的文件夹,
bochs     -f    bochsrc    #以bochsrc为配置文件启动bochs
然后选择6,
然后再按c键,
OK!!!
ENJOY! -_-

问题一、安装bochs在terminal下输入下列代码
sudo apt-get install bochs
这样安装结束后,在我使用bochs的时候出现了下列错误:
Event type: PANIC
Device: [     ]
Message: dlopen failed for module 'x': file not found
这是由于在安装的时候,少安装了个bochs-x包
这个包可以在http://packages.Ubuntu.com/dapper/misc/bochs-x找到
也可以在terminal下面输入
sudo apt-get install bochs-x
这样才算安装完毕了。
  问题二、启动问题
点进入系统后控制台出现下面的提示:

Please choose one: [6] 6
00000000000i[ ] installing win32 module as the Bochs GUI

00000000000i[ ] using log file bochsout.txt

Event type: PANIC
Device: [MEM0 ]
Message: ROM: System BIOS must end at 0xfffff

A PANIC has occurred. Do you want to:
cont - continue execution
alwayscont - continue execution, and don't ask again.
This affects only PANIC events from device [MEM0 ]
die - stop execution now
abort - dump core
Choose one of the actions above: [die]
问题原因:
在2.3.5以前的bochs使用的BIOS-bochs-latest是64k的,那个时候需要加上
romimage: file=BIOS-bochs-latest,address=0xf0000(举例)
在2.3.5中的BIOS-bochs-latest更新了,变成了128k的,这个时候配置需要改为
romimage: file=$BXSHARE/BIOS-bochs-latest (举例,也就是要去掉address=0xf000)

解决方法:
去掉配置文件中的address那个
问题三、bochs的启动配置文件bochsrc
一般网上的资料都会提示你安装好后会有如下工具:
/usr/bin/bochs     Bochs启动程序
/usr/bin/bximage     Bochs带的制作磁盘镜像文件的工具
/usr/bin/bxcommit     把redolog放进flat磁盘镜像文件中去的交互工具
/usr/share/doc/bochs/bochsrc-sample.txt     Bochs配置文件的例子
/usr/share/bochs/BIOS-bochs-*     ROM BIOS镜像文件
/usr/share/bochs/VGABIOS-*     与VGA BIOS镜像文件相关的文件
/usr/bin/bochs-dlx     启动Bochs中DLX linux的程序
/usr/share/bochs/dlxlinux/     DLX Linux的目录,包含它的磁盘镜像文件和配置文件
/usr/share/bochs/keymaps/*.map     X11和SDL的keymap列表
其实在终端安装的却没有第四、第七和第八项,就连第二第三项也要另外安装:
       sudo apt-get install bximage
       sudo apt-get install bxcommit
所以,网上那些bochsrx在Ubuntu是运行不了的,就因为这点,我搞近一个下午,开始我老以为是配置文件不对呢。
普通的bochsrc:
romimage: file=$BXSHARE/BIOS-bochs-latest,

vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
但是在Ubuntu下压根就没有VGABIOS-lgpl-latest
例如:
www.linuxidc.com@linuxidc-desktop:/usr/share/bochs$ ls
BIOS-bochs-latest  BIOS-bochs-legacy  BIOS-qemu-latest   keymaps
www.linuxidc.com@linuxidc-desktop:/usr/share/bochs$
后来我才发现,从终端下安装bochs时它把VGA专门作为了一个程序安装在了/usr/share/vgabios/中了。
www.linuxidc.com@linuxidc-desktop:/usr/share/bochs$ ls /usr/share/vgabios/
vgabios.bin  vgabios.cirrus.bin  vgabios.cirrus.debug.bin  vgabios.debug.bin
www.linuxidc.com@linuxidc-desktop:/usr/share/bochs$
这样配置文件就要改为:
   romimage: file=$BXSHARE/BIOS-bochs-latest
   megs:4
   floppya: image=./boot.img,status=inserted
   vgaromimage: file=/usr/share/vgabios/vgabios.bin
  boot:a                                                                                                                                                  
  log:out.bochs

图片 2

本文由www.w88985.com发布于w88官方网站手机版,转载请注明出处:安装配置,学习自身出手写操作系统

关键词: www.w88985.c