ubuntu 8.04 bochs 调试linux 0.11内核

[积累] 在Ubuntu16.04 64位系统上配置linux-0.11内核实验环境 在Ubuntu16.04 64位系统上配置linux-0.11内核实验环境 转载请注明出处 1 配置思路由于编译器、汇编器等工具的更新,在Ubuntu16.04直接编译linux-0.11内核代码需要对源代码做很多的修改。为了减少工作量,本文使用了哈尔滨工业大学计算机学院在网易云课堂操作系统课中提供的实验环境,下载地址为 https://cms.hit.edu.cn/mod/folder/vie 阅读详情

要下载的软件包:
bochs-2.3.5
linux-0.11-081030.tar.gz
linux-0.11-devel-060625.zip(hdc-0.11-new.img 文件系统)
(hdc-0.11-new.img 只用这一个文件也可以时入linux 0.11系统,只需在配置bochs时稍做修改就可以,但是要调试源码的话,还是自己编译来得爽)

安装bochs之前做一些准备工作
sudo apt-get install build-essential
sudo apt-get install xorg-dev
sudo apt-get install bison

一.安装bochs
1. 解包
tar xvfz bochs-2.3.5.tar.gz
2.进入bochs-2.3.5目录
cd bochs-2.3.5
3. 配置
编译两份不同的配置的版本
第一个的版本为使用bochs自带的内部调试器

./configure --prefix=/opt/bochs/debug --enable-plugins --enable-debugger --enable-disasm
注释:
    * --prefix=/opt/bochs/debug 软件将被安装到哪个目录下
    * --enable-plugins 是必须要的
    * --enable-debugger 是打开bochs的自带调试器
    * --enbale-disasm 允许反汇编
4. 编译
make
5. 安装
sudo make install
6.加一个符号连接
ln -s /opt/bochs/debug/bin/bochs /usr/bin/bochsdbg

第二个版本为使用gdb-stub的版本
1. 清理
在配置第二个版本之前,需要把刚才编译的东西清理掉,输入以下命令:
make clean
2. 配置
然后配置,配置命令为
./configure --prefix=/opt/bochs/gdbstub --enable-plugins --enable-disasm --enable-gdb-stub
配置注释:
    * --enable-gdb-stub 打开gdb stub支持
    * 其他选项同上,注意这个不同版本会安装到不同的目录下。
3. 编译
make
4. 安装
sudo make install
这样bochs使用外部调试器gdb的版本就编译好了。
5.建一个符号链接
ln -s /opt/bochs/gdbstub/bin/bochs /usr/bin/bochs

二. 编译linux 0.11 内核
linux 0.11源码文件在linux-0.11-081030.tar.gz中,进入目录解压后的目录linux-0.11中

1. ubuntu 8.04 gcc 版本为4.2.4,但是GCC4.x 默认检查stack安全,会导致出现__stack_chk_fail错误,所以在编译之前应先修改Makefile:
    linux-0.11/Makefile
    linux-0.11/kernel/Makefile
    linux-0.11/kernel/chr_dev/Makefile
    linux-0.11/kernel/blk_dev/Makefile
    linux-0.11/fs/Makefile
    在 CFLAGS参数中加入-fno-stack-protector

2. 安装 as86 ld86
下载dev86-0.16.3-8.i386.rpm包,转为deb,然后安装
sudo apt-get install alien (安装rpm转deb工具)
sudo alien dev86-0.16.3-8.i386.rpm (转为deb)
sudo apkg -i dev86-0.16.3-8.i386.deb (安装as86与ld86)
更简单的方法是: sudo apt-get install bin86 (这种方法等下次重装系统的时候试一下,呵呵)

3.编译 make (编译不成功记得在下次编译前 make clean 一下),如果编译成功则在linux-0.11目录下生成 Image

三. 配置bochs
这是bochs-2.3.5的配置文件

romimage: file=$BXSHARE/BIOS-bochs-latest 
megs: 16
vgaromimage: file=$BXSHARE/VGABIOS-lgpl-latest
vga: extension=vbe
floppya: 1_44="Image", status=inserted
floppyb: 1_44=diska.img, status=inserted
ata0-master: type=disk, path="hdc-0.11-new.img", mode=flat,cylinders=410, heads=16, spt=38
boot: a
log: bochsout.txt
parport1: enable=0
vga_update_interval: 300000
keyboard_serial_delay: 200
floppy_command_delay: 50000
ips: 4000000
mouse: enabled=0
private_colormap: enabled=0
fullscreen: enabled=0
screenmode: name="sample"

