分类归档: OpenSource

操作系统的迷思

你说这要一个多么不稳定的操作系统才会整天通知用户注意系统稳定性并且要花钱维稳呢? 百思不得其解…

一个操作系统越是封闭,越是想从最终用户身上压榨捞钱,就会常常的搞出很多消耗系统资源的垃圾软件或是病毒,系统也会变得极其不稳定,慢慢的就会被更加开放的开源操作系统所取代。

且说那个封闭的操作系统,其实也是当年直接从邻国搬来的代码,稍加修改就用上了,不但只能在少数硬件平台跑,还默认就会启动一个图形界面,面子倒是好看,但是效率太差,往往需要更好的硬件支撑,用户苦不堪言;而那个开放的系统,支持多个硬件平台,运行效率还极高,不在乎面子,更有里子。

封闭的操作系统有的时候要进行大规模重构,比如在上世纪六七十年代曾经遇到过惨痛失败;而开放性的操作系统因为基础架构合理,所需要的只是不停的改进就好。

继续说这个封闭的操作系统,一年一度的代码Review大会,今年要修改开发章程,引起关注的一个调整是第七十三条:对危险进程的处理方式:一经发现疑似危险进程,安全软件有权直接Kill掉不再通知父进程。令人遗憾的是,这个调整居然还被大会通过了。

开放的系统设计者的眼里:每个用户是平等的;而在封闭操作系统的设计者口中,当然也是所有用户都平等,只是有些用户比其他用户更加平等。

操作系统是一门复杂的课程,每一行代码都是不解之谜。

EOF

从 Solaris 到 illumos – 关于技术权力抗争、开源以及梦想的故事

今天看了现任 Joyent 工程副总裁 Bryan Cantrill 的演讲:Fork Yeah! The Rise and Development of illumos,讲述 illumos 项目的来龙去脉,披露了不少关于 Sun 、 Oracle 以及开源社区的信息,据说 Cantrill 在做这个演讲的时候,与会者很「动容」。而其中的陈年往事咀嚼起来很是值得思考。

首先说说这位 Bryan Cantrill ,「他曾荣登 MIT 《科技创业》35位35周岁以下顶尖技术专家榜,并被 InfoWorld 评为年度杰出创新家。在加盟 Joyent 团队之前,Cantrill 是Sun公司的杰出工程师。他在Sun公司花了十多年的时间研究了系统软件,包括从内核到浏览器客户端代码,以及和内核相关的多种组件。最有名的便是 Cantrill 联合设计并实现了DTrace。」(refer) 在 Oracle 收购 Sun 之后,Cantrill 于 2010 年 7 月离开的 Oracle,加入了 Joyent 。

在 Bryan Cantrill 的演讲中,他先是从个人的角度回顾了一下「历史」:从 SunOS 4.x 到 Solaris 的转换过程中,有很多优秀的工程师离开,导致这个问题的主要原因是引入了不成熟的 SCM 工具,Network Software Environment (NSE) — 可见,技术官僚的错误决定在哪里都是极有破坏性的。NSE 的糟糕引来了工程师的「逆袭」,Larry McVoy 干脆开发了一套 NSE 轻量级的变种,NSElite。通过 NSElite 以及后来的 Teamware , Roger Faulkner、Tim Marsland、Joe Kowalski 以及 Jeff Bonwick 等人领导的 Solaris 2.3 项目基本达到了还可以的并行开发的效率,不过到了 Solaris 2.4 就无能为力了,质量再次滑坡。

Solaris 2.5 的开发则是背水一战,只许成功,不许失败。这个时候,Sun 有了新的硬件 UltraSPARC-I 。为确保开发质量,工程师们进行了「接管」: Jeff Bonwick 担当起代码看门人的角色,坚持「if it’s broken, rip it out」的原则,确保了 Solaris 2.5 按时发布,并且确保了软件质量。经此一役,工程师们再也不愿意失去对操作系统开发上的控制。

到了 1990 年代中期,一个无法回避的论断是 Unix 必将死于 Windows NT 之手,而令人无法相信的是,Sun 居然是唯一一家意图对抗 Windows NT 的操作系统开发商。新一代「Bonwick Youth」的加入,天才们互相吸引,期待给操作系统带来革新,就像当年的 Xerox PARC 实验室那样。到了 2001 年年中,新的激进的开发开始了,这些新的操作系统功能包括:DTrace、ZFS、Zones、FMA、SMF 等。这些激动人心的特性并非由市场或是管理层驱动,而完全是工程师的想法。

