常见问题常见问题   搜索搜索   会员列表会员列表   团队团队   注册注册    个人资料个人资料   登录查看您的站内信件登录查看您的站内信件   登录登录 

斗胆讨论一下对我来说算特别高深的话题

 
发表新文章   回复文章    FreeBSD China -> 休闲话题
阅读上一个主题 :: 阅读下一个主题  
作者 留言
fefa2004
半仙


注册时间: 2005-03-30
文章: 75

文章发表于: Sun 2016-10-09 10:03:14    发表主题: 斗胆讨论一下对我来说算特别高深的话题 引用并回复

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

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

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

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

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

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

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

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

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

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

————————————————

20161009编辑
没仔细考证,错误的把 llvm、zfs 说成是 BSD 许可的软件,经高人指正,在此改过,谢谢。
另外,看《操作系统设计与实现》研究 L4 似乎也确实不合适,也更正。


最后进行编辑的是 fefa2004 on Sun 2016-10-09 20:26:02, 总计第 3 次编辑
返回页首
阅览会员资料 发送站内信件 MSN Messenger
anonymouscoward
道士


注册时间: 2013-08-08
文章: 868

文章发表于: Sun 2016-10-09 17:36:48    发表主题: 引用并回复

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


这些都是宣传

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


这是被宣传洗脑后的症状

fefa2004 写到:
3.为啥是 FreeBSD?喜欢 FreeBSD!因为 BSD 许可!因为llvm/clang,因为 ports/pkg,因为zfs……等等这些在 BSD 许可证下发行的优秀代码。 Twisted Evil


LLVM 是 University of Illinois Open Source License [0]

有意思的是在 OpenBSD 刚 import LLVM 进 base [1] 没几天,
人家 LLVM 就开始考虑要换成 Apache 2 License 了 [2],而
OpenBSD 的 policy [3] 里说的却是
引用:
The original Apache license was similar to the Berkeley license, but source code published under version 2 of the Apache license is subject to additional restrictions and cannot be included into OpenBSD.


ZFS 是 CDDL [4]

[0] http://llvm.org/releases/3.9.0/LICENSE.TXT
[1] http://cvsweb.openbsd.org/cgi-bin/cvsweb/src/gnu/llvm/LICENSE.TXT?rev=1.1&content-type=text/x-cvsweb-markup
[2] http://lists.llvm.org/pipermail/llvm-dev/2016-September/104778.html
[3] http://www.openbsd.org/policy.html
[4] https://svnweb.freebsd.org/base/head/sys/cddl/contrib/opensolaris/OPENSOLARIS.LICENSE?revision=177698&view=co

fefa2004 写到:
目前的打算是:
先啃书,《操作系统设计与实现》、《C Primer Plus》、《C++ Primer Plus》……,然后边啃边读 sel4、FreeBSD 的源代码,然后开刀……


小朋友,你这是要照着一本讲 Minix 的书练习 L4 啊
要不先看看人家作者说的 [0]

Andrew Tanenbaum 写到:
There are lots of technical differences between MINIX and L4, but the focus of the projects is very different.


[0] http://linuxfr.org/nodes/88229/comments/1291183

_________________
匿懦的邮件列表
订阅: bsd-talk-subscribe@anonymous744wjcx.onion
退订: bsd-talk-unsubscribe@anonymous744wjcx.onion
返回页首
阅览会员资料 发送站内信件
anonymouscoward
道士


注册时间: 2013-08-08
文章: 868

文章发表于: Sun 2016-10-09 17:43:18    发表主题: 引用并回复

哦,对了,刚刚去看了一下 seL4 [0],
咦,人家网站上说主要的部份怎么是 GPL 啊,一定是我打开的姿势不对……

引用:
The seL4 kernel itself and most of its proof is licensed under GPL Version 2. For full terms and conditions, see the file LICENSE_GPLv2.txt in the seL4 repository. As for Linux, the GPL applies to the kernel itself, not to user-level programs running on top of it.

Various further components, libraries, and tools are released under the 2-clause BSD license. For details see the file LICENSE_BSD2.txt in the respective repositories. See the individual file headers for which license applies to which file.


[0] https://sel4.systems/Info/GettingStarted/license.pml

_________________
匿懦的邮件列表
订阅: bsd-talk-subscribe@anonymous744wjcx.onion
退订: bsd-talk-unsubscribe@anonymous744wjcx.onion
返回页首
阅览会员资料 发送站内信件
fefa2004
半仙


注册时间: 2005-03-30
文章: 75

文章发表于: Sun 2016-10-09 19:58:19    发表主题: 引用并回复

anonymouscoward 写到:
哦,对了,刚刚去看了一下 seL4 [0],
咦,人家网站上说主要的部份怎么是 GPL 啊,一定是我打开的姿势不对……

引用:
The seL4 kernel itself and most of its proof is licensed under GPL Version 2. For full terms and conditions, see the file LICENSE_GPLv2.txt in the seL4 repository. As for Linux, the GPL applies to the kernel itself, not to user-level programs running on top of it.

