忘记密码   免费注册 查看新帖 |

ChinaUnix.net

  平台 论坛 博客 文库 频道自动化运维 虚拟化 储存备份 C/C++ PHP MySQL 嵌入式 Linux系统
12下一页
最近访问板块 发新帖
查看: 3703 | 回复: 12

[内核入门] Welcome to BiscuitOS [复制链接]

论坛徽章:
9
2016科比退役纪念章
日期:2016-07-28 17:42:52程序设计版块每日发帖之星
日期: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:2115-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2017-12-02 11:42 |显示全部楼层
本帖最后由 Buddy_Zhang1 于 2017-12-16 16:31 编辑

大家好:
  终于又回到 ChinaUnix 啦,这次给各位喜欢 Linux 内核的小伙伴带来了一份礼物。
  长话短说,我和我的小伙伴经过八个月的开发,基于 Linux0.11 内核制作了一个完整的 Distro: BiscuitOS
  为什么说这是给内核开发者的一份礼物呢?
  对于学习 Linux 内核的小伙伴会遇到同一个问题,那就是现代版的内核实在是太大,无法顾及每个子系统,
  也许你熟练某一个子系统,但对于其他子系统云里雾里,没有一个整体的架构感。于是 BiscuitOS 就诞生了!
  
  BiscuitOS 是一款基于 Linux0.11 内核的发行版,我们从编译到内核实现,再到 rootfs 的制作,甚至 utils-linux 的制作
  都提供了一套实现机制,这会让你 top to down 的完全了解一个发行版的操作系统是如何制作和运行的。

  用户手册: https://github.com/BiscuitOS/Documentation/tree/master/Usermanual

  不多说,直接上图:
mainmenu.jpg
  
  BiscuitOS 的特点
  Kernel 部分
  1. 完整的内核机制,Linux 具有最小的代码数,2 万行左右。麻雀虽小,各种内核机制都支持
  2. 支持 Intel 32 位保护模式,地址总线 32bit,与现代 32 操作系统无异
  3. 完整的中断机制,包括缺页中断等,给想研究中断机制的小伙伴一个最好的实践平台
  4. 支持字符设备,并实现 console 输入输出
  5. 支持内存管理,支持机制的内存管理
  6. 支持文件系统,提供了 ramdisk 和 harddisk 根文件系统
  7. 支持多任务调度,完整的段和系统门机制
  8. 支持块设备,包括硬盘,软盘和 ramdisk
  9. 支持 POIX 系统调用
  10. 支持 gdb 调试内核
  11. 支持完整的 Kbuild系统与 Kconfig 语法
  12. 支持链接脚本
  13. 支持 qemu 运行系统
  14. 支持页表管理机制
  15. 支持 GNU as 和 ATT 汇编,已经弃用 as86 汇编

  Rootfs 部分
  1. 支持 MINIX V1 版本的文件系统
  2. 支持 Legacy MINIX 版本的文件系统
  3. 提供 MINIX 文件系统制作工具及源码(对想了解文件系统如何制作和内核如何构建文件系统的小伙伴有帮助)
  
  Userland 部分
  1. 提供基础 linux 的 utils 二进制工具
  2. 提供 gcc1.4 glibc gdb 等 GNU 工具
  3. 提供用户程序编译环境
  
  其它部分
  1. 实现现代的 Kbuild 编译系统,构建一套完整的编译体系
  2. 提供一套定制的 buildroot,让小伙伴可以定制自己的发行版
  3. 提供一套完成的补丁机制,小伙伴可以按照标准的内核补丁机制提交你的 patch
  4. 如果你发现系统中没有你需要的命令,请不要慌张,你可以自己动手开发一个,trust U

  如何参加我们的开源项目呢?
  这是我们的开源信息,一起加入我们吧!
  * 开源 github
  1. https://github.com/BiscuitOS/BiscuitOS.git
