OSDI’12 Google Spanner

Sina WeiboBaiduLinkedInQQGoogle+RedditEvernote分享

(1个打分, 平均:5.00 / 5)

铁道部12306后台技术框架、完整异常栈信息以及技术缺点和漏洞

[原文可参阅:http://blog.csdn.net/csh624366188/article/details/8029181 ]

铁道部旗下在线购票网站12306自诞生起就一直为人所诟病,网站经常崩溃、UI粗糙、漏洞满框,但这都不是什么新闻了,近日网友爆出12306的技术框架及其表结构,大家可以来一览究竟。

下图是爆出的SQL语句,可以明显地看出其表结构,相信各位技术人员能够轻易地辨别出网站开发者的功底如何了吧。

另外,从类名也可以看出,网站采用的是常见的SSH组合,根据这些漏洞可以很轻易地进行SQL注入,从而达到非法攻击或者盈利的目的。据了解,专业技术人士发现12306.cn网站有非常明显的SQL注射漏洞,危害等级非常的高。乌云网介绍,该漏洞系XSS、绝对路径泄漏、SQL注入。提交漏洞的技术人员幽默的表示:“好几亿的项目,没敢跑库,跑坏了赔不起。”

还有一点要说的是本来这个网站访问量就很大,你丫的竟然为了得到一个或者两个字段的数据竟用select*??这个你让我这初学者经常犯的错误都不好意思犯了。类似“like、%”等模糊匹配,你难道不知道他效率极其低下,一般的网站都很少少用这种匹配 ,你丫的竟然使用。无语了。。。

另外网友还给出了12306的完整异常栈,可以确定的是:

数据库: Oracle

应用服务器:WebLogic

开发框架:Spring\Hibernate\Struts

连接池:C3P0

其中还有多少代码问题,欢迎大家一起为12306“查虫”,但请不要进行任何违法攻击行为。

信息来自开源中国论坛

另附乌云网曝光的12306众多漏洞:

WooYun-2012-12758

WooYun-2012-12515

WooYun-2012-12517

WooYun-2012-12365

UPDATE:

微博网友提示,原来还有更多亮点:

从上边一些简单代码可以看出,此代码出自一个大一刚开始接触code的小朋友所为,丫的css和js还有图片放到一个文件夹里。这是一个3亿多的项目哩。。。。

来看看12306的完整异常栈吧,ssh,oracle

完整的SQL语句在这里哦!

(9个打分, 平均:5.00 / 5)

深信服的两变一不变

不久前,深信服科技在深圳举办了第四届中国前沿网络高峰论坛,向各行各业的用户全面展示了公司一年来取得的多项成果,同时就产品技术与业务结合的问题与用户代表进行了深入讨论。活动办得挺成功,形式生动,气氛热烈(例如LCD组合屏和有针对性制作的展示内容,第一次在安全企业的活动中见到);内容言之有物,干货不少(例如现场攻防对比测试,也是第一次在安全企业举办的大型活动中见到);会议组织工作出色,用户接待规格高,且在会议前后穿插了多项广大人民群众喜闻乐见、能够陶冶情操的业余活动,充分体现了深信服用户至上、宾至如归的服务理念,得到了与会嘉宾的一致好评。

本人对深信服关注已久,但很晚才建立官方沟通渠道,所以借本次活动的机会,我想:1.全面了解深信服的市场推广思路;2.对之前许多非官方渠道获得的信息做印证;3.对深信服未来市场、产品、技术发展做出判断。本文内容也尽量围绕这三点做阐述,想到哪写到哪,过程中没有受到厂商施加的任何压力,如有明显的正面或负面评论纯属巧合。

客户群体的变化

传统概念中,深信服是靠上网行为管理和VPN,从中小企业发家,一步一步做到现在接近6个亿的年营业额(2011年)。其中渠道的贡献功不可没,该公司有着国内安全厂商中一流的渠道,这一点大家都公认。但想在此基础上继续提高营收,光靠中小企业就太苦了,必须将战火烧到行业用户和运营商市场,提高大单的比例。从目前情况看,深信服还是颇有斩获的,我得到的数据是来自行业用户的贡献在整体业绩中的比例已超过50%。那么它究竟是如何做到这一点的?为什么高端用户能买它的帐?本次会议,我特别要求参加运营商分论坛,希望从中得到答案。

在运营商市场,深信服2009年开始发力。根据现场公布的数据,该公司目前已成为中移动集团加31个省分、中电信22个省分和中联通集团加16个省分的供应商。运营商中要数做管道的人最关注深信服,现场我听运营商代表提到最多的不是安全问题,而是城域网的优化问题。不管有线还是无线,现在如果没有应用流量管控,运营商建设投资的回报率会很低,而且肯定会因为体验不佳招来用户的骂声。另外对于无线城市来说,运营商即便现阶段不考虑网络优化问题,也要先能对业务流量进行识别分析,在此基础上才有可能谈到开发增值服务。所以这一二年来,三大运营商为此都做了大量投入,有不少大单出现。而深信服本身就是靠应用流量识别起家的,该公司以此为切入点,在城域网市场中已经获得一些份额。

另一方面,ICT已经明确成为运营商的业绩增长点,要想抢占市场,就必须以链路为核心,给用户提供更完整的服务和更灵活的商务模式。在这个领域,深信服能介入的角度扩大了许多,运营商代表在现场普遍提到了对应用流量管控、安全防护、广域网优化产品的需求,他们希望能借助深信服的网络优化和安全解决能力,为自己的用户提供有针对性的服务。个人感觉运营商虽然在ICT领域有了比较清晰的运营手段,但对于4-7层安全和优化的部署与商务模式还没有成熟的思路。他们很想以用户资源为资本,绑定厂商去解决问题(至少是共同去研究问题)。说白了,运营商搭台,厂商唱戏,争取共赢。

除了城域网和ICT两大市场,运营商代表也结合自身情况提出了一些需求,其中比较普遍的包括支撑网络的优化/防泄密/移动办公、IDC的防篡改、数据及3G网络的监管等等。中移动的情况比较特殊,他们在网络和IDC出口的应用分流和网络优化的需求似乎特别强烈(分论坛中没有来自广电行业的代表,相信他们也存在同样的需求)。至于设备性能,现场只有一位代表询问40G环境下的解决方案,说明运营商的优化场景还是主要出现在20G及以下层面,对于骨干网来说,扩容还是关键。

运营商的需求现状充分说明了他们对精细化运营的诉求,主要包括应用级别的管控和2-7层的优化。对此深信服显然乐观其成,因为该公司几乎所有产品都可以在运营商的业务场景中占有一席之地。深信服目前的企业规模也决定了其有能力参与运营商的游戏,从中获取更多的市场份额。说到这里,前面问题的答案就已浮现:是高端用户的需求变化让深信服有了更多机会(虽然没有参加另外3个分论坛,但我相信答案是一样的)。肉已经出现,能不能咬上一口,就看他们自己了。

行销方式的变化

客户群变了,行销方式自然也要随之改变。在我看来,深信服主要进行了两个比较大的调整,即先补全产品线,再实现从产品营销向方案营销的转型,在新客户面前展示了新的形象。

对于一直缺乏网关产品的深信服来说,补全产品线是最重要的事。在安全市场上,欲成就霸业,就必须拥有网关产品。IDC的数据写得很清楚,2011年中国安全市场中,市场份额排名前三的产品分别是FW/VPN(不包括单独的VPN硬件,38.3%)、UTM(22.2%)、IPS(11.5%),三者共同占据了72%的份额。反观深信服,IDC给出的数据显示,该厂商所有收入均来源于安全内容管理硬件和VPN硬件,也就是说他们用且仅用剩余的最多28%的市场空间,换来了国内纯安全企业中年营收最高者的位置。平心而论深信服走到这一步真挺NB,尤其是在企业初创之时选择走向非市场热门的应用优化与安全领域,其魄力值得称赞。更难得的是他们坚持下来了,并且在当今应用优化与安全成为市场热点的时候,把企业做到足够大的规模,有了杀回传统安全市场的资本,上演了非常经典的农村包围城市的案例。

NGAF就是反攻的大杀器。说实话我之前有点鄙视这款产品,因为当时正在写《竞速下一代防火墙》那篇稿,关心的都是技术实现和企业级用户(准确的说是Gartner定义的“Enterprise”)的需求。从这个角度看,NGAF显然不够威武,产品名也明显在打NGFW的擦边球,加上深信服从来没推出过网关产品,我当时更怀疑这是个兵马未动粮草先行的市场推广策略。不过某高层当时说的一句话还是让我留下比较深刻的印象:“NGAF是在深信服现有产品线基础上,针对国内用户需求推出的产品,我们也不想把他包装成NGFW。”目前看,这款产品确实受到国内用户认可的。会上得到了一些数据,比如从去年7月推出到今年6月,NGAF带来4000多万的收入,用户数量也超过千家;私下也听到一些流言,比如2012自然年内,NGAF的销量有望冲破亿元大关。

阅读全文»

(19个打分, 平均:4.89 / 5)

华为数通发布480G线卡

C114讯 9月24日专稿(蒋均牧)信息时代的数据流量爆炸增长正成为困扰全球网络运营商的普遍性难题。智能终端的迅速普及、高清视频及云应用的拐点引爆、社交网络/电子商务的铺开,都对运营商网络带来了极大冲击,更快速率更高效率更低运营成本成为运营商最急迫的需求。

作为近年来在IP路由领域快速成长的厂商,华为继100G、200G路由器线卡之后在今年北京通信展上发布了480G路由器线卡。这款拥有整机15.4T大容量、0.71W/G超低功耗等鲜明特征的领先产品无疑为网络运营商应对数据洪流树立了信心。

第三方调研结果显示,2012-2020年有线业务带宽将增长25倍,无线业务带宽将增长50倍。另有Informa数据显示,2015互联网全年流量将达到1.26M PB,是2010年的流量的7倍之多。480G的线卡容量意味着路由器单机吞吐量可以达到15.4Tbps,而0.71W/G的功耗能够更加有效地帮助运营商节能减排、降低运营成本。同时这款线卡采用子母卡设计,一块母板可以支持两块子卡(目前华为提供2×100G、6×40G、24×10G三种),运营商可以按需灵活配置,并且在未来升级扩容中保障已有投资。

在华为480G路由器线卡的诸多亮点背后,最为关键的支撑点在于芯片核心技术。本次采用的可编程网络处理器Solar3.0采用最新40纳米工艺,芯片集成度更高,同时转发性能提升到480G线速。Solar3.0 采用了智能存取技术(Smart Memory),极大地提升了芯片业务叠加能力和效率;另外,创新地采用了智能调频的技术,使得480G单板达到了业界最低的0.71W/G,降低了客户的综合投资。

自2004年发布路由器旗舰产品NE5000E以来,华为在IP领域发展一日千里。

2006年,华为首家发布了NE5000E背靠背集群系统;2008年,又发布了当时最大的NE5000E 2+8集群系统,实现最大端口吞吐量10Tbps;2009年,华为首家发布IP与光传送协同的端到端100G解决方案,帮助运营商减少整体投资成本;2011年,率先发布200G路由器线卡,并获得Infovision的年度创新大奖。

2012年4月,华为携手Altibox在挪威The Gathering上实现了全球首个端到端200G链路现网应用,在2.6万平方米的Hamar冬奥馆里向来自全球各地超过6500名电脑爱好者提供200G极速互联网体验。

而伴随华为在整个IP领域里的长足进展,其市场份额也在不断的提升。据著名咨询公司OVUM和Infonetics的咨询报告显示,华为在2012年第二季度全球运营商路由器市场份额排名第二,已经在包括欧洲,日韩等运营商的网络得到广泛应用。

(7个打分, 平均:3.86 / 5)

魏永明 。 “自主”操作系统 (完)

4 如何开发“自主”操作系统

4.1 开发“自主”操作系统的两种目的和策略

开发“自主”操作系统的主要目的有两种:一种是想再造一个类似 Android、iOS 的操作系统,并作为其竞争者;一种仅仅是为了在商务谈判和合作中获得一个比较好的筹码。当然,还有一种目的就是骗取政府的财政支持,对这类不良目的,不属本文讨论范围。

我们先猜度一下国内外这几年出现的一些“自主”操作系统,其目的是什么:

  • 中国移动通过博思通讯开发的 OMS。本质上 OMS 是 Android 的一个派生系统。很明显,中国移动开发 OMS 的目的属于前一种。中国移动希望利用自己强大的市场地位来左右手机供应商的 OS 选择,并建立起类似苹果那样的全封闭的平台和生态系统。可惜的是,OMS 并没有取得预期效果,在来自联通、电信的强大市场压力下,中国移动不得不允许 TD 手机使用正统的 Android 系统;OMS 也正在被市场淡忘。这里有个比较有意思的现象,Google 从来没有公开质疑过 OMS 系统,阿里 OS 的做法和 OMS 类似,却遭到了打压。这里有两个原因,一个是中国移动的市场地位摆在那里(加上还是巨型国企),Google 不敢轻举妄动,另外一个是 OMS 采用的是 Android 早期版本,那时候 Android 的市场地位还没有这么强。
  • 中国联通所谓的 UniPlus。可惜的是,UniPlus 似乎从来没有面过世,也许中国联通只是放了一个烟雾弹而已。要是真开发,目的自然应该和中国移动的 OMS 类似。
  • Firefox OS。这是 Mozilla 公司推出的纯粹基于 HTML5/CSS3/JavaScript 等网页前端开发技术推出的操作系统,和 HP 收购自 Palm 的 webOS 有类似的软件架构。HP 收购了 webOS 之后的半年,即宣告放弃 webOS,而 Mozilla 却希望通过类似技术的 Firefox OS 成为 Android 的竞争者。一会儿我们分析下为什么 Firefox OS 要比 webOS 有更强一些的生命力。
  • 华为提出要开发的“自主”操作系统。作为一个智者,任正非不可能不知道一个真正“自主”的操作系统应该是什么样子的。华为就算再有钱,再有人才,短时间内也是搞不定一个“自主”操作系统的(如前所述,主要是建立对应的生态系统太难了)。这么说来,华为开发“自主”操作系统,其目的其实就是做一个备胎,以便在和 Android、Windows Phone 等合作时能够有一个可以讨价还价的砝码。也就是说,华为并不是真的要做“自主”的操作系统;或者这么说,支持团队去做,做成 Android 那样最好,做不成 Android 那样,如果真有一天打起架来可以凑合用也行。
  • 阿里 OS。马云同志的野心很大,他做阿里 OS,就是要复制 Google 在移动互联网的商业模式,进而在移动互联网领域推广阿里体系的服务和内容。可惜的是,马云貌似不太懂技术,也没个明白人给他做参谋,结果被人害了,花了钱还被人捏住了七寸。最新的传言,说阿里 OS 要换将,继续再投个 2 亿搞。马云同志啊,光有钱是不行的,你身边还得有个把技术大牛帮你把关、出谋划策才行啊。

好,面对这两种开发“自主”操作系统的目的,应该有什么样的策略呢?其实策略很简单,不管你是真心还是假意,都应该按照本文第 3 章给出的“自主”操作系统之特征进行开发,除此之外,别无他法。任何期望找捷径的方法,都不可能获得成功。这里所说的找捷径的方法具体有:

  • 给 Android 整容。如 OMS、阿里 OS。
  • 忽略操作系统之生态系统的重要性,在 Linux 或其他开源操作系统内核、系统库等基础上包裹一个简单的框架而形成的操作系统。这种操作系统,其复杂度和 Linux 发行版相当,离本人定义的真正“自主”操作系统还差十万八千里。读者可能会问,这样的系统做备胎不是还行吗?为什么也得按照真做那样开发呢?你要知道的是,对手也不是傻子,人家看你的架势,就知道你不是真做——你起码得拉出真做的架势来,人家才能怕你啊!

顺便谈谈我对基于浏览器技术的 web 操作系统之看法。

理论上讲,浏览器可以做很多事情,甚至可以替代 PC 机上的通用操作系统。但是,最新的浏览器技术(HTML5/CSS3等),还存在一些技术上的问题。主要的问题有如下两个:

  1. 浏览器主要采用的 JavaScript 编程语言,本质上是一种难于管理(源代码保护、无法进行有效的软件架构设计、难于调试等等)的编程语言,同时内存消耗巨大,性能不佳。最新的说法是,Facebook 创始人直言全面采用 HTML5 的策略是个失误,正在向操作系统的原生应用转移。也就是说,JavaScript 语言难以承载一个良性发展的生态系统。
  2. 因为许多原因(主要是利益和政治因素),HTML5 相关的标准有分裂的迹象,同时进展缓慢。

HTML5 技术作为原生应用的一种补充,可以起到很好的作用,但是,如果要想在浏览器技术上建立一个真正可以和 Android 等竞争的操作系统,恐怕还需要很长的时间(技术上必须有突破)。要不然,Google 现在主推的应该是 ChromeOS,而不是 Android。

现在回答刚才提到的问题:“为什么 FirefoxOS 可以比 webOS 的生命力更加长久些呢?”主要的原因是,FirefoxOS 是开源的,有比较强大的企业在主导其发展,作为一个脱胎于开源基金会的企业(Mozilla公司),也能获得合作伙伴的一些好感;相反,因为 webOS 是封闭,HP 又没有能力像苹果那样打造一个完全封闭的平台和生态系统,所以最终的命运是被人抛弃了。虽然后来 webOS 也走上了开源的道路,但大势已去,HP 不亲自带头搞,光靠开源社区是搞不成的。

4.2 技术层面上的考虑

假定你是一名“自主”操作系统项目的技术管理者,你第一步要考虑的问题是什么?许多人的回答可能是:先选操作系统内核、基础库什么的。其实错了,第一步要考虑的应该是你打算选择什么编程语言作为原生应用的编程语言。

世界上的编程语言有很多种,有些语言贴近机器,比如汇编语言、C语言,有些语言贴近人,比如 Basic、Java,还有些语言用于特定领域,比如网页服务器端使用的 PHP,有些适合做不同软件之间的粘合剂,比如 Perl、Python。本文第 3 章已经解释了编程语言以及围绕编程语言形成的运行环境、框架是将操作系统区隔于其他操作系统的主要技术特征。因此,我们必须慎重选择一种编程语言。而且一旦选定了一种编程语言,“自主”操作系统在开发者看来长什么样,其实就基本上定了。

选择编程语言要考虑如下因素:

  • 这种编程语言是否易于学习和掌握?是否有庞大的开发者在使用它?
  • 这种编程语言是否具有高级语言的基本特征,比如,支持面向对象编程?
  • 这种编程语言是否是编译执行的?
  • 这种编程语言是否利于保护开发者的知识产权?
  • 这种编程语言是否有完整的工具链支持?
  • 这种编程语言是否有集成开发环境的支持?
  • 这种编程语言是否易于保护整个操作系统不会被恶意代码轻易破坏?
  • 如此等等。

其实很多读者看到这里,都会想到 Java 语言。是的,Java 语言或其派生语言如 C# 是构架“自主”操作系统的最佳编程语言。可惜,已经被 Android 和 Windows Phone 给捷足先登了。

如此一来,你可以考虑重新设计一门类似 Java 的语言,也可以通过其他手段,让你使用 Java 语言构建的操作系统有别于其他操作系统。比如,构建自己的虚拟机,如 Android 使用的 Dalvik 那样(Dalvik 和 Oracle 的 JDK 标准虚拟机有很大不同,从而让 Oracle 还挺难告赢 Google 的);你也可以用 Dalvik,但让类库、运行环境和 Android 不同(这样做的法律风险要大一些)。总之,你需要有自己的创新,全部抄袭是不行的。

确定了编程语言,接下来的工作其实就比较直接了,从上而下设计就是了。主要有:

  1. 定义和实现提供给原生应用程序的基础 API 和/或虚拟机。
  2. 在应用程序基础 API、标准 C/C++ 函数库和相关组件(通常都是开源软件)的基础上构建操作系统的运行环境和框架。主要涉及系统服务、模块之间的通讯机制,包括图形界面、浏览器引擎、OpenGL ES 支持接口等等。
  3. 同时选择操作系统内核,通常也就是 Linux,要与众不同,用 BSD 也行。
  4. 搞定集成开发环境和模拟器,让开发者可以在 PC 机上为你的操作系统开发应用程序。
  5. 让你的操作系统运行在真实硬件上,为开发者提供应用样例和文档。
  6. 持续迭代,让你的“自主”操作系统不停往前发展。

上面的第一点和第二点,是“自主”操作系统有别于其他操作系统,且支撑你可以和其他人竞争的关键点。往下的东西都不是构成“自主”操作系统真正竞争力的东西。

这么看来,其实也挺简单的。不是吗?貌似有钱、有个把技术上的明白人就能做到。技术上没问题了,市场、法律等方面的事情,请专业人员帮忙,中国这类人才还是蛮多的,缺的,其实还是技术人员以及懂系统工程和软件开发的管理人员。

4.3 快速搭建一个“自主”操作系统

这里给大家介绍笔者早先和美国一家公司合作,尝试搭建的一个操作系统,其实在当年这些东西的基础上,搭建出来一个有别于 Android 的开源“自主”操作系统还是非常快的。

这个系统使用了 Linux 内核和标准的 C/C++ 函数库,以及一些和 Android 体系结构类似的 C/C++ 运行库,使用了笔者公司的开源软件 MiniGUI、WebKit 浏览器核心引擎等等。基础的东西就这些。之上是开源的 Kaffe JVM(后来改成了 Cacao JVM),和符合 J2SE 规范的类库实现,再往上就是运行环境和框架了。见下图:

可惜的是,真正具有核心价值的运行环境和框架,是美国合作方自己开发的,我手里没有源代码。相信读者也能明白,美国合作方掌握的才是精华。

阅读全文»

(15个打分, 平均:4.47 / 5)

魏永明。 “自主”操作系统

作者:魏永明(飞漫软件CEO)

1 引言

近一个月是个多事之秋(2012年9月),IT 和互联网领域也不平静。阿里云操作系统受到谷歌的打压,华为任正非提出要开发自己的操作系统,中兴也宣布今年第四季度将发布自己的操作系统。一时间,微博上有关自主知识产权操作系统的讨论如火如荼。这样的讨论,就如同“水木清华”某些板面上的“月经贴”一样,每隔一段时间就要火一次。但大部分讨论其实讨论不到点子上,就如同“瞎子摸象”一般,大家基本上只是站在自己的立场,基于自己的经验在判断孰是孰非。这样的讨论效率低下,本人认为有必要写一篇科普性的文章,从政治、技术、工程、法律等几个方面给“自主”操作系统来一个比较清晰的定义,并尝试给出一些技术、工程等方面的建议。

1.1 作者的资格

为了说明本人有足够的资格来写这篇文章,给大家介绍一下本人的经历。本人码农出身,1993到1998年期间主要在微软平台上做程序开发,曾编写过 DOS、Win32、MFC 程序,期间涉及 C/C++ 语言,SQL 数据库、网站后台等。从 1998 年底开始专注于 Linux 和嵌入式系统。主要作品为大名鼎鼎的 MiniGUI。在创办飞漫软件的近十年时间里,作为企业创始人和研发负责人,组织研发团队持续开发 MiniGUI,开发了多个版本的嵌入式浏览器产品,也曾和美国公司合作,开发过类似 Android 这样的移动操作系统,还将 Android 运行在了 MeeGO 上(也就是国际上有点名气的 ACL,飞漫是主要开发者)。除了极其丰富的软件开发、管理经验之外,本人还编写过几本操作系统相关的书籍,不过比较老了,比较出名的是本人主持翻译的《Linux 设备驱动程序》第二版、第三版。有这些经历和相关经验做基础,我相信本文所述将是比较客观和完备的。希望本文对政策制定者、大型企业的决策者、自主操作系统的开发管理者,以及一般的码农们或多或少有一些帮助。

1.2 限制和定义

操作系统的类型很多,粗粗算起来,从小到大,有针对嵌入式系统的实时操作系统,比如 VxWorks、Nucleus 等;有现在大家熟知的针对移动终端的 Android、iOS、Windows Phone 等;有 Windows、Ubuntu Linux 等针对 PC 的操作系统;还有针对服务器的操作系统,比如 Windows NT 等。

从技术上讲,操作系统的概念可大可小。小的话,一个内核就可以称为一个操作系统,比如 Linux 内核、BSD 内核、Minix 内核等;大的话,则通常指的是整个软件平台,比如 Android、iOS、Windows Phone,有时还会将软件商店、开发社区等包含在内,从而外延到整个生态系统。

本文所指“操作系统”,以及大家近期讨论的操作系统,其实基本上被限制在移动终端领域当中,就是指能够和 Android、iOS、Windows Phone 等相提并论的操作系统,主要用于智能手机、平板电脑,而不是实时操作系统、操作系统内核或者服务器操作系统——准确讲,应该是指一个针对智能手机和/或平板电脑的软件平台以及对应的生态系统。不过,我们当前还是把它称为“操作系统(OS)”吧。

2 到底要不要“自主”操作系统

对此问题,不同的人有不同看法,但其实都很偏颇。码农,尤其是喜欢 Google 的码农,通常会说,Android 是完全开源的,没有必要重复造轮子;企业决策者或者政策制定者,则往往会认为必须有自主的操作系统。其实两者都有道理,但两者都没有看到事物的本质。

2.1 “自主”操作系统的不必要性

在谈“自主”操作系统的必要性之前,笔者先谈谈“自主”操作系统的不必要性。

在开源软件大行其道的今天,操作系统不再那么神秘,任何有足够财力的企业,依赖现有的开源软件,都可以比较容易地推出一个能够运行的操作系统。出于此观点,很多人认为有 Android 这样的开源操作系统,就没有必要再开发一个自己的操作系统了,到底谁拥有开源操作系统的知识产权,是无所谓的事情。

这个说法是有一定道理的。

从法律(指开源软件许可证)和技术上讲,就算 Google 不打算开源新的 Android 版本,不允许某些厂商使用 Android,我们一样可以在已经开源的 Android 之上继续发展自己的 Android 系统——只要遵循已经开源的 Android 的许可证约束即可,而 Android 系统主要使用的开源软件许可证有 GPL(Linux 内核)、LGPL(各种运行时函数库)、Apache(Dalvik 虚拟机及 Java 类库),其实是非常宽松的。

这个说法的不足之处在于,未考虑到可能的专利(软件相关的专利通常和实现无关,就是说,你重写一段代码,并不表示你可以规避对应的专利),以及是否有能力自行发展 Android 的问题。

前者非常要害。谷歌在开发 Android,尤其是 Dalvik 虚拟机以及 Java 类库的过程中,肯定积累了大量专利,而这些专利是凌驾于软件的著作权和许可证之上的。也就是说,如果你基于现有的 Android 派生了一个分支,要想将运行有这个 Android 派生版本的软件放到自己的手机里边销售,谷歌马上可以拿出专利大棒来限制你。当前,谷歌尚未拿出专利大棒来限制各种派生于 Android 的系统。拿阿里云 OS 和谷歌最近的争论当中来看,谷歌也只是说阿里云 OS 导致 Android 不兼容。但一旦有厂商真的使用了阿里云 OS,谷歌马上就会拿出专利大棒,这将毫无疑问。

至于有没有能力来自行发展 Android 的问题,在中国有大量码农基数的基础上,只要有源代码,就可以在短时间内组织团队自行发展 Android。

2.2 “自主”操作系统的必要性

强调需要“自主”操作系统的主要有两类人:政府中的政策制定者以及大型企业的决策者。

对政策制定者来讲,面向未来由中美两国主导的国际环境,作为两极世界中的中国,有没有自主的芯片、有没有自主的操作系统,关系到两个层面的东西,一个是国家安全,一个是面子。在这样的认识下,“核高基”的出现自然而然,其目的是支持国内企业发展核心电子器件、高端通用芯片及基础软件产品。我们暂且不谈核高基项目在实施过程中存在的制度性问题,它表明的国家是在战略上的一种布局,是一种国家意志,涉及到政治领域。

作为企业决策者,没有自主的操作系统,他将在很多方面受制于人。就拿阿里云和谷歌的争议事件来看,宏碁受到了来自谷歌的压力,然后就乖乖投降了。这里边有两个值得思考的地方:(1) 既然 Android 这么好,为什么宏碁还要和阿里 OS 合作?后者肯定没有 Android 成熟啊。(2) 为什么谷歌一施压,宏碁就放弃了和阿里 OS 的合作呢?显然,宏碁有动机选择另一个 OS 给自己的智能手机,可能的原因无外乎两种:阿里给钱了或者宏碁不希望被谷歌控制;另外,宏碁又那么容易地被谷歌搞定,说明谷歌能带给宏碁的利益远远大于阿里。

另外联想到微软向 Android 厂商收取专利许可费的事情,像宏碁这样的厂商,肯定也会被微软勒索,也包括中兴、华为等国际化的 Android 手机厂商,无一例外。对企业决策者来讲,这很难受——给别人做嫁衣啊,有时候还两头受气!所以,小的厂商需要投靠大树来庇护自己(大多数乖乖就范于谷歌或微软),大的厂商就要考虑是不是开发一个“自主”的操作系统来抗衡了。

这样的思路下,华为、中兴等大的智能手机厂商,开发“自主”操作系统的动机非常强。

像阿里这样的公司,开发OS,其目的是要复制 Google 的商业模式,加上阿里 OS 又没有撇清和 Android 的关系,受到 Google 的打压就在情理之中了。

2.3 “自主”应强调在“有效知识产权保护下的自己主导”

根据上面的分析,看来我们还真的需要有“自主”的操作系统。但是,“自主”到底是自主什么呢?

在功能手机和实时嵌入式系统领域,我们不是没有“自主”的操作系统,比如 MTK 或者展讯的操作系统,以及诸如早期的 Hopen、道系统等。在通用操作系统领域,国家也长期支持了诸如麒麟操作系统、红旗 Linux、中标 Linux、新华 Linux 等多家本土操作系统厂商。但市场表明,国家支持的这些操作系统都将消亡或者正在消亡。

本人认为,国家支持下进行“自主”操作系统的开发有合理之处,毕竟开发操作系统是一件比较困难的事情。但是,这里边有一个重要的误区和制度设计上的错误,就是只强调了“自有知识产权”,而没有强调“自己主导”。

在强调“自由知识产权”的情况下,政府对受资助企业的“自主”操作系统进行考核时,大部分情况下考核的是企业有没有获得对应的知识产权,就是软件的著作权和/或对应的专利,而并没有考核能否主导一个产业链。就如同 Google 那样可以控制这个产业链一样,受资助的企业,能不能做到让别人用了你的操作系统,就没法不继续用?在这样的思路下,政府需要在更长的周期内,考核受资助企业的市场份额是否有扩大,是否建立了良好的生态系统,让使用者、开发者欲罢不能,而不是简单的著作权证书和专利数量,或者是否达到了一个给定的出货量(因为出货量是可以作假的)。

也就是说,我们应该重新定义“自主”这两个字,从“自有知识产权”向“有效知识产权保护下的自己主导”转移。

为什么这里强调“有效知识产权”呢?这是因为,在开源软件成为趋势的情况下,构建一个自己的操作系统,可以使用很多已有的开源软件,我们没有必要所有代码都自己编写,而且越底层的代码就越没有必要自己重写一遍。这如同一只桃子,好吃的是果肉,而不是果核。像内核、基础库、常用运行时函数库等等,都不必自己重新开发。而且这么做几乎没有任何潜在的法律问题,当然,前提是你要告诉大家你用了哪些开源软件,而且你也尊重了这些开源软件的许可证。这样下来,一个操作系统的软件著作权已经不再重要,重要的是相关的专利、自己独有的创新以及围绕操作系统建立起来的生态系统。

阅读全文»

(14个打分, 平均:4.64 / 5)

长三乙,一箭双星,北斗十四和十五号星上天

系列目录 全球卫星定位系统

  1. 谈谈全球卫星定位系统GNSS
  2. 欧洲的伽利略计划:至今还是无底洞
  3. 俄罗斯的全球定位系统GLONASS也岌岌可危
  4. 美国的全球定位系统GPS
  5. 北斗卫星导航定位系统
  6. 中国北斗一号的技术特点
  7. 北斗二代的进展:我国将于2009年前后连续发射12颗“北斗”卫星
  8. 联合国卫星导航委员会:大国玩家的俱乐部
  9. 我国成功发射第二颗北斗二代导航卫星
  10. 中国第三颗北斗导航卫星发射升空
  11. 北斗第三颗星成功定点,以及坊间流传的后续发射计划
  12. 关于北斗技术细节的几个猜想之一
  13. 关于北斗技术细节的几个猜想之二
  14. 关于北斗技术细节的几个猜想之三
  15. 首次官方公布时间点——孙家栋:中国北斗系统2020年覆盖全球
  16. 我国第四颗北斗导航卫星发射升空
  17. 我国在西昌成功发射第五颗北斗导航卫星
  18. 北斗第六星西昌11月1日成功发射
  19. 北斗接收机的在线用户分布
  20. 北斗第七星,2010年长征最后一次发射
  21. 探秘中国北斗导航卫星:最高机密到民用历时20年【全文转载】
  22. 北斗第八星上天,北斗区域系统基本建设完成
  23. 北斗第九星上天,“十二五”期间中国民航将逐步使用北斗导航
  24. 北斗第十和第十一颗导航卫星分别于2011年12月以及2012年2月顺利发射
  25. 北斗第十二、十三星:长三乙一箭双星
  26. 欧洲伽利略据称将加快系统布局——2015年实现24颗卫星在轨
  27. 这个狠:解放军信息工程大学测绘学院教授许其凤详解北斗
  28. 长三乙,一箭双星,北斗十四和十五号星上天
  29. 2012年最后一次北斗发射,长三丙送第十六颗北斗星升空

image      北京时间2012年9月19日3时10分04秒,长征三号乙运载火箭在西昌卫星发射中心顺利点火升空,以一箭双星的方式成功将北斗两颗MEO卫星送入轨道,这是北斗系统的第十四和第十五颗卫星。此次发射的北斗导航卫星和“长三乙”运载火箭,分别由中国航天科技集团公司所属中国空间技术研究院和中国运载火箭技术研究院研制。

      本次发射是长征三号乙运载火箭的第22次发射,是长征三号甲系列火箭第54次发射,是中国运载火箭技术研究院运载火箭今年第8次发射、总计第123次发射,同时也是我国长征系列运载火箭今年第12次、总第167次发射。(笔者注:没有笔误,长三乙火箭是长三甲系列中的一员,是我国目前运载能力最大、技术最先进、构成最复杂的运载火箭)

      这是我国第二次采用一箭双星方式发射北斗导航卫星,也是今年北斗卫星导航系统组网的第三次发射。按照北斗卫星导航系统“三步走”发展战略,年底前我国还将发射1颗北斗导航卫星,完成区域组网建设任务。

      至此,北斗二代总共发射的十五颗星为:同步轨道卫星五颗,顺序为COMPASS-G2、COMPASS-G1、COMPASS-G3、 COMPASS-G4、COMPASS-G5;中轨星五颗 COMPASS-MEO1、COMPASS-MEO2、COMPASS-MEO3、COMPASS-MEO4、COMPASS-MEO5;倾斜同步轨道五颗:COMPASS-IGS1、COMPASS-IGS2、 COMPASS-IGS3、COMPASS-IGS4、 COMPASS-IGS5。如果没有意外,剩下的要打的星应该都是中轨星了。

      另外说一点,这个时候发射北斗卫星与千帆出发钓鱼岛捕鱼有没有关系呢?笔者认为,关系应该不大。今年年初北斗就确定要发五颗卫星,四月一箭双星两颗,九月西昌天气开窗了再来两颗;估计与小日本的折腾没有多大关系,倒是老天爷开窗是个因素。此外,照这个发射速度和水平,一箭双星和多星成常态了后,原计划到2020年左右覆盖全球的三十几颗星的北斗系统,完备时间可以提前。当然,这个提前肯定要与我国周边情况对应,比如钓鱼岛、琉球、南沙、16号大型平台武装船只、第一岛链的局势……

(4个打分, 平均:3.25 / 5)

苹果iPhone5发布会

(2个打分, 平均:5.00 / 5)

General Dynamics 收购 Open Kernel Labs (OK Labs)

不知道多少人见过这本书的封面,不知道多少人从这本书开始折腾操作系统。大家管这本书叫 Lions book. 书的作者,John Lions 98 年去世. 他把 UNIX 介绍到澳大利亚,建立第一个 UNIX Group。在这本书的基础上,他在 UNSW 开了第一个真刀真枪干操作系统的课程。在96年之前,这本书只能在地下流传,但是人手一本。

2006 年,UNSW 的 Alumni 在 UNSW 设立了一个 title, John Lions Chair of Operating Systems. Prof. Gernot Heiser,  OK Labs 的 founder, 成了第一个 Chair. 91 年 DiSy group 建立, Gernot 带着两个 PhD students 开始和 Jochen Liedtke (L4的设计人)合作,把 L4 带到 澳大利亚,开了 Advanced Operating System 的课程。 这门课从 97 年开始带出了一批能 hack kernel 的学生。 比如这篇 thesis, Single Kernel Stack L4, 就是出于一名本科生,相关的代码运行在 okl4 中。

2002 年,NICTA 建立,这个机构的宗旨就是鼓励研究人员把研究成果商业化。Gernot 等在 NICTA 建立了 ERTOS group. 2006 年,OK Labs 这个 startup 正式建立,公司的主力正是这门课程中发现和培训出的学生们。OK Labs 主要卖基于 okl4 kernel 的操作系统,提供 安全 和 高性能虚拟化。 最早是跑在高通的基带芯片里边,我猜测是高通的遗留代码太大且不好改,所以可以在 okl4 上跑高通自己的 RTOS, 然后遗留代码继续跑在 RTOS 上边。爱立信,摩托罗拉等也采用过 OK Labs 的产品。现在有10几亿台设备中在跑 okl4.  有一次,我的 supervisor 和  NICTA 的人聊天,说起了他们这个最成功的 startup, NICTA 的人拿出 ipad2, 打开 copyright 部分,然后翻啊翻,翻啊翻,终于找到了 okl4 。

兵分两路,商业化 okl4 的同时, ERTOS 进行着一个大胆的 research project,  L4.verified, 证明操作系统的正确性 (证明 L4 的实现是和 specification 一致的),就是说 在一定的前提下,这个 kernel 的实现是 bug free的。他们的论文, seL4: Formal verification of an OS kernel, 也获得了 SOSP 09 年的 best paper. 现在他们也在致力于把这些工作商业化。这个 Group 也从一开始 一个 faculty, 两个 phd students 的组变成了超级大组。

除了 mobile phone 领域, OK Labs 一直给 military 方面的公司做项目。同时他们也在做汽车上整个系统的虚拟化工作。最终,这个公司被 General Dynamics 收购。

在21世纪,折腾一个只卖操作系统的公司,还能活下来,卖出去,我觉得是个了不起的事情。尤其是在澳大利亚,这个没有硅谷的地方。

这一切的开始,就是 Prof. John Lions 和 他的书。愿大宋的教授能有此心。

(6个打分, 平均:4.00 / 5)

普林斯顿 。科学院计算所 。 《Watch Memory System on Real Systems》

(6个打分, 平均:3.67 / 5)