Various further components, libraries, and tools are released under the 2-clause BSD license. For details see the file LICENSE_BSD2.txt in the respective repositories. See the individual file headers for which license applies to which file.


[0] https://sel4.systems/Info/GettingStarted/license.pml


(表情不好用,手动滑稽一下吧,呵呵)
返回页首
阅览会员资料 发送站内信件 MSN Messenger
fefa2004
半仙


注册时间: 2005-03-30
文章: 75

文章发表于: Sun 2016-10-09 20:04:55    发表主题: 引用并回复

关于 License 的理由,确实太想当然了,没仔细翻过资料,让大家见笑了,哈哈。
不过今天倒是在 GNU hurd 的官网泡了一下午,看他们还是把微内核的好处说的头头是道的,难道他们也是被洗脑了么?
我觉得宏内核之所以大行其道,并不是微内核结构的 OS 技术上差太多,主要是在互联网环境下,越是发展的早的,早建立起软件生态圈的系统,统治地位越难被撼动吧,就好像 win phone 想跟 iso、android抢占市场而失败是一个原因吧。
返回页首
阅览会员资料 发送站内信件 MSN Messenger
fefa2004
半仙


注册时间: 2005-03-30
文章: 75

文章发表于: Sun 2016-10-09 20:14:46    发表主题: 引用并回复

引用:

小朋友,你这是要照着一本讲 Minix 的书练习 L4 啊
要不先看看人家作者说的 [0]


可惜L4的资料太少啊,OS 入门的书貌似就这个还比较详细系统,凑合看完,了解个大概吧。

其实,我知道自己这些想法确实有点可笑,典型的没多少知识储备就夸夸其谈的。

但是梦想还是要有的嘛,万一实现了呢
返回页首
阅览会员资料 发送站内信件 MSN Messenger
fefa2004
半仙


注册时间: 2005-03-30
文章: 75

文章发表于: Sun 2016-10-09 20:19:16    发表主题: 引用并回复

anonymouscoward 写到:


小朋友,你这是要照着一本讲 Minix 的书练习 L4 啊
要不先看看人家作者说的 [0]

Andrew Tanenbaum 写到:
There are lots of technical differences between MINIX and L4, but the focus of the projects is very different.


[0] http://linuxfr.org/nodes/88229/comments/1291183


请问高人,你是在哪儿看的 Andrew Tanenbaum 说的这番话?邮件列表么?想必你一定是 OS 开发界的大牛级的人物吧,能不能点评一下 GNU/hurd?
返回页首
阅览会员资料 发送站内信件 MSN Messenger
anonymouscoward
道士


注册时间: 2013-08-08
文章: 868

文章发表于: Sun 2016-10-09 22:06:31    发表主题: 引用并回复

fefa2004 写到:
anonymouscoward 写到:


小朋友,你这是要照着一本讲 Minix 的书练习 L4 啊
要不先看看人家作者说的 [0]

Andrew Tanenbaum 写到:
There are lots of technical differences between MINIX and L4, but the focus of the projects is very different.


[0] http://linuxfr.org/nodes/88229/comments/1291183


请问高人,你是在哪儿看的 Andrew Tanenbaum 说的这番话?邮件列表么?想必你一定是 OS 开发界的大牛级的人物吧,


我不是高人也不是大牛,那段话引用的链接不都贴在下面了么...

其实 MINIX 3 就是 BSD License 的啊,看他们这样是打算要做成能够替换 NetBSD 内核的节奏么?
http://wiki.minix3.org/doku.php?id=developersguide:portingnetbsduserland

fefa2004 写到:
能不能点评一下 GNU/hurd?


匿懦从没 RTFM 过 Hurd 相关的东西,什么都不懂……

_________________
匿懦的邮件列表
订阅: bsd-talk-subscribe@anonymous744wjcx.onion
退订: bsd-talk-unsubscribe@anonymous744wjcx.onion
返回页首
阅览会员资料 发送站内信件
fefa2004
半仙


注册时间: 2005-03-30
文章: 75

文章发表于: Sun 2016-10-09 22:32:28    发表主题: 引用并回复

anonymouscoward 写到:
fefa2004 写到:
anonymouscoward 写到:


小朋友,你这是要照着一本讲 Minix 的书练习 L4 啊
要不先看看人家作者说的 [0]

Andrew Tanenbaum 写到:
There are lots of technical differences between MINIX and L4, but the focus of the projects is very different.


[0] http://linuxfr.org/nodes/88229/comments/1291183


请问高人,你是在哪儿看的 Andrew Tanenbaum 说的这番话?邮件列表么?想必你一定是 OS 开发界的大牛级的人物吧,


我不是高人也不是大牛,那段话引用的链接不都贴在下面了么...

其实 MINIX 3 就是 BSD License 的啊,看他们这样是打算要做成能够替换 NetBSD 内核的节奏么?
http://wiki.minix3.org/doku.php?id=developersguide:portingnetbsduserland

fefa2004 写到:
能不能点评一下 GNU/hurd?


