写点什么

面向多核异构硬件的多内核操作系统 Barrelfish

  • 2011-07-11
  • 本文字数:1124 字

    阅读完需:约 4 分钟

近日,微软与 ETH Zurich 研究团队发布了 Barrelfish 的源代码,Barrelfish 是个面向未来多核异构硬件的多内核操作系统。

当今的操作系统已经可以用在多处理器与多核硬件上了,但人们在最初设计时却并没有考虑到多核,这样他们就无法用在未来 10 年间将会出现的拥有几百个核心的异构硬件之上。主要问题在于共享内存的概念以及因访问由锁保护的相同数据时所引发的争夺。这正是 Barrelfish 所要解决的问题。

Barrelfish 是由微软研究院与瑞士 ETH Zurich 计算机科学系系统小组共同进行的一项操作系统研究,该项研究开始于2007 年,目的在于重新开始,完全摆脱现有操作系统的各种限制。团队计划构建一个概念OS,提供大量的多核支持,并且可以安装在新的兼容硬件上而无需进行移植。

Barrelfish 使用了多内核的概念,如下图所示:

Barrelfish 研究员 Rebecca Isaacs 解释到:

我们可否提出一种参考模型,指示该如何组织操作系统么?这正是多内核所要完成的事情。该模型描绘了这样一种概念:将操作系统组织为一种分布式系统。我们在每个节点上复制操作系统状态,运行在每个核心上的操作系统实例会彼此发送消息。Barrelfish 就是多内核模型的一种实现方式。

在 ACM Symposium 2009 发表的论文“The Multikernel: A new OS architecture for scalable multicore systems”( PDF )概要介绍了 Barrelfish 的 3 个设计原则:

  1. 显式进行内核间的通信
  2. 保持 OS 结构的硬件中立性
  3. 复制状态而非共享状态

首席研究员 Paul Barham 对这 3 个原则进行了解释

在通常的多处理器操作系统中,所有处理器都会通过共享内存操纵同样的基于内核的结构。由于所有处理器都有缓存,因此每个处理器的缓存中都会拥有大量的内核数据结构。即便每个内核都认为它所操纵的是相同的数据结构,但实际上硬件需要保持大量操作系统数据结构的一致性。 缓存一致性协议很难扩展到大量的处理器上。操作系统编写者必须得仔细考虑当执行某项操作时需要在处理器间复制哪些内核状态。在更新时,哪些处理器需要知道这一点?哪些数据需要进入到其他核心当中。多内核的想法就是明确指出所有这些通信模式,这样就不必预测需要移动机器中的哪些缓存线了,你在每一个处理器上运行独立的内核,在变更时,你显式地向所有其他核心发送一条描述该变更的消息即可。相比于使用线程的共享内存程序来说,这更像是个分布式系统。

Barrelfish 最初运行在 x86-64 位与 ARM 多处理器硬件之上,最近又增加了对 Intel Single Chip Cloud (一个拥有 48 个核心的研究型微处理器)与 Beehive( PDF ,构建在单独的 FPGA 之上的多核计算机)的支持,

Barrelfish 的源代码最近发布在了Mercurial 上,基于 MIT Open Source 许可

查看英文原文: Barrelfish Is a Multikernel OS for Multicore Heterogeneous Hardware

2011-07-11 09:282594
用户头像

发布了 88 篇内容, 共 273.1 次阅读, 收获喜欢 9 次。

关注

评论

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

Apache Log4j2 远程代码执行 漏洞

try catch

5G与2021的双向奔赴

脑极体

性能监控之Telegraf+InfluxDB+Grafana+Python实现Oracle实时监控

zuozewei

数据库 oracle 性能监控 签约计划第二季

数据情报在金融行业的探索系列

nexpose

数据分析 目标追踪 风险识别 数据分析预测 数据情报

Apache Log4j 2 报高危漏洞,CODING 联手腾讯安全护卫软件安全

CODING DevOps

Apache DevSecOps CODING Log4j 2 腾讯安全

性能基础之CPU、物理核、逻辑核概念与关系

zuozewei

Linux 性能测试 基础 签约计划第二季

性能工具之Java分析工具BTrace入门

zuozewei

Java 性能测试 性能分析 签约计划第二季

Linux之ls命令

入门小站

Linux

工业4.0时代:低代码的兴起,或将掀起制造业格局的变革

优秀

低代码 工业4.0

性能监控之Sleuth+Zipkin 实现 SpringCloud 链路追踪

zuozewei

链路追踪 性能测试 SpringCloud 性能监控 签约计划第二季

即时通讯(IM)开源项目OpenIM本周版本发布- v1.0.7web端一键部署

OpenIM

性能工具之常见性能工具一览

zuozewei

工具 性能测试 签约计划第二季

TypeScript 之模块

冴羽

JavaScript typescript 翻译 前端 web前端

深度揭秘技术创新:全球首个知识增强千亿大模型是怎样炼成的?

百度大脑

人工智能

皮皮APP x 武汉市残疾人福利基金会 共建成长乐园

联营汇聚

性能分析之构建 Linux 操作系统分析决策树

zuozewei

Linux 性能测试 性能分析 签约计划第二季

时间紧资金少人才缺?8位产业专家带你破局AI智能化升级

百度大脑

人工智能

睁眼、耸肩、觉醒:人形机器人的吊诡与最终幻想

脑极体

iKuai与DNSPod合作,搞了一个大动作!

网络安全 DNS DNS劫持

XTransfer技术专家康康:从普通程序员到架构师的进化之路

XTransfer技术

程序员 创业心态 创业公司 跨境支付 XTransfer

性能分析之单条SQL查询案例分析(mysql)

zuozewei

MySQL 性能测试 性能分析 签约计划第二季

下周上海见!超越商业,创业邦100未来独角兽峰会议程抢先看

创业邦

【Promise 源码学习】第十六篇 - 了解 co 库

Brave

源码 Promise 12月日更

数据库大赛50强之「华东师范大学」:恰同学少年,代码激扬!

OceanBase 数据库

数据库 学习 开源 oceanbase

伙伴大会报名截止倒计时3天!

明道云

实用机器学习笔记九:数据部分总结

打工人!

机器学习 算法 学习笔记 12月日更

使用 Apache APISIX serverless 能力快速拦截 Apache Log4j2 的高危漏洞

API7.ai 技术团队

Serverless log4j APISIX

Xcode13 适配之打印启动时间

CRMEB

Android单页应用如何在Activity与Fragment中共享状态

Changing Lin

12月日更

记录docker,k8s,oneops,.netcore搭建个人博客过程

哔啵哔啵

.net Docker k8s .net core oneops

性能监控之Filebeat+Kafka+Logstash+Elasticsearch+Kibana 构建日志分析系统

zuozewei

ELK 性能监控 日志监控分析 签约计划第二季

面向多核异构硬件的多内核操作系统Barrelfish_微软_Abel Avram_InfoQ精选文章