ZFS,号称「终极文件系统」,首席设计师即为 Jeff Bonwick。

而这个时候,Linux 以及开源运动已经兴起,对 Sun 不可能没有冲击,内部也在反思。但是出于知识产权方面的限制,讨论了未有定论。2005 年,时任 CEO 的 Jonathan Schwartz 做出决定将操作系统开源,先是 Dtrace 开源,然后是 OpenSolaris ,时间是 2005 年 6 月。遗憾的是,有些小的但是至关重要的软件则无法开源(比如有些驱动程序含有第三方知识产权),为此 Sun 制定了 CDDL 许可协议,不过与 GPL 不兼容。

2007 年开始,Sun 决定创建一个全新的基于 OpenSolaris 的发布,名字仍然叫做 OpenSolaris,接下来的几年,Sun 与 OpenSolaris 管理委员会(OGB) 陷入了诸多摩擦,相互牵制。OpenSolaris 发展缓慢。

随着 2009 年 Oracle 宣布收购 Sun,到 2010 年收购完成收购。OpenSolaris 的命运已经很清楚了:Oracle 对此毫无兴趣。

Illumos Logo

2010 年的夏天,存储厂商 Nexenta 的 Garrett D’Amore 在 Rich Lowe、Jason King 等人的帮助下,发起了 illumos 项目, D’Amore 等人针对版权限制的软件,或是从头写代码,或是从 BSD 系统移植,2010 年 8 月 3 日,illumos 正式可用。「Illumos」这个词来自 Illuminare,也即拉丁语的 Illuminate,「照明、照亮」的意思,可谓深有用意。

illumos 项目的最终目标有两个:一是使用开源代码取代所有仍在 OpenSolaris 使用的专有代码,二是围绕之前的OpenSolaris 代码库建立一个独立的社区。严格来说,并非 OpenSolaris 的分支项目。

2010 年 8 月 13 日,星期五,Oracle 内部泄露出来的邮件写到「在企业版Solaris系统完整发布后,我们将会向得到许可的 CDDL 或其他开源授权发布更新。通过这种方式,技术创新将会首先出现在我们发布的版本中。我们将不再实时发布整个Solaris系统的源代码。」

Oracle 的对待 OpenSolaris 的冷漠乃至不作为导致了 Solaris 团队的大范围流失,比如前文提到的 Jeff Bonwick 也在 2010年 9 月 30号 离职。在不到 90 天内,DTrace 团队全部成员离开 Oracle,其他关键特性的开发人员亦纷纷离职。好消息是,这些离开的工程师全部加入了支持 illumos 项目的公司,比如 Nexenta、Joyent 、Delphix 等。关于 DTrace、ZFS 、Zones 等操作系统特性的创新将由 illumos 传承,但不会再次出现在 Solaris 上。illumos 软件库将成为记录操作系统技术危机的一个活标本。

从 Oracle 离开的 OpenSolaris 工程师们绝大多数活跃于 illumos 社区,给 ZFS 、DTrace、Zones 等带来了更多激动人心的特性。基于 illumos 的发布包括 OpenIndian、SmartOS、illumian 等,这些发布版面向不同用户群,互为补充,发展势头不错。

但是,发展中的 illumos 项目依然矛盾重重,去年 LWN 杂志的一篇题为 Illumos: the successor to the OpenSolaris community 的文章揭示了开源社区的一些明争暗斗。开发者 Stamos Tolias 抨击 illumos 项目的「思维狭隘,ZFS中心独裁以及大教堂式的开发模式」,并且企图另建分支。Illumos 的发展被认为不够开放,缺乏独立性,而 Oracle 的潜在诉讼也正在威胁 illumos 的命运。谁都知道 Oracle 公司打官司的「威力」。

也正是因为 illumos 项目由几家商业公司支持,暂时来看,怕是很难摆脱「大教堂」模式的开发弊病,而这引起了技术社区的批评。在这里,只能期待这些支持 illumos 项目的商业公司不要短视。祝愿 illumos 在将来能有更好的发展吧。

