Andrew S. Tanenbaum, Jorrit N. Herder, and Herbert Bos

Vrije Universiteit, Amsterdam

Microkernels—long discarded as unacceptable because of their lower performance

compared with monolithic kernels—might be making a comeback in operating systems

due to their potentially higher reliability,which many researchers now regard as more

important than performance.

When was the last time your TV set crashed

or implored you to download some emergency

software update from the Web? After

all, unless it is an ancient set, it is just a computer

with a CPU, a big monitor, some analog

electronics for decoding radio signals, a couple of

peculiar I/O devices—a remote control, a built-in VCR

or DVD drive—and a boatload of software in ROM.

This rhetorical question points out a nasty little secret

that we in the computer industry do not like to discuss:

Why are TV sets, DVD recorders, MP3 players, cell

phones, and other software-laden electronic devices reliable

and secure but computers are not? Of course there

are many “reasons”—computers are flexible, users can

change the software, the IT industry is immature, and

so on—but as we move to an era in which the vast

majority of computer users are nontechnical people,

increasingly these seem like lame excuses to them.

What consumers expect from a computer is what they

expect from a TV set: You buy it, you plug it in, and it

works perfectly for the next 10 years. As IT professionals,

we need to take up this challenge and make computers

as reliable and secure as TV sets.

The worst offender when it comes to reliability and

security is the operating system. Although application

programs contain many flaws, if the operating system

were bug free, bugs in application programs could do

only limited damage, so we will focus here on operating

systems.

However, before getting into the details, a few words

about the relationship between reliability and security

are in order. Problems with each of these domains often

have the same root cause: bugs in the software. A buffer

overrun error can cause a system crash (reliability problem),

but it can also allow a cleverly written virus or

worm to take over the computer (security problem).

Although we focus primarily on reliability, improving

reliability can also improve security.

WHY ARE SYSTEMS UNRELIABLE?

Current operating systems have two characteristics

that make them unreliable and insecure: They are huge

and they have very poor fault isolation. The Linux kernel

has more than 2.5 million lines of code; the Windows

XP kernel is more than twice as large.

One study of software reliability showed that code

contains between six and 16 bugs per 1,000 lines of executable

code,1 while another study put the fault density

at two to 75 bugs per 1,000 lines of executable code,2

depending on module size

.................................

全文可以直接下载附件。。。。。。。。。。。。。。。

Can We Make Operating Systems Reliable and Secure?的更多相关文章

  1. 对Can We Make Operating Systems Reliable and Secure 的翻译

    摘要:微内核-相对于大内核(monolithic kernels)来说,由于它的 lower performance,长期以来被认为是不可接受的.而现在,由于它潜 在的高可靠性(higher reli ...

  2. Modern Operating Systems(Ⅰ)——2014.12.15

    进程   进程模型     进程就是一个正在执行的程序的实例  值得注意的是,若一个程序运行了两遍,则算作两个进程 创建进程 在通用系统中,有四种主要事件导致进程的创建 ①系统的初始化 ②执行了 正在 ...

  3. [No00003D]操作系统Operating Systems信号量的代码实现Coding Semaphore &死锁处理Deadlock

    操作系统Operating Systems信号量的代码实现Coding Semaphore &死锁处理Deadlock 可以操刀了—从纸上到实际 从Linux 0.11 那里学点东西… 读磁盘 ...

  4. [No00003C]操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore

    操作系统Operating Systems进程同步与信号量Processes Synchronization and Semaphore 进程合作:多进程共同完成一个任务 从纸上到实际:生产者− − ...

  5. [No00003A]操作系统Operating Systems 内核级线程Kernel Threads内核级线程实现Create KernelThreads

    开始核心级线程 内核级线程对多核的支持怎么样? 和用户级相比,核心级线程有什么不同? ThreadCreate 是系统调用,内核管理TCB ,内核负责切换线程 如何让切换成型? − − 内核栈,TCB ...

  6. Operating Systems (COMP2006)

    Operating Systems (COMP2006) 1st Semester 2019Page 1, CRICOS Number: 00301JOperating Systems (COMP20 ...

  7. the virtual machine is configured for 64-bit guest operating systems

    Security--Virtualization--Inter(R) Virtualization Technolog 设置为enable 本机安装的是WIN 7 ,详细版本是:Windows 7 U ...

  8. Method of address space layout randomization for windows operating systems

    A system and method for address space layout randomization ("ASLR") for a Windows operatin ...

  9. CMPT 300 – Operating Systems

    Assignment 4 – Create Simple YetFunctional File SystemCMPT 300 – Operating SystemsPlease submit a zi ...

随机推荐

  1. Spark提高篇——RDD/DataSet/DataFrame(一)

    该部分分为两篇,分别介绍RDD与Dataset/DataFrame: 一.RDD 二.DataSet/DataFrame 先来看下官网对RDD.DataSet.DataFrame的解释: 1.RDD ...

  2. 简单说明CGI和动态请求是什么

    1. CGI是什么 CGI是common gateway interface的缩写,大家都译作通用网关接口,但很不幸,我们无法见名知意. 我们知道,web服务器所处理的内容都是静态的,要想处理动态内容 ...

  3. [React] react.js的一些库和用法

    React性能优化 记录一次利用 Timeline/Performance工具进行 React性能优化的真实案例 http://www.jianshu.com/p/9b0e9ef0a607 React ...

  4. 【转载】阿里云ECS Linux服务器禁止某些IP访问

    在阿里云ECS Linux服务器运维过程中,如果发现某些IP访问异常,如怀疑有攻击行为或者怀疑是别人写的爬虫程序长时间占用你的服务器资源,则可以通过相关的设置来禁止这些IP段的访问,拒绝这些IP的请求 ...

  5. 修改tomcat命令黑窗口的名字

    一.为什么要修改tomcat黑窗口的名字 同时启动多个tomcat时,不好区分,而给tomcat的命令窗口取名区分是个不错的选择,例如下面这个效果. 二.修改的方法 1.找到tomcat的bin目录下 ...

  6. [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数

    [js高手之路]深入浅出webpack教程系列索引目录: [js高手之路]深入浅出webpack教程系列1-安装与基本打包用法和命令参数 [js高手之路]深入浅出webpack教程系列2-配置文件we ...

  7. ES6之Spread Operater拷贝对象

    译者按: 对象拷贝和合并使用展开运算符(Spread Operator)很方便! 原文: Master Javascript’s New, Cutting-Edge Object Spread Ope ...

  8. 2:Python字符串与数字

    字符串(引号):只有四种情况如下 name="我是编程高手" name='我是编程高手' name="""我是编程高手""&quo ...

  9. 弹性盒模型,flex布局

    弹性盒模型   弹性盒子是css3的一种新布局模式,由容器(父元素)和项目(子元素)组成. 弹性盒子是一种当页面需要适应不同的屏幕大小以及设备类型时确保元素拥有恰当的行为的布局方式. 引入弹性盒模型的 ...

  10. CPU 实用工具

    系统版本:CentOS 7.4 top 17:49:04 // 当前时间 up 3:55 // 系统运行时间,格式为时:分 2 users // 当前登录用户数 load average // 三个值 ...