jbenet / jbenet/random-ideas

Substantially decreasing process startup time

Open
#9 4 comments 0 reactions 0 assignees View on GitHub
Dominant language
No language data
Stars
328
Forks
12
PR merge metrics
No merged PRs in 30d

Description

The current cost of spawning processes in the linux kernel has given rise to a many odd side effects when high performance is a concern (so always):
- very expensive to run pipe tool chains
- event loops / green threading as "the right way" to do multiprocessing
- re-writing of large code-bases to make them one-lang libs (clibs), e.g. [libgit2](http://libgit2.github.com)
- programs tend to be monolithic: import everything into same process
- large apps/services tend to be in only one language / use FFIs sparingly
- node bypasses all this (modules, require, versioning, isolation)

These all fly in the face of the UNIX principles.

What if we got process spawning to be _about as cheap_ as userland green threads. This sounds absurdly hard given all the traps/verification that currently happens to syscalls. But consider a microkernel, or a fork of linux, that virtualizes the default process spawn to make it live under the same (or virtually the same) userland sandbox. We get great modularity, multiprocessing, and pipes back!

Think Docker but inside the kernel. "you think you're spawning another ~~VM~~ Process, but you're really not! we're just virtualizing that and cleverly isolating it!" (... in a cheaper way than the old, less clever, expensive (and already virtual!) isolation we were doing before...)

This could be a huge win for software engineering.

Contributor guide

No contributing guide indexed for this repository

Assessment

This issue has not been assessed yet.

Get new issues in your inbox

A short digest of beginner-friendly GitHub issues.