(注:如果编译内核不成功且只是想启动bochs,看一下linux 0.11 界面的话,可以直接把上述配置的boot:a,改为boot:c)

运行bochs
bochs -f bochsrc.bxrc
注:用gdb 调试时出现“system bios must end at 0xffff”,可把*.bxrc romimage 一行中的address=0f0000 去掉
#romimage: file=$BXSHARE/BIOS-bochs-latest, address=0xf0000
 romimage: file=$BXSHARE/BIOS-bochs-latest
Linux内核0.11实验一 建立实验环境 0x01 环境说明 Ubuntu16.04 bochs虚拟机:运行内核 linux内核0.11 gcc-3.4 简单环境下载:https://github.com/Wangzhike/HIT-Linux-0.11 内部包含bochs和linux内核0.11的文件   0x02 安装相关依赖 进入下载文件夹,运行setup.h 安装libncurses5:i386和libexpat1-d... 阅读详情

相关推荐

Linux 0.11内核编译与Bochs模拟器调试技术指南

本文还有配套的精品资源,点击获取 简介:本文旨在指导读者如何在Ubuntu 18.04系统上编译Linux 0.11内核,并在Bochs 2.6.9模拟器中进行调试和运行。内容包括对Linux 0.11内核的理解、源代码编译流程、虚拟机技术运用以及调试技术的使用。教程从Linux 0.11内核的基本概念讲起,逐步介绍编译步骤和Bochs模拟器的使用方法,最后强调调试技巧的重...

weixin_35706067的博客 1701

Linux 环境下编译 0.11版本内核 kernel

原文地址:http://chfj007.blog.163.com/blog/static/173145044201132523034138/ 最近在看《linux内核0.11完全注释》一书,由于书中涉及汇编语言的地方众多,本人在大学时汇编语言学得一塌糊涂,所以实在看不下去了,头都大了只好匆匆看了个头尾(前面几章和最后一章)。看来即使有《九阴真经》这样的武功秘籍,内功不够也是修炼不出来神马来的。于

yazhouren的专栏 2258

dev86-0.16.3-8.i386.rpm

dev86-0.16.3-8.i386.rpm,linux平台安装包.

bochs2.6.2配置

安装 bochs-2.6.8 编译阶段 ./configure --prefix=/bochs --enable-debugger --enable-disasm --enable-iodebug --enable-x86-debugger --with-x –with-x11 回车 报错:#include<xrandr.h>没有此文件 解决:yum install libXrandr-devel bochs2.6.8配置 megs: 32 romimage: file=/bochs

qq_43676531的博客 754

bochs2.6.2 虚拟机最新版本(包括调试指令说明)

bochs2.6.2 虚拟机最新版本(包括调试指令说明)

Ubuntu 18.04环境下Linux 0.11 内核编译及在bochs 2.6.9中的调试运行

Ubuntu 18.04环境下Linux 0.11 内核编译及在bochs 2.6.9中的调试运行

【操作系统基础】实践部分

本文参考MOOC哈工大操作系统课程与课件主要基于Linux 0.11系统展开实践部分依赖虚拟环境展开,请访问网址本文就试验一、二、三进行梳理。

咸鱼的技术博客 1194

linux挂载img镜像文件

本文主要介绍linux挂载img镜像文件的方法。

bochs的安装、配置和运行(《操作系统真象还原》第1章实验)

一、搭建环境

南七行者的博客 3481

(头歌作业)—6.1 葡萄酒评论分析报告(project)

请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。请读取文件中的数据,完成以下任务:‪‬‪‬‪‬‪‬‪‬‮‬‪‬‭‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‫‬‪‬‪‬‪‬‪‬‪‬‪‬‮‬‪‬‪‬。

2301_80677920的博客 1246

飞塔防火墙和paloalto防火墙构建ipsec

一、配置fortigate防火墙1.防火墙配置上网功能1.1配置fortigate的wan1接口IP为100.100.100.2/24VLAN交换internal,IP地址为192.168.156.99/24。开启DHCP分配IP地址范围为192.168.156.110-192.168.156.2101.2配置访问互联网的缺省路由1.3配置访问互联网的安全策略2.配置与Paloalto防火墙的IPSECVPN。

