Browse Source

Merge branch 'master' into devfs

fslongjin 2 years ago
parent
commit
7d510a2f86
7 changed files with 207 additions and 140 deletions
  1. 37 67
      README.md
  2. 34 68
      README_EN.md
  3. 5 1
      docs/conf.py
  4. 1 1
      docs/index.rst
  5. 117 0
      docs/introduction/features.md
  6. 13 0
      docs/introduction/index.rst
  7. 0 3
      docs/introduction/intro.md

+ 37 - 67
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
+- 开源论坛  **[bbs.DragonOS.org](https://bbs.dragonos.org)**
 
-qemu==6.2
+- 开发交流QQ群 **115763565**
 
-grub==2.06
+- 代码搜索引擎 [code.DragonOS.org](http://code.dragonos.org)
+  
+   
 
 ## 如何运行?
 
-1. clone本项目
-
-2. 运行命令 bash run.sh
-
-## To do list:
-
-- [x] multiboot2
-
-- [x] printk
-
-- [x] 简单的异常捕获及中断处理
-
-- [x] APIC
-
-- [x] 初级内存管理单元
-
-- [x] SLAB内存池
-
-- [x] PS/2 键盘、鼠标驱动
+  运行DragonOS的步骤非常简单,您可以参考以下几个资料,在最短15分钟内运行DragonOS!
 
-- [x] PCI 总线驱动
+- [构建DragonOS — DragonOS dev 文档](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html#docker)
 
-- [ ] usb驱动
+- [如何在电脑的虚拟机上运行DragonOS? | | 龙进的博客](https://longjin666.cn/?p=1514)
 
-- [x] SATA硬盘驱动(AHCI)
+- [教你在15分钟内运行DragonOS!- Bilibili](https://www.bilibili.com/video/BV1zF411w7s2?share_source=copy_web&vd_source=41ab4a1b73e6f65219a785923511517e)
 
-- [ ] 驱动程序框架
+## 系统特性
 
-- [ ] 网卡驱动
+  请参见文档:[系统特性](https://docs.dragonos.org/zh_CN/latest/introduction/features.html)
 
-- [ ] 网络协议栈
+## 如何加入?
 
-- [ ] 图形驱动
+  如果你愿意加入我们,你可以查看GitHub仓库的Project面板,选择近期已规划的功能,对他们进行完善。
 
-- [x] 第一个进程
+  或者,你也可以带着你的创意与想法,和社区的小伙伴一起讨论,为DragonOS创造一些新的功能。
 
-- [x] 进程管理
+## 如何与社区建立联系?
 
-- [ ] IPC进程间通信
+  你可以发邮件给我,我的邮件地址是[[email protected]](mailto:[email protected])。
 
-- [x] 第一个系统调用函数
+  或者是加入我们的开发交流QQ群:**115763565**
 
-- [x] 在物理平台上启动DragonOS(AMD处理器上存在自动重启的问题)
+  对于正式问题的讨论,我们建议在论坛[bbs.DragonOS.org](https://bbs.dragonos.org/)上的对应板块,使用正式的语言发帖讨论。亦或者是在本仓库的issue下提出问题。
 
-- [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/),从而促进这个项目的发展。所有的赞助者的名单都会被公示。
+
+### 赞助的资金都会被用到哪里?
+
+- 官网及社区论坛的服务器开支
+
+- 代码搜索引擎服务器的开支(这不是一个小数目)
+
+- 域名、CDN等服务的开支
 
-[捐赠 | 龙进的博客](https://longjin666.cn/?page_id=54)
+- 任何有助于DragonOS发展建设的用途
 
-## 赞赏者列表
+### 赞赏者列表
 
 - 悟
 - [TerryLeeSCUT · GitHub](https://github.com/TerryLeeSCUT)
@@ -123,7 +93,7 @@ fslongjin
 
 ## 参考资料
 
-本项目参考了以下资料,我对这些项目、书籍、文档的作者表示感谢!
+  本项目参考了以下资料,我对这些项目、书籍、文档的作者表示感谢!
 
 - 《一个64位操作系统的实现》田宇(人民邮电出版社)
 

+ 34 - 68
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
-
-2. Run the <u>run.sh</u> 
-
-## To do list:
-
-- [x] multiboot2
-
-- [x] printk
-
-- [x] Simple exception capture and interrupt handling
-
-- [x] APIC
-
-- [x] Primary memory management unit
-
-- [x] SLAB memory pool
-
-- [x] PS/2 Keyboard and mouse driver
-
-- [x] PCI bus driver
-
-- [ ] USB Driver
+&emsp;&emsp;The steps to run DragonOS are very simple. You can refer to the following materials to run DragonOS in the shortest 15 minutes!
 
-- [x] SATA Hard disk driver(AHCI)
+- [Building DragonOS - DragonOS dev document](https://docs.dragonos.org/zh_CN/latest/introduction/build_system.html#docker)
 
-- [ ] Driver Framework
+- [How to run DragonOS on a computer's virtual machine? || Long Jin's blog](https://longjin666.cn/?p=1514)
 
-- [ ] Network card driver
+- [Teach you to run DragonOS in 15 minutes- Bilibili](https://www.bilibili.com/video/BV1zF411w7s2?share_source=copy_web&vd_source=41ab4a1b73e6f65219a785923511517e)
 
-- [ ] Internet protocol stack
+## DragonOS' Features
 
-- [ ] Graphics driver
+&emsp;&emsp;See documentation:[Features](https://docs.dragonos.org/zh_CN/latest/introduction/features.html)
 
-- [x] First process
+## How to join DragonOS ?
 
-- [x] Process management
+&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.
 
-- [ ] IPC
+&emsp;&emsp;Or, you can also bring your ideas and ideas, discuss with the community partners, and create some new functions for dragonos.
 
-- [x] First system call function
+## How to come in contact with the community?
 
-- [x] Start dragonos on the physical platform (There is a bug which can make the computer automatically reboot on AMD processor)
+&emsp;&emsp;You can send me an email. My email address is[ [email protected] ](mailto: [email protected] )。
 
-- [x] Multi core boot
+&emsp;&emsp;Or join our development exchange QQ group: **115763565**
 
-- [ ] Multi core scheduling and load balancing
+&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.
 
-- [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.
+
+### 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)
 
-[The reward webpage](https://longjin666.cn/?page_id=54)
+- 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)
 

+ 5 - 1
docs/conf.py

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

+ 1 - 1
docs/index.rst

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

+ 117 - 0
docs/introduction/features.md

@@ -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] 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 - 0
docs/introduction/index.rst

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

+ 0 - 3
docs/introduction/intro.md

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