学习用小型操作系统,运行在x86(32位)单核计算机上。Bootloader部分参考了《操作系统真象还原》一书,其他的部分就放飞自我、甚至可以说是非Unix-like了。
- 分页内存管理
- 抢占式线程调度
- 信号量
- 进程资源管理
- 系统调用框架
- 键盘驱动程序
- 进程间消息传递
- 文件系统
- 用户界面
- 管道通信
- cat等基本应用程序,以及一个简易文本编辑器
bochs的编译运行依赖于:
bochs 2.65+, gnu make, gcc, g++, ld, nasm, dd, bximage(通常随bochs一起安装)
要使用bochs运行该系统,可执行以下步骤:
- 跟据bochs所附带的显示插件,修改
bochsrc.txt
中的display_library
项 - 初次运行前,运行
make fs
初始化磁盘映像 - 运行
make run
以构建项目并启动虚拟机
由于磁盘映像创建工具bximage的命令参数格式曾发生变动,因此若无法正确初始化磁盘映像文件,可尝试运行bash setup.sh
以解决问题。
系统默认交互界面分为Output区域和Command区域,前者用于显示输出,后者用于输入命令。系统已经提供的命令包括:
- cd path : 修改当前工作路径
- clear : 清空Output区域
- exec path name ... : 从一个elf文件创建一个进程
- exit : 退出系统
- fg [pid] : 将一个后台进程切换到前台
- kill p1 [p2] ... : 销毁一些进程
- ps : 查看后台运行的进程列表
此外,还有以下应用程序可供使用:
- cat : 查看文件内容
- cp : 复制文件
- ed : 一个简单的文本编辑器
- file : 将管线输出保存到文件
- help : 查看命令/应用程序的帮助信息
- less : 以只读方式浏览文件内容
- ls : 查看当前工作路径下的文件列表
- pwd : 查看当前工作路径
输入help command/application
可以查看命令或应用程序的用法。