匿懦从没 RTFM 过 Hurd 相关的东西,什么都不懂……


看完那个采访 Andrew Tanenbaum 的对话了。

我还是觉得,在技术上,微内核的优点多一些,那些执着于微内核领域的人可不是我这种一知半解的人。

linux 的繁荣是因为它出现的时机恰当,我相信 hurd 如果真的release了,至少会跟 linux 平分秋色。
返回页首
阅览会员资料 发送站内信件 MSN Messenger
syh
老妖


注册时间: 2010-05-02
文章: 1617
来自: 卡拉赞

文章发表于: Wed 2016-10-26 13:26:39    发表主题: 引用并回复

fefa2004 写到:

看完那个采访 Andrew Tanenbaum 的对话了。

我还是觉得,在技术上,微内核的优点多一些,那些执着于微内核领域的人可不是我这种一知半解的人。

linux 的繁荣是因为它出现的时机恰当,我相信 hurd 如果真的release了,至少会跟 linux 平分秋色。


所以这是一个信仰交流帖而不是技术交流帖。66666。

_________________
又要毕业了。应该是最后一次。
-------------
audio/mous
ports-mgmt/pkg-rmleaf
Buffer Hint: http://www.vim.org/scripts/script.php?script_id=5272
返回页首
阅览会员资料 发送站内信件
c++-bmake
半仙


注册时间: 2015-09-06
文章: 124

文章发表于: Sun 2016-11-13 01:25:43    发表主题: 引用并回复

内核这种东西,我想我是皓首穷经,斑斑白发都不会搞出名堂来了,所以选择沉默,不过我觉得微内核的后果是造成大集市的局面,宏内核比较统一雅致,BSD 是微内核还是宏内核?鄙人完全不知 Surprised
返回页首
阅览会员资料 发送站内信件
alphachi
老妖


注册时间: 2007-12-10
文章: 1263
来自: @tweetxa

文章发表于: Mon 2016-11-14 02:25:30    发表主题: 引用并回复

c++-bmake 写到:
内核这种东西,我想我是皓首穷经,斑斑白发都不会搞出名堂来了,所以选择沉默,不过我觉得微内核的后果是造成大集市的局面,宏内核比较统一雅致,BSD 是微内核还是宏内核?鄙人完全不知 Surprised

https://en.wikipedia.org/wiki/Monolithic_kernel

_________________
Paranoid in Sabbath ...
返回页首
阅览会员资料 发送站内信件
ldbeth
半仙


注册时间: 2018-05-15
文章: 2
来自: Zhejiang

文章发表于: Tue 2018-05-15 16:25:02    发表主题: 这就非常有意思了 引用并回复

正在筹备用 Common Lisp 设计 x86_64 的完全物件導向设计的操作系統。

为什麼是物件導向设计的?這是很自然的设计,Unix 的一切皆文件就是物件導向设计的原型,但在新的操作系統中,這種思想要更进一步,一切都是 Lisp 物件,乃至将不会有文件的概念,不同应用按需设计不同的数据结构直接储存在硬碟中,再也沒有文件格式的困擾。同時釆用穩定的微內核设计,增加分布式平台支援。

为什麼用 CL?因為 CL 是高性能,高灵活,高度穩定,真正跨平台的语言,也是我最熟悉的编程语言。性能上,多个基于 CLOS 的 CPU 模擬器都证明其性能胜任操作系統的需求;准確性上,IBM,NVIDIA,AMD 等厂都用 CL 为芯片做数学证明。

为什麼是 x86_64?本來我想自己写 CPU 模擬器,去华强北定制 CPU 的,不過由于 x86_64 是最流行的 CPU,有利于开发和推广。

這个系統会是 Lisp Machine 传统的单用户模式,用戶能接觸所有系統資源,每个运行的系統是一個站点,通過网路可以接觸其它站点以及 Unix 工作站分配工作。用戶界面是易用的图形界面,可以通过 X 在客戶機上连接。

除了 Lisp 以外,可能會实現 C 编译器以利用現有软件和驱动。

系統的两大开发工具为 CL 传统的 editor 和 inspector,前者用于修改数据结构,后者用于檢視数据结构,所有应用都可基於這两個工具。

_________________
#1='(NIL . #1# )
返回页首
阅览会员资料 发送站内信件 浏览发表者的主页
从以前的文章开始显示:   
发表新文章   回复文章    FreeBSD China -> 休闲话题 论坛时间为 北京时间
1页/共1

 
转跳到:  
不能发布新主题
不能在这个论坛回复主题
不能在这个论坛编辑自己的文章
不能在这个论坛删除自己的文章
不能在这个论坛发表投票


Powered by phpBB 2023cc © 2003 Opensource Steps; © 2003-2009 The FreeBSD Simplified Chinese Project
Powered by phpBB © 2001, 2005 phpBB Group
Protected by Project Honey Pot and phpBB.cc
silvery-trainer
The FreeBSD China Project 网站: 中文计划网站 社区网站
The FreeBSD China Project 版权所有 (C) 1999 - 2003 网页设计版权 著作权和商标