3 ms·
This needs citation, but what does the "that" even refer to? I'm genuinely curious because there's little on it; did you use it? Did it survive? And what par
by bcantrill 5y ago
This needs citation, but what does the "that" even refer to? I'm genuinely curious because there's little on it; did you use it? Did it survive? And what particular aspect of Hubris and Humility reminds you of this system?
- Animats 5y agoCompile all the processes together, allocating all resources at compile time. Modula I had device register access, interrupt access, cooperative multitasking (async, the early years) and it worked moderately well on PDP-11 machines. Yes, I did use it. We wrote an operating system in it at an aerospace company.[1] It didn't work out well. Sort of OK language, weak compiler, not enough memory given the poor code generation. It was just too early to be doing that back in 1978-1982. We got the thing running, and it was used for a classified high-security application, once. [1] https://apps.dtic.mil/sti/pdfs/ADA111566.pdf https://apps.dtic.mil/sti/pdfs/ADA111566.pdf
- bcantrill 5y agoThanks for the reference -- that's helpful. KSOS is not a widely known system, but I can certainly see some similarities in approach with Hubris. That said, there are far more differences than there are similarities, and it's a gross oversimplification to say -- or even imply -- that the work in Hubris somehow replicates (or is even anticipated by) KSOS. More generally, I find this disposition -- that a new technology is uninteresting because it was "done" decades ago -- to be generally incurious, dour, discouraging, and (as in this case) broadly wrong on the facts. We as a team have as much reverence for history as any you will ever find; it is not unreasonable to ask those who have lived that history to return the favor by opening their minds to new ideas and implementations -- even if they remind them of old ones.
- Animats 5y agoNo, not KSOS. The Modula 1 environment. That was one of Wirth's early languages. Modula 2 is better known. Modula 1 was for embedded. This was the first language to have compile-time multitasking, something very rarely seen since. Here's a better reference.[1] One of the most unusual features is that the Modula 1 compiler computed stack size at compile time, so that stacks, too, were allocated at compile time. Recursion required declaring a limit on the maximum recursion depth. It's interesting as a working example of how minimal you can go running on bare metal and stay entirely in a high level language. Few languages since have been specifically dedicated to such a minimal environment. This is what you need for programming your toaster or door lock. [1] https://www.sciencedirect.com/science/article/pii/S147466701766988X https://www.sciencedirect.com/science/article/pii/S147466701...
- pjmlp 5y agoI guess you could consider Oberon-07 to be one of such languages, specially since Wirth made it even smaller in each revision.