The operating system: should there be one?

  title={The operating system: should there be one?},
  author={Stephen Kell},
  booktitle={PLOS '13},
  • Stephen Kell
  • Published in PLOS '13 3 November 2013
  • Computer Science
Operating systems and programming languages are often informally evaluated on their conduciveness towards composition. We revisit Dan Ingalls' Smalltalk-inspired position that "an operating system is a collection of things that don't fit inside a language; there shouldn't be one", discussing what it means, why it appears not to have materialised, and how we might work towards the same effect in the postmodern reality of today's systems. We argue that the trajectory of the "file" abstraction… 

Self-contained development environments

This paper presents a framework named NopSys that allows side-stepping operating systems, and pushes functionality into the runtime of high-level programming languages, and Experimental results suggest that this approach is promising.

Critique of 'let them fail: towards VM built-in behavior that falls back to the program'

We supply a critique of the paper Let Them Fail: Towards VM built-in behavior that falls back to the program, suggesting directions in which its work of negotiating the boundary between the

Critique of ‘files as directories: some thoughts on accessing structured data within files’ (2)

In this critique I argue that the motivations and direction of the `files as directories' idea are sound, but the conceptual difficulties are considerable yet non-obvious, and are not limited to



Smalltalk-80: The Language and Its Implementation

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.

MDL: a language and compiler for dynamic program instrumentation

This work uses a form of dynamic code generation, called dynamic instrumentation, to collect data about the execution of an application program to instrument running programs to collect performance and other types of information.

Exterminate all operating system abstractions

  • D. EnglerM. Kaashoek
  • Computer Science
    Proceedings 5th Workshop on Hot Topics in Operating Systems (HotOS-V)
  • 1995
The solution is simple: complete elimination of operating system abstractions by lowering the operating system interface to the hardware level.

The UNIX Time-sharing System

The strong and weak points of UNIX are discussed and a good case can be made that it is in essence a modern implementation of MIT’s CTSS system.

Programming Perl

This third edition of Programming Perl has been expanded to cover version 5.6 of this maturing language, and new topics include threading, the compiler, Unicode, and other new features that have been added since the previous edition.

Layered Development with (Unix) Dynamic Libraries

This paper shows how one can develop layered software using common Unix (Linux/Solaris) dynamic libraries, and shows that, from an object-oriented design standpoint, dynamic libraries are analogous to components in a mixin-based object system.

The Implementation of a Distributed Smalltalk

This paper describes Distributed Smalltalk, which consists of a number of cooperating Smalltalk virtual machines distributed over a network, that provide complete distribution transparency to the

Fast breakpoints: design and implementation

It is shown that breakpoints can still be fast, even with multiple threads of control on multi-processors, and problems in the design of a breakpoint package for modern computer architectures and programming styles are described.

Singularity: rethinking the software stack

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.

Mach: a foundation for open systems (operating systems)

  • R. RashidR. Baron R. Sanzi
  • Computer Science
    Proceedings of the Second Workshop on Workstation Operating Systems
  • 1989
An alternative approach to building an entire operating system (OS) separating those parts of the OS that control the basic hardware resources (the kernel) from those that determine the unique