写点什么

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:271748
用户头像

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

关注

评论

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

云账户是什么意思?有什么用?

行云管家

云计算 公有云 私有云 混合云 云资源

主客体命名法

少个分号

模块四课后作业 - 设计千万级学生管理系统的考试试卷存储方案

渐行渐远

架构实战营

使用命令模式重构播放器控制条

Tom弹架构

Java 架构 设计模式

使用 Resilience4j 框架实现重试机制

码语者

Java 重试机制 Reslience4j

前端如何低门槛开发iOS、Android、小程序多端应用

YonBuilder低代码开发平台

一文解析数据库的三生三世

Zilliz

数据库 oracle 数据库设计 Milvus

赋能“数字金融”,CODING 再下数城

CODING DevOps

研发管理 数字化转型 CI/CD 代码管理 可视化软件

等级保护对象是指什么?是指整个单位吗?

行云管家

云计算 网络安全 等保 等级保护 等保2.0

CODING 项目协同 2.0 —— 让协作有条不紊

CODING DevOps

DevOps 研发管理 CODING 项目协同

盲盒开发

人脸识别实战:使用Python OpenCV 和深度学习进行人脸识别

AI浩

人脸识别

CSS布局(二)之多列布局

Augus

CSS 11月日更

【语言】Java 日期 API 的使用技巧

恒生LIGHT云社区

Java 编程语言

百万关注的CSRF攻击是什么意思?

喀拉峻

黑客 网络安全 安全 信息安全

ICCV 2021口罩人物身份鉴别全球挑战赛冠军方案分享

阿里云视频云

阿里云 计算机视觉 视频云 ICCV2021 ICCV

springboot连接Nexus私服

小鲍侃java

11月日更

Shopee 末端物流智能提效之路

Shopee技术团队

人工智能 算法 后端 供应链 物流

渗透实战:内网域渗透

网络安全学海

网络安全 信息安全 渗透测试 WEB安全 安全漏洞

.Net6 miniAPI JWT鉴权授权的多种实现

面向对象的猫

netcore NET6

修复SecurityException: getDataNetworkTypeForSubscriber问题

Changing Lin

11月日更

关于风险管理,如何将思维从项目升维到项目群?

光环PMO社群

项目管理 项目经验

干掉 XML Mapper,新出的 Fluent Mybatis 真香

AI乔治

Java sql 架构 mybatis

Go语言学习查缺补漏ing Day4

Regan Yue

Go 语言 11月日更

阿里P8手敲出来这份565页凤凰架构分布式手册,惨遭GitHub直接封杀

热爱java的分享家

Java 面试 编程语言 经验分享 凤凰架构

ArkUI 3.0让多设备开发更简单|HDC2021技术分论坛

HarmonyOS开发者

HarmonyOS

太顶了!华为高工用一份423页的网络协议笔记把计算机网络讲清了

热爱java的分享家

Java 面试 程序人生 网络协议 经验分享

我们是如何使用 PingCode Flow 实现研发自动化管理的?

爱吃小舅的鱼

项目管理 敏捷开发 PingCode

React性能优化

CRMEB

热爱代码且发量惊人,一名反“内卷”研发工程师的日常

尔达Erda

程序员 开发者 技术人生 成长笔记

架构师书籍推荐:2021年必看的架构师图书

华章IT

架构师

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