paper

The operating system: should there be one?

  • Authors:

📜 Abstract

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 through Unix and Plan 9 culminates in a Smalltalk-style object, with other filesystem calls as a primitive metasystem. Meanwhile, the key features of Smalltalk have many analogues in the fragmented world of Unix programming (including techniques at the library, file and socket level). Based on the themes of unifying OS- and language-level mechanisms, and increasing the expressiveness of the meta-system, we identify some evolutionary approaches to a postmodern realisation of Ingalls’ vision, arguing that an operating system is still necessary after all.

✨ Summary

The paper examines Dan Ingalls’ proposition that an operating system consists of functionality that does not fit inside a programming language. It compares Smalltalk’s unified object model, pervasive metasystem, and late-bound message passing with Unix’s fragmented composition mechanisms. Kell argues that Unix’s “everything is a file” abstraction, developed further in Plan 9, approaches a universal object abstraction but lacks Smalltalk’s richer descriptive and meta-level facilities. The paper identifies a “lurking Smalltalk” in existing Unix mechanisms, including synthetic filesystems, shared-library interposition, FUSE-like user-level filesystems, debugging metadata, dynamic instrumentation, and shell-based composition. It proposes an evolutionary path in which operating-system services provide richer descriptions of data and behavior, unified binding, and machine-assisted synthesis of adapters between heterogeneous software components. The conclusion is that operating systems remain necessary, not as providers of a single dominant programming model, but as infrastructure for composing software developed in diverse languages and environments.

A quick search found evidence of conceptual and scholarly influence, but no clearly documented industrial adoption attributable specifically to this paper. The paper is cited by Technical Dimensions of Programming Systems (2023), which develops a framework for comparing programming systems and explicitly places Unix, Smalltalk, and operating systems within that broader design space. (tomasp.net) It is also cited by Designing Postmodern Substrate Architectures (2025), which connects Kell’s postmodern systems perspective to later work on substrate-oriented programming environments. (lri.fr) A 2018 critique of “Files as Directories” discusses the paper in relation to file/object unification and semantic gaps in filesystem abstractions. (shift-society.org) Bibliographic records identify the work as a 2013 PLOS’13 conference paper by Stephen Kell. (kar.kent.ac.uk)