Skip to content
master
Go to file
Code

Latest commit

 

Git stats

Files

Permalink
Failed to load latest commit information.
Type
Name
Latest commit message
Commit time
doc
 
 
 
 
src
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

README.md

TinyOS

学习用小型操作系统,运行在x86(32位)单核计算机上。Bootloader部分参考了《操作系统真象还原》一书,其他的部分就放飞自我、甚至可以说是非Unix-like了。


特性

  • 分页内存管理
  • 抢占式线程调度
  • 信号量
  • 进程资源管理
  • 系统调用框架
  • 键盘驱动程序
  • 进程间消息传递
  • 文件系统
  • 用户界面
  • 管道通信
  • cat等基本应用程序,以及一个简易文本编辑器

编译

bochs的编译运行依赖于:

bochs 2.65+, gnu make, gcc, g++, ld, nasm, dd, bximage(通常随bochs一起安装)

要使用bochs运行该系统,可执行以下步骤:

  1. 跟据bochs所附带的显示插件,修改bochsrc.txt中的display_library
  2. 初次运行前,运行make fs初始化磁盘映像
  3. 运行make run以构建项目并启动虚拟机

由于磁盘映像创建工具bximage的命令参数格式曾发生变动,因此若无法正确初始化磁盘映像文件,可尝试运行bash setup.sh以解决问题。

交互

ss01 ss02

系统默认交互界面分为Output区域和Command区域,前者用于显示输出,后者用于输入命令。系统已经提供的命令包括:

  1. cd path : 修改当前工作路径
  2. clear : 清空Output区域
  3. exec path name ... : 从一个elf文件创建一个进程
  4. exit : 退出系统
  5. fg [pid] : 将一个后台进程切换到前台
  6. kill p1 [p2] ... : 销毁一些进程
  7. ps : 查看后台运行的进程列表

此外,还有以下应用程序可供使用:

  1. cat : 查看文件内容
  2. cp : 复制文件
  3. ed : 一个简单的文本编辑器
  4. file : 将管线输出保存到文件
  5. help : 查看命令/应用程序的帮助信息
  6. less : 以只读方式浏览文件内容
  7. ls : 查看当前工作路径下的文件列表
  8. pwd : 查看当前工作路径

输入help command/application可以查看命令或应用程序的用法。

About

x86上的玩具OS

Topics

Resources

License

Releases

No releases published

Packages

No packages published
You can’t perform that action at this time.