From: FFreestanding <62629010+FFreestanding@users.noreply.github.com> Date: Sun, 10 Dec 2023 15:18:58 +0000 (+0800) Subject: 教程介绍和环境搭建 (#19) X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/commitdiff_plain/0165ff6162aa6546f9f471edff7eed8672c3159b?ds=sidebyside 教程介绍和环境搭建 (#19) * Add files via upload 0-教程介绍和环境搭建 * update README.md and create a tuturial dir --------- Co-authored-by: ffreestanding --- diff --git a/README.md b/README.md index 213f213..c161be6 100644 --- a/README.md +++ b/README.md @@ -14,6 +14,7 @@ LunaixOS - 一个简单的,详细的,POSIX兼容的(但愿!),带有 如果有意研读LunaixOS的内核代码和其中的设计,以下资料可能会对此有用。 ++ [最新的LunaixOS源代码分析教程](docs/tutorial/0-教程介绍和环境搭建.md) + [内核虚拟内存的详细布局](docs/img/lunaix-os-mem.png) + [LunaixOS启动流程概览](docs/img/boot_sequence.jpeg) + LunaixOS总体架构概览(WIP) @@ -157,7 +158,6 @@ qemu-img create -f vdi machine/disk0.vdi 128M + `vmrs [pid]` 列举进程``的内存区域图(Memory Regions),如果``未指定,则默认为正在运行的进程(smp=1)。 + `proc [pid]` 打印进程``的进程控制块状态,如果``未指定,则默认为正在运行的进程(smp=1)。 + `proc_table` 列举所有非终止的进程以及他们的状态。 -+ `syslog` 打印到目前为止的系统日志。 该插件可以通过运行以下命令来进行安装: diff --git "a/docs/tutorial/0-\346\225\231\347\250\213\344\273\213\347\273\215\345\222\214\347\216\257\345\242\203\346\220\255\345\273\272.md" "b/docs/tutorial/0-\346\225\231\347\250\213\344\273\213\347\273\215\345\222\214\347\216\257\345\242\203\346\220\255\345\273\272.md" new file mode 100644 index 0000000..0041c47 --- /dev/null +++ "b/docs/tutorial/0-\346\225\231\347\250\213\344\273\213\347\273\215\345\222\214\347\216\257\345\242\203\346\220\255\345\273\272.md" @@ -0,0 +1,83 @@ +## 简介 + +本教程会对lunaix-os源代码进行解读,希望能帮助到一些OS爱好者。 + +为了防止漏掉一些情况,笔者也是从一个新的虚拟机进行搭建。 + +注意lunaix-os搭建环境已经不需要编译gcc、qemu、bochs了,可以用**版本为11的gcc**进行编译lunaix-os源代码。 + +## 开始 + +首先准备一个Ubuntu22系统,换好源 + +```bash +sudo apt-get update +``` + +**qemu**安装 + +```bash +sudo apt-get install qemu-system +``` + +接下来安装gdb插件**pwndbg**(方便调试,也可以不安装),虽然lunaix-os最近也写了自己的插件,但是计划后期再介绍和使用 + +```bash +sudo apt-get install git +git clone https://github.com/pwndbg/pwndbg +cd pwndbg +./setup.sh +``` + +检查`~/.gdbinit` ,如果暂时不需要pwndbg可以用`#` 注释`~/.gdbinit`里面的内容 + +```bash +cat ~/.gdbinit + +source /home/ffreestanding/pwndbg/gdbinit.py +``` + +## 测试 + +下面测试lunaix-os的环境 + +首先创建虚拟磁盘镜像 + +```bash +cd lunaix-os +mkdir machine +cd machine +qemu-img create -f vdi disk0.vdi 128M +``` + +安装依赖 + +```bash +sudo apt-get install xorriso +sudo apt-get install mtools +``` + +修改虚拟磁盘镜像的路径 + +打开lunaix-os/makeinc/qemu.mkinc,修改disk0.vdi路径 + +``` +-drive id=disk,file="/XXX/disk0.vdi",if=none \ +``` + +编译 + +```bash +cd lunaix-os +make debug-qemu + +pwndbg> c +``` + +成功启动 + +## FAQ + +**1.编译时出错怎么解决?** + +推荐使用Ubuntu**22**自带的gcc、并且安装好依赖。