3 ms·
What’s really sad is that multi user system interrupts were long since a solved problem when Unix was developed. I don’t know why that existing body of knowledg
by User23 5y ago
What’s really sad is that multi user system interrupts were long since a solved problem when Unix was developed. I don’t know why that existing body of knowledge wasn’t applied.
- pm215 5y agoThe impression I got from reading the v6 kernel code in the Lions book was that signal handling had been added in as a solution to a few specific problems (like "we're going to kill this process but maybe it should get a chance to clean up first"). If you're thinking about them from that viewpoint then the (now) well-known problems like interruption-of-syscalls and the initial "when you take a signal the handler gets unregistered" don't seem like such a big deal -- after all, the process is going to exit anyway.
- linschn 5y agoDo you have a reference on pre-1969 multi user interrupts being solved? Also, Unix was developed on a ~16kB RAM machine IIRC... Maybe that's the reason?
- User23 5y agoSure, here’s Dijkstra on it[1]. The X1[2] was a significantly more limited machine than the PDP-11. I believe that work predates Unix by nearly a decade. [1] https://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/EWD1303.html https://www.cs.utexas.edu/users/EWD/transcriptions/EWD13xx/E... [2] https://ub.fnwi.uva.nl/computermuseum//X1.html https://ub.fnwi.uva.nl/computermuseum//X1.html
- linschn 5y agoThanks
- pjmlp 5y agoJust like safer systems programming languages precede C for about 10 years. It is not as if the UNIX culture was to pay attention to best practices being done on other systems.
- nine_k 5y agoUnix was also a skunkworks project running on pretty limited hardware. E.g. /usr/bin was added because the disk volume for /bin ran out of space. So it used very limited tools, like C with its very simple semantics and a preprocessor instead of a module system, very simple kernel mechanisms, etc.
- pjmlp 5y agoThen free beer access to universities coupled with an annotated book did the rest. Had AT&T been allowed to sell it, I bet we wouldn't have turned with it everywhere.
- pjc50 5y agoWhich current system uses this? Do you have a shorter explanation than the Dijkstra link below, like API docs?
- coldtea 5y agoSo, like warts in C and Go that were not present or fixed in languages a decade or more earlier?
- pjmlp 5y agoYep, somehow there is a common line going on there.