# JFF **Repository Path**: Jimmy_Huang/JFF ## Basic Information - **Project Name**: JFF - **Description**: Just For Fun OS - **Primary Language**: Unknown - **License**: WTFPL - **Default Branch**: master - **Homepage**: None - **GVP Project**: No ## Statistics - **Stars**: 0 - **Forks**: 0 - **Created**: 2020-07-19 - **Last Updated**: 2021-09-21 ## Categories & Tags **Categories**: Uncategorized **Tags**: None ## README # JFF It is just for fun. # Functions 1. 自带BootLoader 2. 段页式物理内存管理 3. 中断管理(PIC 8259) 4. 内核态,用户态 5. DMA 硬盘 (IDE ISA) 6. VFS (jff_fs,ext2) 7. 时钟 (clock 8253) 8. 键盘 (keyboard 8042) 9. 多进程,多线程 10. 虚拟内存管理 11. 系统调用 ## 文件系统架构 ```Mermaid graph TD A(用户或应用程序层) --统一接口--> B[虚拟文件系统vfs] B --驱动1--> C[jff] --> E[general_block_device_layer 块设备屏蔽层] B --驱动2--> F[...] --> E B --驱动3--> D[ext2] --> E E --> G[x86] --> H[设备1] G --> K[...] G --> I[设备2] E --> O[...] E --> L[ARM] --> M[设备1] L --> P[...] L --> N[设备2] ``` 其中 `虚拟文件系统` 提供的接口在源码中的类为:`class vfs{}`,每个驱动都必须继承该类,然后各自实现自身。 驱动也必须同时导入 `general_block_device_layer.hpp`,该块设备屏蔽层给驱动提供对特定设备的块操作,每个驱动可以使用一个以上的设备(实现RAID2+)