# LinuxOS-Lab **Repository Path**: jarenw/linux-os-lab ## Basic Information - **Project Name**: LinuxOS-Lab - **Description**: 使用vscode + Dev Containers插件 将实验环境容器化,环境配置尽量简化、自动化。 - **Primary Language**: Unknown - **License**: MulanPSL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2024-04-02 - **Last Updated**: 2024-04-02 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # 构造一个Linux系统并跟踪分析Linux内核启动过程 ## 1 简介 本项目构造了一个 Linux 系统,完成了容器镜像配置,用户获取镜像启动容器即可调试分析 Linux 内核的启动过程 ## 2 使用说明 ### 2.1 安装 [Docker](https://www.docker.com/products/docker-desktop) ### 2.2 安装 [VS Code](https://code.visualstudio.com/) 开发工具,并在 VS Code 中安装 Dev Container 插件 ### 2.3 镜像使用 1. 获取镜像 ```bash docker pull jarenw/linux-kernel:v1.0 ``` 2. 启动容器,会自动进入容器工作区 ```bash docker run -it linux-kernel ``` ### 2.4 实验调试 1. 在纯命令行下启动虚拟机 ```bash qemu-system-x86_64 -kernel linux-5.4.34/arch/x86/boot/bzImage -initrd rootfs.cpio.gz -S -s -nographic -append "console=ttyS0" ``` 2. 再打开一个窗口,进入 `linux-5.4.34` 文件夹,启动gdb,把内核符号表加载进来,建立连接,即可进行调试 ```bash cd linux-5.4.34/ apt-get update apt-get install gdb gdb vmlinux (gdb) target remote:1234 (gdb) b startc_kernel c、bt、list、next、step.... ``` ## 3 补充:如何在 VS Code 中调试 ### 3.1 VS Code 通过 SSH 连接实验所用虚拟机 ### 3.2 安装 Docker 插件,进入 Docker,右击虚拟机上对应容器,选择 `Attach Visual Studio Code`,将在新窗口将进入容器 ![alt text](image%7BABE936E1-8598-4d21-BF86-56DFAF158DFA%7D.png) ### 3.3 进行调试 1. 打开终端显示: `root@ef82eff95b2c:~#`,进入工作区 ```bash cd /workspace ``` 2. 按照`2.4 实验调试`进行调试,结果如下 ![alt text](image%7B794AEAB7-66B8-4bf1-8D98-F962D9DD0DCD%7D.png)