如诸君所见,illumos 项目寄托了一代技术精英的梦想。从 SunOS 到 Solaris ,从 OpenSolaris 再到 illumos ,期间发生的故事不知道有多少,关于 Sun 跌宕起伏的命运,关于技术权力抗争、开源以及梦想的故事,或许将来能有人详细如实的记录下来,一定非常有借鉴意义。

「Code over discussion; Innovation over democracy」
参考信息:

PS. 一时仓促,应有谬误,欢迎指出。

EOF

Linux Ksplice,MySQL and Oracle

Oracle 在 7 月份收购了 Ksplice。使用了 Ksplice 的 Linux 系统,为 Kernel 打补丁无需重启动,做系统维护的朋友应该明白这是一个杀手级特性。现在该产品已经合并到 Oracle Linux 中。目前已经有超过 700 家客户,超过 10 万套系统使用了 Ksplice (不知道国内是否已经有用户了?)

Oracle Linux

今天看到,Oracle 今后将只对 Oracle Linux Premier Support 客户提供 Ksplice 服务(refer)。毫无疑问,这个产品从一定程度上大大提升生产环境(尤其是数据库服务器)的安全性、可靠性和可用性,对购买了 Oracle 相关服务的用户来说,无疑这是个好产品,但对于 Linux 生态来说可能是灾难,尤其是 Red Hat,市场或许将进一步被 Oracle 蚕食,短时间内不太可能找到替代性的产品,看 fork 出来的 Ksplice 分支会怎样吧。Oracle 已经成为 Linux 操作系统市场上举足轻重的玩家,但是不交钱,用户没办法和 Oracle 玩儿。

MySQL 最重要的存储引擎 InnoDB 也控制在 Oracle 手上,当然 MySQL 也在 Oracle 手上。最近的有部分迹象表明 MySQL 部分功能即将闭源。MySQL 官方博客说部分插件只有商业版才会提供,比如 Thread Pool ,官方的测试报告显示,配置了 Thread Pool 的MySQL企业版,在4K个并发链接的情况下展示了良好的可扩展性(refer)。想使用? 交钱吧!

别忘了,Java 也在 Oracle 手里。

EOF

此文位于 OpenSource on by .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.

年度技术回顾之数据库、NoSQL、开源软件

本文已经首发于InfoQ中文站,版权所有,原文为年度技术回顾之数据库、NoSQL、开源软件,如需转载,请务必附带本声明,谢谢。

InfoQ中文站是一个面向中高端技术人员的在线独立社区,为Java、.NET、 Ruby、SOA、敏捷、架构等领域提供及时而有深度的资讯、高端技术大会如QCon、免费迷你书下载如《架构师》等。

年终岁尾,做个总结吧。要说过去的这一年,起码国内的技术会议多了很多,甚至是几千块的门票也有市场了,可能也是物价上涨的副作用?像 QCon(Beijing)、SD 2.0 、微博开发者大会、TUP、UCD 年会、D2 年会、Verlocity(Beijing) 等会议,参会人都非常踊跃甚至有些会议一票难求,这是好现象,相信 2011 年有更多有价值的会议值得我们参加。再说说技术方面的事儿吧,下面是我的几个关注点。

数据库

Oracle RDBMS 、SQL Server 、DB2 等几大商业化产品似乎没什么值得一说的事件。Oracle 公司收购 Sun 之后,MySQL 前途曾一度堪忧,现在看起来 MySQL 生命力依旧顽强,只是在今年开发节奏明显慢了不少,也或许是 Oracle 在调整节奏,不过 5.5 版本的发布还是让不少 DBA 颇为惊喜,除了 InnoDB 成为默认的存储引擎之外,其他的一些特性倒是差不多都来自技术社区的反馈或是驱动,比如来自 Google、Facebook 的改进,多少对新的 MySQL 特性产生了一定影响。值得注意的是,这一年中 PostgreSQL 发展相当的迅猛,随着 9.0 的发布,引入了更为高级的复制技术,弥补了功能上的一个短板,MySQL 的命运多舛给 PostgreSQL 带来了契机,令人感慨。以前我期待的 SSD 虽说已经逐渐成熟,但似乎没有像预期的那样对数据库软件带来更大的影响。

NoSQL

