免费注册 查看新帖 |

Chinaunix

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

[FreeBSD] 斗胆讨论一下对我来说算特别高深的话题 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2016-10-09 10:20 |只看该作者 |倒序浏览
本帖最后由 fefacn 于 2016-10-09 20:27 编辑

最近在看 Andrew Tanenbaum 的《操作系统设计与实现》,因为我有一个想法:

用sel4作为微内核,然后将 FreeBSD 改造成几个运行在其上的服务,比如进程管理、文件系统、设备驱动、网络服务……

考虑到现有的 FreeBSD 用户进程都是向 kernel 发送系统调用请求,而 sel4 没那么多系统调用,原有的系统调用大多数要靠微内核和一个或几个服务来共同实现,所以可以做一个响应 posix 系统调用呼叫的服务,姑且叫做“FreeBSD 粘合层”(或 posix 粘合层)服务。虽然,微内核发送消息本身就比宏内核增加了系统开销,而多了一个粘合层更加剧了这种开销,但这样可以将 FreeBSD 程序直接拿来用,可以解决新架构软件生态的问题,此为其一;

其二,直接面向新架构开发的程序(或移植现有的),就不需要向“FreeBSD 粘合层”发送系统调用的请求了,而是直接向内核或所需的服务发送消息(IPC)。省掉一个粘合层,相信性能会有一定的提高,应该能更接近宏内核的系统调用效率吧。

希望感兴趣的能一起讨论一下。

需要强调的是,本人只有C语言入门水平,写过一点点php、javascript,这些想法,纯粹是处于兴趣。这些想法的理由有以下几点:

1.为啥是微内核?喜欢微内核的设计思想,觉得将 OS 核心功能缩小,能降低代码出错率,提高系统稳定性,方便移植;将其他重要功能移出核心态,并且分割成运行在独立地址空间的用户态,便于系统功能的扩展,应该也能降低各个服务代码的出错率,而且即使出错也不会导致系统崩溃,网上论述很多,本人不想赘述。

2.为啥是 sel4?据说 sel4 很NB,据说通过形式验证是个不会出错的内核,这么好,还开源,为啥不用?!

3.为啥是 FreeBSD?喜欢 FreeBSD!因为 BSD 许可!因为llvm/clang,因为 ports/pkg,因为zfs……等等这些包含在 FreeBSD 基本系统里的优秀代码。 据说已经有一个项目,将 linux 运行在 L4 上,叫做 L4Linux,但是不喜欢 Linux!因为不喜欢GPL,特别是 GPL v3。

目前的打算是:
先啃书,《操作系统设计与实现》、《C Primer Plus》、《C++ Primer Plus》……,看完之后再研究 sel4、FreeBSD 的源代码,然后开刀……(本人闲暇时间还是颇多的,自己手动滑稽一下吧)

论坛徽章:
0
2 [报告]
发表于 2016-10-09 10:22 |只看该作者
发多了怎么删

论坛徽章:
146
2015年亚洲杯之日本
日期:2015-04-28 13:32:012015年亚洲杯之朝鲜
日期:2015-05-06 10:16:442015年亚洲杯之日本
日期:2015-05-06 10:21:342015年亚洲杯纪念徽章
日期:2015-05-13 17:16:442015亚冠之北京国安
日期:2015-05-13 17:18:292015亚冠之鹿岛鹿角
日期:2015-05-13 17:19:062015亚冠之德黑兰石油
日期:2015-05-27 16:47:402015亚冠之塔什干棉农
日期:2015-05-28 15:24:122015亚冠之卡尔希纳萨夫
日期:2015-06-01 13:52:392015亚冠之柏斯波利斯
日期:2015-06-04 17:37:292015亚冠之阿尔纳斯尔
日期:2015-06-16 11:31:202015亚冠之塔什干火车头
日期:2015-06-23 10:12:33
3 [报告]
发表于 2016-10-09 10:51 |只看该作者
我帮你删吧回复 2# fefacn


论坛徽章:
223
2022北京冬奥会纪念版徽章
日期:2015-08-10 16:30:32操作系统版块每日发帖之星
日期:2016-05-10 19:22:58操作系统版块每日发帖之星
日期:2016-02-18 06:20:00操作系统版块每日发帖之星
日期:2016-03-01 06:20:00操作系统版块每日发帖之星
日期:2016-03-02 06:20:0015-16赛季CBA联赛之上海
日期:2019-09-20 12:29:3219周年集字徽章-周
日期:2019-10-01 20:47:4815-16赛季CBA联赛之八一
日期:2020-10-23 18:30:5320周年集字徽章-20	
日期:2020-10-28 14:14:2615-16赛季CBA联赛之广夏
日期:2023-02-25 16:26:26CU十四周年纪念徽章
日期:2023-04-13 12:23:10操作系统版块每日发帖之星
日期:2016-05-10 19:22:58
4 [报告]
发表于 2016-10-10 21:09 |只看该作者
1.为啥是微内核?喜欢微内核的设计思想,觉得将 OS 核心功能缩小,能降低代码出错率,提高系统稳定性,方便移植;将其他重要功能移出核心态,并且分割成运行在独立地址空间的用户态,便于系统功能的扩展,应该也能降低各个服务代码的出错率,而且即使出错也不会导致系统崩溃,网上论述很多,本人不想赘述。



这个也是有前提的,经过精心设计的代码,并且经过一段项目上的实践测试,基本可以很好的控制代码质量,或者出错率。

为什么软件工程要讲究代码分离呢???这个就跟现在社会的分工道理一样,是具有多样性和社会性的。书本的理论,很多都是写于上个世纪80年代,——当时世界处于一个软件发展爆发的黄金时刻的风口,
有时候有些书本有些话,只能停留在历史的局限时刻。linux kernel一个大核心,代码质量,除了驱动部分,基本核心都稳定下来了,文件系统,进程调度算法,等等等

论坛徽章:
0
5 [报告]
发表于 2016-10-11 21:44 |只看该作者
没看过linux的代码,不敢乱说。
但从GNU还没放弃hurd来看,至少他们还是喜欢hurd多过linux的。
另外,网上有不少评价,说linux的代码不是很清晰,集市似的开发方式,全世界的程序员来打补丁,我也不知道用混乱形容是否恰当。

但你说的确实有道理,目前来看,不管是服务器还是PC,宏内核目前都占主流。但我就是固执的觉得,这不是技术的胜利,而是宏内核的阵营抢占了先机,抢先一步建立了一整套软件生态环境。

而微内核要想形成自己的软件生态,无论是从现有移植还是从头开发,都缺乏足够的推动力。

就想微软的win phone一样。技术上并不差多少,但就是晚了一步。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

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

清除 Cookies - ChinaUnix - Archiver - WAP - TOP