# MyOS **Repository Path**: cqxcool/my-os ## Basic Information - **Project Name**: MyOS - **Description**: 源代码 - **Primary Language**: Unknown - **License**: GPL-2.0 - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2022-02-07 - **Last Updated**: 2023-01-28 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # My_OS ## 介绍 实现一个操作系统 ## 软件架构 ### 基础功能 启动 nandflash驱动 内核加载 串口printf打印函数 异常处理 中断函数设置及跳转 定时器 ### 内存管理 buddy slab ### 多进程 直接切换 使用链表来管理进程块 睡眠及唤醒 ### 系统调用 sys_print(), sys_exit(), sys_fork(), sys_read(), sys_write(), sys_open(), sys_close(), ### 文件系统 ### 知识点: 1.cpu有7种异常模式,每个模式都有自己的sp,发生异常时cpu会强制调到对于地址上执行比如swi异常发生时, cpu直接跳到8位置执行对应的指令,而不执行它前面的代码. 2.在汇编中使用字符串时,后面的代码要注意使用align进行对齐. 3.icache可以直接开启,但是dcache必须在启用mmu之后才可以使用. 4.mmu实际上是虚拟地址到物理地址的桥梁,虚拟地址通过mmu之后得到对应的实际物理地址, 当程序运行于虚拟地址时,间接的运行于映射的实际物理地址。 对虚拟地址的操作即是对映射的物理地址的操作. ### 注意事项: 汇编文件应该以.S结尾而不是.s ## 参与贡献 1. Fork 本仓库 2. 新建 Feat_xxx 分支 3. 提交代码 4. 新建 Pull Request