2014-11-29 17:19:51

This rant ^H^H^H^H message is intended for people running Linux but especially those who, not unnaturally, use GNOME on that platform for their graphical environment.

As you may have guessed by now, a war is raging. It concerns systemd, a set of daemons intended to replace critical parts of the system, but most essentially the init process, started up by the kernel. That daemon is responsible for bootstrapping the rest of the system, and until systemd, it did so in a fairly understandable, Unix-like fashion, using scripts in /etc/init.d/ to call responsible programs. Now that systemd is a dependency of GNOME, though, and we are dependents of GNOME, it would appear that we are required to use systemd.

And I fucking hate systemd! Systemd takes on responsibilities that it has no business taking on. It is now cron/anacron, at, inetd/tcpd, a complete supervisor system including D-Bus (WTF???!!!), udev, device mounter, syslogd/klogd using binary log files (WTF???!!!), HTTP server for showing QR codes (WTF???!!!), hostname setter, DHCP client, timezone and clock setter, logged-in session manager and much more … and all of this under the control of a tightly-coupled set of poorly-documented, opaque daemons produced by one group of highly antisocial people--the same people who brought us such shining beacons of Open Source as PulseAudio and Avahi.

Look, I know we have to move forward. I know desktop users are in a class of their own, and I know that in many ways they are less concerned about the internals of their systems than server managers or other similar folk. Sys Init is old and crusty and we need to replace it. But there are alternatives to many of these tasks which don't require completely changing Unix into something not unlike Windows--something which, quite possibly, will require as many restarts as Windows on update because of the massiveness of systemd. And yet the Debian Project, normally a great bastion of Open Source freedom, also bows to this foolishness.

And what about us? We have no realistic choice but GNOME. So we have to use this shower of shite, whether we want it or not. Wave goodbye to cron and at--they're history now; your new language for crontab entries and startup scripts are systemd units. How does that grab you?

On servers, I will continue to run sysvinit, thankyouverymuch. But GNOME's choice to use systemd really pisses me off on desktop VMs. I don't want Linux to turn into WinDoze™. Do you?

What can we do about this? Do you care? Are you interested in the potential of Linux outside the basic desktop environment? Will you still use GNOME, or Debian?

Just myself, as usual.

2014-12-05 11:53:56

@Wanderer, I do get when you're coming from, and I realise that desktop Linux is in many ways a different OS from "Server" Linux (or just Unix). I would say that that was a mistake, but perhaps history has shown otherwise.

But I really think systemd was the wrong answer. It has way too many tentacles that are attached to the core monolithic monster at the centre (a 1 MB binary, BTW) which simultaneously make the whole harder to configure and debug and put the system in greater risk of downtime. Great for desktops, less great for servers and people who manage the bloody things. There's also a very strong portability argument, because outside Linux, systemd doesn't exist, and the people who wrote it just don't care.

Anyway, it looks to me like the powers that be have spoken, and those who want sysvinit over systemd are being forced to simply drop parts that depend on systemd, which for all practical purposes means GNOME. I sincerely hope that other init systems are considered, specifically runit or OpenRC, both of which are awesome, and both of which make more friggin' sense than systemd. Oh yeah, and server managers love them, too. smile

Just myself, as usual.

2014-12-06 06:47:12

@cebi, you could always reverse engineer gnome and make its dependencies not use systemd. I haveto agree with you though: runit and openrc are much better alternatives myself. They offer more flexibility when configuration. And why would you use binary log files? How do you read that on windows, anyways? Since both Windows and Linux use different executable file formats (EFFs), you would litterally need to reverse engineer the windows executable layer and chnage it to support ELF. But of course, Linux just has to do everything that people want it to do. The kerenl is, in fact, a few hundred KB smaller than the 1 MB limit; Grub won't boot a kernel larger than 2 MB tops.
This is why you don't use the FSF's little "everything should be free and open source" movement. Its stupid, quite literally impossible, and has been flawed from the beginning.
Here's one of its flaws: I tried to make a GNU Parser for JSON in PureBASIC. I submitted it. What do they come back with? Well, I'll tell you what the fuck they come back with! They fucking send me the following "go fuck yourself" email:
Hello Ethin,

Thank you very much for offering your software to GNU.  However, we cannot accept any software that has non-free dependencies.  Thus, your software's dependency on PureBasic makes it unsuitable for inclusion in the GNU project.

Kind regards,
Brandon

There you go right there. They! Will! Only! Accept! Free! Software! And free software with only *** free *** dependencies! You want PureBASIC/Microsoft C++/CLI support? Nope, gotta rip it out. You want .NET support? Nope, gotta change it to Mono. There are so many issues with the OSS movement that its insanely stupid. I have no idea why Ritchered Stallman decided to create the free software foundation, but whatever the reason, he had, or was in, the dumbest mindset a human can possibly be in. It may even be possible that he was drunk when he requested it be created. Wait, no. He wants everything (extra emphasis on "everything") to be free! So beer and other alcohol is out of the question.
I am starting to get very irritated with GNU. I'd rather spend $2000.00 on the Intel C/C++ compiler than deal with those bungling magpie-like idiots. Yes, I do use their products, and Linux is great for being an server-side OS, but when it comes to desktop-side, Linux is just not built for the task. Ubuntu totally failed with making a desktop operating system. In fact, I tried it and could only stand it for about a week before I reverted to windows 8.1. If Linux were very popular, maybe I'd stick with it longer. But Orca, and its dev team, are currently going at a snails pace. And they will not! fix any bugs in Orca because of the simple fact that they "don't notice them." Seriously! Do we have to literally hack into your damn computers to make you fix the bug? Probably.
Well, enough with this rant. I've got other things to do. I'll keep monitoring this topic to see what's new.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2014-12-07 05:40:36

