"What is an Operating System?": Anil Madhavapeddy on Signals and Threads

9 Likes

Likely most have already come across this, but I’ve only just gotten around to listening to the episode. Given that it provides an overview of one of the more important currents flowing through the OCaml ecosystem, I felt it would be worth opening a forum thread.

I was pretty blown away by the breadth and depth of the vision that’s driven the 20+ years of Anil’s work in OCaml. The long list of collaborators and contributors named was also a welcome reminder of how many people have devoted their invaluable time and ideas to cultivating this ecosystem.

Beyond any particular language features, or syntax, or tooling, I feel that there’s something really remarkable and important in this trajectory. When I consider a technical movement that ties together type theoretic functional programming, parametric modularity, dissolution of the operating system into mere libraries and their interfaces, engineering backwards-compatible parallelism from first principles, and a predominating concern with the environmental crises – when I consider all of this, and how it is connected, I am struck by the deep commitment to sustainability, security, and flexibility that seems to weave it all together. Seeing this shape, I feel fortunate to be able to use the artifacts designed and built with these priorities in mind.

1 Like

Here is my answer to “What is an Operating System”?
It is either something unix-like, or it is something that I don’t like. :wink:

6 Likes

Name checks out :stuck_out_tongue_winking_eye:

While I definitely prefer Unix-likes to the current competition, I’m really not sure that unix-like OSes are ideal for many of the ways we compute today, let alone the ways we will compute in the future. The discussion includes some reflection on how we have the cruft of multi-user OSes involved in many contexts where it’s not relevant, and discusses the advantages of the library OS approach for certain domains.

I do wonder how many aspects of current OS architecture are atavistic traits the “systems of operation” that were developed back in the 50s to manager computing systems that took up a room, and had to be shared by dozens of programmers? See, e.g., Robert L. Patrick’s account of setting up a system of operation for the IBM 701 and 704: https://www.rand.org/content/dam/rand/pubs/papers/2008/P7316.pdf. It seems to me that we still have a many system operations that more or less directly reflect that design. Is that because they are really the best possible mechanisms of managing the the interaction of all the components we now call “a computer”?