From: Minep Date: Sun, 19 Jun 2022 12:00:12 +0000 (+0100) Subject: edit readme X-Git-Url: https://scm.lunaixsky.com/lunaix-os.git/commitdiff_plain/d342435e493c415e10042cfc8aab45c2b2aa0868?hp=efbabf3bcf37c1da148c1e7579974999021f2b86 edit readme --- diff --git a/README.md b/README.md index c13b520..bc0b8d4 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,27 @@ -# LunaixOS Project +

+ +

+# LunaixOS Project LunaixOS - 一个简单的,详细的,POSIX兼容的(但愿!),带有浓重个人风格的操作系统。开发过程以视频教程形式在Bilibili呈现:[《从零开始自制操作系统系列》](https://space.bilibili.com/12995787/channel/collectiondetail?sid=196337)。 +## 当前进度以及支持的功能 + +该操作系统支持x86架构,运行在保护模式中,采用宏内核架构,目前仅支持单核心。内存结构采用经典的3:1划分,即低3GiB为用户地址空间(0x400000 ~ 0xBFFFFFFF),内核地址空间重映射至高1GiB(0xC0000000 ~ 0xFFFFFFFF)。内存的详细布局可参考[LunaixOS内存地图](docs/img/lunaix-os-mem.png) + +在下述列表中,则列出目前所支持的所用功能和特性。列表项按照项目时间戳进行升序排列。 + ++ 使用Multiboot进行引导启动 ++ APIC/IOAPIC作为中断管理器和计时器 ++ ACPI ++ 虚拟内存 ++ 内存管理与按需分页(Demand Paging) ++ 键盘输入 ++ 多进程 ++ 14个常见的Linux/POSIX系统调用([附录1](#appendix1)) ++ 用户模式 ++ 信号机制(进行中) + ## 目录结构 | | | @@ -30,10 +50,10 @@ LunaixOS - 一个简单的,详细的,POSIX兼容的(但愿!),带有 + Intel 500 Series Chipset Family Platform Controller Hub (Datasheet - Volume 2) #### 理论书籍 -+ *Computer System - A Programmer's Perspective Third Edition* (Bryant, R & O'Hallaron, D) ++ *Computer System - A Programmer's Perspective Third Edition (CS:APP)* (Bryant, R & O'Hallaron, D) + *Modern Operating System* (Tanenbaum, A) -+ 《汇编语言》(王爽) - 用于入门汇编 -+ 《微机原理与接口技术》 - 用于大致了解x86架构的微机体系(更加细致的了解可以阅读Intel Manual) ++ 《汇编语言》(王爽) - 用于入门Intel语法的x86汇编(对于AT&T语法,推荐阅读CS:APP) ++ ~~《微机原理与接口技术》 - 用于大致了解x86架构的微机体系(更加细致的了解可以阅读Intel Manual)~~ (已过时,推荐阅读CS:APP) #### 网站 + [OSDev](https://wiki.osdev.org/Main_Page) - 杂七杂八的参考,很多过来人的经验。作者主要用于上古资料查询以及收集;技术文献,手册,标准的粗略总结;以及开发环境/工具链的搭建。 @@ -41,4 +61,27 @@ LunaixOS - 一个简单的,详细的,POSIX兼容的(但愿!),带有 + GNU CC 和 GNU LD 的官方文档。 #### 其他 -+ Linux Manual - 用于查询*nix API的一些具体行为。 \ No newline at end of file ++ Linux Manual - 用于查询*nix API的一些具体行为。 + + +## 附录1:支持的系统调用 + +### Unix/Linux/POSIX +1. `sleep(2)` +1. `wait(2)` +1. `waitpid(2)` +1. `fork(2)` +1. `getpid(2)` +1. `getppid(2)` +1. `getpgid(2)` +1. `setpgid(2)` +1. `brk(2)` +1. `sbrk(2)` +1. `_exit(2)` +1. `sigreturn(2)` +1. `sigprocmask(2)` +1. `signal(2) ` + +### LunaixOS自有 + +1. `yield` \ No newline at end of file diff --git a/docs/img/lunaix-os-logo.png b/docs/img/lunaix-os-logo.png new file mode 100644 index 0000000..51825a4 Binary files /dev/null and b/docs/img/lunaix-os-logo.png differ diff --git a/docs/img/lunaix-os-mem.png b/docs/img/lunaix-os-mem.png new file mode 100644 index 0000000..3301d80 Binary files /dev/null and b/docs/img/lunaix-os-mem.png differ