Could systemd be an inconvenient on portability?
In case you do not look it up here are a few snippets:
(Alien Bob Slackware Contributor):
"Some things will probably be forced upon Slackware - PAM has been on the "carefully circumventing but you never know" list for a long time. PAM is not bad to have at all, but it is personal opinion of the Slackware boss which keeps it at bay. That is an architectural decision which we can live with as a team and as Slackware users.
But systemd is essentially evil. It is invasive, extremely hostile to other environments, threatening to kill non-Linux ecosystems which have hal, udev, dbus, consolekit, polkit, udisks, upower and friends as dependencies. And every iteration of the software written by the Redhat employees who are responsible for hal, udev, consiolekit, polkit and now systemd are incompatible with previous releases, re-implementing their bad ideas with new bad ideas... basically proving that these Redhat employees must be declared unfit to work on the core of a Linux distro.
However, the influence of their employer is so big that these products are forced upon the wider UNIX community and at some point it will be "assimilate or die". I hope we (Slackware) will find a way where we do not have to assimilate but still manage to keep the distro working. I have high hopes for KDE which has no Redhat ties and so far, manages to stay clear of this mess, sticking to widely accepted standards.
An example of impending doom: udev sources for recent releases are no longer in existence. They are now part of systemd source tarballs. And udisks? That has been deprecated in favour of the new "udisks2". Read http://igurublog.wordpress.com/2012/...loss-for-linux and weep.
Eric"
(H_TeXMeX_H)
"I think that systemd is only a problem that appears along with GNOME. As Slackware has never included GNOME, I think it is safe for now. The increasing number of applications that require it are likely GNOME-only apps, which I have seen many of, and avoid instantly. If you don't know why I avoid them, try to install one, the dependencies are endless and hard to build in order and if you forget to compile something into one of the dependencies you have to go back and do it again."
(ReaperX7)
"From that video he seems to be thinking his software can directly mimic the speed, user-friendliness, zero-administration, and core functionality of Windows upon the Linux kernel.
Sorry, but Linux and Windows are two different operating systems and systemd isn't about free choice and freedom of administration of the system. It's about controlled automation and a lack of core principles of system security.
I'm beginning to think we'd be better off gathering up some independent developers, or developers from other Linux systems, grabbing the hal, udisks, upower, and udev sources we still have and redeveloping a cross-platform INIT system that can be not only invisible to the system, but completely modular with full control of the system if so desired, works on BSD, Linux, and various other UNIX and UNIX-like operating system kernels and distributions, before Red Hat and Lennart completely destroy Linux and the various OS distributions that use it, and turn it into something it's not and set back Linux yet again as a viable OS alternative to Windows."
"Sorry, but Linux and Windows are two different operating systems and systemd isn't about free choice and freedom of administration of the system. It's about controlled automation and a lack of core principles of system security."
The systemd developers are chanting in their basements, candles raised and human blood in wine glasses, "Down with freedom! Admins should drown! Security is for suckers!"
Is this a conspiracy or something?
Yea, it's pretty easy to say that they are going against "principles of system security," whatever that is, but it's harder to bring evidence showing that they are doing something bad for security. The only evidence you've brought up is a single security bug.
systemd can be administrated just as well as upstart can, it's just done differently.
It seems to me that the only valid criticism of systemd is that it only works with GNU/Linux. This hasn't been shown to harm BSD or other Unix-like systems too much, however. It seems that the BSD crowd isn't really interested in having systemd, anyway. If the lack of a BSD version isn't doing too much bad, then it seems that the lack of portability isn't as big a bad thing as people are making it out to be.
I mean, GNOME 3.16 is working on OpenBSD even with it's systemd dependency, for example.
> It seems to me that the only valid criticism of systemd is that it only works with GNU/Linux. This hasn't been shown to harm BSD or other Unix-like systems too much, however. It seems that the BSD crowd isn't really interested in having systemd, anyway. If the lack of a BSD version isn't doing too much bad, then it seems that the lack of portability isn't as big a bad thing as people are making it out to be.
The issue with systemd being Linux-only is not systemd itself, but the programs that depend on it. as can make harder the porting of these programs to other *nix systems. For instance, it seems to me that Wayland require udev, though I don't know if it's actually required in the protocol. Also, *BSD isn't the only affected but also GNU Hurd.
> I mean, GNOME 3.16 is working on OpenBSD even with it's systemd dependency, for example.
Oh! So systemd actually run with openBSD? If so. Can you provide any technical information on how is that possible? That would be interesting to know. And can you also provide some source on GNOME 3.16 working on OpenBSD? We know that GNOME 3.14 is working on OpenBSD 5.7 (thanks MB), but nothing about 3.16 on any version of OpenBSD.
Edit: Found a video showing GNOME 1.6 working on OpenBSD 5.7, so that's one source less.
For instance, it seems to me that Wayland require udev, though I don't know if it's actually required in the protocol.
udev is used to detect devices: https://en.wikipedia.org/wiki/Wayland_%28display_server_protocol%29#/media/File:Libinput_for_Wayland_compositors.svg
But it did not disappear. It was incorporated into systemd. On the contrary, udev has never appeared on BSD!
Wayland was mainly intended to run on Linux. This time, the main Linux feature that is wanted is Kernel Mode Setting (KMS): https://en.wikipedia.org/wiki/Mode_setting
FreeBSD and OpenBSD have KMS for Intel and Radeon GPUs. A port of Wayland to FreeBSD was started: http://www.phoronix.com/scan.php?page=news_item&px=MTMwMzE
Wayland uses some features of systemd-logind but it looks optional:
- http://www.phoronix.com/scan.php?page=news_item&px=MTM4Mzc
- http://www.phoronix.com/scan.php?page=news_item&px=MTQ0NTI
GNOME 3.16 is working on OpenBSD even with it's systemd dependency
GNOME does not depend on systemd's init. It has an optional dependency on systemd-logind.
So systemd actually run with openBSD?
systemd's init cannot run on another kernel because cgroups are at the center of this init and they are a Linux-only feature (until now). But, again, systemd is an umbrella project. And a student worked on re-implementing some of systemd's daemons, namely hostnamed, localed, timedated, and logind, for OpenBSD: http://undeadly.org/cgi?action=article&sid=20140915064856
https://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git has not received any commit this year. The development may now happen elsewhere (or not).
Thanks for all the clarifications MB.
> https://uglyman.kremlin.cc/gitweb/gitweb.cgi?p=systembsd.git has not received any commit this year. The development may now happen elsewhere (or not).
I wouldn't be surprised if the development on systembsd is stalled. For me re-implementing this API in a portable way is a full time work with a new release to support every two months + the fact that wasn't intended to be used outside Linux. So ideally systemd should be design for potability to other free *nix kernels.
Pat in response to someone saying that systemd was fine because it made things simpler and easier:
"Not even close.
"This is the Unix philosophy: Write programs that do one thing and do it well. Write programs to work together. Write programs to handle text streams, because that is a universal interface." -- Doug McIlroy, the inventor of Unix pipes and one of the founders of the Unix tradition"
And Systemd's not one programme, it's an umbrella prohject of programmes that do one thing, or not too many more than that, at least competently.
I could go on, but it makes for a great read to follow the above link...there are many other links if you are interested in seeing both sides of the discussion and not just the pro systemd side.
I could go on
And you did. But those many messages do not prove anything. You quote people chatting in a non-technical way, and without a single reference, the state of systemd three years ago (well, the discussion is not focused, e.g., the first two pages of the thread are more about PAM, udisk, vmware/virtualbox, computers substituting humans, secure boot, BSD's userspace, etc.).
> Yes, in some cases it is better to not to have portability. When there is a piece of free software that has no proprietary counterpart, or is by far technically superior to that technical counterpart, then it is usually better that it runs only on a fully free operating system so that is not portable.
Oh, I see what you mean. I thought you meant that there was situations where it wasn't good to have portability between fully free systems.
Edit: oops, posted in wrong place, this was to marioxcc.
One more from Pat (Slackware founder)
volkerdi
Slackware Maintainer
"Well, the problem with using shell scripts in the boot process is that it goes through a lot of PIDs, and it would be "less ugly" to arrive at a usable machine state with a PID in the hundreds, or lower. If everything has to break in order to achieve that, it seems like a good trade. Eventually all the broken stuff will be fixed, right?
I think that's the basic rationale. And maybe shave a few more seconds off boot time, but who boots much (or cares)? My servers and desktops remain on, and my laptops are usually on, suspended, or hibernated. I would prefer a reliable and well-understood boot system like the one we have.
My primary concern is that the systemd cabal is going to be pushing it as a dependency wherever possible, but we'll deal with that if it happens. But if any major distributions do actually release using systemd, the world will be stuck with it forever. If that's the case, I hope it turns out to be a good idea..."
ok last one from this bunch for now (anyway), but I think this is all very educational for many:
(Alien Bob
Slackware Contributor)
"I would not consider systemd for this reason only: it is being written specifically to work only on the Linux platform.
I am very much an advocate of cross-platform development, UNIX is bigger than Linux alone. Systemd is expected to be used by "userland" programs like KDE and Gnome. However these are also used on BSD, Solaris, HP UNIX etcetera. It is as if Poettering expects that the userland programmers (KDE/Gnome and other desktop environments) and distributors of UNIXes should deal with the incompatibilities and patch their code to make it work on non-Linux OS-es where systemd will be unavailable.
Code that shows this amount of contempt for anything that is not Linux, should be buried without ceremony.
Poettering also said his code is "more efficient" because he does not stick to POSIX compliant programming. The programming shortcuts he takes are non-portable.
I think "more efficient" and "cross-platform" should not be mutually exclusive. Taking shortcuts to make your program do fancy stuff is an immature coding style and better suited for the demo scene. You can optimize code and still keep it cross-platform, there is a lot of software that proves this - look at the multimedia applications that use platform-specific assembler code to squeeze all the available performance out of a computer. Still those applications compile cleanly and can be used on Linux, UNIX, and on several hardware platforms. It takes effort to make software portable and you have to be willing to spend that time - you do it for the users of your software.
Poettering defends his systemd with vigor, but his comments reflect his contempt for any other way of thinking. One of his typical statements is that all his critics are "amazingly badly informed". You can not go into a dialogue with the guy, he just won't listen to your arguments.
So, what are the advantages of systemd? Using "error-prone shell code" instead of systemd is bullshit - it's not as if we have to write new init scripts every week. Replaces consolekit? Poettering and Zeuthen are two Redhat employees who infest computers with half-assed software that they deprecate faster than distros can adopt it. Does it make your computer boot faster? Well wow... how many seconds of productive time do you gain per day?.
It is not worth the hassle.
Eric"
For those that think systemd is just an elegant modern init system, consider this from Potterings own blog:
http://0pointer.net/blog/revisiting-how-we-put-together-linux-systems.html
"We want a unified solution that ultimately can cover updates for full systems, OS containers, end user apps, programming ABIs, and more. These updates shall be double-buffered, (at least). This is an absolute necessity if we want to prepare the ground for operating systems that manage themselves, that can update safely without administrator involvement."
Pottering wants systemd to even take care of updating your entire system, so you the end user or administrator never have to! Can you name one reason why an init system would do this, or even need to? "Prepare the ground for operating systems to manage themselves..." Really!
He didn't say that. Nice strawman, though!
Really onpon!
So you want people to believe that a post on Potterings own blog written by him, was not actually posted by him, and that he did not actually say it? If that is not deluded than I am not sure what is.
In that post, he is laying out the foundation for how systemd will be its own OS and control all features of the OS from kernel to userland, including upgrades. Read it, its write their in black and white, or what ever font choice you choose.
Oh, sorry, I'm suffering from a case of off-hand dismissive syndrome because of all your nonsense you've been sputtering. I wasn't reading clearly, and yes, you're right this time. (Your reaction to this is absurd, but MB already addressed that, it seems.)
NOTICE:
i was still writing this after onpon4 replyed
so at the time of posting i wasn’t aware of onpon4's reply
to HuangLao's post
END NOTICE
i don’t know much about Pottering so i don’t know if this is his blog or a fake or something
but the text HuangLao posted definitely is on the webpage:
Thanks for reading it Tom. So many people are quick to comment without checking the reference.
That is most certainly his blog, he references it in most of his forum and iirc posts. Check the bottom also:
© Lennart Poettering. Built using Pelican. Theme by Giulio Fidente on github. .
Can you name one reason why an init system would do this, or even need to?
For the nth time: systemd is an umbrella project and not only a pid 1.
Since you like quotes from free software superstars (that you misquote, but anyway), here is one from rms, who was in the POSIX standardization committee (he even chose the name of the standard):
Basically, my attitude towards standards is that they are useful. They help users figure out how to support a variety of systems, and then they help system implementors figure out how to give the users what the users will expect. But you shouldn't treat standards as though they were gods. There's no need to. We support standards in the ways that are useful to users, and we depart from them when that becomes more useful to users.
LOL, this has nothing to do with the prior post. Read Potterings own words, since you like references so much.
Interesting post from one of the top Linux kernel developers regarding Pottering and systemd. Comments are interesting as well.
Useless Google+ with it's "minimalistic" design. It doesn't show the date! Any idea on when was published? Just to keep a mental timeline.
Oct. 6th, 2014.
Hi Jade, you beat me to it. :)
Oct. 6, 2014.
Note in the comment section how many people Pottering blocked just because they raised questions regarding systemd. Similar attitude of some in this forum unfortunately.
How is the attitude here similar to blocking questions - is it the because people dare to disagree with all the speculations you refuse to provide prove for? Nobody is blocking or censoring you in any way, yet again you are twisting the truth here.
Did you read the links?
You've posted numerous links in several topics and you have responses to all or almost all of them. How about you actually start by responding to the numerous questions towards you before wasting everyones time even more?
I've been doing some research on portability and systemd but couldn't find much.
> Is systemd going to be an obstacle when people want to port applications to GNU Hurd or other Unix-like systems?
Not sure. But this isn't the first time that happens[1]. People simply use compatibility layers (like Wine) to overcome the lack of portability of the subsequent programs. It works but sill not ideal as lack of portability is the sickness and compatibility layers just a placebo.
This is not related with systemd but with portability in general in the free world. Andy Tanenbaum said this at FOSDEM 2010[2]
It's just amazing how much free software is so crappy, it's not portable. You know, you run ./configure and it always fails, *ALWAYS*. You know, what happens? It was looking for, I don't know, Perl 5.2.3.26.9.4b and if that wasn't there it gives up. Even though the application you're trying to install doesn't use Perl at all.[2]
[1] https://teythoon.cryptobitch.de/posts/on-portability-of-init-systems/
[2] https://www.youtube.com/watch?v=bx3KuE7UjGA Minute 38:20
> it always fails, *ALWAYS*
What a drama queen. File a bug and move on...
I know, I think he made it dramatic so then he can throw something funny and make people laugh.
Probably works better live than in writing. :)
Yeah, it was funny when I saw the video. Which I recommend to anyone interested on reliable systems (reliable as in no need for restart buttons).
I saw that FOSDEM video where Tanenbaum goes on about how awesome MINIX is-
which it is, in theory. Do you think that GNU would have used MINIX if
Tanenbaum had GPLed it before Torvalds did Linux? What licence is MINIX
released under, anyway? Is it GPLed yet? or under BSD?
> Do you think that GNU would have used MINIX if Tanenbaum had GPLed it before Torvalds did Linux?
A while back in the 90s, Tanenbaum had full hopes in GNU Hurd, Minix was just a mere tool for teaching. And Linux a promising kernel. Then Hurd never become available. Minix was still a teaching tool and nothing else. And Linux gained more popularity and with it drivers. Don't know if not being GPLed is a deal breaker for the FSF when it comes to core components (probably it is). But I'm petty sure they prefer GPLed software.
> What licence is MINIX released under, anyway? Is it GPLed yet? or under BSD?
BSD license http://git.minix3.org/index.cgi?p=minix.git;a=blob;f=LICENSE;h=a119efa5f44dc93086bc34e7c95f10ed55b6401f;hb=HEAD
Still, my point wasn't Minix vs the world. I was just saying that Tanenbaum knows pretty well what he's talking about and maybe we should listen that particular point.
Don't know if not being GPLed is a deal breaker for the FSF when it comes to core components (probably it is).
It is not. For instance, GNU never started a windowing system because XFree86 was distributed under the MIT license (until February 2004, then its fork X.Org was adopted).
I was just saying that Tanenbaum knows pretty well what he's talking about and maybe we should listen that particular point.
That point is a simple bug: building a specific program seems to require Perl, but, in fact, it does not.
The following is not something I am saying, I am copy-pasting this from somewhere else, I just think it's insightful.
What is systemd? It's an init system. An init system is the first process started during the boot process, and it is then responsible for starting all of the other processes that need to be started. You control which processes run by default by configuring your init system, as well as things like which process should be restarted is they crash or are killed. It also provides commands for stopping and starting system services. Most init systems limit themselves to that, which adheres to the part of the Unix philosophy that says that programs should "do one thing and do it well". Systemd, however, takes it upon itself to also provide a myriad of other services, some of which are tangentially related to the job of an init system, and some of which are completely unrelated. These include, but are not limited to, a job scheduler, a logging daemon (and a bad one), a device manager, power management utilities, internet services daemon, an ACPI daemon, and a login manager. These services can be disabled, and systemd proponents seem to think that means that it's modular and unix-like. The problem, though, is that these services only work in the context of systemd, and systemd itself only works with the Linux kernel. The Unix philosophy says things like "programs should flexible and open", "programs should be portable", "programs should be good at communicating with other programs", "data should be stored in flat text files", and so on. If you follow these guidelines well and write something like an ACPI daemon, it will work on any operating system that has some basic set of features, totally regardless of what init system it's using and in many cases regardless of what kernel it uses. If you're a systemd developer, nothing should work unless systemd is there, and systemd doesn't work unless you are using the Linux kernel. This behavior is NOT Unix-like. The result on ignoring the Unix philosophy is basically this: if a systemd developer writes a session manager, and a popular desktop environment uses it, that desktop environment now only runs on a single init system and kernel, even though it doesn't depend on either one directly. Suddenly, you start to see user applications that come with these ridiculous dependency chains that go right down to the kernel, and anyone who wants to use that software no longer has any choice as to what operating system components they use. It basically turns Linux into Windows: Take all of it, or take none of it.
In return for all of this ridiculousness, you get literally nothing. It has zero advantages over its modern alternatives, all of which are actually unix-like and modular.
I'll be grateful if you can give the source. Also one suggestion, when quoting is better to show it in the style using the <cite> or <pre> tags, just to make obvious that aren't your words but someone else's words.
http://archive.rebeccablacktech.com/g/thread/44610176
the "em" tag is fine too
@northernarcher:
A quote from a forum with an illustration that aims to compare systemd to antisemitism in the 30s. Really?
What is systemd? It's an init system. (...)
Wrong. For the (n+1)th time (since I have already written "nth time in this thread): systemd is an umbrella project and not only a pid 1. Just read the first sentence describing it on https://en.wikipedia.org/wiki/Systemd (Wikipedia):
systemd is a suite of system management daemons, libraries, and utilities designed as a central management and configuration platform for the Linux computer operating system.
Or the first sentence on https://wiki.freedesktop.org/www/Software/systemd/ (systemd's home page):
systemd is a suite of basic building blocks for a Linux system.
4chan is full of idiots. The original post is from 4chan.
We already covered the topic of a desktop environments and other software depending on systemd, such as GNOME, which seems like the main argument of this text? It would be much more useful if you add to the undergoing discussion rather than start it all over again.
> In return for all of this ridiculousness, you get literally nothing. It has zero advantages over its modern alternatives, all of which are actually unix-like and modular.
So for example, systemd features like the use of cgroups are of no real use (zero advantages) compared to the methods of other modern init systems? Can you elaborate on that?
Apparently systemd is giving some problems to Arch users who don't use systemd. Just thought it's relevant.
https://lists.archlinux.org/pipermail/arch-general/2015-July/039425.html
This is probably because Arch maintainers are using the easy way and marking systemd as a dependency, even though the software you're trying to install don't have systemd as a hard-dependency, take into account that systemd is the default in Arch since 2012. This is why I don't use distros that use software that I don't like by default, even if an alternative is available in that distro. Because chances are you get a half-broken system with the alleged alternative.