diff --git a/Home/Catalog.md b/Home/Catalog.md deleted file mode 100644 index f612be69113ef37f40a9c5c9023b97be5e9a2be5..0000000000000000000000000000000000000000 --- a/Home/Catalog.md +++ /dev/null @@ -1,112 +0,0 @@ -# NXOS 目录结构 - -- Docs: 文档 - -- Scripts: 脚本文件 - -- Tools: 工具链或者其它工具 - -- Src: 源码目录 - - Inc: 公共头文件 - - - Mods - - Archs - - Platforms - - IPC - - MM - - Process - - Thread - - Sched - - - Init - - Thread - - Mutex - - Smaphore - - Lock - - Process - - Sched - - SMP - - - MM - - Heap - - VmSpace - - Swap - - - IPC - - Signal - - Pipe - - Channel - - MsgQueue - - LocalSocket - - LPC - - - Platforms: 平台私有代码,引导,总线,特有驱动 - - i386 - - - PC32: 32位系统的引导,地址总线,32位驱动等 - - Drivers - - Amd64 - - - PC64: 64位系统的引导,地址总线,64位驱动等 - - - Riscv64 - - QemuRiscv64 - - Drivers - - K210 - - - Arm - - QemuVexpressA9 - - - Arm64 - - RaspberryPi - - Drivers - - serial - - usb - - sd - - Raspi3-32 - - Raspi3-64 - - Raspi4-32 - - Raspi4-64 - - - Mods: - - Drivers: 不同类型的驱动框架 - - Disk - - Char - - Serial - - Net - - Sound - - GPU - - Power - - UserDriver: 用户态驱动框架 - - - Virtual: - - Ramdisk - - Loop - - Null - - Zero - - Virtio: 虚拟IO接口 - - - FS - - Fat32 - - Ext2/3/4 - - Devfs - - Ramfs - - Romfs - - Public - - - Net - - TCP/UDP - - Socket - - Public - - - Syscall - - - TTY - - - Sound - - - Graphic - - - KVM - - - Security \ No newline at end of file diff --git a/Home/Plan.md b/Home/Plan.md deleted file mode 100644 index 22d0c31d339455bfd76a3147030874de9bf898b2..0000000000000000000000000000000000000000 --- a/Home/Plan.md +++ /dev/null @@ -1,13 +0,0 @@ -# 计划 - -计划的核心点在于对内存管理和多任务管理的创新和优化,并且要在多个平台上都能够跑出不错的效果。 - -* 基础功能,进入C,支持中断,异常管理。 - -* 支持线程切换,支持多处理器。 - -* 支持物理内存和虚拟内存管理。 - -* 支持磁盘内存的换入和换出。 - -* 添加桌面系统和服务器系统的配置,选择配置后,内核会对调度策略以及内存管理策略等进行调整。 diff --git a/Home/Sched.md b/Home/Sched.md deleted file mode 100644 index 943a4a0310c36fb690722a963cb8b909f2873abb..0000000000000000000000000000000000000000 --- a/Home/Sched.md +++ /dev/null @@ -1,11 +0,0 @@ -# 调度重点 - -* I/O消耗型应该时间片更短,调度频率越高:加快响应 - -* 处理器消耗型应该时间片更长,调度频率越低:提高处理器命中率 - -* 用户抢占产生时机:从系统调用/中断处理返回用户态。 - -* 调度安全:当没有持有锁的时候,就是调度安全的,可以设置变量来记录是否持有锁。(引用计数) - -* 显式调度:自己阻塞或者是调用的sched,就会主动产生调度。(同样需要保证调度安全) diff --git a/README.md b/README.md index fc8c44c02dbdcc171451775c61db60a6cf2831f9..3b392da39a4bc789759854bde0cccbf1aa2ab853 100644 --- a/README.md +++ b/README.md @@ -1,22 +1,22 @@ -# NXOS 的文档中心 +文档版本v0.1 基于NXOS develop分支 -NXOS的文档中心,所有关于NXOS的文档都将存放在本仓库,如有错误,您可以提交issue或者request来一起完善文档。 +如果您在文档中发现了问题或者想参与文档的编写,可以在文档仓库提出issuse或者提交pr: +[nxos-doc](https://gitee.com/BookOS/nxos-documentation) -([快速入门](Home/QuickStart.md)) 快速上手开发! +# NXOS 简介 -([代码风格](Home/CodeStyle.md)) 了解代码编码风格 +`NXOS`是`Next XBook Operating System`的意思,是一个跨平台的简洁、高性能、高稳定性的支持多核的混合内核,它将应用于桌面操作系统领域,服务器操作系统领域以及移动终端操作系统领域。 -([代码提交规范](Home/CommitRule.md)) 提交代码更改时的日志规范 +我们以简洁、高效、稳定为核心,用比较简洁且高效的方式去实现一些功能,去掉一些复杂,冗杂的功能,化繁为简。 -([目录结构](Home/Catalog.md)) 了解NXOS内核源码目录结构 +## NXOS 概述 -([未来计划](Home/Plan.md)) 我们最新的计划! +`NXOS`是一个分时多进程/多线程(也支持实时优先级),支持MMU的现代操作系统,它和Linux内核,WindowsNT内核是同一个数量级的。 -([测试](Home/Test.md)) 了解测试相关的内容 +## 许可协议 -([菜单配置](Home/Menuconfig.md)) 更详细的菜单配置 +`NXOS`采用Apache-2.0开源协议,可以自由的复制和修改代码,只需要保留版权说明即可,无潜在的商业风险。 -([工具链](Home/Toolchains.md)) 工具链集合 - -([接口设计API](Home/API.md)) 系统为用户提供的API接口 +## NXOS 的架构 +`NXOS`采用混合内核架构,即宏内核和微内核相结合。优势是减小内核代码,增加功能可扩展性,功能模块是独立的进程,添加和删除模块就是进程的创建和关闭。 \ No newline at end of file diff --git a/SUMMARY.md b/SUMMARY.md new file mode 100644 index 0000000000000000000000000000000000000000..b4d7305cd8a8e5c8fe4696b18ecc044f1fa008af --- /dev/null +++ b/SUMMARY.md @@ -0,0 +1,19 @@ +# Summary + +- NXOS文档中心 + - 简介 + - [NXOS 简介](README.md) + + - 快速上手 + - [Qemu虚拟机](tutorial/quick-start.md) + + - 用户接口 + - [API设计](programing-manual/user/api.md) + + - 编程开发 + - [代码风格](tutorial/code-style.md) + - [提交规则](tutorial/commit-rule.md) + - [菜单配置](tutorial/menuconfig.md) + - [工具链](tutorial/toolchains.md) + - [单元测试](tutorial/utest.md) + \ No newline at end of file diff --git a/Home/API.md b/programing-manual/user/api.md similarity index 100% rename from Home/API.md rename to programing-manual/user/api.md diff --git a/Home/CodeStyle.md b/tutorial/code-style.md similarity index 100% rename from Home/CodeStyle.md rename to tutorial/code-style.md diff --git a/Home/CommitRule.md b/tutorial/commit-rule.md similarity index 100% rename from Home/CommitRule.md rename to tutorial/commit-rule.md diff --git a/Home/Menuconfig.md b/tutorial/menuconfig.md similarity index 76% rename from Home/Menuconfig.md rename to tutorial/menuconfig.md index 70bacd713f9c599e02e406edac17588a5c64e2bc..176a5015d491eeb200225267ff0fc0e9dad7f4d6 100644 --- a/Home/Menuconfig.md +++ b/tutorial/menuconfig.md @@ -14,13 +14,13 @@ NXOS使用了一个python开发的menuconfig,它的跨平台性以及易用性 1. 更新配置文件 - 当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。需要通过PLATFORM来指定一个平台,默认的平台是I386-PC32。 + 当你要使用某个平台的配置时,需要通过设置默认配置来进行选择。 ```sh - make defconfig PLATFORM=I386-PC32 + make defconfig ``` -2. 进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。由于上一步已经从`PLATFORM`拉取配置了,就不用在这个地方配置`PLATFORM`了。配置完后,可以根据菜单的提示进行退出或者保存。 +2. 进行菜单配置,就可以选择你想要的功能或者进行某些功能的配置。配置完后,可以根据菜单的提示进行退出或者保存。 ```sh make menuconfig @@ -38,7 +38,7 @@ NXOS使用了一个python开发的menuconfig,它的跨平台性以及易用性 4. 最后,如果想要保存当前的配置到选中的平台,则需要在执行save操作才行。操作完后,你所修改的配置就保存了,当切换到其它平台后,这个配置依然存在,只需要重复第一步,更新一下配置即可。 ```sh - make saveconfig PLATFORM=I386-PC32 + make saveconfig ``` diff --git a/Home/QuickStart.md b/tutorial/quick-start.md similarity index 98% rename from Home/QuickStart.md rename to tutorial/quick-start.md index 1c5933f7339e45cb7c030d97aec398ee626411ce..97e78cba9acf70df3e295a9c9d828808b5a25ff3 100644 --- a/Home/QuickStart.md +++ b/tutorial/quick-start.md @@ -8,7 +8,7 @@ ### 1. 编译器工具链 -在获取NXOS的系统源码后,您需要下载编译NXOS的[工具链(点我跳转)](Toolchains.md),下载好后,进行环境变量的配置。 +在获取NXOS的系统源码后,您需要下载编译NXOS的[工具链(点我跳转)](toolchains.md),下载好后,进行环境变量的配置。 ### 2. 虚拟机 diff --git a/Home/Toolchains.md b/tutorial/toolchains.md similarity index 100% rename from Home/Toolchains.md rename to tutorial/toolchains.md diff --git a/Home/Test.md b/tutorial/utest.md similarity index 100% rename from Home/Test.md rename to tutorial/utest.md