3 ms·
What would you replace Linux with?
by phito 3y ago
What would you replace Linux with?
- drdaeman 3y agoYou don't really need any OS to run, say, BEAM VM (just an example). Language runtime could be an OS of its own, as long as it has all the necessary primitives so you can have your concurrency, messaging and persistence in a distributed fashion. All you need is a thin HAL (or a hypervisor, e.g. consider https://data-room-software.org/erlangonxen/ https://data-room-software.org/erlangonxen/ - just a first result I've found searching for running BEAM on bare metal) that's just enough to support the hardware.
- baq 3y agoYou don’t need it to run, but running is not operating a service. Observability and debugability of unikernels is abysmal. I need Linux not for BEAM, node or Python; I need it for strace.
- drdaeman 3y agoI thought we're talking about true serverless. I don't believe Lambda lets you use strace? And Erlang/BEAM that I've used as an example has its own tracing and debugging facilities. (I don't think it has proper multi-tenancy though so it's not like someone can just use it for cloud as it is, but I've just picked it as a closest example to what I think serverless should look like.) Or you're talking about this from node/server admin perspective? Then, yeah, sure, but unless you're a cloud engineer it's not your business - that's Amazon/Google/Microsoft's problems.
- FridgeSeal 3y agoIn my dream technology world, we’d be able to compile our applications into microkernels that we could deploy on cloud machines. Less layers between applications and the hardware, less “moving parts” that can break, etc.
- otabdeveloper4 3y ago> You don't really need any OS to run, say, BEAM VM (just an example). Yes, you do. BEAM will not handle your CPU interrupts or manage your physical memory pages or your USB devices. (The 99 percent of an OS's job.)
- drdaeman 3y agoThat's hypervisor's (or some theoretical HAL's) job. While those can also be called an OS - I meant, there's no need for a full-fledged one, like Linux kernel.
- titannet 3y agoReading that I am confused: isn't hardware abstraction what the Linux kernel does? It only becomes a general purpose OS with all the distribution specific stuff.
- drdaeman 3y agoIt does, and it does a lot more than just working with hardware. I'm sort of oversimplifying it (and probably forgetting a piece or two), but all that's needed is MMU, some minimal network subsystem with device drivers for network cards, and some very tiny VFS - just enough to handle the initrd-like thingy (the rest would be networked storage handled at the application level). E.g. if all we're going to ever run is a single VM that has its own ideas of processes and signals, we may not really need any full-fledged process scheduling or IPC, just the bits to support kernel's own threads.
- otabdeveloper4 3y agoA "hypervisor (or some theoretical HAL)" is literally what an OS is.
- deleted 3y ago[deleted]
- lmm 3y agoYou'd build language-specific unikernels, like MirageOS. No point carting a whole operating system around to run one process as one user.
- bsder 3y agoWASM? BEAM? JVM? Anything? "Linux" is huge overkill for a cloud abstraction. Cloud applications don't need 99% of all device drivers and the desired ones need to be tuned for cloud anyways. Cloud applications need a persistent store but not necessarily a filesystem. Cloud applications don't want to think about process scheduling they want to assume they have the CPU and memory they need. etc.
- vbezhenar 3y agoActually by Linux I mean the whole POSIX-"compatible" operating system. Linux itself might be fine as a HAL. But at this point there might be better alternatives.