BiscuitOS 是一个类 Linux 系统,其实现原理是在 Linux 用户空间分配一定的内存作为 Biscuit 的物理内存.基于 BiscuitOS 的物理内存构建一个操作系统,其实现原理继承 Linux 实现过程.
BiscuitOS 创作的主要目的:
Linux 内核的学习是一个充满挑战又艰难的过程.对初学 Linux 内核来说,无数的理论以及无法将理论转化为实践的尴尬充斥着整个学习初期.
这成为很多人无法翻越的大山.俗话说 "实践是检验真理的唯一标准".突然有一天有个想法,如何增加内核实践量,又不用搭建繁杂的开发环境,于是 BiscuitOS 就诞生了.
BiscuitOS 是为想增加 Linux 内核实践,了解 Linux 内核实现原理的同学设计的操作系统,BiscuitOS 的实现过程完全使用 Linux 实现方法.
BiscuitOS 实现原理:
BiscuitOS 是通过在用户空间申请两个 256M 的数组,然后将这两个数组当做虚拟物理内存.基于虚拟物理内存构建 BiscuitOS 的物理内存和虚拟内存.BiscuitOS 目前只具备内存管理功能,
您可以在这个系统上了解 Linux 内存管理系统从内核启动到初始化,最后到一个完整的内存管理系统的整个过程,让你从源码 + 实践级别了解 Linux 内核.
BiscuitOS Feature:
优点:
1. BiscuitOS 的实现完全遵循 Linux 内核,在 BiscuitOS 实现的代码可以移植到 Linux.
2. BiscuitOS 实现在 Linux 用户空间,快速编译内核,轻松测试您的代码.
3. BiscuitOS 属于 Linux 用户空间程序,可以使用 gdb 等调试工具进行调试.
4. BiscuitOS 经过一年的开发周期,丰富的测试用例供使用者使用.
5. 用户可以随意修改代码,并且增加并贡献代码.
6. BiscuitOS 增加了很多内核接口的使用例子,比如红黑树,buddy system 等使用案例,不仅可以增加您的内核开发经验,也可以降低内核学习的门槛.
7. BiscuitOS 开发了很多 debug 工具,您可以直接看 BiscuitOS 的物理内存数据.
缺点:
1. BiscuitOS 只是一个模拟器!其硬件模拟基于 ARMv7.
2. BiscuitOS 是一个正在开发的系统,第一个版本系统为 MemoryCookOS ,该系统只包含 Linux 内存管理部分.后续会将四大基本模块加载进来.
3. 由于 BiscuitOS 是一个 32bit 的系统,但 Linux 用户空间是 64bit 系统.所以在源码中存在 64bit 转 32bit 的处理.
4. 由于 BiscuitOS 是基于 "虚拟物理内存".所以代码中存在内存转换的代码.
BiscuitOS 下载地址:
BiscuitOS_Debug 为一直开发的系统,目标将 Linux 四大模块 Merge 到这个系统中,有兴趣的同学可以加入一起开发:
:BiscuitOS/BiscuitOS_Debug.git
BiscuitOS_Stable: 为经过调试基本可运行的稳定版 BiscuitOS.
:BiscuitOS/BiscuitOS_Stable.git
MemoryCookOS: 为纯内存管理的 BiscuitOS.
:BiscuitOS/MemoryCookOS.git
BiscuitOS 使用方法:
1. 通过 github 下载源码解压
2. cd /BiscuitOS
3. make
BiscuitOS 的编程入口位于 /BiscuitOS/init/main.c 里面的 kernel_space()
BiscuitOS 丰富的测试用例位于 /BiscuitOS/tools/TestCase_xxx.c
如何解决您的问题:
1. 遇到编译报错的问题,请将 /BiscuitOS/obj/compiler.log 内容贴出来.
2. 遇到运行时段错误问题,请将 /BiscuitOS/obj/a 文件邮件给我.
FAQ 邮箱:
阅读(3822) | 评论(0) | 转发(0) |