LegoOS: Disseminated, Distributed OS for Hardware Resource Disaggregation [pdf]
usenix.org
usenix.org
I used to work for LEGO. They have more lawyers than I've ever seen anywhere else.
An operating system called "LegoOS" might infringe on the trademark of a plastic block company called "LEGO" (though one of the tests is "likelihood of confusion" and it would be hard to confuse the two).
BrickOS is an alternative OS for the Lego Mindstorms kit.
I realize this is just an homage to LEGO and I'm sure they know and appreciate that. But they still need to defend their trademark. If they don't, anybody could just use their name for whatever they wanted - even things they DO NOT want to be associated with.
Also, Nintendo.
FACT: you cannot disaggregate CPU from memory. Of course, that's the component you most want to do. Disaggregating IO devices is no big deal (and obviously doable with a monolithic kernel, since we have pcie hotplug today.)
Why? The fact that DRAM latency has been around 50ns for a decade is probably the most important performance limiter on any systems today. Exchanging 50ns local DRAM for 600-1000ns network access is profoundly stupid. Caches? Sure, they're great, but we already have very large caches that hardly ever take non-compulsory misses.
In other words: bandwidth is easy; latency is hard.
This is not news, but it's why your datacenter won't have racks of ram and a racks of memory-free cpus, and a racks of storage.
that's absolutely incredible!
> "Section 7 > Multi-Kernel and Multi-Instance OSes. > > Multi-kernel OSes like Barrelfish, Helios, Hive, and fos run a small kernel on each core or programmable device in a monolithic server, and they use message passing to communicate across their internal kernels. Similarly, multi-instance OSes like Popcorn and Pisces run multiple Linux kernel instances on different cores in a machine. Different from these OSes, LegoOS runs on and manages a distributed set of hardware devices; it manages distributed hardware resources using a two-level approach and handles device failures (currently only mComponent). In addition, LegoOS differs from these OSes in how it splits OS functionalities, where it executes the split kernels, and how it performs message passing across components. Different from multikernels’ message passing mechanisms which are performed over buses or using shared memory in a server, LegoOS’ message passing is performed using a customized RDMA-based RPC stack over InfiniBand or RoCE network. Like LegoOS, fos separates OS functionalities and run them on different processor cores that share main memory. Helios runs satellite kernels on heterogeneous cores and programmable NICs that are not cache-coherent. We took a step further by disseminating OS functionalities to run on individual, network-attached hardware devices. Moreover, LegoOS is the first OS that separates memory and process management and runs virtual memory system completely at network-attached memory devices."