Go to file
SKTT1Ryze b21c752d76 add some comment and update readme 2021-05-26 22:30:33 +08:00
SBI add rustsbi binary file 2021-05-26 21:08:01 +08:00
shared-scheduler add some comment and update readme 2021-05-26 22:30:33 +08:00
tornado-kernel add some comment and update readme 2021-05-26 22:30:33 +08:00
tornado-user rerange user code 2021-05-26 17:13:39 +08:00
.gitignore Checkpoint: minimum working operating system 2021-01-18 22:28:13 +08:00
Cargo.lock FFI-safe shared function table 2021-04-21 11:07:44 +08:00
Cargo.toml add shared-scheduler 2021-04-16 23:22:26 +08:00
LICENSE Create LICENSE 2021-04-16 23:37:12 +08:00
README.md add some comment and update readme 2021-05-26 22:30:33 +08:00
justfile add rustsbi binary file 2021-05-26 21:08:01 +08:00

README.md

飓风内核(开发中)

异步内核就像风一样快!

基于共享调度器的异步内核设计

操作系统内核经历了几个主要的发展阶段,从裸机应用,批处理系统到多道任务系统,演变为至今主流的线程操作系统。这种系统基于线程的切换来调度任务;为了进一步提升性能,一些现代编程语言在应用层复用线程资源,提出了“协程的”的概念,节省任务调度的开销。
在本项目中我们提出一种新的内核开发思想:由不同资源共享调度器,在操作系统层面提供协程。我们希望这种全新设计的内核在满足传统内核的易用性的同时,拥有着专有内核的高性能特点,“像风一样快”,因此取名飓风内核——tornado-os
设计文档请参考这里

如何运行

依赖工具:

另外反汇编需要 riscv64-linux-gnu-objdump,该工具在 Ubuntu 操作系统上可以通过 apt-get 下载。
调试工具RISC-V 指令集支持的 gdb

下载源码:

git clone https://github.com/HUST-OS/tornado-os

快速运行:

cd tornado-os
just qemu user_task

开发文档

衍生项目

项目开发过程中,我们经常会有一些想法和思路,在完整的项目中不是很好实现,因此衍生出一些其他的项目:

其中,洛佳的异步内核实验室中实现了一个内核中的生成器语法,非常有研究价值,欢迎访问博客执行器与生成语义
另外,我们还初步实现了一款基于 Rust 语言异步语法的 virtio 块设备驱动库,并可以结合本项目以异步的方式运行块设备读写任务,详细内容请访问博客异步版VIRTIO之块设备驱动实现