3 ms·
Wouldn't you expect more decoupling and decentralization with growing complexity instead of a single engine that does everything? It's not like we are constrain
by zzzcpan 10y ago
Wouldn't you expect more decoupling and decentralization with growing complexity instead of a single engine that does everything? It's not like we are constrained by size or weight of an automobile, we can simply agree on some IPC protocol and let everyone have their own managing daemons completely isolated from the rest of the system, that are started and managed by other managing daemons and so on. In fact, this is the only way to make it reliable, otherwise errors in centralized components will affect everything.
- kbenson 10y agoI don't think it is one thing doing everything. It may seem that way if you zoom in to a small portion of what the system does, but it's a fairly contained system that has some parts that extend beyond what you would normally consider it's boundaries to achieve specific goals. The kernel handles hardware abstractions and provides a base interface. Systemd handles system boot and service management.The windowing system (including window manager) handles GUI interaction. Whether you would or could draw the definitions elsewhere doesn't really matter, as the systems are in enough flux (especially recently) that they aren't very static. As features are needed, they shift between those systems (or or even others) to find a place where there are resources to implement it, where it's feasible to to, and where it's efficient to do. Those aspects are weighted differently over time (especially resources available, which is developers with skill and time), so some features will swap between systems. A well defined API between them would be nice, but that's not the type of development that's generally done in open source. It requires a lot more understanding, effort and time up front, and even where there's a will, there those resources don't always exist. Systemd tried to solve a lot of problems, and create new capabilities (or bring them to linux at least). Expecting everything to both have not only have been thought about, but planned, for, tested and accounted for prior to it starting is a tall order. Even if ther had been an exceptional amount of effort put into that, it's likely that other systems (such as the window system or the kernel) would change to offer new capabilities or want to offload some responsibility that they saw as better handled elsewhere. This is where the metaphor breaks down. A car is generally designed in whole by one group (or the systems they integrate are complete and finished), and that doesn't really exist in Linux, since everything is always in flux.