+- **To learn about development dynamics and development tasks, please visit DragonOS's zulip community:** [https://DragonOS.zulipchat.com](https://DragonOS.zulipchat.com)
-  If you are willing to join us, you can check the project panel of the GitHub repo, select the recently planned functions, and improve them.
+  If you are willing to join us, you can visit DragonOS's zulip community, learn about development dynamics and development tasks: [https://DragonOS.zulipchat.com](https://DragonOS.zulipchat.com)
  Or, you can also bring your ideas, discuss with community members, and create some new functions for DragonOS.
  Or, you can also bring your ideas, discuss with community members, and create some new functions for DragonOS.
@@ -41,9 +42,8 @@
  Or join our development exchange QQ group: **115763565**
  Or join our development exchange QQ group: **115763565**
-  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.
+  For the discussion of formal issues, we recommend that you use the official language to post on the corresponding section of **[DragonOS's zulip community](https://DragonOS.zulipchat.com)**. Or you can post questions under the issue of this repository.
-  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.
-  DragonOS is an open source public welfare project, but its development cannot be separated from the support of funds. If you want, you can visit **[Sponsor - DragonOS](https://dragonos.org/?page_id=37)** , so as to promote the development of this project. The list of all sponsors will be published. Every bit of your sponsorship will contribute to the development of DragonOS!
+  DragonOS is an open source public welfare project, but its development cannot be separated from the support of funds. If you want, you can visit **[Sponsor - DragonOS](https://dragonos.org/?page_id=37)** , so as to promote the development of this project. The list of all sponsors will be published. Every bit of your sponsorship will contribute to the development of DragonOS!
-### `struct Page *alloc_pages(unsigned int zone_select, int num, ul flags)`
-
-#### 描述
-
-  从物理页管理单元中申请一段连续的物理页
-
-#### 参数
-
-**zone_select**
-
-  要申请的物理页所位于的内存区域
-
-可选值:
-
-- `ZONE_DMA` DMA映射专用区域
-- `ZONE_NORMAL` 正常的物理内存区域,已在页表高地址处映射
-- `ZONE_UNMAPPED_IN_PGT` 尚未在页表中映射的区域
-
-**num**
-
-  要申请的连续物理页的数目,该值应当小于64
-
-**flags**
-
-  分配的页面要被设置成的属性
-
-可选值:
-
-- `PAGE_PGT_MAPPED` 页面在页表中已被映射
-- `PAGE_KERNEL_INIT` 内核初始化所占用的页
-- `PAGE_DEVICE` 设备MMIO映射的内存
-- `PAGE_KERNEL` 内核层页
-- `PAGE_SHARED` 共享页
-
-#### 返回值
-
-##### 成功
-
-  成功申请则返回指向起始页面的Page结构体的指针
-
-##### 失败
-
-  当ZONE错误或内存不足时,返回`NULL`
-
-### `void free_pages(struct Page *page, int number)`
-
-#### 描述
-
-  从物理页管理单元中释放一段连续的物理页。
-
-#### 参数
-
-**page**
-
-  要释放的第一个物理页的Page结构体
-
-**number**
-
-  要释放的连续内存页的数量。该值应小于64
-
-## 页表管理
-
-### `int mm_map_phys_addr(ul virt_addr_start, ul phys_addr_start, ul length, ul flags, bool use4k)`
-
-#### 描述
-
-  将一段物理地址映射到当前页表的指定虚拟地址处
-
-#### 参数
-
-**virt_addr_start**
-
-  虚拟地址的起始地址
-
-**phys_addr_start**
-
-  物理地址的起始地址
-
-**length**
-
-  要映射的地址空间的长度
-
-**flags**
-
-  页表项的属性
-
-**use4k**
-
-  使用4级页表,将地址区域映射为若干4K页
-
-### `int mm_map_proc_page_table(ul proc_page_table_addr, bool is_phys, ul virt_addr_start, ul phys_addr_start, ul length, ul flags, bool user, bool flush, bool use4k)`
-
-#### 描述
-
-  将一段物理地址映射到指定页表的指定虚拟地址处
-
-#### 参数
-
-**proc_page_table_addr**
-
-  指定的顶层页表的起始地址
-
-**is_phys**
-
-  该顶层页表地址是否为物理地址
-
-**virt_addr_start**
-
-  虚拟地址的起始地址
-
-**phys_addr_start**
-
-  物理地址的起始地址
-
-**length**
-
-  要映射的地址空间的长度
-
-**flags**
-
-  页表项的属性
-
-**user**
-
-  页面是否为用户态可访问
-
-**flush**
-
-  完成映射后,是否刷新TLB
-
-**use4k**
-
-  使用4级页表,将地址区域映射为若干4K页
-
-#### 返回值
-
-- 映射成功:0
-- 映射失败:-EFAULT
-
-### `void mm_unmap_proc_table(ul proc_page_table_addr, bool is_phys, ul virt_addr_start, ul length)`
-int mm_map_proc_page_table(ul proc_page_table_addr, bool is_phys, ul virt_addr_start, ul phys_addr_start, ul length, ul flags, bool user, bool flush, bool use4k)