使用Rust从0自研内核,具有Linux兼容性的操作系统,面向云计算Serverless场景而设计。DragonOS is an operating system developed from scratch using Rust, with Linux compatibility. It is designed for **Serverless** scenarios.
Go to file
fslongjin 2ed8bdcfd2 🆕 lseek系统调用 2022-05-03 15:40:23 +08:00
.github/workflows Delete codacy.yml 2022-04-07 11:11:27 +08:00
.idea 🔧 修改为makefile的构建方式,程序能正常运行 2022-01-21 13:49:09 +08:00
.vscode 🆕 sys_open系统调用 2022-04-27 00:39:02 +08:00
docs 📝 添加了Multiboot2文档 2022-02-22 16:54:18 +08:00
kernel 🆕 lseek系统调用 2022-05-03 15:40:23 +08:00
tools 🐛 修复了无法正确地往文件写入数据的bug 2022-05-03 15:12:02 +08:00
.gitignore 🆕 uart驱动 2022-04-15 15:23:17 +08:00
LICENSE Create LICENSE 2022-01-16 22:58:21 +08:00
Makefile 将内核层空间移动到0xffff800000000000 2022-04-09 21:11:07 +08:00
README.md update README.md 2022-04-23 10:20:21 +08:00
README_EN.md update README.md 2022-04-23 10:20:21 +08:00
bochsrc 将内核定位到高地址(存在bug,中断时会访问低地址) 2022-04-10 21:30:16 +08:00
bx_enh_dbg.ini 🐛 暂时解决了由于时钟中断导致#DF的问题(用的华强北方法...以后再fix) 2022-04-06 15:06:51 +08:00
run.sh 🆕 读取fat32文件系统的基础信息 2022-04-19 20:56:01 +08:00

README_EN.md

DragonOS

Languages 中文|English

 

This project is a operating system running on computer which is in X86_ 64 Architecture . The DragonOS is currently under development!

Development Environment

GCC>=8.0

qemu==6.2

grub==2.06

How to run?

  1. clone the project

  2. Run the run.sh

To do list:

  • multiboot2

  • printk

  • Simple exception capture and interrupt handling

  • APIC

  • Primary memory management unit

  • SLAB memory pool

  • PS/2 Keyboard and mouse driver

  • PCI bus driver

  • USB Driver

  • SATA Hard disk driver(AHCI)

  • Driver Framework

  • Network card driver

  • Internet protocol stack

  • Graphics driver

  • First process

  • Process management

  • IPC

  • First system call function

  • Start dragonos on the physical platform (There is a bug which can make the computer automatically reboot on AMD processor)

  • Multi core boot

  • Multi core scheduling and load balancing

  • FAT32 file system

  • virtual file system

  • Parsing ELF file format

  • Floating point support

  • Implementation of system call library based on POSIX

  • Shell

  • Kernel stack backtracking

  • Dynamic loading module

Contribute code

If you are willing to develop this project with me, please email me first~

List of contributors

fslongjin

Contact with me

Emaillongjin@RinGoTek.cn

Bloglongjin666.cn

Reward

If you like, click the link below and buy me a cup of coffee ~ please leave your GitHub ID in the payment remarks and I will post it to this page

The reward webpage

Sponsors

Open source statement

This project adopts GPLv2 LICENSE for open source. You are welcome to use the code of this project on the basis of abiding by the open source license! What we support: using this project to create greater value and contribute code to this project under the condition of abiding by the agreement. What we condemn: any non-compliance with the open source license. Including but not limited to: plagiarizing the code of the project as your graduation project and other academic misconduct, as well as commercial closed source use without payment. If you find any violation of the open source license, we welcome you to send email feedback! Let's build an honest open source community together!

References

This project refers to the following materials. I sincerely give my thanks to the authors of these projects, books and documents!

  • Implementation of a 64 bit operating system, Tian Yu (POSTS&TELECOM PRESS)

  • Principle and implementation of modern operating system, Chen Haibo, Xia Yubin (China Machine Press)

  • SimpleKernel

  • osdev.org

  • Multiboot2 Specification version 2.0

  • ACPI_6_3_final_Jan30

  • the GNU GRUB manual

  • Intel® 64 and IA-32 Architectures Software Developers Manual

  • IA-PC HPET (High Precision Event Timers) Specification