WRT the GNOME situation, there are a couple of shims already available to try and provide the systemd interfaces in userspace, but it looks like the Ubuntu shim used while Canonical were using upstart is now redundant since they, also, have gone to the dark side. Other options may yet emerge or exist. Honestly though, it seems likely that the dependency on this FreeDesktop nonsense will only increase, so I think it's fairly safe to say that things will get worse before they get better.

Just myself, as usual.

2014-12-10 00:21:20

@wanderer, I am not saying that GNU hates me. I'm just saying that GNU needs to step back and assess their situation. They won't get ultra popular unless they accept proprietorial software, which they won't do. Oh, and your thing about PB not being for Linux is incorrect. It certainly works under Linux, just not with Orca. And I need to clarify what I meant about the 2 MB limit: It only exists for loading kernels directly into memory. Grub has to work in an extremely small space, you see. In fact, it has to only be 512 bytes to actually function properly. (When will us humans figure out that hardly any program can run in such a small environment? I'm still wondering how UEFI did it so it can run small applications which, I can tell you right now, are larger than 512 bytes.) Yes, you could probably fork gnome, but why update it continuously if gnome won't turn back to the light side and forget Systemd? Why not build your own DE from scratch that works with Orca and that doesn't use Systemd.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2014-12-10 05:41:11

Okay. Sorry. I can't not comment.  I tried, but I can't.
Gnu is extremely popular.  Gnu is bone-crushingly popular.  I cannot state the popularity and importance of Gnu's software in terms that would fit in the universe.  Gnu maintains what used to be and probably still is the top compiler in the world--the only competitor is maybe Clang, maybe, but Clang doesn't run on even a fourth of the stuff Gcc does.  They've also got a lot of top math and science stuff, what I believe is the only FOSS Fortrann compiler, their software is sitting at the bottom of literally any Linux web server, and, in truth, you're wrong because they are already widely accepted by basically everyone who has ever had to use Linux, ever, and also a huge number of embedded programmers and manufacturers.  The Gnu Compiler Collection is the textbook case for when the GPL does good: no one could take it proprietary and it got good enough that people didn't want to write their own, so people contributed back to them instead--and because it's GPl, those changes had to be made available to everyone.  Until very recently, iOS app development was powered by GCC by default (and can still be, if you switch an option), and Android development with the NDK is likewise powered by Gnu software.
As for program limits, I just got done writing a voice tracking microphone in 512 bytes of RAM and 16k of flash.  In the general case, those limits you seem to hate are why you have a microwave: by placing limits on things we can make computers for less than a few cents.  More specifically, however, any change that actually raised the bootloader limits would break all the software that already exists.  The purpose of the bootloader is only to toggle some CPU flags and copy from the hard disk, at least in the first stage wherein it's 512 bytes, so that's fine.  If you need more than 512 bytes, you load up a second-stage bootloader and run that instead.  You are not supposed to be writing user-facing programs at that level; it is supposed to be very, very simple code.  Grub is not 512 bytes; grub is a multistage bootloader.  In fact, I can't think of a bootloader that allows multiple OS selection or, for that matter, even has a user interface that isn't multistage.  From what I understand of UEFI, these are being extended and simplified some, but the point of UEFI seems to be more about standardizing BIOS than anything.
But seriously, proprietary programming languages are a different problem entirely.  If you do open source software in one, everyone developing or using the software needs to own the language.  So you can't, at least not effectively, GPL or no.  It doesn't matter if it's Gnu, if it's open source and it's intended in any way that your end user compiles it, forget Purebasic.  To go ahead and head off what I'm pretty sure you'll say next, no, precompiled binaries does not work: there are something like 20 major Linux distros, Mac, Windows, etc.  And if it's in one of the mainstream languages like C/C++, we also have to count in Android; iOS is more questionable due to licensing concerns, but if it's popular and possible to be ported someone will.

My Blog
Twitter: @ajhicks1992

2014-12-10 21:50:51

@Camlorn, are you saying that PB sucks just because its shareware? Because if you are, I take that as a personal offense. And no, writing a game isn't the easiest thing you will ever do in C/C++. I do agree though, GNU is quite popular for mathimatical, compilation, and other tools. I just think that they need to open their minds and allow commercial software into the collection.

"On two occasions I have been asked [by members of Parliament!]: 'Pray, Mr. Babbage, if you put into the machine wrong figures, will the right answers come out ?' I am not able rightly to apprehend the kind of confusion of ideas that could provoke such a question."    — Charles Babbage.
My Github

2014-12-11 02:54:27

No. I did not say that PB sucks because it's shareware.  Any programming language that costs money has a specific set of pretty serious problems associated with it in terms of actually being able to be used on a team of any sort whatsoever.  That is why we don't see them very much anymore.  I'm not going to get into the debate about PB again because everyone who uses it simply disregards anything I have to say on the subject, and anyone who actually regards what I have to say with enough understanding to have the argument already left PB because they understood what it was missing and wanted/needed those things.  So enjoy the PB corner, and if you continue down the path of programming it's very likely that you will one day agree with everything I've ever said on the subject.  Ever.
You are me from about 5-7 years ago.  Exactly.  Including everything you're interested in, how you say things, everything.  It's actually kind of interesting to see you and go "yeah, that was so totally me".

My Blog
Twitter: @ajhicks1992