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. Hibernate学习(六)———— cascade(级联)和inverse关系详解

    序言 写这篇文章之前,自己也查了很多的资料来搞清楚这两者的关系和各自所做的事情,但是百度一搜,大多数博文感觉说的云里雾里,可能博主自己清楚是怎么一回事,但是给一个不懂的人或者一知半解的人看的话,别人也 ...

  2. tomcat通过一个端口号实现多域名访问

    最近在一个项目中遇到这样的一个场景,在一台服务器一个tomcat一个端口配置多个域名.没想到解决方法这么简单,通过虚拟目录来实现. 修改tomcat安装路径下/conf下的server.xml vim ...

  3. Perl中的自增、自减

    自增和自减 perl也支持数值类型的自增和自减操作.不仅如此,还支持字符.字符串的自增.自减. 如果自增(++)和自减(--)符号放在数值的前面,则先增减,再返回: 如果自增(++)和自减(--)符号 ...

  4. 【golang-GUI开发】struct tags系统(二)qt的自定义组件和构造函数

    今天我们来讲讲自定义组件和它的构造函数. 在前面的文章里我们已经接触了好几个自定组件,这次的示例是一个自定义对话框,他有一个about按钮,点击按钮可以显示出Qt的信息或者用户输入的信息.这是效果图: ...

  5. 在SQL中查询某列具有相同值的数据

    SELECT * FROM dbo.SBD_WAYBILL_GOODS WHERE WG_SW_ID ) ORDER BY WG_ID SELECT * FROM dbo.SBD_WAYBILL WH ...

  6. Codeforces Round #309 (Div. 2)

    A. Kyoya and Photobooks Kyoya Ootori is selling photobooks of the Ouran High School Host Club. He ha ...

  7. LeNet训练MNIST

    jupyter notebook: https://github.com/Penn000/NN/blob/master/notebook/LeNet/LeNet.ipynb LeNet训练MNIST ...

  8. blfs(systemv版本与systemd版本均适用)学习笔记-从主机挂载lfs的方法

    我的邮箱地址:zytrenren@163.com欢迎大家交流学习纠错! 运行以下命令,挂载并进入lfs分区即可 su export LFS=/mnt/lfs mount -v -t ext4 /dev ...

  9. 小tips:JS严格模式(use strict)下不能使用arguments.callee的替代方案

    在函数内部,有两个特殊的对象:arguments 和 this.其中, arguments 的主要用途是保存函数参数, 但这个对象还有一个名叫 callee 的属性,该属性是一个指针,指向拥有这个 a ...

  10. 2018-05-09 5分钟入门CTS-尝鲜中文版TypeScript

    知乎原链 本文为中文代码示例之5分钟入门TypeScript的CTS版本. CTS作者是@htwx(github). 它实现了关键词和标准库的所有命名汉化. 本文并未使用附带的vscode相关插件(包 ...