学习操作系统,最难的就是保护模式的各种硬件机制了(如分段分页寻址,特权级,门机制)。单纯的8086实模下的汇编模拟器是无法模拟,调试这些机制的。只能用个功能更强大的80*86模拟器了。由于模拟器挺多的,如vmware, virtual box等等,但是好像更方便调试的,我们选择bochs吧。
赵炯博士已经为我们准备好了bochs,而且还带有linux 0.11的image.
http://www.oldlinux.org/Linux.old/bochs/linux-0.11-devel-040329.zip
具体参考http://www.linuxidc.com/Linux/2009-03/18786.htm,这篇文章讲了如何设置bochs的配置文件。但是我没有成功,现在只想说说自己是弄成功的。把时间花费在这些工具上面真是很无奈啊,希望能减少这些投入。
1.下载解压
里面有一个bochs的安装文件,其余都是bochs的配置文件和Linux0.11的image文件,即0.11操作系统的二进制文件。
3.安装在c:\program file下面
dllinux目录下面是个linux操作系统的demo, 我仿照他的目录结构建立了0.11目录
然后把 解压包下面linux的image及其启动linux 0.11的bochs配置都copy到这个目录下面。如图
在这个目录下面建立一个run.bat,为了启动bochs。run.bat如图:
bochsdbg从名字上看是个debug版本的启动。
那么bochs就是正常启动了。
同时我们要修改bochsrc-hd.bxrc.
这个是启动linux 0.11的配置文件。
如图。
修改12,36行。具体情况按你具体安装目录位置仿照下图这样配置。
把run.bat中的命令bochsdbg-->bochs,我们不是用debug模式,而是用正常模式启动linux 0.11即可看到如下效果:
这是个小巧的linux 操作系统,非常不错啊!
当然,利用bochs的调试功能,我们可以追踪到内存,寄存器,还有程序之间的跳转流程,这些都是我们学习操作系统的重要素材。怎么调试请参考赵炯的《linux内核完全剖析》中的环境搭建章节吧。
加油,慢慢学习linux内核吧,花个3,5年都是值得的,不着急,有的是时间!
分享到:
相关推荐
本项目为基于Docker、Qemu和Bochs构建的Linux 0.11内核开发环境源码设计,总计包含150个文件,其中包括50个C源文件、33个头文件、8个汇编文件、7个Git忽略文件、6个脚本文件、4个xz压缩文件、3个Markdown文件、3个...
### Linux 0.11 Bochs 调试详解...通过在Bochs上运行Linux 0.11,不仅可以帮助我们更好地理解Linux内核的基础结构和工作原理,还可以提高我们在内核级别的调试技能。希望以上内容对学习Linux内核开发的初学者有所帮助。
本项目为基于Docker、Qemu和Bochs构建的Linux 0.11内核开发环境源码,包含186个文件,涵盖50个C源代码文件、33个头文件、8个汇编文件、7个Git忽略文件、6个终端脚本文件、4个Markdown文件、4个xz压缩文件、3个Bochs...
"Linux 0.11 内核编译及在 Bochs 2.6.9 中的调试运行" 本文主要讲述了在 Ubuntu 18.04 环境下编译 Linux 0.11 内核,并在 Bochs 2.6.9 中进行调试运行的过程。文章涵盖了编译 Linux 0.11 内核源代码、Bochs 2.6.9 ...
【标题】"基于 Docker/Qemu/Bochs 的极速 Linux 0.11 内核学习和开发环境" 提供了一种高效的学习和研究早期 Linux 内核版本的方法。这个环境利用了三种强大的工具:Docker、QEMU 和 Bochs,它们各自在软件模拟和虚拟...
Bochs支持加载自定义的BIOS和硬盘映像,所以你需要创建一个包含Linux 0.11内核的硬盘映像,并配置Bochs以启动这个映像。 在Bochs中设置好Linux内核的启动参数后,就可以启动模拟器并观察内核的运行情况。这不仅可以...
标题中的“MinGW32+insight+bochs调试linux-0.11”涉及到的是在Windows环境下使用MinGW32、insight源代码调试器和Bochs模拟器来调试早期版本Linux(这里是Linux内核0.11)的过程。这个主题涵盖了多个IT领域的知识点...
首先,我们需要了解Linux 0.11内核。它是Linux发展史上的一个里程碑,由林纳斯·托瓦兹在1991年发布,是首个公开发布的Linux内核版本。这个早期的内核虽然功能相对简单,但包含了现代Linux内核的基本架构和核心概念...
在探讨如何在Linux环境下使用DDD(Data Display Debugger)与Bochs进行Linux0.11内核的源代码级调试之前,我们首先需要理解几个核心概念。 **Linux0.11**:这是Linux内核的一个早期版本,发布于1992年。尽管它已经...
将GDB与Bochs结合使用,可以实现对Linux 0.11内核的交互式调试。 调试步骤大致如下: 1. **配置Bochs**:首先,需要配置Bochs以模拟Linux 0.11运行所需的硬件环境,包括CPU、内存、硬盘等设置,并指定内核镜像文件...
结合bochs仿真调试工具边讲解边调试linux0.11版本内核初始化过程,通过该课程可以学习和理解关于linux内核在内存中的分布、分段及分页机制、逻辑地址线性地址及物理地址的区别,更系统的理解CPU实模式及保护模式等。...
将GDB与Bochs结合使用,开发者可以在Bochs模拟环境中启动并调试Linux 0.11内核。这在不干扰实际主机系统的情况下,提供了一个安全的环境来试验内核代码,理解其工作流程,查找并修复潜在问题。 具体步骤如下: 1. ...
此外,你还可以通过调试工具对Linux-0.11进行更深入的分析和研究,这对于理解操作系统原理和开发非常有帮助。 在探索Linux-0.11的过程中,你可能会遇到一些挑战,比如兼容性问题、配置错误或是引导失败。不过,借助...
此外,这个过程也可以帮助你熟悉构建和调试Linux内核的方法,对于有志于从事系统级编程或内核开发的人来说,是一项宝贵的实践。 总之,搭建Linux0.11系统环境是一个富有挑战性和教育意义的任务,它让你穿越时间,...
1、为了使注释版与实验环境上的Linux0.11内核保持一致,达到对应文件可以互换的目的,与Linux0.11原始版本相比,加入了15个系统调用函数(参见include/Linux/sys.h第78-92行。赵博士原书没有这部分注释,我不敢...
9. **编译与调试**:学习Linux 0.11内核时,我们还需要了解如何配置、编译和调试内核。这涉及到Makefile的理解、编译选项的选择以及使用GDB等调试工具。 10. **社区贡献**:Linux的成功离不开全球开发者的贡献,...
在Linux操作系统中,内核态堆栈是系统执行内核代码时使用的内存空间,它对于理解和调试操作系统至关重要。本文将详细解析"linux-0.11-dev"项目,这是一个早期的Linux内核版本,用于教学和研究目的。我们将探讨如何在...
在本文中,我们将深入探讨如何在Ubuntu 18.04操作系统中编译Linux 0.11内核以及如何在Bochs 2.6.9模拟器中对其进行调试和运行。这涉及到对Linux内核架构的理解、源代码编译过程、虚拟机技术以及调试技巧。我们将首先...
在Linux 0.11的开发过程中,Bochs提供了一个安全的环境来运行和测试新的内核改动,避免了可能对实际系统造成的影响。 在构建这个环境时,首先要解压"linux-0.11-devel-040809"文件,然后安装和配置nasm。安装完成后...
开发者或爱好者可以使用Bochs来运行和调试Linux 0.11这样的操作系统内核,而无需在真实硬件上进行。"bochsrc"文件是Bochs的配置文件,其中包含了模拟硬件的具体设置,比如内存大小、磁盘映像位置等,用于定制Bochs...