【一个操作系统的实现】练习-第1天

在尝试配置Bochs时遇到了LTDL_LIBRARY_PATH未设置和运行后出现'MOV_EwSw: can't use this segment register 1'的错误。通过查看官网解释,了解到需要选择VGA BIOS,并在bootsrc配置文件中调整display选项。然而,解决问题花费的时间远超预期。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

配置编译环境


问题一:配置bochs时出现问题

LTDL_LIBRARY_PATH not set. using compile time default '/usr/lib/bochs/plugins'
00000000000i[     ] BXSHARE not set. using compile time default '/usr/share/bochs'

来自官网的解释

"Examples:

  romimage: file=bios/BIOS-bochs-latest, address=0xfffe0000
  romimage: file=$BXSHARE/BIOS-bochs-legacy, address=0xffff0000
  romimage: file=mybios.bin, address=0xfff80000
  romimage: file=mybios.bin
The ROM BIOS controls what the PC does when it first powers on. Normally, you can use a precompiled BIOS in the source or binary distribution called BIOS-bochs-latest. The default ROM BIOS is usually loaded starting at address 0xfffe0000, and it is exactly 128k long. The legacy version of the Bochs BIOS is usually loaded starting at address 0xffff0000, and it is exactly 64k long. You can use the environment variable $BXSHARE to specify the location of the BIOS. The usage of external large BIOS images (up to 512k) at memory top is now supported, but we still recommend to use the BIOS distributed with Bochs. The start address is optional, since it can be calculated from image size."


"Examples:

  vgaromimage: file=bios/VGABIOS-elpin-2.40
  vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
  vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest-cirrus
This tells Bochs what VGA ROM BIOS to load (at 0xC0000).

A VGA BIOS from Elpin Systems, Inc. as well as a free LGPL'd VGA BIOS are provided in the source and binary distributions.

Note: Please check with the vga option to decide what VGA BIOS to use.

最终解决方法:sudo apt-get install sdl

在配置文件bootsrc中添加: display:sdl

注释掉keyboard那行

二、运行之后无限刷 MOV_EwSw: can't use this segment register 1

复制书中代码后重新编译.asm
成功出现界面



说好的十分钟为什么弄了几个小时,sad



评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值