阿里、蚂蚁、晟腾、中科加禾精彩分享 AI 基础设施洞见,现购票可享受 9 折优惠 |AICon 了解详情
写点什么

Verve 已经发布——一种类型安全的操作系统

  • 2010-12-20
  • 本文字数:935 字

    阅读完需:约 3 分钟

最近微软研究院发布了一篇通告,声明 Verve 的发布,它是来自于 Singularity 项目的一种操作系统,基本前提是要使用类型化汇编语言(Typed Assembly Language,TAL)和 Hoare 逻辑达到高级的保密性(security)和安全性(safety)。Verve 操作系统由内核(nucleus)、核心(kernel)和一个或多个应用程序组成。

尽管为了便于自动编译成 TAL,Verve 是由 C#编写的,但它还是执行了二次检查来验证类型安全性。内核本身是用汇编语言编写的,并用断言加上了手工的注解。它还使用 Boogie 根据规范来验证汇编语言,并确保它可以与 TAL 代码和硬件安全地交互。

Verve 的成功之处

  • 它是第一个能够从机制上验证以保证安全性的操作系统,其中包括的所有汇编语言指令都在启动时经过了静态验证,然后才会运行。
  • 它可以运行在一般的硬件上,从而支持真正的语言特性,像类、虚拟方法、数组和先发线程(pre-emptive threads)等等。
  • 高效,这是通过使用 Bartok 的对象、方法表和数组的本地布局达到的。
  • 它演示了自动化技术、TAL 和自动化定理证明,从而验证了操作系统中和运行时复杂的低级代码的安全性。
  • 它演示了少量带有自动化定理证明功能,经过验证的代码它能够支持任意数量的 TAL 代码。

有了类型安全验证的代码,如果想要访问内存,只能通过对象引用和关联的特性——像字段和属性——达到。通过定义好的路径——在当前情况下是运行时——访问内存,核心可以验证代码并没有访问不该访问的内存位置。本质上,类型安全性意味着,除非程序的操作对于类型是合法的,否则就无法在对象上执行操作。类型安全性为高级编程语言(像 Java 和 C#)中的保密性提供了最基本的要素,并且当扩展到操作系统级别时,会得到效率,并转化为性能。

Verve 的局限

  • 缺少对很多 C#特性的支持,像异常处理等
  • 不支持标准的.NET 类库,因为它包含了不安全的代码
  • 缺少对代码的动态载入
  • 只能在单处理器上运行
  • 缺少全面的隔离机制,像 Singularity SIPS、Java Isolates 和 C# AppDomains
  • Verve 使用经过验证的垃圾回收器,它会在回收的过程中把一切操作停止,并禁用中断。

尽管 Verve 还有很多局限性,但它的创建者觉得只有对多处理器的支持是明显的障碍,因为那可能需要对当前的结构进行本质上的修改。

查看英文原文: Announcing Verve – A Type-Safe Operating System

2010-12-20 07:271659
用户头像

发布了 340 篇内容, 共 126.0 次阅读, 收获喜欢 13 次。

关注

评论

发布
暂无评论
发现更多内容

一看就懂!任务提交的资源判断在Taier中的实践

袋鼠云数栈

全球首个面向遥感任务设计的亿级视觉Transformer大模型

京东科技开发者

CNN 遥感 遥感影像 企业号 2 月 PK 榜 深度视觉

应用部署初探:3个主要阶段、4种常见模式

SEAL安全

应用部署

2K字就能理解的async/await原理,还要拖多久?

梁木由

前端 前端开发 校招 前端入门

新范式+新标准=世界级产品|StarRocks年度总结

StarRocks

数据库

BSN-DDC基础网络详解(一):基础介绍

BSN研习社

StarRocks市场渗透率跻身Top10!

StarRocks

数据库

OpenMLDB 社区月报 | 2023 年 1 月

第四范式开发者社区

人工智能 机器学习 数据库 开源 特征

想找个稳定的工作

MavenTalker

职业素养 职业发展 求职面试

RocketMQ源码-NameServer架构设计及启动流程

小小怪下士

Java 源码 程序员 RocketMQ

技术管理 之 干系人管理

码猿外

技术管理 干系人管理

AIGC的浪潮下,文本生成发展得怎么样了?

澜舟孟子开源社区

人工智能 文本生成 AIGC

Databend Roadmap in 2023

Databend

手把手教您在PyCharm中连接云端资源进行代码调试

华为云开发者联盟

人工智能 华为云 企业号 2 月 PK 榜 华为云开发者联盟

windows命令窗口

MEImei

OKR之剑·实战篇04:OKR执行过程优化的那些关键事

vivo互联网技术

团队管理 OKR

面试前必刷!Java高级工程师1380道面试题(附答案)分享

架构师之道

编程 程序员 java面试

云时代,好用的数据迁移方案推荐

NineData

数据库迁移 数据校验 数据复制 迁移工具 NineData

架构实战营第 10 期 - 模块五:微博评论高性能高可用计算架构设计

kaizen

「架构实战营」

分层次的电路设计方法

timerring

FPGA

火山引擎DataTester:0代码也能实施A/B测试的实验平台

字节跳动数据平台

大数据 AB testing实战 企业号 2 月 PK 榜

mockito入门

i查拉图斯特拉如是说

后端 单元测试

1

Doctor Blind

软件测试/测试开发 | app自动化测试(Android)--App 控件交互

测试人

软件测试 自动化测试 测试开发 appium app自动化测试

分享一个 HIVE SQL 性能优化点-使用公共表表达式 CTE 替换临时表

明哥的IT随笔

hadoop hive

StarRocks荣获开源中国“2022 年度优秀开源技术团队”

StarRocks

数据库

《欧拉开源操作系统行业应用案例集》2023年案例集征集开始!

openEuler

Linux 操作系统 openEuler

代码实例解读如何安全发布对象

华为云开发者联盟

开发 华为云 企业号 2 月 PK 榜 华为云开发者联盟

贴合运维场景的告警聚合实现——以Zabbix为例

北海

运维 zabbix 告警 IT运维

一文走进多核架构下的内存模

KaiwuDB

多模数据库 多核编程 内存模

开发互动直播应用很简单:声网 Android Demo保姆级跑通教程

声网

android RTC RTE 教程分享

Verve已经发布——一种类型安全的操作系统_.NET_James Vastbinder_InfoQ精选文章