【AICon】AI 基础设施、LLM运维、大模型训练与推理,一场会议,全方位涵盖! >>> 了解详情
写点什么

MINIX 3 承诺比 Windows 或 Linux 更安全

  • 2009-05-10
  • 本文字数:1127 字

    阅读完需:约 4 分钟

阿姆斯特丹 Vrije 大学的计算机科学教授 Andrew S. Tanenbaum 正领导着一个开发 MINIX 3 操作系统的项目,MINIX 3 的目标是比 Windows 或 Linux 更安全。

在他那份获得欧盟研究委员会(European Research Council)5 年 250 万欧元资助的研究计划书里,Tanenbaum 解释了为何他认为现有的操作系统不安全:

最严重的可靠性及安全问题是与操作系统相关的那些。核心问题在于现有操作系统都不符合 POLA——最低授权原则(Principle Of Least Authority)。POLA 说的是系统划分组件的方式,应当使必然存在于某个组件中的缺陷,不至于波及其他组件。每个组件仅应该得到完成它本身工作所需的权限,不多不少。具体来说,它应该无权读写属于其他组件的数据,无权读取它自身地址空间之外的任何计算机内存,无权执行与它无关的敏感操作指令,无权访问不该访问的 I/O 设备,诸如此类。现有操作系统完全违反以上原则,结果就是造成众多可靠性及安全问题。

Tanenbaum 认为设备驱动程序是主要的肇事者:

典型的操作系统代码中大约有 70% 属于设备驱动代码。我们知道设备驱动部分的每行缺陷数量是其他部分的 3 到 7 倍。有据可查 63% 到 85% 的 Windows XP 崩溃根源是驱动错误,Linux 的情况也没什么理由会不一样。

MINIX 的操作系统架构稍有不同:

image

Tanenbaum 指出其中的主要区别是令设备驱动运行在用户态能提高安全性:

设备驱动处于内核之上,运行在用户态。每个驱动都作为单独的进程运行,受到内存管理硬件的严格约束,只能访问自己拥有的内存。设备驱动需要执行 I/O 操作的时候向微内核发出调用以获得服务(比如向物理设备发出指令)。微内核在执行任何调用之前,首先会检查该调用是否被许可。因此从声音驱动发出控制声卡的调用会被接受,而从声音驱动发出控制硬盘的调用会被拒绝。

总体目标是:

……将操作系统的结构重新组织为一个运行于内核态的微内核,外加若干用户进程去完成真正的操作系统任务。尽管一个微内核离完整的操作系统还很远,但这样的设计达到了我们的主要目标。我们的目标是将大部分操作系统代码移出到用户空间,这样我们就能将之划分成进程并阻止它们执行“危险”(控制)指令,内存管理硬件也能防止进程访问自身所属以外的内存。

目前 MINIX 3 的版本是 3.1.3a 版,它的主要特性包括:

  • 符合 POSIX
  • TCP/IP 网络
  • X Window 系统
  • 语言支持包括 cc、gcc、g++、perl、python 等等
  • 超过 650 个 UNIX 程序
  • 完全支持多用户和 multiprogramming 多任务
  • 设备驱动作为用户进程运行
  • 高度容错
  • 提供完整的 C 源代码。

由于 MINIX 实现了 POSIX 标准,大多数 UNIX 程序只要细微修改或无需修改就能在上面运行。该项目进入了 Google’s Summer of Code 2008 ,还设立了相应的 MINIX 讨论组

查看英文原文: MINIX 3 Promises to Be More Secure Than Windows or Linux

2009-05-10 00:302785
用户头像

发布了 225 篇内容, 共 61.0 次阅读, 收获喜欢 50 次。

关注

评论

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

Fil价格今日行情?Fil有投资的价值吗?

区块链 分布式存储 IPFS fil fil价格今日行情怎么样

Mybatis自定义拦截器与插件开发

码农参上

8月日更

FunTester框架教程(一)

FunTester

教程 接口测试 API测试 测试框架 FunTester

初识 C#

若尘

C# 8月日更

Jetpack Compose 架构分层

Changing Lin

8月日更

U2Net基于ModelArts Notbook的仿真实验

华为云开发者联盟

开源 modelarts 目标检测算法 U2Net Notbook

Vue进阶(二十七):Vuex 之 getters, mapGetters, ...mapGetters详解

No Silver Bullet

Vue vuex 8月日更

七夕赶上服务器架构升级,女朋友的约会怎么办

华为云开发者联盟

华为云 FunctionGraph DevStar Serverless架构 服务器架构

Stack Overflow 2021 开发者调查报告出炉,开发浪潮中的变与不变

清秋

语言 & 开发 文化 & 方法 Stack Overflow 开发者报告 编程语言排行

什么是工控主机?工控主机安卓主板有哪些配置?

双赞工控

从0开始的TypeScriptの五:webpack打包typescript

空城机

JavaScript typescript 大前端 8月日更

Ipfs排名前十的公司有哪些?怎么选择靠谱的ipfs公司?

区块链 分布式存储 IPFS fil ipfs公司

测试经验| 音视频通话相关app如何进行测试

anyRTC开发者

软件测试 音视频 实时通信

【Vue2.x 源码学习】第三十三篇 - diff算法-收尾+阶段性总结

Brave

源码 vue2 8月日更

JavaScript 之事件循环(Event Loop)

网易云信

原理分析!如何将springboot项目打成war包放入tomcat中运行

Summer

Java 学习 程序员 架构 springboot

FastApi-12-Form表单

Python研究所

FastApi 8月日更

这几个棘手的面试常见问题,如何高情商的回答?

架构精进之路

情商 8月日更

送你两个神器,关系数据库数据入湖轻松应对

华为云开发者联盟

数据库 数据湖 数据迁移 关系数据库 实时数据

解决安全漏洞扫描,就靠它了

百度开发者中心

产品 最佳实践 企业动态 百度安全

揭秘阿里云 RTS SDK 是如何实现直播降低延迟和卡顿

阿里云视频云

阿里云 直播架构 直播技术 视频直播 视频云

20张图让你彻底掌握负载均衡的秘密

负载均衡 编程 程序员 计算机

small-spring 代码贡献者3个月,敢说精通Spring了,分享我的总结!

小傅哥

spring 小傅哥 cglib aware BeanPost

金融级IT架构:网商银行是如何进行数字化落地的

博文视点Broadview

Prometheus监控的4个黄金指标

Rubble

Prometheus 8月日更

【SpringCloud 技术专题】「原生态 Fegin」打开 Fegin 之 RPC 技术的开端,你会使用原生态的 Fegin 吗?(下)

洛神灬殇

SpringCloud OpenFegin Fegin 8月日更

Flutter Android 端 FlutterInjector 及依赖流程源码分析

工匠若水

flutter android 8月日更

区块链钱包搭建,去中心钱包搭建,仿IM钱包

Hive企业级性能优化

五分钟学大数据

hive hive性能优化

Maven 项目执行的时候提示 JAVA_HOME is not correctly set 错误

HoneyMoose

Java Arrays.asList 和 new ArrayList(Arrays.asList()) 的对比

HoneyMoose

MINIX 3承诺比Windows或Linux更安全_安全_Abel Avram_InfoQ精选文章