8 ms·
Systemd cannot be used on the BSDs because it uses Linux kernel specific features.
by astine 11y ago
Systemd cannot be used on the BSDs because it uses Linux kernel specific features.
- avar 11y agoI've just read that it uses a lot of Linux-specific things, but are there features that inherently can't be ported to BSD? And are those features absolutely critical to running it at all? What I've read sounds more like "we're focusing on Linux, and won't be porting it" rather than "this software is inherently Linux-only, and can't be ported". I daresay coming up with a shimmy layer to port it to BSD is probably less effort than completely rewriting it.
- JoshTriplett 11y agoI like systemd, but I do think it'd be far easier to write a compatible system for FreeBSD (or enhance the FreeBSD kernel to provide the necessary features) than to port it. For instance, systemd fundamentally depends on cgroups; without an equivalent mechanism, it won't work at all. The same goes for dozens of other features. The necessary functionality doesn't exist in POSIX; rather than attempting to write a half-functional "portable" implementation, it would make more sense to embrace the FreeBSD kernel, use its features as appropriate, and build a full-featured init system specifically for FreeBSD. In an ideal world, that system would provide all the features of systemd. (Note, for instance, that I said "FreeBSD", not "BSD"; portability is not worth trying to enhance 3-4 kernels to support the features you need, or sinking to the lowest common denominator.)
- Touche 11y agoThe systemd developers do no care about BSD, full stop. In fact they believe that portability is a negative attribute that leads to compromises and that by coupling everything together systemd can make Linux a better user experience and more like the popular proprietary OSes.
- JdeBP 11y ago> I daresay coming up with a shimmy layer to port [systemd] to BSD is probably less effort than completely rewriting it. The self-styled "uselessd guy" is right here on this very page. Xe attempted making systemd portable. The project is now dead. The experiences of the "uselessd guy" and of Ian Sutton, who is the bloke who did the work trying to make a systemd-logind for OpenBSD, are worth hearing. * https://news.ycombinator.com/item?id=10176275 https://news.ycombinator.com/item?id=10176275 * http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/debian-systemd-packaging-hoo-hah.html#systemBSD http://homepage.ntlworld.com./jonathan.deboynepollard/FGA/de...
- Sanddancer 11y agoThey've expressly said that they won't accept any patches that will make it portable -- "We do not consider it feasible to port systemd to other Unixes (let alone non-Unix operating systems) and will not accept patches for systemd implementing any such portability" [1]. A lot of the issues come down to how Linux does namespacing, and how there's a lot of code that's hard-wired to require it. So any port would be a fork by near definition. [1] http://www.freedesktop.org/wiki/Software/systemd/InterfacePortabilityAndStabilityChart/ http://www.freedesktop.org/wiki/Software/systemd/InterfacePo...
- derefr 11y agoWouldn't that be more simply fixed with patches to systemd?
- lmm 11y agoSystemd refuses such patches as a matter of policy. You can form your own opinion as to what kind of open-source citizens that makes them.
- mjevans 11y agoGiven the other replies in this discussion thread, I am inclined to believe that they are /Good Stewards/ of the design goals they have. I believe a more proper examination of 'open-souce' or even Free Libre citizens might be found in examining the license selected for their works. They chose the GNU LGPL 2.1+ license. Given their other stated beliefs, I read that they believe in allowing others to build off of this work, but would prefer those developers fork it and to begin a sister work that is more optimally coupled to another operating system.
- lmm 11y agoThat would be fine if they would standardise their APIs. But they only do that at the boundary; as more and more functionality moves into systemd that means more and more with no documented, supported API. Any port would have to implement systemd piecemeal, like GNU did with unix - but all the systemd interfaces are nonstandard and unsupported, making that impossible.
- jononor 11y agoI'm assuming you've read http://www.freedesktop.org/wiki/Software/systemd/InterfaceStabilityPromise/ http://www.freedesktop.org/wiki/Software/systemd/InterfaceSt... and http://www.freedesktop.org/wiki/Software/systemd/InterfacePortabilityAndStabilityChart http://www.freedesktop.org/wiki/Software/systemd/InterfacePo... Which APIs do you refer to that are not documented as an stable interface, but should be?
- Someone 11y agoOn top of that, systemd is LGPL. That may not be a 100% showstopper for inclusion in a BSD-licensed system, but it is fairly close to it, especially for such a core component.