Live data from Hacker News

Mirage – A programming framework for building type-safe, modular systems

mirage.io

41–50 of 92 posts

Re: Mirage – A programming framework for building type-safe, modular systems

#41
post #14
post #8

I'm really sold on the idea: Instead of a full-blown OS, you compile your application with a thin layer of support libraries that provide the OS features that your application needs (network, I/O) and that talks to a hypervisor. I mean, if your application runs in a virtualized environment, there's little need to SSH into the system in the first place (except for debugging purposes). Thus, why bother with a full-blow…

> there's little need to SSH into the system in the first place (except for debugging purposes). Pretty big except though. This concept has been done multiple times and has always failed. It's solving a problem that few care about.

exactly this, debugging is a pretty big part when it comes to operational aspects.

but I feel like similar to kubernetes container injection systems. I suspect in future we would see dynamic injection into the unikernel where you can enable debugging environment instantly.

like the library unikernel exposes a plugin system that you can inject in future, this way the unikernel is lightweight and only gets bloated when you eventually want to debug something.

Re: Mirage – A programming framework for building type-safe, modular systems

#42
post #14

Earlier quoted context omitted.

> there's little need to SSH into the system in the first place (except for debugging purposes). Pretty big except though. This concept has been done multiple times and has always failed. It's solving a problem that few care about.

exactly this, debugging is a pretty big part when it comes to operational aspects. but I feel like similar to kubernetes container injection systems. I suspect in future we would see dynamic injection into the unikernel where you can enable debugging environment instantly. like the library unikernel exposes a plugin system that you can inject in future, this way the unikernel is lightweight and only gets bloated when…

actually I think this might be the intention of mirage as well, especially since they put "modularity" in the title

Re: Mirage – A programming framework for building type-safe, modular systems

#43
post #14
post #8

I'm really sold on the idea: Instead of a full-blown OS, you compile your application with a thin layer of support libraries that provide the OS features that your application needs (network, I/O) and that talks to a hypervisor. I mean, if your application runs in a virtualized environment, there's little need to SSH into the system in the first place (except for debugging purposes). Thus, why bother with a full-blow…

> there's little need to SSH into the system in the first place (except for debugging purposes). Pretty big except though. This concept has been done multiple times and has always failed. It's solving a problem that few care about.

In the kind of corporate environments I work on, you won't be doing any SSH into the production containers.

Nothing that a classical UNIX admin would expect is installed on those images.

Re: Mirage – A programming framework for building type-safe, modular systems

#44
post #9
post #8

I'm really sold on the idea: Instead of a full-blown OS, you compile your application with a thin layer of support libraries that provide the OS features that your application needs (network, I/O) and that talks to a hypervisor. I mean, if your application runs in a virtualized environment, there's little need to SSH into the system in the first place (except for debugging purposes). Thus, why bother with a full-blow…

Isn’t that the aim of webassembly?

Not at all, WebAssembly is replacement of PNaCL browser vendors could agree on.

Then a bunch of folks, with some VC money, decided to make the second coming of Java and .NET with it.

Re: Mirage – A programming framework for building type-safe, modular systems

#45
post #15

Personal pet-peeve (from Requirements page): > (…) They should build on any modern UNIX (or macOS) system with OCaml and OPAM installed. (…) I just checked. MacOS Sonoma is STILL UNIX certified, and I get that wording “any modern UNIX” would not be clear this minor error annoys me. s/or MacOS/including MacOS/

Maybe it's not about "Unix", but "modern"? Although, "modern Unix" is an oxymoron. duck and run

I not always agree with Rob Pike, but this one is a must.

"We really are using a 1970s era operating system well past its sell-by date. We get a lot done, and we have fun, but let's face it, the fundamental design of Unix is older than many of the readers of Slashdot, while lots of different, great ideas about computing and networks have been developed in the last 30 years. Using Unix is the computing equivalent of listening only to music by David Cassidy."

-- https://interviews.slashdot.org/story/04/10/18/1153211/rob-p...

Re: Mirage – A programming framework for building type-safe, modular systems

#46
post #45

Earlier quoted context omitted.

Maybe it's not about "Unix", but "modern"? Although, "modern Unix" is an oxymoron. duck and run

I not always agree with Rob Pike, but this one is a must. "We really are using a 1970s era operating system well past its sell-by date. We get a lot done, and we have fun, but let's face it, the fundamental design of Unix is older than many of the readers of Slashdot, while lots of different, great ideas about computing and networks have been developed in the last 30 years. Using Unix is the computing equivalent of l…

Ironic, considering how many "different, great ideas about computing" Pike wilfully ignored in the development of Go.

Re: Mirage – A programming framework for building type-safe, modular systems

#47
post #8

I'm really sold on the idea: Instead of a full-blown OS, you compile your application with a thin layer of support libraries that provide the OS features that your application needs (network, I/O) and that talks to a hypervisor. I mean, if your application runs in a virtualized environment, there's little need to SSH into the system in the first place (except for debugging purposes). Thus, why bother with a full-blow…

> I'm really sold on the idea: Instead of a full-blown OS, You mean you are sold on the idea of going back to the 80s. We used to have an operating system with every game released[1]. 1. https://youtu.be/kZRE7HIO3vk?t=1114

Well it doesn't make much sense with games and other user applications nowadays, but if you want efficiency and a smaller attack surface in a production environment, why not? People already use Docker containers that were stripped to the bare minimum for the same reasons.

Re: Mirage – A programming framework for building type-safe, modular systems

#48
post #8

I'm really sold on the idea: Instead of a full-blown OS, you compile your application with a thin layer of support libraries that provide the OS features that your application needs (network, I/O) and that talks to a hypervisor. I mean, if your application runs in a virtualized environment, there's little need to SSH into the system in the first place (except for debugging purposes). Thus, why bother with a full-blow…

> I'm really sold on the idea: Instead of a full-blown OS, you compile your application with a thin layer of support libraries that provide the OS features that your application needs

I'm really sad that unikernels never took off, even there seemed to be a lot of excitement around them a few years back.

Re: Mirage – A programming framework for building type-safe, modular systems

#49
post #39

What is the benefit over using containers, as in Docker? Whether you use a container runtime or an actual hypervisor comes down to pretty much the same thing, operationally. Both keep your self-contained services alive and distributed. From the application perspective, a container also contains only those parts of an OS the app actually needs, and defers everything else to the host. The only caveat about MirageOS see…

Docker Desktop uses Mirage OS behind the hood: https://mirage.io/blog/2022-04-06.vpnkit
Post reply on HN