weixin_44675999的博客 3741

哈工大实验搭建

2)文件结构 Image 文件 oslab 工作在一个宿主操作系统之上,我们使用的 Linux,在宿主操作系统之上完成对 Linux 0.11 的开发、修改和编译之后,在 linux-0.11 目录下会生产一个名为 Image 的文件,它就是编译之后的目标文件。 该文件内已经包含引导和所有内核的二进制代码。如果拿来一张软盘,从它的 0 扇区开始,逐字节写入 Image 文件的内容,就可以用这张软盘启动一台真正的计算机,并进入 Linux 0.11 内核。 oslab 采用 bochs 模拟器加载这个 Ima

wuguinianjing的博客 524

汇编语言与USB量产工具开发解析

本文解析了汇编语言在USB量产工具开发中的应用。USB量产工具主要用于批量配置USB设备,包括固件烧录、格式化、信息写入等功能。汇编语言在底层硬件操作中发挥关键作用,如直接控制USB寄存器、编写驱动和精确时序控制。文章通过伪代码示例展示了USB控制器初始化和固件烧录流程,并强调硬件依赖性、安全机制和时序精度等注意事项。开发需严格遵循芯片手册,建议优先使用厂商SDK,避免设备损坏风险。

RulesChen的博客 1025

ubuntu8.04下bochs安装及调试linux 0.11内核

安装bochs之前做一些准备工作 sudo apt-get install build-essential sudo apt-get install xorg-dev sudo apt-get install bison 一.安装bochs 1. 解包         tar xvfz bochs-20100502.tar.gz 2.进入bochs-20100502目录

SuperFrank的专栏 816

silvaco(TCAD)击穿特性仿真,的不收敛问题

在silvaco仿真学习过程中,最近这段时间一直有一个很大的问题困扰着我,那就是我在仿真击穿特型曲线的过程中,在电压加到后期比较大的情况下,往往会出现仿真不收敛的情况,正常情况下器件的击穿应该在一个外加偏压上,电流出现迅速的上升,这才是击穿的定义,但是我仿真的过程中程序跑到一个较大的电压时,器件出现击穿,我观察电压电流曲线,在击穿电压(程序报告的)电流并没有出现迅速的变化,类似于下图这种形式。(2)解决方法,将初始电压调整到合适的值,这个值可能是更大的也可能是更小的,要注意多多尝试。

zm19992533002908的博客 4949

手把手教你:如何为自制的STM32H7飞控板适配PX4固件(基于NuttX)

本文详细介绍了如何为自制的STM32H7飞控板适配PX4固件,基于NuttX系统进行移植。从硬件设计规范到软件环境配置,再到PX4固件的移植与调试,提供了完整的实战指南。特别分享了如何复用FMU-v6u参考设计以节省开发时间,并解决了常见问题,帮助开发者快速实现高性能飞控系统的搭建。

weixin_27697385的博客 475

ubuntu 8.04 bochs 调试linux 0.11内核 .

要下载的软件包: bochs-2.3.5 linux-0.11-081030.tar.gz linux-0.11-devel-060625.zip(hdc-0.11-new.img 文件系统) (hdc-0.11-new.img 只用这一个文件也可以时入linux 0.11系统,只需在配置bochs时稍做修改就可以,但是要调试源码的话,还是自己编译来得爽) 安装bochs之前做一些

流浪的达芬奇 559

[Dify 案例实战] 构建一个基于 Dify 的个人写作助理工具-带绑定资源

想要一个懂你风格、能帮你写文章、润色文字、生成大纲的 AI 写作助手? 本文将带你从 0 到 1,完整实现一个 基于 Dify 工作流的个人写作助理工具。 我们会利用 Dify 的 LLM 节点、变量传递、文本处理、知识库与多轮对话能力.

技术小甜甜:传播可落地技术,帮助个人和企业降低解决真实场景问题的成本 279

搭建linux 0.11内核编译环境(转)

不看linux内核实在没有学习linux的必要,最近又开始看《Linux内核完全注释》,现在开始看比以前感觉好多了,一些以前难以明白的问题现在也 不是什么问题。有人说时间可以解决很多问题,以前不懂,现在终于明白了。下面是我参考别人写的文章,自己照着上面在Ubuntu9.04上做了下,一切顺 利。好了,废话少说! ****************************************

