教程介绍和环境搭建 (#19)
authorFFreestanding <62629010+FFreestanding@users.noreply.github.com>
Sun, 10 Dec 2023 15:18:58 +0000 (23:18 +0800)
committerGitHub <noreply@github.com>
Sun, 10 Dec 2023 15:18:58 +0000 (15:18 +0000)
* Add files via upload

0-教程介绍和环境搭建

* update README.md and create a tuturial dir

---------

Co-authored-by: ffreestanding <achillesweb@qq.com>
README.md
docs/tutorial/0-教程介绍和环境搭建.md [new file with mode: 0644]

index 213f2132f29818052b9514bf9daf7c30a501a198..c161be60757df70b038a1075f63eb282e280cb5e 100644 (file)
--- 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]` 列举进程`<pid>`的内存区域图(Memory Regions),如果`<pid>`未指定,则默认为正在运行的进程(smp=1)。
 + `proc [pid]` 打印进程`<pid>`的进程控制块状态,如果`<pid>`未指定,则默认为正在运行的进程(smp=1)。
 + `proc_table` 列举所有非终止的进程以及他们的状态。
-+ `syslog` 打印到目前为止的系统日志。
 
 该插件可以通过运行以下命令来进行安装:
 
diff --git a/docs/tutorial/0-教程介绍和环境搭建.md b/docs/tutorial/0-教程介绍和环境搭建.md
new file mode 100644 (file)
index 0000000..0041c47
--- /dev/null
@@ -0,0 +1,83 @@
+## 简介\r
+\r
+本教程会对lunaix-os源代码进行解读,希望能帮助到一些OS爱好者。\r
+\r
+为了防止漏掉一些情况,笔者也是从一个新的虚拟机进行搭建。\r
+\r
+注意lunaix-os搭建环境已经不需要编译gcc、qemu、bochs了,可以用**版本为11的gcc**进行编译lunaix-os源代码。\r
+\r
+## 开始\r
+\r
+首先准备一个Ubuntu22系统,换好源\r
+\r
+```bash\r
+sudo apt-get update\r
+```\r
+\r
+**qemu**安装\r
+\r
+```bash\r
+sudo apt-get install qemu-system\r
+```\r
+\r
+接下来安装gdb插件**pwndbg**(方便调试,也可以不安装),虽然lunaix-os最近也写了自己的插件,但是计划后期再介绍和使用\r
+\r
+```bash\r
+sudo apt-get install git\r
+git clone https://github.com/pwndbg/pwndbg\r
+cd pwndbg\r
+./setup.sh\r
+```\r
+\r
+检查`~/.gdbinit` ,如果暂时不需要pwndbg可以用`#` 注释`~/.gdbinit`里面的内容\r
+\r
+```bash\r
+cat ~/.gdbinit\r
+\r
+source /home/ffreestanding/pwndbg/gdbinit.py\r
+```\r
+\r
+## 测试\r
+\r
+下面测试lunaix-os的环境\r
+\r
+首先创建虚拟磁盘镜像\r
+\r
+```bash\r
+cd lunaix-os\r
+mkdir machine\r
+cd machine\r
+qemu-img create -f vdi disk0.vdi 128M\r
+```\r
+\r
+安装依赖\r
+\r
+```bash\r
+sudo apt-get install xorriso\r
+sudo apt-get install mtools\r
+```\r
+\r
+修改虚拟磁盘镜像的路径\r
+\r
+打开lunaix-os/makeinc/qemu.mkinc,修改disk0.vdi路径\r
+\r
+```\r
+-drive id=disk,file="/XXX/disk0.vdi",if=none \\r
+```\r
+\r
+编译\r
+\r
+```bash\r
+cd lunaix-os\r
+make debug-qemu\r
+\r
+pwndbg> c\r
+```\r
+\r
+成功启动\r
+\r
+## FAQ\r
+\r
+**1.编译时出错怎么解决?**\r
+\r
+推荐使用Ubuntu**22**自带的gcc、并且安装好依赖。\r