TinyOS

作者: HAPPYers | 来源:发表于2019-12-11 22:02 被阅读0次

    分享一个自写的,模仿Linux0.11系统的一个小型操作系统。
    此源码比较简短,功能虽然有限,但是可以对Linux系统基础的工作原理有较为广泛的认识.
    该系统基于bochs和qemu运行,相关的配置可以参考项目的README
    项目地址

    系统实现了

    • 基本的内存管理
    • 线程调度
    • 有输入(键盘中断)和输出
    • 基本系统调用(getpid,printf等等)
    • 基本的磁盘驱动
    • 基于ext2的简单文件系统

    分支

    • master分支是稳定版本
    • harddisk分支建议使用,会不断维护。

    运行方式

    在Linux或者wsl(子系统)中
    下载源码

    git clone https://github.com/pcy190/TinyOS.git
    

    安装依赖项目

    sudo apt install bochs qemu -y
    sudo apt-get install build-essential module-assistant  
    sudo apt-get install gcc-multilib g++-multilib 
    

    编译运行

    make run
    

    目录介绍

    • kernel/main.c
      这是内核启动完后的主进程的程序。可以在这里添加主要的逻辑代码
    • boot/
      内核启动的引导代码。mbr引导到loader去加载内核。
    • fs/
      文件系统目录
    • device/
      设备驱动目录。包括时钟中断,键盘中断,磁盘中断的处理
    • lib/
      基本C语言中字符串,内存,读入输出的函数实现
    • thread/
      线程调度与管理
    • userprog/
      用户态和内核态切换。包括系统调用的syscall的声明。

    hd80M.img文件是附加的磁盘,文件系统在此格式化并建立。
    要运行的自定义二进制文件,可以通过dd或者syscall来写入读入并运行。
    hd.img是系统内核所在磁盘,如果不存在会自动新建。

    相关文章

      网友评论

          本文标题:TinyOS

          本文链接:https://www.haomeiwen.com/subject/eossyctx.html