# Linux0.11-Lab **Repository Path**: findexplore/Linux0.11-Lab ## Basic Information - **Project Name**: Linux0.11-Lab - **Description**: No description available - **Primary Language**: Unknown - **License**: Not specified - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-04-22 - **Last Updated**: 2020-12-19 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Linux 0.11 Lab > **这个仓库存放的是Linux 0.11的源代码,完整的实验在oslab.tar.gz中** > **实验环境:deepin15.11,其它版本应该也同理,但是编译Linux 0.11内核需要低版本的gcc,所以需要先安装gcc-3.4** ## ~~一、安装编译环境~~ 此方法编译出的系统镜像有进程通讯的BUG - #### *依次执行下面的命令,来安装gcc-3.4* ```cmd wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/gcc-3.4_3.4.6-6ubuntu3_amd64.deb wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/cpp-3.4_3.4.6-6ubuntu3_amd64.deb wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/g++-3.4_3.4.6-6ubuntu3_amd64.deb wget http://old-releases.ubuntu.com/ubuntu/pool/universe/g/gcc-3.4/libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb sudo dpkg --force-depends -i libstdc++6-dev_3.4.6-6ubuntu3_amd64.deb g++-3.4_3.4.6-6ubuntu3_amd64.deb cpp-3.4_3.4.6-6ubuntu3_amd64.deb gcc-3.4_3.4.6-6ubuntu3_amd64.deb gcc-3.4-base_3.4.6-6ubuntu3_amd64.deb ``` - #### *实验还需要as86、ld86、完善gcc环境,如果没有的话也需要进行安装,as86、ld86在bin86包中* ```cmd sudo apt-get update sudo apt-get install bin86 sudo apt-get install gcc-multilib ``` - #### 可选操作 修改默认gcc ``` sudo update-alternatives --install /usr/bin/gcc gcc /usr/bin/gcc-3.4 30 ``` - #### 编译内核 进入linux-0.11文件夹,执行make命令即可,会生成Image文件。 ## 二、安装带debugger-gui的bochs 1.去官网下载 下载 [bochs-2.6.9.tar.gz](https://sourceforge.net/projects/bochs/files/bochs/) 2.安装一系列的包 因为Bochs 需要在 X11 环境下运行,因此你的 Linux 系统必须已经安装了X Window 系统才能使用Bochs。 因为 Bochs 是用C++写的,所以这里要安装GNU gcc/g++编译器。 ```cmd sudo apt-get install build-essential sudo apt-get install xorg-dev sudo apt-get install bison sudo apt-get install libgtk2.0-dev ``` 3. 解压下载的源代码: ``` sudo tar zxvf bochs-2.6.9.tar.gz cd bochs-2.6.9 ``` 4. 运行configure脚本,它会测试你的机器,C/C++编译器以及一些库,用来判断何种配置适合于你的机器。运行: ``` sudo ./configure --with-x11 --with-wx --enable-disasm --enable-all-optimizations --enable-readline --enable-debugger-gui --enable-x86-debugger --enable-a20-pin --enable-fast-function-calls --enable-debugger ``` 5. 第4步正确运行后,会产生一个Makefile文件,然后编译安装: ``` make clean sudo make sudo make install ``` 至此,bochs安装已经结束。 6. 启动bochs 修改bochs配置文件bochsrc,在文件最后添加: ``` display_library: x, options="gui_debug" ``` 运行bochs: ``` bochs -q -f bochsrc ``` 在源目录下,执行./run脚本即可启动Bochs ## 三、安装支持GDB的bochs 1. 运行configure脚本,它会测试你的机器,C/C++编译器以及一些库,用来判断何种配置适合于你的机器。运行: ``` sudo ./configure --enable-gdb-stub --enable-disasm --enable-trace-cache --enable-show-ips ``` 2. 第1步正确运行后,会产生一个Makefile文件,然后编译安装: ``` make clean sudo make sudo make install sudo mv /usr/local/bin/bochs /usr/local/bin/bochs-gdb ``` 至此,bochs-gdb安装已经结束。 3. 启动bochs-gdb 修改bochs配置文件bochsrc,在文件最后添加: ``` gdbstub: enabled=1, port=1234, text_base=0, data_base=0, bss_base=0 ``` 运行bochs: ``` bochs-gdb -q -f bochsrc ``` 在源目录下,执行./run-gdb脚本即可启动Bochs-gdb等待gdb连接 ## 四、安装gdbgui 1. 安装 python3.6 或更高 2. 运行: ``` sudo apt install gdb sudo apt install python3-pip sudo pip3 install --upgrade pip sudo pip3 install gdbgui ``` 至此,gdbgui安装已经结束。 3. 运行gdbgui: ``` gdbgui $OSLAB_PATH/linux-0.11/tools/system ``` 4. 在打开的网页输入gdb命令连接bochs-gdb: ``` target remote localhost:1234 ```