网站编辑培训学校,怎样做网站平台,开发app的费用,岳阳网站定制开发设计目录 背景资源获取bochs环境搭建windowsbochs环境搭建linux声明 背景
最近看赵炯老师的《linux内核完全注释》#xff0c;然后在最后一个习题里面看到使用bochs跑一下0.11的内核代码#xff0c;本来觉得很难#xff0c;但是如果做过一遍就会发现其实很简单#xff0c;这个… 目录 背景资源获取bochs环境搭建windowsbochs环境搭建linux声明 背景
最近看赵炯老师的《linux内核完全注释》然后在最后一个习题里面看到使用bochs跑一下0.11的内核代码本来觉得很难但是如果做过一遍就会发现其实很简单这个是学计算机最容易发现的感觉接下来记录一下我如何运行的linux0.11的环境。
资源获取
《linux内核完全注释》官网最新5.0版本的中英双语教材都有虽然赵老师说自己的英语很poor但是我觉得连我都能看懂的东西就是好东西---------http://www.oldlinux.org/ 内核源码--------------http://oldlinux.org/Linux.old/bochs/linux-0.11-040304.zip bochs-2.1.1不想使用太新的版本因为赵炯老师发布的时间在2004年所以2.1.1版本也是2004年环境问题会比较少,想下最新版本的我也不拦你只是可能需要自己折腾一下------------------https://sourceforge.net/projects/bochs/files/bochs/2.1.1/
bochs环境搭建windows
windows环境搭建基本没有任何难度本来我选了bochs-2.7发现运行报错所以下载了2.1.1解压linux-0.11-040304.zip之后目录如下这个包是赵炯老师直接配置好的两个系统映像文件和bochsrc配置文件只要bochs环境没问题这种类型的软件基本都会有问题可以直接运行 如果你已经安装好bochs了那么双机bxrc文件就默认使用bochs打开这里我们使用记事本看下内容 注释很清晰有些英文基础就行。 这里我们可以看到两个文件bochsrc-fdXXX和bochsrc-hdXXX,都可以运行都是内核根文件系统双机运行即可直接看到内核运行的窗口如下图 目前实测2.1.1坑定可以2.7不行似乎bios配置读取有些问题
bochs环境搭建linux 首先说下为啥要这么做windows其实是我的主力机配置非常高并且主要用来娱乐和游戏比较多功耗同时也很高不可能每天都在运行所以我觉得大家肯定都想要一个属于自己的工作站能够在任何地方使用它连接它哪怕用来装X。。。 所以我刚好手上有台小型机所以都搭建了群辉nas除了做些存储之外就是将其作为自己的云服务器来使用了还有另一个原因就是后面内核编译和生成印象文件的资料都是在linux环境下生成因此有一个随时能访问的linux环境应该是学计算机的同学们都想要的吧。买 这边我用自己的群辉拉起的一个小虚拟机使用了centos7安装的首先作为服务器我没装GUI。。。第一个坑挖好了。。 首先分以下几个步骤 第一步安装centos 安装centos看似简单但是工作站可能要用很久所以自己分配空间和下载软件以及软件管理方面还是需要讲究一下的 我使用的centos-everything.iso包总大小9g左右工作站不用尽可能的精简安装的时候需要的工具包可以提前装好 我这边先安排了500g的安装包分区就自动分吧默认的分区给大家看下 我们发现如果我们一直使用root的用户目录/root大小只有50g分配的500g中有445g的空间在/home,所以后面工作站应该建立到home下虽然用的是root账号东西可以放/home下。 安装bochs 在我提供的资源里面官网给了rpm包和tar.gz包其实我比较喜欢rpm但是yum源没有apt-get中的bochs相关包所以rpm缺少了的依赖yum也不能帮你这条路很难走我放弃了直接用make自己编译吧由于bochs是c和c写的所以gcc和g都要有首先没有的话confgure也会告诉你。那么接下来需要的包用yum下载即可我给大家提供一下 yum install gtk2 gtk2-devel yum install libXt libXt-devel yum install libXpm libXpm-devel yum install SDL SDL-devel yum install libXrandr-devel.x86_64 yum install xorg-x11-server-devel yum install gcc yum install gcc-c 接下来解压tar.gz包进入目录 应该有一个可执行文件叫./configure用make安装的第一步就是检查依赖如果按照上面的安装之后执行./configure之后就会生成makefile文件,同样日志也会打印 0.11的linux也是很多makefile文件原理应该都差不多 然后执行make命令后就会检查所有的makefile准备安装,看似顺利这边出现一个问题编译错误 …/iodev/harddrv.h:290:8: error: extra qualification ‘sparse_image_t::’ on member ‘get_physical_offset’ [-fpermissive] sparse_image_t:: 看样子出现一个多余宏定义这个原因大家gcc版本不同可能会出现不同的情况我的gcc 4.8.5如下 降版本不是明智的选择如果报错很多我觉得要么升软件实在不行再降版本因为可能会影响其他软件。 这里我发现两个小错误就直接定位到头文件进行了更改看看能不能解决既然多余的代码使用vi定位到行号注释即可 然后执行 make make install 我的环境安装到这里就没有什么问题了bochs安装成功 make install 安装命令 make uninstall 卸载命令 有了上述两种命令即可保证软件的安装和卸载可控如果不可控那么整个系统都会不可控。 安装成功后验证一下 bochs不会出现command not found 即可 运行0.11的linux 先看一个目录结构这里不需要改任何东西 我使用自己的笔记本连接的ssh执行了一下 bochs -q -f ./bochsrc-hd-new.bxrc 又报错了对于初学者的我来讲真的很难受看又看不懂学又学不会。。。 这个问题讲的是文件不能打开很误导人而不是找不到或者路径语法错误到最后我才尝试了一下更改路径写法。。。 改下文件 vi bochsrc-hd-new.bxrc 将全局的反斜杠都改成正斜杠即可 ok执行 又报错了。。。啊。。妈妈。我不想学计算机了 [XGUI ] bochs: cannot connect to X server 索性再搜索一下吧最后发现boch执行的时候会自动弹出一个ui弹窗如果你的ssh nb那么某些客户端会直接能够连接到X serverGUI服务客户端有X client就能够直接看到centos的桌面然后就能够调出bochs的ui。可惜我没安装GUI而且终端还要装client插件。。。这样的话没办法达到我在任何一个机器上面都能够调试自己的工作站了果断放弃。虽然有大神使用其他的软件做到远程ui但是冷门的、或者需要客户端配置和安装插件的都不符合我的目标都放弃了。 最后无奈之下使用vnc来显示我们的centos7ui界面吧。。。虽然ui不好用但是确实达到了目标 yum groupinstall “X Window System” yum groupinstall “GNOME Desktop” reboot 重启一下 有些安装了Graphical Administration Tools主要是一些文件管理器等等软件但是对我来说只需要个ui服务能够跑bochs其他工作都是以命令行形式运行即可。 安装完成之后我们通过vnc方式访问我们的centos 开启桌面模式并运行桌面 systemctl set-default multi-user.target 关闭桌面模式 systemctl set-default graphical.target 开启桌面模式 startx 开启桌面 再次执行命令 bochs -q -f bochsrc-hd-new.bxrc 大功告成vnc没有想象中的卡不过是借助了ui运行了一下命令窗口能接受吧。
声明
linux内核正在学习中因此如果存在部分概念错误问题欢迎评论区指出~我们共同学习进步