现代UNIX系统有什么设计上的不足么

来源:互联网 发布:淘宝店铺装修方案 编辑:程序博客网 时间:2024/03/29 14:39

这位老兄说的即是,我喜欢linux,也许是因为狂热而忘了它的不足,这位老兄所说的ifconfig的例子让我想起一件事,也是这个问题,


先用ifconfig为eth0配置一个ip,然后用ip addr add添加几个primary地址,然后再用ifconfig为eth0设置一个不同网段的地址,然后用ifconfig eth0查看,发现根本不是刚设置的那个地址而是第一次用ip addr add添加的那个,看看代码发现,linux为每个net_device维护了一个网络地址链表,所有的操作都是对这个链表进行添加删除,后配置的排在后面没有主次之分,ifconfig只会取这个链表的第一个元素的ip,而ip addr show却是会遍历这个链表,再看代码发现linux用了两种机制实现ifconfig和ip addr add,前者是ioctl+procfs,而后者是netlink,我实在想不通为何要这么做,按照unix的哲学,如果有了sbin/ip的netlink机制,那么为何不把ifconfig也归到这个机制或者说将ifconfig退化成一个脚本,让其调ip程序,最近一直跟踪linux,发现其内核对用户空间导出的接口越来越多,用户空间设计也是越来越混乱,这个事实是从devfs被除去开始的,一切皆文件好像成了一个教条,什么玩意都用一个XXXfs实现,但是真正的需要YYYfs的却使用了别的机制,更为混乱的就是有的东西还混合使用很多接口机制。


     unix似乎还没有这个腐化的迹象,linux啊,我唯一担心的就是这个,一切皆XX,为何不贯彻到底,非要造一个YY来随波浊流吗...

我这里不得不发表一下我的拙见了,迄今为止,有哪个内核能像linux这样经得住动态裁剪的,不是我偏心,我真的觉得linux十分不错,从大型机,服务器,pc,netbook,手机,猫等等,无一没有linux的席位,这本身就说明linux很强。unix呢?都知道linux是类unix系统,但是这种“类”体现在接口上而不是内核设计上,我们可以看到的unix,比如solaris,aix,hp-ux以及bsd等等,差不多都是大玩意,也许是商业原因使得unix“不屑于”往更广的方面发展,这个不属于我们技术圈的事,也就不多谈。但是linux强大的背后却是它模块化,细粒度,开放式的设计理念,模块化可以根据需求动态增删模块以及裁剪内核本身,细粒度使得上述工作更加简单,另外细粒度和模块化使得内核机制之间的耦合度降低,这样可以增加其设计灵敏度,开放式开发使得它能够瞬间捕捉到需求或者bug,然后独立地进行开发修改而不会影响别的模块,不会牵一发而动全身。这其中最最重要的就是它的开发模式是开放式的,互不相识的人们一起开发了这个内核,这个模式决定了linux模块间必然是低耦合的,这就是它灵活的原因,灵活意味着它可以很方便的适应不同的领域的不同的需求。unix也好,windows也罢,Mac OS也好,它们就是庞大的航母或者巡洋舰,而linux呢,啥也不说,微型核潜艇吧。现在不是很多人在整什么软件工程或者OO设计吗?还看那么多案例,看看linux就可以了,看看它的开发模式,然后就决定了这一切

> >       Plan9也是一个选择。
> >       现在最理想的操作系统应该是Singularity,具体你可以看
> > http://research.microsoft.com/en-us/projects/singularity/
> ,重新设计的编程语言,运行时动态检
> > 测,channel通讯等等。虽然在这里提到MS不合时宜,但是如果就纯粹研究而言,Singularity的确是
> > 一个很理想的操作系统内核。
> MS并不是“万恶的”,但是,MS确实和自由软件有着不同的理念。一个重要的前提就
> 是MS是一家以盈利为目的的商业企业!商业行为是有不符合人性的所谓“恶心”,但
> 并不是那么恶心,right?
>
> MS research聘请了很多非常优秀的科学家和工程师,或许没有Linus优秀,但是,
> 他们很多人都曾经为开放源代码软件做出过贡献。恩,事实上,为数不少。
>
.

>> 这个话题有些大。
>>
>> 听了太多次大师的训诫:UNIX是如何如何的简约,如何如何的精致。以至于,
>几
>>乎都快忘了这个通俗的道理:任何事物都会有它的生命期。我想,UNIX类操作系统
>>应该也是一样。一个事物的腐烂,应该是从其最脆弱的地方开始吧?!
>>
>> 那么,现代UNIX都有什么缺点呢?单从内核技术角度上有哪些呢?
>>
>> 我想自己没有体会到显著缺点的最大原因是身在此山中且道行不深。
>>

UNIX 产生的时候主要是针对程序员,那个时候只有少数人拥有并能操作电脑
而MS针对的是普通大众,他的目的是让每个人都拥有电脑

0 0
原创粉丝点击