简明操作手册
年轻, 简单, 幼稚.
Last updated
Was this helpful?
年轻, 简单, 幼稚.
Last updated
Was this helpful?
以下内容可以帮助你快速上手由教程作者配置的 OS lab 环境.
你可以在下载开箱即用版 (Ready-to-Use) OS lab 实验环境镜像.
注意: 你需要接入北科大校园网才能下载此 Docker 镜像.
之后你需要进行如下配置:
参考.
参考, 你需要在镜像 (.tar
文件) 所在的目录执行如下命令:
然后你需要启动容器:
你也可以停止这个容器, 此前你需要先退出 SSH 终端:
进入 Docker 容器, 输入以下命令:
此时你应当已经位于 OS lab 环境的 eos
目录, 之后可以进行 EOS 的构建或启动.
默认 EOS 将以 Debug 模式构建, 此时我们可以使用 GDB 对其进行调试. 如果需要以 Release 模式构建 EOS, 可以执行:
Release 模式不会生成任何调试符号, 并且会产生编译优化后的 EOS 内核 (开启了 -O1
选项), 运行速度会更快. (虽然在实验中这并没有什么用)
使用以下命令可以在 Bochs 中运行 EOS:
当然也可以在 QEMU 中运行:
在 make
后添加 -jN
参数可以开启 N
个线程同时构建, 缩短构建时间:
当然如果你的 CPU 比较厉害, 可以试试开 8 个线程 (或者更多), 文明起见这里就不写命令了.
你可以将用户应用程序或者其他任何文件添加到构建完成的 EOS 软盘镜像中.
将 C 语言源文件 (.c
文件) 放入 ~/eos/user/src
目录, 然后重新构建 EOS, 即可将该源文件编译成用户应用程序, 并且一同放入构建生成的软盘镜像中.
每个放入 ~/eos/user/src
的 .c
文件都会被生成为一个单独的 .exe
程序. 例如目录中目前有两个文件 hello.c
和 test.c
, 构建完毕后软盘内会出现两个用户应用程序 hello.exe
和 test.exe
.
将任意文件放入 ~/eos/user/import
目录, 即可将该文件添加到构建生成的 EOS 软盘镜像中.
由于软盘镜像使用 FAT12 文件系统, 你添加的文件需要符合:
文件名只使用英文, 且不超过 8 字节;
扩展名只使用英文, 且不超过 3 字节;
文件大小不能过大.
合法的文件名:
emilia.emt
;
bakabaka.9
.
非法的文件名:
interesting.women
;
最銗的奘靉.镓族
.
进入 OS lab 的 ~/eos
目录后, 你可以执行以下命令来调试 EOS:
构建 EOS 内核的过程中会生成一些额外的调试信息, 主要是内核关键部分的反汇编信息. 你可以在构建完成后查看 ~/eos/build/lst
目录内的所有文件.
参考, 登录用户和密码均为 oslab
.
参考.
参考.
在下载 EOS 内核源码和开源协议, 并且按照的方式组织, 将源码和协议分别放入 ~/eos/src
和 ~/eos
目录中.
在下载 EOS 用户应用程序的 C Runtime 源码, 参考, 将其放入 ~/eos/user/crt
目录中.
此时将启动 GDB 和 QEMU. 关于如何进行调试, 请参考和.