去年的回顾文章中我说到 “就数据管理方式的趋势来看,NoSQL在将来会成为一个非常重要的数据解决方案”。一年之后,NoSQL 的确已经成为网络架构中一个基础的组成部分了。涌现出来的 NoSQL 相关的产品,最成功的要数 MongoDB,在新型 Startup 中颇为流行,赢得了不少创业技术团队的青睐 (比如,引领创新潮流的 LBS 先驱 FourSquare就是采用的 MongoDB ,尽管为此吃了不小的亏 ),创建 MongoDB 的 10gen 技术团队甚至在年底拿到了红杉的风险投资。除了 MongoDB 之外, Redis 的发展也不错。来自名门大厂的 Cassandra、Dynamo、CouchDB 等产品的发展倒是稍显平淡。作为 MySQL 的 NoSQL 插件出现的 HandlerSocket 的让人感到惊喜。这个技术方案会给很多应用场景带来新的契机,相信新的一年会有很多技术团队大胆的采用 HandlerSocket。其它几个 DB,似乎到现在仍没有类似的解决方案出现。

我有一个猜测是 Redis 从 VM 转向 Diskstore 模式后,有可能超越 MongoDB 么?

开源试水

Yahoo! 发布的 S4 不出意外的话,极有可能成为 Hadoop 那样有影响力的项目,对于实时计算领域会带来极大的冲击 。相信今年国内会有用户进行尝试。LinkedIn 开源的 Kafka 也有必要关注一下。针对招聘类网站会有一定的借鉴意义。

2010 或许可以称之为中国互联网企业回馈开源领域的试水之年。先是淘宝网开源平台,淘蝌蚪 (code.taobao.org) 的上线并且推出分布式 Key-Value 存储及高性能缓存系统—-TAIR,随后开放了淘宝文件系统以及 WebX 框架,足见诚意。說起 WebX,人人网也发布了自己的开源 Web 开发框架 Rose。然后有盛大创新院开源哼唱检索引擎,随后在互联网口水大战尘埃落定之后,金山的启动金山卫士开源计划,甚至百度也发布了 JavaScript 开发框架 Tangram –喊了一年终于开源了一个产品出来,颇为不易阿。而淘宝系的前端工程师们的开源项目 KISSY 发展也颇为迅猛,推荐关注。更早一些的开源项目,豆瓣的 BeansDB 在年底进行了大幅度更新,再次引起技术社区的注意。此外,射手播放器作者沈晟发布的基于MongoDB的短网址分支项目 SESO 也很有意思,希望能继续发展下去。基于 Key-Value 的开源产品多了不少,天涯也开放了一个 Memlink

以团队为单位进行的产品开源,很容易变成一个只是”公开代码”的项目,开源,还应积极鼓励技术团队成员积极的与技术社区互动,输出更多文档,用更多的案例支撑,这样才能相辅相成,才能取得真正的收益。否则的话,容易被看成为了开源这个”名”而开源,有始无终。

期待在 2011 年,腾讯能在开源领域做点表率?还是网易开源一个游戏引擎呢?只有拭目以待了。也期待国内互联网企业能积极支持开源社区,不要只顾着开源自己的那几个产品。开源比封闭更值得欣赏,心态也比姿态更为重要。

说到开源,顺便说一下”开放平台”,2009年喊着做开放平台的各大网站,现在已基本偃旗息鼓,国内这一年中也没有一家将所谓的”开放平台”真正的做起来,倒是经过一年多的铺垫,新浪以微博为基础的的应用平台已经具备了一定的潜力和规模,2011年值得期待。如果说开源,看的是心态,那么,开放平台,则看的是企业的心胸。

2011 做点什么?

眼看着越来越多的解决方案,越来越开放的技术分享,不由得让人生疑:架构是否已经不再重要?其实,构建一般中到大型的站点,已经没什么秘密技术可言(比如,还有人一度放出来”腾讯大讲堂”这样的内部信息资料,颇为戏剧性,但大家看了之后也就是新鲜几天而已,网络中更有价值的信息已经是比比皆是了)。重要的是如何用成熟的技术将产品做好,加快开发节奏,更快改进产品质量。

所以,对我自己而言,新的一年重要的还是回归基本技术,和团队一起将丁香园( http://dxy.com )的产品做好,”望着天上的星,也要看着脚下的坑”,关注新东西,更要避免因为技术冒进造成不必要的人力物力浪费,说起来容易,真的做起来,怕是也没那么简单。

EOF

此文作者:, 位于 OpenSource 分类 标签: on .
转载须以超链接形式标明文章原始出处和作者信息及版权声明.