免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 7472 | 回复: 29
打印 上一主题 下一主题

[内存管理] BiscuitOS 系统发布【增加内核实践】 [复制链接]

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-03-25 20:34 |只看该作者 |倒序浏览
本帖最后由 Buddy_Zhang1 于 2016-03-30 21:20 编辑

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 到这个系统中,有兴趣的同学可以加入一起开发:
                                        git@github.com:BiscuitOS/BiscuitOS_Debug.git
          BiscuitOS_Stable: 为经过调试基本可运行的稳定版 BiscuitOS.
                                        git@github.com:BiscuitOS/BiscuitOS_Stable.git
          MemoryCookOS: 为纯内存管理的 BiscuitOS.
                                        git@github.com: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 邮箱: buddy.zhang@aliyun.com


论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
2 [报告]
发表于 2016-03-25 21:00 |只看该作者
本帖最后由 Buddy_Zhang1 于 2016-03-30 20:39 编辑

BiscuitOS 开发介绍:
           BiscuitOS 博客:
                          blog.chinaunix.net/uid/30647659.html
           FAQ 邮箱:
                          buddy.zhang@aliyun.com
           BiscuitOS 论坛讨论:
                          ChinaUnix论坛 > 程序设计 > 内核源码
           BiscuitOS gitbub:
                          github.com/BiscuitOS


BiscuitOS  运行截图。





论坛徽章:
13
15-16赛季CBA联赛之八一
日期:2016-07-08 21:00:1415-16赛季CBA联赛之同曦
日期:2017-02-15 14:26:1515-16赛季CBA联赛之佛山
日期:2017-02-20 14:19:2615-16赛季CBA联赛之青岛
日期:2017-05-07 16:49:1115-16赛季CBA联赛之广夏
日期:2017-07-30 09:13:1215-16赛季CBA联赛之广东
日期:2018-07-05 22:34:3615-16赛季CBA联赛之江苏
日期:2018-09-03 12:10:2115-16赛季CBA联赛之上海
日期:2018-09-25 03:49:2215-16赛季CBA联赛之广东
日期:2018-09-25 04:09:12
3 [报告]
发表于 2016-03-26 07:02 |只看该作者
热烈庆祝,有没有往github上传使用说明?

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
4 [报告]
发表于 2016-03-26 10:13 |只看该作者
本帖最后由 Buddy_Zhang1 于 2016-03-26 15:51 编辑

BiscuitOS 开发进度:

- 2016.3.26
    -  vfs_caches_init() Merge

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
5 [报告]
发表于 2016-03-27 10:19 |只看该作者
本帖最后由 Buddy_Zhang1 于 2016-04-02 12:00 编辑

BiscuitOS 应用实例

1. BiscuitOS 上轻松使用红黑树
2. BiscuitOS 上轻松使用哈希散列式
3. BiscuitOS 上构建 GFP_ZONE_TABLE
4. BiscuitOS - SLUB 分配器 slab page 大小计算方法
5. BiscuitOS / Linux 中最大文件数计算方法:

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
6 [报告]
发表于 2016-03-27 16:52 |只看该作者
回复 1# Buddy_Zhang1

感谢 LZ 分享。


   

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
7 [报告]
发表于 2016-03-27 19:05 |只看该作者
回复 6# Godbach


    谢谢版主!

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
8 [报告]
发表于 2016-03-27 21:37 |只看该作者
回复 7# Buddy_Zhang1

很赞啊!

这个作为全面学习 Linux 的子系统,应该实践性很好。


   

论坛徽章:
9
程序设计版块每日发帖之星
日期:2016-02-11 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:00程序设计版块每日发帖之星
日期:2016-02-14 06:20:0015-16赛季CBA联赛之吉林
日期:2016-03-23 17:25:0015-16赛季CBA联赛之浙江
日期:2016-04-01 08:25:0615-16赛季CBA联赛之山西
日期:2016-04-01 10:09:1915-16赛季CBA联赛之广夏
日期:2016-06-03 15:58:212016科比退役纪念章
日期:2016-07-28 17:42:5215-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
9 [报告]
发表于 2016-03-27 21:50 |只看该作者
回复 8# Godbach


    我实践过,在上面可以加入很多子系统,实践起来真的很爽,可以把自己很多想法都在上面验证。

    现在正在把 VFS 加入到里面。

论坛徽章:
36
IT运维版块每日发帖之星
日期:2016-04-10 06:20:00IT运维版块每日发帖之星
日期:2016-04-16 06:20:0015-16赛季CBA联赛之广东
日期:2016-04-16 19:59:32IT运维版块每日发帖之星
日期:2016-04-18 06:20:00IT运维版块每日发帖之星
日期:2016-04-19 06:20:00每日论坛发贴之星
日期:2016-04-19 06:20:00IT运维版块每日发帖之星
日期:2016-04-25 06:20:00IT运维版块每日发帖之星
日期:2016-05-06 06:20:00IT运维版块每日发帖之星
日期:2016-05-08 06:20:00IT运维版块每日发帖之星
日期:2016-05-13 06:20:00IT运维版块每日发帖之星
日期:2016-05-28 06:20:00每日论坛发贴之星
日期:2016-05-28 06:20:00
10 [报告]
发表于 2016-03-27 22:12 |只看该作者
回复 9# Buddy_Zhang1

LZ 加油!

   
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP