update: readme文档

This commit is contained in:
fslongjin 2022-09-08 15:24:48 +08:00
parent 7d44599447
commit 55e63fcb63
7 changed files with 207 additions and 140 deletions

104
README.md
View File

@ -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] 在物理平台上启动DragonOSAMD处理器上存在自动重启的问题
- [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位操作系统的实现》田宇人民邮电出版社

View File

@ -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
&emsp;&emsp;See documentation:[Features](https://docs.dragonos.org/zh_CN/latest/introduction/features.html)
- [x] APIC
## How to join DragonOS ?
- [x] Primary memory management unit
&emsp;&emsp;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
&emsp;&emsp;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
&emsp;&emsp;You can send me an email. My email address is[ longjin@RinGoTek.cn ](mailto: longjin@RinGoTek.cn )。
- [ ] USB Driver
&emsp;&emsp;Or join our development exchange QQ group: **115763565**
- [x] SATA Hard disk driver(AHCI)
&emsp;&emsp;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~
&emsp;&emsp;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.
&emsp;&emsp;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!
&emsp;&emsp;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!
&emsp;&emsp;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)

View File

@ -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",
]

View File

@ -10,7 +10,7 @@
:maxdepth: 1
:caption: 入门
introduction/intro
introduction/index
introduction/build_system
.. toctree::

View 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框架
### 系统调用
&emsp;&emsp;[请见系统调用文档](https://docs.dragonos.org/zh_CN/latest/syscall_api/index.html)
### 测试框架
- [x] ktest
### 驱动程序
- [x] ACPI 高级电源配置模块
- [x] IDE硬盘
- [x] AHCI硬盘
- [x] PCI
- [x] XHCIusb3.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键盘用户态驱动

View File

@ -0,0 +1,13 @@
DragonOS简介
====================================
DragonOS龙操作系统以下简称“DragonOS”是一个基于x86-64体系结构开发的基于GPLv2协议开放源代码的64位操作系统
你可能对DragonOS中已经实现了哪些功能感兴趣您可以转到这里:ref:`功能特性 <_genreal_features>`
.. toctree::
:maxdepth: 1
features

View File

@ -1,3 +0,0 @@
# DragonOS简介
DragonOS龙操作系统以下简称“DragonOS”是一个基于x86-64体系结构开发的基于GPLv2协议开放源代码的64位操作系统。