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 materialized, 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 realization of Ingalls' vision, arguing that an operating system is still necessary after all.
aldrich [atsymbol] cs.cmu.edu