复制代码
维护者:
  
  1. 进程子系统: Buddy  Zhang <buddy.zhang@aliyun.com>
  2. 文件子系统: Rock Lee <rockdotlee@gmail.com>
  3. 内存子系统: Buddy  Zhang <buddy.zhang@aliyun.com>
  4. 设备驱动子系统: Buddy  Zhang <buddy.zhang@aliyun.com>
复制代码


  

  

论坛徽章:
9
2016科比退役纪念章
日期:2016-07-28 17:42:52程序设计版块每日发帖之星
日期: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:2115-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2017-12-02 11:43 |显示全部楼层
Reserverpage

论坛徽章:
9
2016科比退役纪念章
日期:2016-07-28 17:42:52程序设计版块每日发帖之星
日期: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:2115-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2017-12-02 11:43 |显示全部楼层
Reserverpage

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2017-12-11 11:24 |显示全部楼层
好久不见了, 一回归就是重磅作品,赞&#128077;

论坛徽章:
20
程序设计版块每日发帖之星
日期:2015-08-17 06:20:00程序设计版块每日发帖之星
日期:2016-07-16 06:20:00程序设计版块每日发帖之星
日期:2016-07-18 06:20:00每日论坛发贴之星
日期:2016-07-18 06:20:00黑曼巴
日期:2016-12-26 16:00:3215-16赛季CBA联赛之江苏
日期:2017-06-26 11:05:5615-16赛季CBA联赛之上海
日期:2017-07-21 18:12:5015-16赛季CBA联赛之青岛
日期:2017-09-04 17:32:0515-16赛季CBA联赛之吉林
日期:2018-03-26 10:02:16程序设计版块每日发帖之星
日期:2016-07-15 06:20:0015-16赛季CBA联赛之江苏
日期:2016-07-07 18:37:512015亚冠之萨济拖拉机
日期:2015-08-17 12:21:08
发表于 2017-12-11 13:33 |显示全部楼层
必须赞一下啊,从来没有在5s之内编译完linux内核的

有个依赖建议在README.md里面声明一下,mkfs.minix,有些老系统缺少对minix文件系统的支持。

论坛徽章:
9
2016科比退役纪念章
日期:2016-07-28 17:42:52程序设计版块每日发帖之星
日期: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:2115-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2017-12-12 11:28 |显示全部楼层
本帖最后由 Buddy_Zhang1 于 2017-12-12 11:31 编辑

回复 5# nswcfd

我在内核代码里添加了对 1991 年时候的 minixfs 文件系统的支持,也提供了现代版本工具 mkfs.minix -1 制作出来的文件系统支持

你的建议我会在下一次更新的时候添加上去

论坛徽章:
0
发表于 2017-12-14 19:56 |显示全部楼层
非常感谢楼主, 让我们这些内核新手有了一个实践的平台, 给你个大大的赞啦。
自己按照readme里的教程  执行make start时失败,
折腾一番后 qemu-system-x86_64 -m 512 -kernel /root/git/BiscuitOS/kernel/arch/x86/kernel/BiscuitOS  /root/git/BiscuitOS/output/BiscuitOS-0.11.img -vnc 0.0.0.0:1000  -s -S 引导成功

接下来就是自己慢慢研究了。。

论坛徽章:
9
2016科比退役纪念章
日期:2016-07-28 17:42:52程序设计版块每日发帖之星
日期: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:2115-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2017-12-16 16:31 |显示全部楼层

论坛徽章:
9
2016科比退役纪念章
日期:2016-07-28 17:42:52程序设计版块每日发帖之星
日期: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:2115-16赛季CBA联赛之广东
日期:2017-02-20 23:32:43
发表于 2017-12-16 16:32 |显示全部楼层

论坛徽章:
0
发表于 2017-12-18 12:35 |显示全部楼层
回复 8# Buddy_Zhang1
再次感谢!


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

本版积分规则

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号 北京市公安局海淀分局网监中心备案编号:11010802020122
广播电视节目制作经营许可证(京) 字第1234号 中国互联网协会会员  联系我们:wangnan@it168.com
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP