OPERATING-SYSTEMS(7) Miscellaneous Information Manual OPERATING-SYSTEMS(7) NAME Operating systems – criteria DESCRIPTION Sometimes in conversation I use the term “real operating system” which people, perhaps rightfully, take as inflammatory. But I have actually thought about what I mean when I say “real operating system” and come up with this list of criteria. An operating system should be... • Consistent and cohesive: all parts of the system should have similar usage, configuration, documentation and so on. Parts of the system should naturally work together, because they were designed to do so. • Documented: the system should include its own documentation. A user should not have to search some external wiki to learn how the system works. It should be obvious where to find documentation on a particular topic. • Programmable: the system should provide a way to program the computer. A computer which cannot be programmed is not a computer at all. Usually this takes the form of a C compiler and the tools that go with it. In earlier times, it might have been a BASIC interpreter. • Examinable and modifiable: the full source tree for the system should be included, or easily obtainable through official means. A user should have no trouble finding the corresponding source for a part of the system. Together with the previous point, the source tree should be compiled by the included toolchain, allowing local modification. Some things that may be parts of real operating systems, but are not themselves operating systems: a kernel, a package manager, a collection of packages. I will leave it as an “exercise for the reader” to guess which operating systems meet these criteria and which don't. AUTHORS june Causal Agency February 22, 2021 Causal Agency