mirror of
https://github.com/DragonOS-Community/DragonOS.git
synced 2025-06-08 18:26:48 +00:00
update: readme文档
This commit is contained in:
parent
7d44599447
commit
55e63fcb63
104
README.md
104
README.md
@ -4,95 +4,57 @@
|
||||
|
||||
|
||||
|
||||
这是一个运行于x86_64平台的64位操作系统。目前正在开发之中!
|
||||
  这是一个运行于x86_64平台的64位操作系统。目前正在开发之中!
|
||||
|
||||
[关于DragonOS,你想了解的都在这儿 - DragonOS](https://dragonos.org/uncategorized/summary/)
|
||||
|
||||
## 网站
|
||||
|
||||
- 项目官网 **[DragonOS.org](https://dragonos.org)**
|
||||
|
||||
- 项目文档 **[docs.DragonOS.org](https://docs.dragonos.org)**
|
||||
|
||||
- 开源论坛 **[bbs.DragonOS.org](https://bbs.dragonos.org)**
|
||||
|
||||
- 开发交流QQ群 **115763565**
|
||||
- 代码搜索引擎 [code.DragonOS.org](http://code.dragonos.org)
|
||||
## 开发环境
|
||||
|
||||
GCC>=8.0
|
||||
|
||||
qemu==6.2
|
||||
|
||||
grub==2.06
|
||||
- 代码搜索引擎 [code.DragonOS.org](http://code.dragonos.org)
|
||||
|
||||
|
||||
|
||||
## 如何运行?
|
||||
|
||||
1. clone本项目
|
||||
  运行DragonOS的步骤非常简单,您可以参考以下几个资料,在最短15分钟内运行DragonOS!
|
||||
|
||||
2. 运行命令 bash run.sh
|
||||
- [构建DragonOS — DragonOS dev 文档](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html#docker)
|
||||
|
||||
## To do list:
|
||||
- [如何在电脑的虚拟机上运行DragonOS? | | 龙进的博客](https://longjin666.cn/?p=1514)
|
||||
|
||||
- [x] multiboot2
|
||||
- [教你在15分钟内运行DragonOS!- Bilibili](https://www.bilibili.com/video/BV1zF411w7s2?share_source=copy_web&vd_source=41ab4a1b73e6f65219a785923511517e)
|
||||
|
||||
- [x] printk
|
||||
## 系统特性
|
||||
|
||||
- [x] 简单的异常捕获及中断处理
|
||||
  请参见文档:[系统特性](https://docs.dragonos.org/zh_CN/latest/introduction/features.html)
|
||||
|
||||
- [x] APIC
|
||||
## 如何加入?
|
||||
|
||||
- [x] 初级内存管理单元
|
||||
  如果你愿意加入我们,你可以查看GitHub仓库的Project面板,选择近期已规划的功能,对他们进行完善。
|
||||
|
||||
- [x] SLAB内存池
|
||||
  或者,你也可以带着你的创意与想法,和社区的小伙伴一起讨论,为DragonOS创造一些新的功能。
|
||||
|
||||
- [x] PS/2 键盘、鼠标驱动
|
||||
## 如何与社区建立联系?
|
||||
|
||||
- [x] PCI 总线驱动
|
||||
  你可以发邮件给我,我的邮件地址是[longjin@RinGoTek.cn](mailto:longjin@RinGoTek.cn)。
|
||||
|
||||
- [ ] usb驱动
|
||||
  或者是加入我们的开发交流QQ群:**115763565**
|
||||
|
||||
- [x] SATA硬盘驱动(AHCI)
|
||||
  对于正式问题的讨论,我们建议在论坛[bbs.DragonOS.org](https://bbs.dragonos.org/)上的对应板块,使用正式的语言发帖讨论。亦或者是在本仓库的issue下提出问题。
|
||||
|
||||
- [ ] 驱动程序框架
|
||||
|
||||
- [ ] 网卡驱动
|
||||
|
||||
- [ ] 网络协议栈
|
||||
|
||||
- [ ] 图形驱动
|
||||
|
||||
- [x] 第一个进程
|
||||
|
||||
- [x] 进程管理
|
||||
|
||||
- [ ] IPC进程间通信
|
||||
|
||||
- [x] 第一个系统调用函数
|
||||
|
||||
- [x] 在物理平台上启动DragonOS(AMD处理器上存在自动重启的问题)
|
||||
|
||||
- [x] 多核启动
|
||||
|
||||
- [ ] 多核调度及负载均衡
|
||||
|
||||
- [x] FAT32文件系统
|
||||
|
||||
- [x] VFS虚拟文件系统
|
||||
|
||||
- [x] 解析ELF文件格式
|
||||
|
||||
- [x] 浮点数支持
|
||||
|
||||
- [x] 基于POSIX实现系统调用库
|
||||
|
||||
- [x] Shell
|
||||
|
||||
- [x] 内核栈反向跟踪
|
||||
|
||||
- [ ] 动态加载模块
|
||||
|
||||
## 贡献代码
|
||||
|
||||
如果你愿意跟我一起开发这个项目,请先发邮件到我的邮箱~
|
||||
  在发帖的同时,可以把帖子转发到交流QQ群,这样能使得问题的交流更加高效,也便于问题的归档。
|
||||
|
||||
## 贡献者名单
|
||||
|
||||
fslongjin
|
||||
[Contributors to fslongjin/DragonOS · GitHub](https://github.com/fslongjin/DragonOS/graphs/contributors)
|
||||
|
||||
## 联系我
|
||||
|
||||
@ -102,11 +64,19 @@ fslongjin
|
||||
|
||||
## 赞赏
|
||||
|
||||
如果你愿意的话,点击下面的链接,请我喝杯咖啡吧~请在付款备注处留下您的github ID,我会将其贴到这个页面. 捐赠所得资金将用于网站、论坛社区维护以及一切与本项目所相关的用途。
|
||||
  DragonOS是一个公益性质的开源项目,但是其日常维护仍需要一些资金,如果你愿意的话,可以通过[赞助 - DragonOS](https://dragonos.org/donate/),从而促进这个项目的发展。所有的赞助者的名单都会被公示。
|
||||
|
||||
[捐赠 | 龙进的博客](https://longjin666.cn/?page_id=54)
|
||||
### 赞助的资金都会被用到哪里?
|
||||
|
||||
## 赞赏者列表
|
||||
- 官网及社区论坛的服务器开支
|
||||
|
||||
- 代码搜索引擎服务器的开支(这不是一个小数目)
|
||||
|
||||
- 域名、CDN等服务的开支
|
||||
|
||||
- 任何有助于DragonOS发展建设的用途
|
||||
|
||||
### 赞赏者列表
|
||||
|
||||
- 悟
|
||||
- [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
|
||||
@ -123,7 +93,7 @@ fslongjin
|
||||
|
||||
## 参考资料
|
||||
|
||||
本项目参考了以下资料,我对这些项目、书籍、文档的作者表示感谢!
|
||||
  本项目参考了以下资料,我对这些项目、书籍、文档的作者表示感谢!
|
||||
|
||||
- 《一个64位操作系统的实现》田宇(人民邮电出版社)
|
||||
|
||||
|
102
README_EN.md
102
README_EN.md
@ -4,96 +4,51 @@
|
||||
|
||||
|
||||
|
||||
This project is a operating system running on computer which is in X86_ 64 Architecture . The DragonOS is currently under development!
|
||||
  This project is a operating system running on computer which is in X86_ 64 Architecture . The DragonOS is currently under development!
|
||||
|
||||
[All you want to know about DragonOS is here - DragonOS](https://dragonos.org/uncategorized/summary/)
|
||||
|
||||
## Websites
|
||||
|
||||
- Home Page **[DragonOS.org](https://dragonos.org)**
|
||||
- Documentation **[docs.DragonOS.org](https://docs.dragonos.org)**
|
||||
- BBS **[bbs.DragonOS.org](https://bbs.dragonos.org)**
|
||||
- QQ group **115763565**
|
||||
- code search engine [code.DragonOS.org](http://code.dragonos.org)
|
||||
|
||||
## Development Environment
|
||||
|
||||
GCC>=8.0
|
||||
|
||||
qemu==6.2
|
||||
|
||||
grub==2.06
|
||||
|
||||
## How to run?
|
||||
|
||||
1. clone the project
|
||||
  The steps to run DragonOS are very simple. You can refer to the following materials to run DragonOS in the shortest 15 minutes!
|
||||
|
||||
2. Run the <u>run.sh</u>
|
||||
- [Building DragonOS - DragonOS dev document](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html#docker)
|
||||
|
||||
## To do list:
|
||||
- [How to run DragonOS on a computer's virtual machine? || Long Jin's blog](https://longjin666.cn/?p=1514)
|
||||
|
||||
- [x] multiboot2
|
||||
- [Teach you to run DragonOS in 15 minutes- Bilibili](https://www.bilibili.com/video/BV1zF411w7s2?share_source=copy_web&vd_source=41ab4a1b73e6f65219a785923511517e)
|
||||
|
||||
- [x] printk
|
||||
## DragonOS' Features
|
||||
|
||||
- [x] Simple exception capture and interrupt handling
|
||||
  See documentation:[Features](https://docs.dragonos.org/zh_CN/latest/introduction/features.html)
|
||||
|
||||
- [x] APIC
|
||||
## How to join DragonOS ?
|
||||
|
||||
- [x] Primary memory management unit
|
||||
  If you are willing to join us, you can check the project panel of GitHub warehouse, select the recently planned functions, and improve them.
|
||||
|
||||
- [x] SLAB memory pool
|
||||
  Or, you can also bring your ideas and ideas, discuss with the community partners, and create some new functions for dragonos.
|
||||
|
||||
- [x] PS/2 Keyboard and mouse driver
|
||||
## How to come in contact with the community?
|
||||
|
||||
- [x] PCI bus driver
|
||||
  You can send me an email. My email address is[ longjin@RinGoTek.cn ](mailto: longjin@RinGoTek.cn )。
|
||||
|
||||
- [ ] USB Driver
|
||||
  Or join our development exchange QQ group: **115763565**
|
||||
|
||||
- [x] SATA Hard disk driver(AHCI)
|
||||
  For the discussion of formal issues, we suggest that they be discussed in the forum [BBS.Dragonos.org](https://bbs.dragonos.org/) In the corresponding section of the, use formal language to post for discussion. Or ask questions under the issue of the warehouse.
|
||||
|
||||
- [ ] Driver Framework
|
||||
|
||||
- [ ] Network card driver
|
||||
|
||||
- [ ] Internet protocol stack
|
||||
|
||||
- [ ] Graphics driver
|
||||
|
||||
- [x] First process
|
||||
|
||||
- [x] Process management
|
||||
|
||||
- [ ] IPC
|
||||
|
||||
- [x] First system call function
|
||||
|
||||
- [x] Start dragonos on the physical platform (There is a bug which can make the computer automatically reboot on AMD processor)
|
||||
|
||||
- [x] Multi core boot
|
||||
|
||||
- [ ] Multi core scheduling and load balancing
|
||||
|
||||
- [x] FAT32 file system
|
||||
|
||||
- [x] virtual file system
|
||||
|
||||
- [x] Parsing ELF file format
|
||||
|
||||
- [x] Floating point support
|
||||
|
||||
- [x] Implementation of system call library based on POSIX
|
||||
|
||||
- [x] Shell
|
||||
|
||||
- [x] Kernel stack backtracking
|
||||
|
||||
- [ ] Dynamic loading module
|
||||
|
||||
## Contribute code
|
||||
|
||||
If you are willing to develop this project with me, please email me first~
|
||||
  While posting, you can forward the post to the communication QQ group, which can make the communication of problems more efficient and facilitate the archiving of problems.
|
||||
|
||||
## List of contributors
|
||||
|
||||
fslongjin
|
||||
[Contributors to fslongjin/DragonOS · GitHub](https://github.com/fslongjin/DragonOS/graphs/contributors)
|
||||
|
||||
## Contact with me
|
||||
|
||||
@ -103,9 +58,17 @@ Blog:[longjin666.cn](https://longjin666.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 donated funds will be used for website, forum community maintenance and all purposes related to the project.
|
||||
  Dragonos is a public welfare open source project, but its daily maintenance still needs some funds. If you want, you can visit [Sponsor - DragonOS](https://dragonos.org/donate/), so as to promote the development of this project. The list of all sponsors will be published.
|
||||
|
||||
[The reward webpage](https://longjin666.cn/?page_id=54)
|
||||
### Where will the sponsorship funds be used?
|
||||
|
||||
- Server expenses of official website and community forum
|
||||
|
||||
- Code search engine server expenses (this is not a small amount)
|
||||
|
||||
- Expenses for domain name, CDN and other services
|
||||
|
||||
- Any use that is conducive to the development and construction of DragonOS
|
||||
|
||||
## Sponsors
|
||||
|
||||
@ -114,14 +77,17 @@ If you like, click the link below and buy me a cup of coffee ~ please leave your
|
||||
|
||||
## 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!
|
||||
  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!
|
||||
  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)
|
||||
|
||||
|
@ -58,4 +58,8 @@ html_theme = 'sphinx_rtd_theme'
|
||||
# Add any paths that contain custom static files (such as style sheets) here,
|
||||
# relative to this directory. They are copied after the builtin static files,
|
||||
# so a file named "default.css" will overwrite the builtin "default.css".
|
||||
html_static_path = ['_static']
|
||||
html_static_path = ['_static']
|
||||
|
||||
myst_enable_extensions = [
|
||||
"tasklist",
|
||||
]
|
@ -10,7 +10,7 @@
|
||||
:maxdepth: 1
|
||||
:caption: 入门
|
||||
|
||||
introduction/intro
|
||||
introduction/index
|
||||
introduction/build_system
|
||||
|
||||
.. toctree::
|
||||
|
117
docs/introduction/features.md
Normal file
117
docs/introduction/features.md
Normal file
@ -0,0 +1,117 @@
|
||||
(_genreal_features)=
|
||||
|
||||
# DragonOS的功能
|
||||
|
||||
## 规范
|
||||
|
||||
- [x] 启动引导:Multiboot2
|
||||
|
||||
- [x] 接口:posix 2008
|
||||
|
||||
## 内核层
|
||||
|
||||
### 内存管理
|
||||
|
||||
- [x] 页分配器
|
||||
- [x] slab分配器
|
||||
- [x] VMA
|
||||
- [x] MMIO地址空间自动分配
|
||||
|
||||
### 多核
|
||||
|
||||
- [x] 多核引导
|
||||
- [x] ipi框架
|
||||
|
||||
### 进程管理
|
||||
|
||||
- [x] 进程创建
|
||||
- [x] 进程回收
|
||||
- [x] 内核线程
|
||||
- [x] fork
|
||||
- [x] exec
|
||||
- [x] 进程睡眠(支持高精度睡眠)
|
||||
|
||||
#### 同步原语
|
||||
|
||||
- [x] mutex互斥量
|
||||
- [x] semaphore信号量
|
||||
- [x] atomic原子变量
|
||||
- [x] spinlock自旋锁
|
||||
- [x] wait_queue等待队列
|
||||
|
||||
### 调度
|
||||
|
||||
- [x] CFS调度器
|
||||
- [x] 单核调度
|
||||
|
||||
### IPC
|
||||
|
||||
- [x] 匿名pipe管道
|
||||
|
||||
### 文件系统
|
||||
|
||||
- [x] VFS
|
||||
- [x] fat32
|
||||
- [x] devfs
|
||||
|
||||
### 异常及中断处理
|
||||
|
||||
- [x] APIC
|
||||
- [x] softirq 软中断
|
||||
- [x] 内核栈traceback
|
||||
|
||||
### 内核数据结构
|
||||
|
||||
- [x] 普通二叉树
|
||||
- [x] kfifo缓冲区
|
||||
- [x] 循环链表
|
||||
|
||||
### 内核实用库
|
||||
|
||||
- [x] LZ4压缩库(1.9.3)
|
||||
- [x] 字符串操作库
|
||||
- [x] ELF可执行文件支持
|
||||
- [x] printk
|
||||
- [x] 基础数学库
|
||||
- [x] 屏幕管理器
|
||||
- [x] textui框架
|
||||
|
||||
### 系统调用
|
||||
|
||||
  [请见系统调用文档](https://docs.dragonos.org/zh_CN/latest/syscall_api/index.html)
|
||||
|
||||
### 测试框架
|
||||
|
||||
- [x] ktest
|
||||
|
||||
### 驱动程序
|
||||
|
||||
- [x] ACPI 高级电源配置模块
|
||||
- [x] IDE硬盘
|
||||
- [x] AHCI硬盘
|
||||
- [x] PCI
|
||||
- [x] XHCI(usb3.0)
|
||||
- [x] ps/2 键盘
|
||||
- [x] ps/2 鼠标
|
||||
- [x] HPET高精度定时器
|
||||
- [x] RTC时钟
|
||||
- [x] local apic定时器
|
||||
- [x] UART串口
|
||||
- [x] VBE显示
|
||||
|
||||
## 用户层
|
||||
|
||||
### LibC
|
||||
|
||||
- [x] 基础系统调用
|
||||
- [x] 基础标准库函数
|
||||
- [x] 部分数学函数
|
||||
|
||||
### shell命令行程序
|
||||
|
||||
- [x] 基于字符串匹配的解析
|
||||
- [x] 基本的几个命令
|
||||
|
||||
### 驱动程序
|
||||
|
||||
- [x] ps/2键盘用户态驱动
|
13
docs/introduction/index.rst
Normal file
13
docs/introduction/index.rst
Normal file
@ -0,0 +1,13 @@
|
||||
DragonOS简介
|
||||
====================================
|
||||
|
||||
DragonOS龙操作系统(以下简称“DragonOS”)是一个基于x86-64体系结构开发的,基于GPLv2协议开放源代码的64位操作系统
|
||||
|
||||
|
||||
|
||||
你可能对DragonOS中已经实现了哪些功能感兴趣,您可以转到这里::ref:`功能特性 <_genreal_features>`
|
||||
|
||||
.. toctree::
|
||||
:maxdepth: 1
|
||||
|
||||
features
|
@ -1,3 +0,0 @@
|
||||
# DragonOS简介
|
||||
|
||||
DragonOS龙操作系统(以下简称“DragonOS”)是一个基于x86-64体系结构开发的,基于GPLv2协议开放源代码的64位操作系统。
|
Loading…
x
Reference in New Issue
Block a user