# Rinos **Repository Path**: renzis/repo ## Basic Information - **Project Name**: Rinos - **Description**: 写来玩的玩具OS:Rinos(BootLoader也许) - **Primary Language**: C - **License**: AGPL-3.0 - **Default Branch**: rinos - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 3 - **Forks**: 0 - **Created**: 2022-09-02 - **Last Updated**: 2025-06-18 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # Rinos! start 09\03\2023 玩具OS,同时也算是对i386架构有了一个初步的认识 see also: [Rinos-usr](https://gitee.com/renzis/rinos-usr) - 引导加载 > 现阶段为GRUB,在早期版本中是MBR手动读取磁盘加载内核 - 设备和中断 > 在开启32位分页后GDT的作用就不是很重要了 > > 使用统一的中断分发器处理不同种类的中断(根据有无错误码区分) > > 使用了一些较为现代的东西,ACPI、APIC、IOAPIC、AHCI等协议来处理存储设备和中断 - 物理内存 > 采用32位4KiB分页 > > 使用一个超大数组来标识每一个物理页,及反向映射信息 - 虚拟内存 > 将内核映射至0xC0000000 ~ 0xFFFFFFFF的高地址区域,并分配完整二级页表,这样保证每个进程对内核区域的影响可以同步 > > 采用一个简化版的SLAB内存分配器 > > 同时支持一个简单的Swap,基于反向映射和LRU - 系统调用 > read(), write(), fork(), exit(), open(), mount()等 - 进程 > 目前采用进程控制块数组 > > 实现了内核线程,类似于拥有独立栈空间的执行流 > > 调度算法采用简单的轮训算法 - 文件系统 > 增加了一层虚拟文件系统,隔离了上层接口和底层实现 > > 现在仅支持读取fat32文件系统