5 ms·
Now somebody just needs to build a pure-functional, MPI-like OS
by DanielBMarkham 16y ago
Now somebody just needs to build a pure-functional, MPI-like OS
- fleitz 16y agoAlready exists, Mach kernels are based on these principles, also it's not that shared memory doesn't exist in these systems it's that the caches are incoherent. You'd want to use an actor or Mailbox in F# parlance to create "shared" variables. Also look at systems like DragonFly bsd where each "core" has its own tcp stack. It might be time to revive the LISP based OS by Symbolics for these processors.
- sparky 16y agoA couple interesting projects along these lines are Barrelfish ( http://www.barrelfish.org/ http://www.barrelfish.org/ ) and Helios ( http://research.microsoft.com/apps/pubs/?id=81154 http://research.microsoft.com/apps/pubs/?id=81154 http://research.microsoft.com/pubs/81154/helios.pdf http://research.microsoft.com/pubs/81154/helios.pdf ). Both projects put a lot of focus on being an operating system for a heterogeneous system (with several types or architectures of CPU, a GPU, maybe a NIC that acts as a first-class citizen rather than a slave, etc.), but the architecture they developed to make that work also works well for making the operating system functional on a CMP without cache coherence. As for "pure-functional," that is difficult to achieve in many cases since one of the operating system's main purposes is to help programs have side effects, but I think "shared-nothing" and "distributed-system-like" are good aims for an OS that works on an incoherent CMP.