From cf14b0aaa5157e1b946aa752afc865d0352c4efb Mon Sep 17 00:00:00 2001 From: "C. McEnroe" Date: Mon, 22 Feb 2021 18:50:03 -0500 Subject: Publish "Operating systems" --- www/text.causal.agency/018-operating-systems.7 | 86 ++++++++++++++++++++++++++ www/text.causal.agency/Makefile | 1 + 2 files changed, 87 insertions(+) create mode 100644 www/text.causal.agency/018-operating-systems.7 diff --git a/www/text.causal.agency/018-operating-systems.7 b/www/text.causal.agency/018-operating-systems.7 new file mode 100644 index 00000000..691102e2 --- /dev/null +++ b/www/text.causal.agency/018-operating-systems.7 @@ -0,0 +1,86 @@ +.Dd February 22, 2021 +.Dt OPERATING-SYSTEMS 7 +.Os "Causal Agency" +. +.Sh NAME +.Nm Operating systems +.Nd criteria +. +.Sh DESCRIPTION +Sometimes in conversation +I use the term +.Dq real operating system +which people, +perhaps rightfully, +take as inflammatory. +But I have actually thought about +what I mean when I say +.Dq real operating system +and come up with +this list of criteria. +. +.Pp +An operating system should be... +.Bl -bullet +.It +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. +. +.It +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. +. +.It +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. +. +.It +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. +.El +. +.Pp +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. +. +.Pp +I will leave it as an +.Dq exercise for the reader +to guess which operating systems +meet these criteria +and which don't. +. +.Sh AUTHORS +.An june Aq Mt june@causal.agency diff --git a/www/text.causal.agency/Makefile b/www/text.causal.agency/Makefile index 6063abb1..d44e3f77 100644 --- a/www/text.causal.agency/Makefile +++ b/www/text.causal.agency/Makefile @@ -20,6 +20,7 @@ TXTS += 014-using-vi.txt TXTS += 015-reusing-tags.txt TXTS += 016-using-openbsd.txt TXTS += 017-unpasswords.txt +TXTS += 018-operating-systems.txt all: ${TXTS} -- cgit 1.4.1 g=1&follow=1'>Expand)Author 2021-01-01Increment license header templatesJune McEnroe 2020-12-31Tell "Music" rather than "iTunes"June McEnroe 2020-12-31Add ASCII control code names to bitJune McEnroe 2020-12-31Simplify bit lexing and parsingJune McEnroe 2020-12-31Add ddateJune McEnroe 2020-12-30Print octal for 8 bits in bitJune McEnroe 2020-12-30Add unary & to bitJune McEnroe 2020-12-30Support unary + in orderJune McEnroe 2020-12-30Add postfix $ operator to bitJune McEnroe 2020-12-29Add make lexerJune McEnroe 2020-12-29Clean up C lexerJune McEnroe 2020-12-29Clean up hilex code somewhatJune McEnroe 2020-12-29Match lex/yacc %% %{ %} lines as MacroJune McEnroe 2020-12-29Match top-level C definitions as IdentifierTagJune McEnroe 2020-12-29Match C type declarations as IdentifierTagJune McEnroe 2020-12-29Match function-like macro definitions as IdentifierTagJune McEnroe 2020-12-29Reconfigure C macro start conditionsJune McEnroe 2020-12-29Document HTML class namesJune McEnroe 2020-12-29Rename Tag class to IdentifierTagJune McEnroe 2020-12-29Change HTML class from hi to hilexJune McEnroe 2020-12-29Add hilex HTML outputJune McEnroe