I wonder if we'll get to the point where hardly anything is a native app and the concept doesn't matter much anymore? The host OS just exists to run guest OSes.
I wonder if we'll get to the point where hardly anything is a native app and the concept doesn't matter much anymore? The host OS just exists to run guest OSes.
I think Casey Muratori did a good job outlining the case for removing the OS from the equation entirely in "The thirty-Million Line Problem" [0]. He describes a hardware architecture where standardized ABI and hardware virtualization replaces the OS and drivers, allowing each process to behave as if it was the only software on the computer, as it was in the olden days with platforms like the C64. The closest thing to an OS would be a hypervisor, which should be the kind of thing an enterprising young programmer could write in their spare time in a month.
A long time ago, the program was your whole OS, you'd boot into it. The computer is the container.
Then we introduced operating systems, allowing a safer container for bad programs. The program is the container.
One type of program became extremely popular because it enabled delivery of a program via the internet. The web app is the container.
In the web world, frameworks like React have become incredibly popular because they allow people to break up apps into smaller components that can be shared. The component is the container.
Of course, on the back end, similar needs have led to Docker/K8s. The container is the container.
Given that everything in our world is a container, you'd think we would have better tools for composing them. As a web developer, I should be able to embed other web apps and communicate with them like I do with my React components. And I'd also like to be able to boot directly into a web app, and embed native programs and virtual operating systems.
Even when it comes to basics: most operating systems other than Chrome still have yet to natively support the web as a peer of traditional programs.. Electron should't be necessary. Likewise, environments like Docker and VirtualBox should be baked in to the OS that we boot.
The point is, as an industry we need to collectively pull our heads out of our asses, and realize that we'd be much better off refactoring our magnificent existing containers, rather than attempting to invent new ones. (I'm looking at you, iOS/Android..)
https://chromium.googlesource.com/chromiumos/platform2/+/mas...
They don't care which kernel powers Chrome processes, or ART.
On Android's case, Linux syscalls aren't even part of the official stable APIs.
As for Hyrum's Law, since Android 7, any misbehaved app that tries to use non-sanctioned NDK APIs gets killed by the OS.
You mean a web browser? We're there.
https://en.m.wikipedia.org/wiki/Workplace_OS
“Above the PNS, the operating system personalities run in the form of user-space servers that execute DOS, OS/2, and UNIX—with further intentions to support Microsoft Windows, OS/400, AIX, Taligent, and MacOS personalities.”
It’s been called one of the most expensive failures in operating system development.
This already happens in server infrastructure where the host OS just exists to run the guest OSes(VMs) and now, lately, the host OS just exists to run guest containers.
so a hypervisor?