scispace - formally typeset
Proceedings ArticleDOI

Sealing OS processes to improve dependability and safety

Reads0
Chats0
TLDR
The implementation of the sealed process architecture in the Singularity operating system is described, its merits and drawbacks are discussed, its effectiveness is evaluated, and the first macrobenchmarks for a sealed-process operating system and applications are presented.
Abstract
In most modern operating systems, a process is a hardware-protected abstraction for isolating code and data. This protection, however, is selective. Many common mechanisms---dynamic code loading, run-time code generation, shared memory, and intrusive system APIs---make the barrier between processes very permeable. This paper argues that this traditional open process architecture exacerbates the dependability and security weaknesses of modern systems.As a remedy, this paper proposes a sealed process architecture, which prohibits dynamic code loading, self-modifying code, shared memory, and limits the scope of the process API. This paper describes the implementation of the sealed process architecture in the Singularity operating system, discusses its merits and drawbacks, and evaluates its effectiveness. Some benefits of this sealed process architecture are: improved program analysis by tools, stronger security and safety guarantees, elimination of redundant overlaps between the OS and language runtimes, and improved software engineering.Conventional wisdom says open processes are required for performance; our experience suggests otherwise. We present the first macrobenchmarks for a sealed-process operating system and applications. The benchmarks show that an experimental sealed-process system can achieve performance competitive with highly-tuned, commercial, open-process systems.

read more

Content maybe subject to copyright    Report

Citations
More filters
Proceedings ArticleDOI

Finding and reproducing Heisenbugs in concurrent programs

TL;DR: For each bug, CHESS consistently reproduces an erroneous execution manifesting the bug, thereby making it significantly easier to debug the problem.
Proceedings ArticleDOI

Unikernels: library operating systems for the cloud

TL;DR: The Mirage prototype compiles OCaml code into unikernels that run on commodity clouds and offer an order of magnitude reduction in code size without significant performance penalty, and demonstrates that the hypervisor is a platform that overcomes the hardware compatibility issues that have made past library operating systems impractical to deploy in the real-world.
Journal ArticleDOI

Singularity: rethinking the software stack

TL;DR: This paper describes the efforts of the Singularity project to re-examine these design choices in light of advances in programming languages and verification tools, and sketches the ongoing research in experimental systems that build upon it.
Proceedings ArticleDOI

Attested append-only memory: making adversaries stick to their word

TL;DR: This paper proposes Attested Append-Only Memory (A2M), a trusted system facility that is small, easy to implement and easy to verify formally, and implements A2M and protocols, and argues that the improved fault tolerance is cost-effective for a broad range of uses, opening up new avenues for practical, more reliable services.
Proceedings ArticleDOI

Helios: heterogeneous multiprocessing with satellite kernels

TL;DR: Satellite kernels are introduced, which export a single, uniform set of OS abstractions across CPUs of disparate architectures and performance characteristics, and offloaded several applications and operating system components, often by changing only a single line of metadata.
References
More filters
Book

The Java Language Specification

TL;DR: The Java Language Specification, Second Edition is the definitive technical reference for the Java programming language and provides complete, accurate, and detailed coverage of the syntax and semantics of the Java language.
Book

Smalltalk-80: The Language and its Implementation

TL;DR: This book is the first detailed account of the Smalltalk-80 system and is divided into four major parts: an overview of the concepts and syntax of the programming language, a specification of the system's functionality, and an example of the design and implementation of a moderate-size application.
Proceedings ArticleDOI

Efficient software-based fault isolation

TL;DR: It is demonstrated that for frequently communicating modules, implementing fault isolation in software rather than hardware can substantially improve end-to-end application performance.
Journal ArticleDOI

Terra: a virtual machine-based platform for trusted computing

TL;DR: A flexible architecture for trusted computing, called Terra, that allows applications with a wide range of security requirements to run simultaneously on commodity hardware, is presented.
Proceedings ArticleDOI

Exokernel: an operating system architecture for application-level resource management

TL;DR: The prototype exokernel system implemented here is at least five times faster on operations such as exception dispatching and interprocess communication, and allows applications to control machine resources in ways not possible in traditional operating systems.
Related Papers (5)