loading ...
loading...

2007-03-29 | [翻译]Singularity项目概览 - 1.介绍

分享

软件运行平台发展演变已经超过40年了。该平台是一个巨大的代码集合,包括了操作系统,编程语言,编译器,代码库,运行时系统,中间件等。此外,还包括运行程序的硬件。一方面,该平台在金融和实际应用上取得了巨大成功。它形成了价值1790亿美元软件工业的基础,并且促使了一大批的革命性创新,比如Internet。另一方面,该平台以及运行在其上的软件越来越缺乏健壮性,可靠性和大多数用户(以及开发人员)所期望的安全性。

部分问题是我们目前的平台并没有演变到远远超越1960-1970年代的计算机体系结构,操作系统和编程语言。那时的计算环境非常不同于现在的周遭环境。那时计算机的运行速度和存储容量十分有限。只有一小部分技术学者和无恶意用户在使用它,并且只有相当少的机器组网或连接到物理设备。虽然这些特征现在没有一样保留下来,但是与那时的计算机和使用方式相比,现代计算机体系结构,操作系统,编程语言并没有出现根本性变化。

Singularity是微软研究院的一个研究项目。它起始于这样的问题:如果从头开始设计一个以可信赖为首要目标的软件平台,而不是大家普遍认可的性能目标,那么它应该是什么样子?Singularity正是用来回答该问题的。为了产生更加健壮和可信赖的软件平台,我们以高级编程语言和工具为基础,开发了一个新系统架构和操作系统(即Singularity)。尽管可信赖性非常难以衡量,Singularity还是展示了新技术架构的可行性,并且将会导致建造更加健壮和可信赖的系统。

随着硬件的发展,通常会驱动系统和应用程序发生根本性变化。而软件的发展则很少会创建根本性改善的机会。然而,软件也在演变,而且正是它的变化使得重新思考旧有的设定和习惯成为可能,甚至是必要。高级编程语言,运行时系统和程序分析工具构造的体系结构和系统比那些现存的系统更加健壮和可信赖。原因如下:

  • 富于表达,安全的编程语言,比如Java和C#。类型安全性可以保证值或对象总被正确解释和操作。内存安全性则保证程序只在合法存活的对象边界上引用内存。
  • 优化编译器和高性能运行时系统会生成安全代码,而且这些安全代码的速度可以与非安全代码相媲美。不同于普通的JIT编译器,我们的编译器会执行全局优化来缓解因为安全而带来的额外开销。系统中的垃圾收集器也会修正额外存储开销,且媲美于那些显式的存储单元分配。
  • 验证技术可以确保编译器,编译过的代码以及运行时系统的端到端类型安全。类型化中间语言和汇编语言可以验证系统组件的正确操作,并且保证语言的安全性。而语言安全性则是系统正确性的基础。
  • 合理的驱动规范缺陷检测工具可以保证系统许多方面的正确性。这些工具能够检测到错误的发生(伴随错误的确定),而且当某个缺陷被消除时也能可靠地显示出来,也不会去找寻电路上的缺陷集。尽管如此,这些工具却很容易扩展,适于检查程序或特定库是否被正确使用。
基于以上高级技术的语言和工具完全可以被用在检测和预防编程错误上。探究系统架构机制的变化,反过来或许会在预防和减少软件缺陷的终极目标上更进一步。

分享 分享 |  评论 (0) |  阅读 (?)  |  固定链接 |  类别 (操作系统) |  发表于 14:55  | 最后修改于 2007-05-10 17:27
搜狐博客温馨提示:搜狐博客官方不会要求参加活动的各位博友缴纳任何的手续费用。请勿轻信留言、评论中的中奖信息,更不要拨打陌生电话及向陌生帐户汇款,谨防受骗!识别更多网络骗术,请 点击查看详情
您还未登录,只能匿名发表评论。或者您可以 登录 后发表。
 
  *中国人爱国心,搜狗输入法爱国主题皮肤下载>>
表  情:
加载中...
回复通知: 同时用小纸条通知对方该回复