BruceWhiteSJTU / linux-0.12

《Linux内核完全剖析》linux0.12源码及实验环境

Home Page:https://ultraji.xyz/categories/code-read/linux0-12/

Geek Repo:Geek Repo

Github PK Tool:Github PK Tool

linux-0.12 源码学习

参考《Linux内核完全剖析 --基于0.12内核》

  1. linux-0.12目录为修改过的源代码,其中加入了中文注释,修改部分代码使其能在现在的环境下编译,并且支持GDB调试

  2. oslab为实验目录,切到oslab目录下,运行该目录下的run.sh脚本即可运行linux0.12操作系统。

实验截图

一、环境搭建

1.1 方式一

可以选择已创建好的docker镜像作为实验环境(人生苦短,我用容器)。linux用户可以通过挂载将本地项目目录挂载到容器中,windows或mac用户可以在容器内重新git clone一份(因为不区分文件名大小写会导致挂载出错)。->Dockerfile

  1. docker方式

    # 1. 从docker hub中拉取镜像
    docker pull ultraji/ubuntu-xfce-novnc
    # 2. 运行容器
    docker run -t -i -p 6080:6080 -v ${本地项目路径}:${容器内项目路径} ultraji/ubuntu-xfce-novnc

    或docker-compose方式

    # 1. 切到项目docker目录下
    cd linux-0.12/src/docker
    # 2.修改docker-compose.yaml中的项目挂载路径
    ...
    # 3.启动容器
    docker-compose up -d
  2. 通过浏览器输入http://localhost:6080就访问容器内的桌面系统了。

    • vnc登陆密码: 123456
    • 默认用户: ubuntu
    • 用户密码: 123456

1.2 方式二

ubuntu(64bit,>=14.04) 的用户也可以使用src/code目录下的一键环境搭建脚本。->setup.sh

二、如何使用

该项目的oslab为实验目录,切到oslab目录下,运行该目录下的run.sh脚本即可运行linux0.12操作系统。

  • ./run.sh -m  编译生成新的Image镜像
  • ./run.sh -g  运行bochs模拟器,与gdb联调

About

《Linux内核完全剖析》linux0.12源码及实验环境

https://ultraji.xyz/categories/code-read/linux0-12/

License:GNU General Public License v3.0


Languages

Language:C 83.1%Language:Assembly 11.3%Language:Makefile 4.5%Language:Shell 0.7%Language:Dockerfile 0.4%