diff --git a/articles/20231006-xv6-start-on-qemu.md b/articles/20231006-xv6-start-on-qemu.md
new file mode 100644
index 0000000000000000000000000000000000000000..c1282a1527ac9589cc92966fef7f85521813ff4a
--- /dev/null
+++ b/articles/20231006-xv6-start-on-qemu.md
@@ -0,0 +1,181 @@
+> Author: cola2003 <1952088712@qq.com>
+> Date: 2022/10/06
+> Revisor: Falcon
+> Project: [RISC-V Linux 内核剖析](https://gitee.com/tinylab/riscv-linux)
+> Sponsor: SOPHGO
+> Proposal:
+> Environ: [Linux Lab Disk](https://tinylab.org/linux-lab-disk)
+
+# 在 QEMU 上运行 xv6
+
+## 前言
+
+xv6 是麻省理工学院开发的经典的教育性操作系统,适合学习操作系统原理和内核开发,它设计简洁,代码清晰,适合深入学习操作系统的内部机制。有助于理解实际操作系统的实现和原理,是学习操作系统的极佳选择。本文将带领大家搭建起 xv6 的 QEMU 实验环境,为进一步的学习与实验打下坚实的基础。
+
+## 环境准备
+
+这里需要准备的工具有:
+- RISC-V 交叉编译工具链
+- QEMU
+
+如果确实是 Linux 新手或不喜欢无聊的安装过程,想节省这些编译各种工具的造轮子时间,更加专注于实验,可以使用我们泰晓社区的自研产品 [泰晓 Linux 实验盘](https://tinylab.org/linux-lab-disk),在某宝检索 “泰晓 Linux” 即可选购。
+
+### 制作交叉编译工具链
+
+**说明**:如果采用泰晓 Linux 实验盘,该节的所有繁琐步骤可以完全省略,实验盘中的 Linux Lab 环境提供了完整的 RISC-V 交叉编译器。
+
+笔者这里使用的环境是 Ubuntu20.04 LTS x86_64,工具链可以到 GitHub 官网下载源码然后进行编译。
+
+```
+git clone https://github.com/riscv-collab/riscv-gnu-toolchain.git
+cd riscv-gnu-toolchain
+git submodule update --init --recursive
+```
+
+但实际上我们并不建议这样做,因为 RISC-V 全套工具链太大了,而且因为是在 GitHub 上的缘故所以还需要翻墙,往往会卡在拉取子摸块的阶段,这些子模块包括:
+
+- riscv-qemu
+- riscv-newlib(100MB)
+- riscv-binutils(394MB)
+- riscv-gdb(394MB)
+- riscv-dejagnu(3MB)
+- riscv-glibc(155MB)
+- riscv-gcc (1.3GB)
+
+为了解决这个问题,可以拉取码云上的 [riscv-gnu-toolchain 镜像][001]。
+
+```
+git clone https://gitee.com/mirrors/riscv-gnu-toolchain
+cd riscv-gnu-toolchain
+```
+
+但是码云上的子模块地址仍然是 GitHub 的地址,所以要分别拉取其子摸块在码云上的镜像。
+
+```
+riscv-newlib:https://gitee.com/mirrors/riscv-newlib
+riscv-binutils:https://gitee.com/mirrors/riscv-binutils-gdb
+riscv-gdb:https://gitee.com/mirrors/riscv-binutils-gdb(riscv-gdb 和 riscv-binutils 为同一个仓库下的不同分支)
+riscv-dejagnu:https://gitee.com/mirrors/riscv-dejagnu
+riscv-glibc:https://gitee.com/mirrors/riscv-glibc
+riscv-gcc:https://gitee.com/mirrors/riscv-gcc
+```
+
+进行子模块的拉取。
+
+```
+git clone https://gitee.com/mirrors/riscv-dejagnu
+git clone -b riscv-gcc-10.2.0 https://gitee.com/mirrors/riscv-gcc
+git clone -b riscv-glibc-2.29 https://gitee.com/mirrors/riscv-glibc
+git clone https://gitee.com/mirrors/riscv-newlib
+git clone -b riscv-binutils-2.35 https://gitee.com/mirrors/riscv-binutils-gdb riscv-binutils
+git clone -b fsf-gdb-10.1-with-sim https://gitee.com/mirrors/riscv-binutils-gdb riscv-gdb
+
+```
+
+我们使用的是 64 位的工具,直接使用下面的命令即可默认生成 64 位的编译工具:
+
+```
+# 安装依赖库
+sudo apt-get install autoconf automake autotools-dev curl libmpc-dev libmpfr-dev libgmp-dev gawk build-essential bison flex texinfo gperf libtool patchutils bc zlib1g-dev libexpat-dev
+
+# riscv64-unknown-elf-***
+../configure --prefix=$RISCV
+make -j4
+
+# 安装至设定的 $RISCV 路径
+make install
+#所需时间较长,请耐心等待
+```
+
+最后在 ~/.bashrc 中添加环境变量,也可以使用 export,只是使用 export 环境变量的生效期只为当前终端。
+
+```
+# 在 ~/.bashrc 中添加
+export RISCV=".your.path./riscv-gnu-toolchain"
+export PATH=$PATH:$RISCV/bin
+```
+
+完成之后输入 `riscv64-unknown-elf-gcc -v`,若能出现类似如下的界面,则说明编译安装的工具链没有问题。
+
+
+
+### 准备 QEMU
+
+**说明**:如果采用泰晓 Linux 实验盘,该节的很多繁琐步骤可以完全省略,实验盘中的 Linux Lab 环境提供了完整的 RISC-V QEMU 模拟器,也可以通过一条 `make qemu` 轻松编译出 QEMU,详细用法可以查看 [第四讲:QEMU 实验 - RISC-V Linux系统开发公开课](https://www.bilibili.com/video/BV1kz4y1K7fW)。
+
+本次实验我们使用 qemu7.0.0,要下载 qemu-7.0.0.tar.xz,可以到 [qemu 官网][002] 上去下载,也可以使用下面的 wget 方式下载。
+
+
+
+```
+wget https://download.qemu.org/qemu-7.0.0.tar.xz
+# 对其进行解压缩
+tar -xf qemu-7.0.0.tar.xz
+# 安装依赖
+sudo apt-get install libglib2.0-dev ninja-build build-essential zlib1g-dev pkg-config libglib2.0-dev \
+binutils-dev libboost-all-dev autoconf libtool libssl-dev libpixman-1-dev libpython-dev \
+ virtualenv libmount-dev libpixman-1-dev
+# 然后按照步骤编译安装
+./configure --target-list=riscv64-softmmu
+make
+sudo make install
+```
+
+### 准备 xv6 代码
+
+克隆官网的代码,进入 xv6-riscv 目录,执行 `make qemu`。
+
+```
+git clone https://github.com/mit-pdos/xv6-riscv.git
+cd xv6-riscv && make qemu
+```
+
+
+
+可以看到我们已经进入 xv6 的 console 了。
+
+## 使用泰晓实验盘
+
+可以从 [泰晓开源小店](https://shop155917374.taobao.com/) 选购一枚即插即跑的 Linux Lab Disk。它也叫 “泰晓 Linux 实验盘”,可以在淘宝手机 App 内搜索 “泰晓 Linux” 后购买。
+
+泰晓 Linux 实验盘的具体使用方法见 [Linux Lab Disk][003]。
+
+按照使用方法进入之后界面如下。
+
+
+
+双击 Linux Lab Shell 即可进入实验环境。
+
+
+
+Linux Lab 里集成了绝大多数我们要用的工具链,具体支持的工具链参见桌面上的手册,输入 RISC-V 后使用 tab 自动补全功能,可以看到我们可以直接使用这些工具,QEMU 也是如此。
+
+
+
+克隆 xv6 代码,进入 xv6-riscv 目录,执行 `make qemu`。
+
+
+```
+git clone https://github.com/mit-pdos/xv6-riscv.git
+cd xv6-riscv && make qemu
+```
+
+可以看到我们已经进入 xv6 的 console 了。
+
+
+
+## 总结
+
+本篇文章主要是带大家搭建起 xv6 的 QEMU 实验环境,并且尝试使用了我们泰晓社区的自研产品泰晓 Linux 实验盘,为我们进一步的学习打下了坚实的基础。
+
+## 参考资料
+
+- [riscv-mcu/riscv-gnu-toolchain][001]
+- [https://www.qemu.org][002]
+- [Linux Lab Disk 使用方法][003]
+- [RISCV GNU 编译环境搭建与运行实践][004]
+
+[001]: https://gitee.com/riscv-mcu/riscv-gnu-toolchain
+[002]: https://www.qemu.org/
+[003]: https://tinylab.org/linux-lab-disk/
+[004]: https://blog.csdn.net/ALLap97/article/details/112373544
diff --git a/articles/images/20231006-xv6-start-on-qemu/chose-qemu.jpg b/articles/images/20231006-xv6-start-on-qemu/chose-qemu.jpg
new file mode 100644
index 0000000000000000000000000000000000000000..e197d24ee2d06b8734033c8c1f902736d4df101d
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/chose-qemu.jpg differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/download-xv6.png b/articles/images/20231006-xv6-start-on-qemu/download-xv6.png
new file mode 100644
index 0000000000000000000000000000000000000000..a2de0d60f08901cbe1aa48bbc036d97937e920d1
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/download-xv6.png differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/enter-linux-lab.png b/articles/images/20231006-xv6-start-on-qemu/enter-linux-lab.png
new file mode 100644
index 0000000000000000000000000000000000000000..3280fd09e40df434e259fcf62651d42b8b45f379
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/enter-linux-lab.png differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/my-xv6-start.png b/articles/images/20231006-xv6-start-on-qemu/my-xv6-start.png
new file mode 100644
index 0000000000000000000000000000000000000000..c3da016e6c8daa37aa020ba91796ff2a1e0845d5
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/my-xv6-start.png differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/show-tool-chain.png b/articles/images/20231006-xv6-start-on-qemu/show-tool-chain.png
new file mode 100644
index 0000000000000000000000000000000000000000..40d249d3424d7bff0284185b1eedf547bddc3ed7
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/show-tool-chain.png differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/start-lab-disk.png b/articles/images/20231006-xv6-start-on-qemu/start-lab-disk.png
new file mode 100644
index 0000000000000000000000000000000000000000..bacda27d46a50b7d80604de759b38d29409d27ce
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/start-lab-disk.png differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/test-riscv-tool-chain.png b/articles/images/20231006-xv6-start-on-qemu/test-riscv-tool-chain.png
new file mode 100644
index 0000000000000000000000000000000000000000..1dc71247ada073e629509216373426fc75c4377b
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/test-riscv-tool-chain.png differ
diff --git a/articles/images/20231006-xv6-start-on-qemu/xv6-start.png b/articles/images/20231006-xv6-start-on-qemu/xv6-start.png
new file mode 100644
index 0000000000000000000000000000000000000000..000823ba4fe2ee83c1744c6d9618ec71c67c00fc
Binary files /dev/null and b/articles/images/20231006-xv6-start-on-qemu/xv6-start.png differ