3 ms·
Around the same time I heard of Urbit, I was listening to Don Stewart talk on a podcast (Haskell Cast episode #2) about using Haskell to avoid running an entire
by platz 13y ago
Around the same time I heard of Urbit, I was listening to Don Stewart talk on a podcast (Haskell Cast episode #2) about using Haskell to avoid running an entire OS in the cloud; only the necessary code to perform the necessary operations to integrate with other systems was necessary.
He was using Xen to run a GHC process which he describes as a "microkernel environment".
Xen + Language Runtime (ghc) + user functions = the whole stack, and this boots in milliseconds, using only 1 or 2 meg of memory.
What's interesting is that this is a technique that he's using in development today.
I didn't read all the Urbit documentation, but the concepts between Don Stewart's approach and Urbit seem to share some similarities with eliminating OS bloat.
Some folks have claimed Urbit is as much art at practical, but Don is already doing practical things like this; unless I'm mistaken about what Urbit is about (I'm sure it does a lot of other things differently as well).
- urbit 13y agoI can argue with Haskell but I would never argue with teh awesome that is Don Stewart. Urbit runs on Linux right now - but you're right, it would be very cool to run directly on the hypervisor, and it's totally possible for a self-contained system like this one. Personally I think Haskell never should have tried to be a language for producing Unix system calls - the impedance mismatch between FP and imperative OS is just too great.
- asciilifeform 13y agoI'd go one step further and argue that: no sane language should be a language for producing Unix system calls. The impedance mismatch between sanity and imperative OS (and imperative hardware) is too great.
- wmf 13y agoOr you could skip the hypervisor and use containers.
- helloTree 13y agoYou are talking about halvm I think - is it still in use or is it a dead project? The github project page does not seem to have seen commits for a while, but maybe it just ... works. And can you please point me to the talk?