[积累] 在Ubuntu16.04 64位系统上配置linux-0.11内核实验环境
2017-07-01 09:52
736 查看
转载请注明出处
这个压缩包中带有bochs软件并设置好了bochs的运行参数,带有Linux-0.11源代码以及一个简易的运行脚本。其中linux-0.11源代码与原版的代码由哈工大的老师做了修改,主要是修改了make文件。要查看详细的修改信息,可以使用diff命令,来比较修改后的源码和原版linux-0.11代码。本文主要做的主要工作:实现在Ubuntu16.04 64位系统上编译上述内核,并在bochs中进行模拟。
cpp-3.4_3.4.6-6ubuntu5_amd64.deb
g++-3.4_3.4.6-6ubuntu3_amd64.deb
gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb
gcc-3.4_3.4.6-6ubuntu3_amd64.deb
libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb
然后使用
安装完毕后用
说明缺少32位程序的libc库,h执行如下命令进行安装(参考 https://askubuntu.com/questions/470796/fatal-error-sys-cdefs-h-no-such-file-or-directory):
之后内核应该可以正确编译了。
将
如果提示需要安装
如果启动过程中黑屏,应该是进入了调试模式,在终端中输入
1 配置思路
由于编译器、汇编器等工具的更新,在Ubuntu16.04直接编译linux-0.11内核代码需要对源代码做很多的修改。为了减少工作量,本文使用了哈尔滨工业大学计算机学院在网易云课堂操作系统课中提供的实验环境,下载地址为 https://cms.hit.edu.cn/mod/folder/view.php?id=1716。这个压缩包中带有bochs软件并设置好了bochs的运行参数,带有Linux-0.11源代码以及一个简易的运行脚本。其中linux-0.11源代码与原版的代码由哈工大的老师做了修改,主要是修改了make文件。要查看详细的修改信息,可以使用diff命令,来比较修改后的源码和原版linux-0.11代码。本文主要做的主要工作:实现在Ubuntu16.04 64位系统上编译上述内核,并在bochs中进行模拟。
2 安装gcc-3.4
上述内核代码中的make文件使用gcc-3.4编译器编译内核,因此我们需要手动安装低版本gcc-3.4编译器。由于gcc-3.4已经不再由官网维护,因此我们需要手动下载deb包进行安装。在ubuntu的归档网站 http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/ 下载如下包:cpp-3.4_3.4.6-6ubuntu5_amd64.deb
g++-3.4_3.4.6-6ubuntu3_amd64.deb
gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb
gcc-3.4_3.4.6-6ubuntu3_amd64.deb
libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb
然后使用
sudo dpkg --force-depends *.deb命令进行安装,*代表上面的包名。
安装完毕后用
gcc-3.4 --version进行测试。在测试通过后我们开始尝试编译内核,切换至linux-0.11/目录执行
make命令。在执行
make命令过程中,如果出现了如下错误提示:
/usr/include/features.h|374|fatal error: sys/cdefs.h: No such file or directory|
说明缺少32位程序的libc库,h执行如下命令进行安装(参考 https://askubuntu.com/questions/470796/fatal-error-sys-cdefs-h-no-such-file-or-directory):
sudo apt-get install libc6-dev-i386。
之后内核应该可以正确编译了。
3 修改运行脚本
内核编译完成之后,需要运行bochs来启动内核,上述压缩包中的run脚本启动了压缩包中自带的32位bochs,但是由于我正在用64位的系统,还需要一些额外的库来运行32位的bochs,因此我安装了64位的bochs。要使用自己安装的boches,需要按照如下方式修改
run脚本:
将
run脚本的最后一行
$OSLAB_PATH/bochs/bochs-gdb -q -f $OSLAB_PATH/bochs/bochsrc.bxrc替换为
bochs -q -f $OSLAB_PATH/bochs/bochsrc.bxrc即,使用系统路径下的bochs命令启动bochsrc.bxrc虚拟机。
如果提示需要安装
x module,那么执行如下命令安装:
sudo apt-get install bochs-x bochs-sdl
如果启动过程中黑屏,应该是进入了调试模式,在终端中输入
c命令,可以启动正常模式。至此,可以编译运行的linux-0.11内核环境应该已经构建完毕了。
相关文章推荐
- Linux系统(Ubuntu16.04)jdk环境配置
- Ubuntu Linux系统环境变量配置文件简介
- linux VPS java 环境搭建 及Ubuntu 系统配置及内存优化
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用(20135234,20135229)
- 交叉编译环境搭建:系统: Ubuntu8..1 内核: linux2.6平台:2410
- Ubuntu16.04系统配置.net core环境
- Ubuntu Linux系统环境变量配置文件
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用
- Ubuntu Linux系统环境变量配置文件介绍
- Linux 0.11内核编译和bochs上的实验环境的搭建
- 信息安全系统设计基础实验一:Linux开发环境的配置和使用(135317、135337)
- Linux 0.11内核编译和bochs上的实验环境的搭建
- 配置64位UBUNTU 编译环境出现的arm-none-linux-gnueabi-gcc: not found
- linux下ubuntu系统安装及开发环境配置
- 【课程分享】深入浅出嵌入式linux系统移植开发 (环境搭建、uboot的移植、嵌入式内核的配置与编译)
- Linux 0.11内核编译和bochs上的实验环境的搭建
- ubuntu下lamp环境配置及将window代码迁移至linux系统
- 在Linux系统中配置Hadoop环境(1)---在虚拟机上安装Linux Ubuntu系统
- Linux 0.11内核编译和bochs上的实验环境的搭建
- ubuntu16.04配置Lamp环境(搭建linux+apache+mysql+php7环境