|
|
|
|
|
by jacquesm
4101 days ago
|
|
Boot time is rarely an issue when working with long running daemons such as web servers. We run the millions of lines of code because web servers typically serve up web applications which in turn depend on a whole host of infrastructure being available. The millions of lines of code support all the possible hardware that you could throw at it (and so you can save some if you compile your kernel just for that purpose), and if you know exactly which services your web-app will depend on then you can prune even more. Specialization always pays off in terms of efficiency and it always costs in terms of ease of expansion and adaptation to future needs. |
|
But here the boot time is a proxy metric of complexity.
It's great to have software that can do a wide spectrum of things. But your server most often does a narrow spectrum of highly predefined tasks. You often go to great lengths to obviate and disallow any other activity on it, for security reasons.
So it would be great if you took the universal software, somehow cut it to your task set, and could throw away the unused parts (which are 90%+). Unfortunately, this is not really attainable with traditional OSes. Unikernels allow you to do just that—with some quite noticeable limitations, as of now, though.