pk_20140716的专栏 5770

电气:蒙特卡洛1000个风光场景并通过削减法|聚类法得到几个典型场景(matlab\python实现)

    个人电气目录传送门:学好电气全靠它,个人电气博文目录(持续更新中…)     本文内容包括22页(代码和一些自己对风光的观点) 提示:专栏解锁后,可以查看该专栏所有文章,划算。 文章目录一、理论依据1.风电DG出力概率模型1.2光伏DG出力概率模型1.3对风光的认识二、蒙特卡洛模拟1000个风光场景、并通过削减法得到5个典型风电场景 (Matlab 版程序)三、蒙特卡洛模拟1000个风光场景、并通过聚类法得到5个典型

总裁余(余登武)博客 7681

在lio_sam中融入GPS

在LIO(激光惯性里程计)系统中,将GPS信息融合到里程计中,借助GTSAM(Georgia Tech Smoothing and Mapping)库进行因子图优化,可以有效提升全局定位精度。当进入到GPS信号不好或缺失的环境中,需要借助融合后的里程计反算经纬度,来获取高精度的定位信息。利用GeographicLib第三方库将经纬度投影到局部笛卡尔坐标系中。

如果想成为中心,那么就到中心去吧。 1212

《Linux内核完全注释》阅读笔记——搭建实验环境(转载)

  不看linux内核实在没有学习linux的必要,最近又开始看《Linux内核完全注释》,现在开始看比以前感觉好多了,一些以前难以明白的问题现在也不是什么问题。有人说时间可以解决很多问题,以前不懂,现在终于明白了。下面是我参考别人写的文章,自己照着上面在Ubuntu9.04上做了下,一切顺利。好了,废话少说!******************************************************************************搭建linux-0.11(0.95)源代码的

2235

怀旧版电脑GBC模拟器

再现原版GBC掌机的界面,电脑运行连游戏界面都一样大小,很怀旧,很真实,(英文版)强烈推荐,很小的文件,很难才找到的。

手把手教你用VMware和Bochs在Linux下编译运行GeeKOS 0.3.0(附完整配置文件)

本文详细介绍了在Linux环境下使用VMware和Bochs编译运行GeeKOS 0.3.0的全过程,包括环境搭建、源码准备、编译工具链配置、Bochs仿真环境调优以及调试技巧。特别针对操作系统课设中常见问题提供了解决方案,帮助开发者高效完成GeeKOS实验环境的构建与运行。

weixin_30437847的博客 541

蓝牙模块HM-10手册

蓝牙模块HM-10手册,该手册对蓝牙模块HM-10进行了详细的介绍和使用方法以及一些AT指令。

VC中sqlite的使用

在VC中对sqlite的使用,实现数据库大批数据的快速插入,读取数据库中的数据在ListCtrl中显示

Ubuntu16.04搭建bochs+gdb环境联调linux-0.11内核

安装bochs依赖项 - 修改为./configure --enable-gdb-stub bochs源码下载地址 之前下载2.6版本的,一直有error。所以我用的是2.4.5版本的 联调设置

IPv6 496

linux 0.11 编译 msed,Ubuntu 12.10安装Bochs 2.6, 调试linux-0.11内核

Linux(ubuntu)安装bochsubuntu下安装bochsUbuntu 10.04安装Bochs 2.4.5笔记bochs的安装与使用linux bochs的启动本文介绍在SUSE Linux Enterprise Desktop系统下如何使用bochs调试内核linux-0.11版本前言:linux-0.11虽然是早期内核代码,代码不超过2万行,但却基本是现今内核代码的精简版本,麻雀虽...

weixin_42318712的博客 595

Ubuntu 12.10安装Bochs 2.6, 调试linux-0.11内核

http://blog.csdn.net/sinzou1/article/details/5903968 Linux(ubuntu)安装bochs http://wenku.baidu.com/view/f968e23b0912a21614792914.html ubuntu下安...

chuanzou4767的博客 198
上一篇: bochs 开启调试选项
下一篇: linux内核完全剖析0.12笔记--第四章 80x86保护模式及其编程
AstrayLinux
博客等级 码龄15年 55粉丝 38原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

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

抵扣说明:

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

余额充值