5 ms·
Academic research on this topic is limited, but ongoing. You'd want to look at OSDI and SOSP conferences--they're both OS conferences, even if only a few papers
by arghnoname 4y ago
Academic research on this topic is limited, but ongoing. You'd want to look at OSDI and SOSP conferences--they're both OS conferences, even if only a few papers each year are actually about OS design. Lots of ideas there though.
HotOS is a workshop, but tends to be more creative and daring since it's just top researchers sharing their thoughts on OS design.
Off the top of my head in recent years you've had unikernels (e.g., mirageOS), barrel fish (multikernel), omnix (for dealing with lots of asics and other accelerators), and lots of modifications to existing OS design, like a ring-io like asynchronous system call mechanism (flexSC), systems for adding new abstractions off of modern hardware, like Dune, and of course ongoing work on microkernels, most significantly (and commercially), seL4.
Older research is still relevant. Capability systems and exokernels influence the above work and the original well-spring is still worth visiting.
Basically though, what you want to address are some of the following:
* Higher security requirements. Multitenancy is a given. Giant code blobs running without restriction in the same security domain (i.e., monolithic kernels) is a bad idea.
* Greater hardware support for differing security modes (virtualization, enclaves, trust zones, CHERI)
* Advances in compiler/language research and techniques for low-cost policy enforcement at the language level (to at least some degree), allowing for 'uploading' code into ring0 . Rust is the most popular example, but even just the eBPF trend is an example of this.
* Heterogenous hardware. How does the kernel handle differing cores with different performance characteristics, power requirements, capabilities, and even different ISAs? This is happening. Should the OS expose better primitives for ASICS and other accelerators?
* Cloud computing. Many big money work loads run under someone else's control with a hypervisor. This brings up attestation, but also raises the question if you're running a single application under a hypervisor (itself basically a microkernel), what do you need a full fledged kernel for? Similar to userland duplication with containers. Unikernels are one such response, but it's something that should be addressed.
All in all, pretty much anything I see in industry (conceptually) is trialed out in one form or another in academia many years in advance. Industry is theoretically where the really hard work of making it practical happens, but sadly this seems to very rarely happens.
- benlivengood 4y agoCapability systems approach what an operating system should be able to provide. Formally proven software can close the gap. It's hard work. SeL4 is a formally proven microkernel; there is a machine-checkable proof that the C code is correct. There's also now proofs that for arm and risc the binaries are translated correctly from C [0]. It took years and is a huge accomplishment. Operating system support for formal verification of the remaining software is the next theoretical step to achieving the security and reliability goals that modern OSs struggle with. In addition to the parent's list, I'd add: * Network-aware or distributed capabilities. The Internet is a huge part of modern computing and the fact that same-origin and CORS and friends are the best network object security paradigm we have is a little silly. It should be possible to refer to and interact with remote objects securely and with native syntax/semantics and have the operating system mediate any network interactions required for that. [0] https://docs.sel4.systems/projects/sel4/frequently-asked-questions.html https://docs.sel4.systems/projects/sel4/frequently-asked-que...
- rz30221 4y ago> and even different ISAs That is super interesting. I did some Googling but couldn't find an example of one. Do you know of an example of an OS that can handle different ISAs? I suppose in some sense an accelerator can be considered a "core with a different ISA" but I interpreted the statement as basically supporting multiple ABIs in parallel. Maybe I overreached?
- thesneakin 4y agoHardware wise, going back to the '90s, there was the Suga Genesis with a 68k padred with a z80. Since then every PC with a 3d accelerator. Software wise: something Java? Now we have Spir-V, WASM, and UEFI adding bytecodes for ISA interop.
- duped 4y agoToit is also in this space, along with embedded Java like you mention