Debian's Systemd Adoption Inspires Threat of Fork
New submitter Tsolias writes It appears that systemd is still a hot topic in the Debian community. As seen earlier today, there is a new movement shaping up against the adoption of systemd for the upcoming stable release [of Debian], Jessie. They claim that "systemd betrays the UNIX philosophy"; it makes things more complex, thus breaking the "do one thing and do it well" principle.
Note that the linked Debian Fork page specifically says that the anonymous developers behind it support a proposal to preserve options in init systems, rather than demanding the removal of systemd, and are not opposed to change per se. They just don't want other parts of the system to be wholly dependent on systemd. "We contemplate adopting more recent alternatives to sysvinit, but not those undermining the basic design principles of "do one thing and do it well" with a complex collection of dozens of tightly coupled binaries and opaque logs."
... I was already investigating into FreeBSD as option. I welcome a fork of debian. The developers are irreparable split anyways. Half of them are pro systemd, the other half are not. So why waste time into talks. There won't be an acceptable solution anyways. So better head off and fork the project. I want to see how debian will survive, once half of the develoeprs have rushed away to form a new project.
The distributions should be wary of putting all their eggs in the freedesktop.org basket. Not all systems are desktops, and they shouldn't rely on desktop features at the expense of their own roles.
http://forkfedora.org/
Not really, but well made.
Oh come on! There are only 6 hundred distributions.
The solution to yet another init system is to support even more init systems?
If systemd needs to die, then say so. Give the reasons why, then fork it if necessary. We've got enough problems supporting different not-invented-here stuff in too many distros already.
"Transparent" is a shit show that trades on every stereotype going. A man in drag is NOT a transsexual.
There is a certain contingent in Debian that is not good for the project, IMO. I would like to see which side of a fork they are on, and pick tthe other.
Bruce Perens.
That list glosses over a couple of major problems.
1) You avoid the current version because it's such a usability disaster that no one wants to touch it. It's so bad that people would rather run an ancient and completely unsupported version.
2) Your current hardware is suddenly obsolete because it's last years model and it's not supported anymore.
Modular design makes "rage-forks" a lot less of a problem than some people try to make them out to be.
A Pirate and a Puritan look the same on a balance sheet.
Whoever installs your OS chooses for you. Might be your hardware vendor, maybe your nerdy cousin.
My wife read about Vista when it was coming out, and she asked me to install "Linux" for her so she could get used it to it before Vista happened.
I didn't ask her which distro; I chose one.
Anybody who can install an OS can choose one.
Linus is NOT good for the desktop or average user.
Is Linus the Linux version of Microsoft Bob? I'd agree, then, that the average user wouldn't want him swearing at them every time they do something stupid.
Most people just want something that works out of the box, even if there are a lot of tradeoffs.
So why would they want Window 8?
They claim that "systemd betrays the UNIX philosophy"; it makes things more complex, thus breaking the "do one thing and do it well" principle.
This isnt a thought or a prediction, this is something systemd actually does when it takes NTP, console, logging, and networking and forces them into one application. the fork threat is to be taken seriously because of the leaderships inability to actually recognize this as a massive security, scalability, and overall functionality problem that was steamrolled into debian largely at the behest of KDE and Gnome devs. The best solution to avoid a fork in my opinion is to give the user something thats also been forgotten about in the linux community: choice. Systemd or RC Init, or uselessd (a fork of systemd that tries to rehabilitate systemd)
Good people go to bed earlier.
Linux works out of the box in the same way that MacOS or Windows does.
If your average Windows user had to install their own OS they would be even more lost than if they tried dealing with Linux.
A Pirate and a Puritan look the same on a balance sheet.
Systemd may be fine for a desktop, but not fine for a server. I can say the same exact thing about NetworkManager, which I quickly remove from any server I touch because some Ditro's think that servers need this crap.
I refuse to use Ubuntu for example because they can their software for desktops. I don't have anything against Linux desktops mind you, but I don't manage thousands of desktops. I manage thousands of Linux Servers.
If Debian does not want to ship systemd I'm happy. It saves me from searching for a new Distro to replace our current all Debian environment.
If someone does not like Debian for doing so, they can go Fork themselves all they want. Forking has been the primary reason for Linux growth. Yeah yeah, we have seen some orphaned and a few died on the tree, but the best continue and breed more... (*intentionally punned*)
-The wise argue that there are few absolutes, the fool argues that there are no probabilities.
I like the UNIX philosophy and don't think it goes out of style just because it's a few decades old.
I am against systemd, for now, mainly because of the binary log files and how it was railroaded through the community.
However, do these programs follow the do-one-thing-and-do-it-well principle: web servers like Apache, database servers like PostgreSQL, the X Window system, the GIMP, OpenOffice? Is an init system more like one of these or more like sed and awk? That's not a rhetorical question. I'm a web programmer who loves Linux, but the kernal and start-up are still black magic to me.
Maybe an init system can be simple. I don't understand why even shell scripts are needed. Seems like they should be the exception, not the rule. Seems like configuration should be a single file that lists the programs to start from top to bottom. If you wanted add some parallel start-ups, it seems like you could just make the config file format a little fancier, maybe with some braces or indentation to express dependency.
Maybe instead of systemd we could come up with a start-up standard, sort of like the POSIX standard. Most programs seem already to be callable with the same arguments: start to start it, stop to stop it, restart to restart it. So the simple config file would call one or the other depending on which cycle we're in. Why the need for shell scripts? I've looked at them, and they mostly seem to be doing this anyway: call start on the shell script, and it calls start on the program. I see some checking, some setting of environmental variables maybe, but is this really needed? Can't programs be formalized to follow some init API? If the start, stop, and restart are not enough, maybe also an option, like --bg, that they'd all take, so the init system always calls $program --bg start, or $program --bg stop, or whatever; so that all we need is that simple config file. Those programs that don't yet follow the init API could keep using a shell script until they do.
Please have mercy if this question is terribly naive. I've tried googling . . . a little. I was hoping a real live human being could either explain it all. Or feel free to reply with some links that explain why SysV init needs all those shell scripts and can't be just a simple list or somewhat-simple declarative configuration.
When my mom needed something for email and web I gave her a machine I had with Linux on it. It has worked just fine even though she had very little experience using a computer.
I am an experienced Linux user, and I have tried several times to install Windows. Each time I look on a retail site, I see aabout a dozen different versions of Windows for sale, and I find endless discussion about which version I should install and UI changes that developers should not include in the releases, and how I should download some third-party apps to make the UI not suck.
It always ends the same, with me putting my credit card away... be thankful Linux works well.
Are you kidding. Linux doesn't even need to be installed. You can just run it straight from the install media.
This is handy when you have a Windows install that can't even run it's own wired network interface and it can't tell you what driver it needs because it's too dumb to do that.
Linux liveCD to the rescue!
Boot up.
Interrogate hardware.
Proceed with beating the bushes to find Windows drivers.
A Pirate and a Puritan look the same on a balance sheet.
There's Window 8, and Window 8.1. There's 32-bit or 64-bit. There's Windows 7. There's about half a dozen different versions of Windows 7, and I've no idea how many of Window 8.
There's the XP interface. There's the Windows 7 interface. There's the Window 8 desktop interface. There's the Window 8.1 desktop interface. There's the Metro interface.
How can anyone expect someone to pick Windows for their desktop when there's so much fragmentation?
Come to think of it ....
Have gnu, will travel.
My Linus just worked right out of the box. You have to get past the F--- You! if you have NVidia graphics, and the prickly user interface that periodically tells you you're a moron.
At least it's better than my Stallman. That thing ate something off the bottom of it's foot while I was giving a presentation. Yechh.
There are +150 Debian forks (derivates) already, so yet another one hardly matters. The main reason why its is an empty "threat" is that there basically isn't any real development of needed infrastructure in the non-systemd camp, and as time goes by, more and more alternative development will be need by non-systemd distros.
The fork of systemd's "udev", "eudev", is basically just a shadow fork with patches, but soon eudev maintainers have to decide between having to support a kdbus manager, thereby become more developers instead of just patch maintainers, or their fork will deviate so much from the real udev, that they no longer just can leech new patches from it.
Of course, ConsoleKit is still dead with nobody picking up development, the only alternative is a rather limited implementation of systemd-logind, and is basically maintained by a Canonical developer who are unlikely to maintain it after Canonical have switched to systemd.
Stuff like root-less X.org can at the moment only be safely done by systemd. Some Wayland implementations will also depend on systemd simply because the upstream projects aren't getting any help at all in supporting non-systemd distros.
Even SysVinit isn't in such a hot state, it haven't made a release in five years, and the defacto upstream maintainers have been SUSE/Reed Hat for years. At some point they will drop maintaining it anymore.
I could go on, but the fact is that there is an increasing amount of work needed to be done, just in order to keep status quo somewhat, and that the non-systemd camp are severely lacking developers that could help maintaining such critical infrastructure.
It would actually be quite good for the non-systemd camp if there was a proper Debian fork that solely was about non-systemd developemnt. They have been lacking a focal point for such development for a long term stable distro for years (Slackware, despite its merits, is ultra conservative and probably too limited in certain ways for this).
The problem is that some factions in the non-systemd camp are pursuing systemd "emulation" by using shims and forks. That way you just get a second rate systemd, and it will remove any motivation from upstream projects to support anything else than system. Using Ubuntu's "logind" is a short term gain, but a strategic failure for the non-systemd camp. They need their own implementation of needed infrastructure, not just copying or emulating systemd.
I disagree. Having Linus yelling expletives at your average PC user would go along way towards educating them or scaring them away from computers.
The end result is the same in either case.
Having used it almost exclusively since 2001, I've always regarded Debian as a distro for more tech-savvy and conservative types -- system administrators, for example. However, their recent move towards systemd seems very unlike them and, as a professional sysadmin, this worries me. Perhaps it's what we can expect, every once in a while at least, from a bunch of people who are not system administrators.
Luckily, they seems to be having second thoughts about the matter and this could be an opportunity for them. Their main competitor, which IMO is Red Hat, have already committed to systemd, which I'm not happy about either and find just as surprising. Therefore, since so many people have expressed their misgivings about it, if Debian were to reverse their earlier decision and go back to sysvinit (or at least make systemd optional), then I think we could see many sysadmins converting their RHEL systems to Debian jessie.
The init process is a critical stage: failure tends to leave you with no access to the system to diagnose the failure. I tend to break it into two parts, the first part being what's necessary to allow at least a single-user login on the console, and the stuff that happens after that point to bring up the full multi-user system and server processes.
I don't like systemd for the first part. It's overly complex, and the more parts and interdependencies there are the more things there are to fail. To quote an engineer, "The more they overthink the plumbing, the easier it is to stop up the works.". Shell scripts and plaintext log files may be primitive, but they have the advantage of being easy to read with minimal access and not requiring complex stuff to run (mainly they just require that basic binaries be available in the path). Until I've got at least a basic system up and running enough to log in and work, I want the init process to be as simple and straightforward as possible with as few points of failure in the init process itself (as opposed to the things it's starting) as possible. I want this stage to be as hard to break and easy to debug/fix as possible. I don't want to depend on complex tools at a point where I'm working in the most primitive environment.
I don't particularly like systemd for the second part, but it isn't quite as much of a problem here as in the first part. By this point I've got a basic system up, I can log in and work, and most of the tools are available. Obviously nothing graphical will work, but text-based tools will probably run to decipher binary logfiles and modify configurations. I still prefer not depending on such tools, because they're one more point where things can fail to work and leave me scratching my head trying to figure out what broke without access to basic diagnostic information, but at this stage I can likely fix any tool-related problems and get back on track.
The one part I think systemd works for is in the later stages of the second part. There's a lot of server processes with interdependencies that typically start after the multi-user system's up and running. I think systemd's a good thing for getting those running, it can do a better job of parallelizing that process than shell scripts can. The only change I'd make is to make systemd use syslogd like everything else, so log files end up in the expected place and are plain text so basic tools like more and tail and grep work on them as-is. Binary logfiles offer no great advantage over plaintext, and going through syslogd means not depending on two sets of tools and having to manage two configurations to get logging directed where it needs to go.
One last bit has me twitchy about systemd: history. SysV init scripts may be clunky and primitive, but they've been around a long time. People know how to manage them, and they've had the kinks worked out of them and best practices established. systemd doesn't have that. I do not want to make my servers (that have to run for anything to work right) dependent on something until I've had time to work with it and get familiar with it and, more importantly, it's been out there in use long enough for people to find and fix the problems, work out the oddities and figure out the best ways to use it without shooting yourself in the foot. I'd prefer to stick with SysV init on my production systems and only enable systemd on testbed systems at the start, and then enable systemd on a server-by-server basis so unexpected failures don't completely kill me (eg. if systemd blows up on my primary mailserver, the backup still on SysV can keep things under control until I either fix the problem or revert and restart the primary).
The average user also has about one tit, one ball and half a penis. Just wanted to mention that.
I trust the Debian committee - as a collective - to make the best choice. The committee has a large group of people with diverse interests and the majority voted to adopt systemd. Debian isn't exactly known to be a flippant Distro.
I suspect the technical people behind Debian/Fedora/Arch/OpenSuSE and other Distributions (some of which make money on their products and services) are a lot smarter and thoughtful than a bunch of people with a website that has a purple background and orange links.
I've used systemd under Arch, and i could open up a systemd unit file and understand what every word in the file meant. I can't say the same thing about most SysV startup script.
Linux could work for the average user, at the end of the day there is no technical reason why not. After all Linux(in the form of android), dominates on the cell phone market, where the user base demands greater user friendlyness, has less patience, and wants even more bells and whistles, and is far less compitent with a computer. Linux has been shown to work marvelously with light meters, accellerometers, USB, touch screens(multi-touch even).
The big issue is how consumers by technology. They don't care about specs really, they don't care about merit. They care about branding and imagine. They want their Apple(tm), search with google(tm). Advertising and public relations gurus over the last few decades have build reality distortion bubbles, where people actively identify with brand names. GNU/Linux has no such brand name. They really don't care about "just works". Face it, windows does *not just work*, but people do whatever it takes, because they think windows is what they are supposed to be using. Microsoft presents the image of normalicy and conformity that most people identify with.
Apple on the other hand, presents an elitest artisan, fine craftsman, and intellectually supperior image, that marks the owner as part of an elite group.
Linux cleans up serverside, because it rode the wave of start up culture of the 1990s. If you had a great idea for a new website, but didn't have much capital, you could run a proffesional website with Linux, Apache, Mysql, and PHP out of an old desktop for a fraction of the cost of what constituted a proffesional server, of the day
As these companies grew, they continuted to use linux, and helped it transform into a proffesional class OS, that couldn't help but take notice.
Linux will eventually take over the desktop, and the reason is because microsoft has no real friends, and they have an ever growing list of enemies. Many of those pimpleface teenage nerds they stepped on back in the 1990s are now grown developers and sys admins. Their day dreams are now multi-million dollar products. Linux has a lot of corporate backers, many of which are household names, and some of the largest most powerful corporations in the world.
Whats eventually going to happen is that MS is going to piss off another giant like Google or Samsung to the point they want blood. You'll see a few large companies pour money, time, resouces, advertising into a distro with enough MS haters to accept them, and then use a Free as in beer product into the desktop market, to crush microsoft to prevent them from competing in other markets, by destroying their cash cow.
There will not be a year of the desktop. It will be a decade of pure hell, and microsoft is going to fight tooth and nail, and use every dirty trick in the book to keep the desktop market. They will eventually loose, because the nature of FOSS allows many companies to quietly pool resources behind a single banner, especially a not-for-profit, and allows more to join later without any real effort or diplomacy. Eventually it will be taken from them, and from that point its another 10 years before they go out of business.
from the summary
That is really the crux of the issue and what distinguishes the systemd dispute from all the other FOSS food fights. The FOSS community never agrees on anything. That is why we have multiple everything: Multiple Kernels (BSD & Linux Kernels, multiple flavors of each) many distributions of each flavor, a host of programming and scripting languages, multiple package management tools (rpm, portage, dpkg) several GUI toolkits, GNOME and KDE desktop environments etc. Wayland is not enough, we must also have Mir. And the licenses. Egads! How many of those do we need?
Despite all the passion and ego involved, disagreement between adherents of particular designs and implementations has never before risen to the level of open revolt that we see over systemd. Why? Because in all these disputes each person can choose what is best for him/herself. Like Python and despise Perl? Use Python. Vice versa? Use Perl. But the usual rule of the user getting to pick what he likes best does not apply with systemd. Lennart Poettering is working to restrict choice to only systemd. His tactic is to make systemd a dependency of major software packages. Here he ison the Gnome dev list pushing a Gnome systemd dependency.
Sometimes an unpopular item is replaced on the buffet; Good software wins out and variety shrinks a bit. That can be a good thing. But the fear is that systmd is going to win not because it is a popular choice but because Poettering has gamed the outcome using dependencies. Something is wrong if you are running systemd because you hate it and you love Gnome. Perhaps the fanatical hatred of Poettering is driven by belief that systemd adoption is advanced in part by his cheating, instead of on the merits of systemd alone. The abusers are abusing not because he has written what they judge to be bad software but because he has violated an unspoken ethic of the FOSS community.
Ceci n'est pas une signature.
Threatening a fork is like threatening legal action: if you think you're to that point, you need to just do it, and inform the relevant parties afterwards. Anyone can threaten to take action.
Those who advocate genocide deserve every protection afforded by law, and none afforded by common human decency.
Wait.. so you went to the websites of the software you wanted to have installed? Do you realize that most distro's have had a unified app-store way before OSX did? Talking about building.. I've had to build more software on my macbook then on my linux machines because OSX lacks a good package manager. Though macports & brew fill that gap somewhat, but the build times - the agony.
Sure you can. You just can't do it with a sourceless binary.
" problem that made your desktop look like Windows 95"
I don't get the reference, are you saying windows 95 is a bad thing in your pro-windows rant?
Fortunately there are slightly more then 654685787684 different websites telling you how to remove windows infections.
Don't forget that once Windows is installed and you've installed all your drivers you then have to update it!
If I install a Linux distro that came out, let's say, 5 months ago I'd expect that to take about 30 mins on a slow ADSL connection.
If I install a version of Windows that's 5 months old I'd expect it to take most of the day if not some of the next day!
Having said that I'd never install a version of Windows that's 5 months old, instead I would install a version of Win7 with the latest service pack streamlined in and it would STILL TAKE A WHOLE FU**ING DAY.
They dont have time to get into the politics, not the contribution.
When you cant win, ad hominem.
A split decision that created flames of epic heat, even for Debian, even for Free Software in general. Flames that burned far hotter than even Vi vs Emacs. Flames that just won't die out. And the systemd side makes it worse with the attitude of STFU they project. The problem is a TC can't make this decision because it isn't technical, it is cultural and social.
This is a culture clash, between the UNIX folks who want UNIX developed in the open Linux model (as opposed to BSD) locked in a battle with people who want Windows that doesn't suck. And worse the systemd side has made it clear they are going to intentionally design out any possibility of co-existence or compatibility so it is a binary decision, take systemd and keeping any other set of low level plumbing viable is going to get very painful, very quickly.
Compromise is therefore not going to be possible since one camp is dead set against it and the UNIX camp will not accept systemd. So a fork is going to happen, but probably not just Debian. The whole Linux world will soon be the GNU/Linux camp vs the Freedesktop.org/GNOME/Linux camp.
The real root of the problem is Pottering and Co. hate UNIX and want to use the kernel as a device driver to build a new platform upon. They should have simply joined ReactOS but it isn't sexy enough for their egos and besides, RedHat won't pay their salary to work on that project.
I'm still running the same timeseal binary for internet chess that I was running in the 90s. I'll bet the old *bsd builds still work, too.
It is over 15 years old.
I still sometimes run programs I wrote in 2001. I don't make any changes or upgrade anything, it all just still works.
Bash, ZSH, Busybox, Apache, sendmail, exim, postfix...
All of which can be replaced by other applications (in fact, many are replacements for each other, which is exactly the original point).
That's the issue with systemd. Once you make it a dependency then you have it and all it's attendent subsystems and you can't replace any of the parts with something else.