Giter Club home page Giter Club logo

tinyos-2's Introduction

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可以查看命令或应用程序的用法。

tinyos-2's People

Contributors

airguanz avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.