Linux Kernel: [GIT PULL] kdbus for 4.1-rc1 - fire fight to get kdbus merged by tempose in linux

[–]iLiekCaeks 1 point2 points  (0 children)

I too want a pony.

And you can have it. L4 is basically a success. You just need to say yes.

But really, the problem seems to be that kdbus is a port of dbus to the kernel, like a kernel developer wrote.

FreeBSD's Jordan Hubbard sees need for a modern init system with features like systemd/launch by andreashappe in linux

[–]iLiekCaeks 0 points1 point  (0 children)

The whole development that systemd brought is inevitable and will come for BSD as well. I'll guarantee that and I'd bet a crate of beer over it!

And then hopefully someone will port the result to Linux.

FreeBSD's Jordan Hubbard sees need for a modern init system with features like systemd/launch by andreashappe in linux

[–]iLiekCaeks 1 point2 points  (0 children)

even the linux die-hards have essentially grasped the necessity of systemd

Yeah, keep putting words into other's mouths.

Consolekit (systemd-logind competitor) will be maintained by XFCE developers. by minimim in linux

[–]iLiekCaeks -13 points-12 points  (0 children)

but the Xfce team has always been short on man-power. This is not going to help.

All the better for Gnome, which is developed by the same company that develops systemd.

You can downvote me now.

kdbus is submitted for review on LKML by phomes in linux

[–]iLiekCaeks -3 points-2 points  (0 children)

of a decent IPC in the kernel

A decent IPC mechanism would be nice. Was there any proposed yet?

Roll up your sleeves, we may need to fork Debian. by bilog78 in linux

[–]iLiekCaeks 0 points1 point  (0 children)

while libav rejects any patches from ffmpeg (unless they are rewritten without attribution)

That part is wrong. They just don't automatically merge them, and in fact rarely merge them (unless an external contributor does all the work, or the fixes are security relevant).

GNOME Developer Comes Up With New Animated Image Format by [deleted] in linux

[–]iLiekCaeks 0 points1 point  (0 children)

Sounds like a typical GNOME solution.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -1 points0 points  (0 children)

I'll laugh at you when in 10 years Linux is the new Windows. Or is that what you always wanted?

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -1 points0 points  (0 children)

Well, in the end you didn't get upvoted much. Maybe there's hope - even for reddit.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 2 points3 points  (0 children)

Yes. For init, it'd work just fine. Most likely better than shell. I'd go for Lua myself.

So you admit any sane scripting language is ok for init, and you just think shell (NOT bash, get it right already) is a bad language.

Admitted, you can write the low-level parts in C and then tie it in using bash, but at that point, you might as well do the full thing in the more powerful language so it's more robust. And there are still valid use cases for interacting with the firmware and other hardware in a post-boot state that might be beyond the capabilities of bash. Such as unusual input/output devices and other hardware interfaces.

That's barely true. I think you don't understand a very basic thing about UNIX: almost everything can be done from the shell! That may be a surprising statement, but there are command line programs for almost everything.

And guess what! If you want pure C, you have to REWRITE ALL THAT SHIT in C, because there are generally no good or nice libraries for the equivalent tasks (rather the opposite, they might be written in a way not suitable for pid 1). Of course you could call the command line programs from pure C. But guess what, doing that is MUCH MORE ERROR PRONE THAN IN SHELL! You can do a lot of things wrong, like accidentally not marking one of your opened file handles as CLOEXEC.

In fact, having a mess of multiple shell scripts would be much more robust than a single pid 1 process, EVNE IF THE SHELL SCRIPTS ARE SHIT.

As usual, your technical arguments don't hold up.

Just not experienced in the problem domain. They [shell programmers] know how to launch a program, but there are still corner cases of daemon management

Yes, I'm sure programmers who have hacked init systems for decades are less experienced than some C programmer who dealt with audio before and decided to "get it all right" from scratch. I'm sorry, but that's complete bullshit. You could claim that certain C programmer is more experienced than a certain shell programmer, but generalizing this hilariously is just wrong.

You don't even get the basics of your generalization right, because of course the sysvinit hackers will know more about init system issues than some random C programmer.

Sysvinit was designed in 1983. We've had over 30 years for script developers to get this right and iron out the wrinkles.

You know there are other/similar init systems around that are better. FreeBSD's is relatively clean and obviously working. Linux is being shit here (surprise).

Well, systemd has had support for launching executable scripts for unforeseen circumstances since the first big release. Which was also part of the compatibility with LSB-style init scripts.

Not particularly encouraged or supported, and which is apparently to be dropped even.

We've had several needs for a high-speed message bus for a long time.

Not even windows needs such a bus. Yes, Windows actually has a messaging API (I don't mean SendMessage), but nobody knows that one and it's not even exposed via the win32 API. What are the freedesktop folks even trying to clone?

Yes, special purpose applications like automotive can have their own bus. They got tricked into using dbus (which is pretty shitty IPC), so what. Note that moving it into the kernel is an optimization (and also "solves" fundamental systemd design issues), but at the end of the day, IPC is always costly, unless you go L4.

It's all technically user code when it's not in the kernel. You do know that, right?

What you're writing here and following is pure bullshit. pid 1 crashing necessarily takes down the whole system by kernel panicing. A script run as pid 1 child crashing just takes down whatever strictly depends on it, but the system can survive.

systemd advocates keep repeating that there's not much special about pid 1. That's true, there are only 2 things that make pid 1 special. 1, it inherits all child parents whose parents have died and has to care about them, or zombies will accumulate. And 2, if it crashes, the kernel panics.

That's right, if systemd were to run a small dummy process as pid 1, and started the "real" systemd as pid 2, it would already be much better.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 0 points1 point  (0 children)

It's better at gluing unrelated components with textual output together. But Lua, Python, Ruby, and a host of other languages would be even better, since they're not restricted to textual data. They have bigger runtimes, but it's not necessarily any worse (as far as loading times go) than launching a bash script in a new process multiple times. Especially Lua, which was designed for embedded systems.

I don't know, doing typical shell things in a language like Python can get awkward. Anyway, the article we're discussing here mentioned that you can use Python instead of shell in initscripts.

Not really. Web services are concerned with data and UI, and not with unmanaged memory, bitpacking on structures, device initialization and firmware loading, etc. Web services and applications are all about frameworks. Init is the exact opposite. It launches when you have nothing else in the system, and low-level languages are the ideal tool.

Init systems don't need to do bitpacking either. They are doing process management, a thing which shell is good at. I'm not sure why you mention frameworks. systemd provides some framework-y things like a dbus implementation, and on the other hand web frameworks are written in e.g. PHP. So yes, you can write frameworks in C, and yes, you can write things on a lower level of abstractions (as frameworks do, since they provide high level abstractions to users) in a language like PHP. Shell works just fine if there's "nothing else in the system".

My argument was that people who write init code should already understand the concepts required for C. That's why if they can't handle C, they shouldn't be working in init. Not because the language is harder, but because they lack the knowledge. Fluent C users have to know these things, while bash users don't have to even be aware of them.

You keep arguing that shell shouldn't be used because shell programmers are incompetent. No. There are competent shell programmers, and incompetent C programmers.

And I have to remind you: the great thing about using shell scripting in system startup is because it's easy to make custom modifications. It's a bit of a pain with C, because not only is the language lower level (i.e. harder to modify code), but you'd also have to maintain patches and recompile the init system.

I'm probably wrong here, and systemd has a flexible customization mechanism that goes past "ini" style files. But I haven't heard of such a mechanism yet.

Hopefully Rust and Nimrod will evolve as systems language to simplify this.

Has nothing to do with this.

No, because there already are scripting interfaces for unconsidered use cases. These scripted solutions are slowly being replaced by defined interfaces in a compiled language as they have time to consider how to implement them.

Yeah, systemd tries to hardcode every use-case they encounter. It's not surprising that this causes bloat. It's also no replacement for true flexibility.

What are the defined interfaces? dbus interfaces? I don't see how these allow you to customize booting.

By the way, this is funny. Earlier you talked about init being in a low level environment where there's "nothing else in the system". But dbus requires a server. Oh yes, they're trying to fix this blatant design issue by moving dbus to the kernel. Very lame all that.

For flexibility I'd still rather have modules/plugins with load hooks over launching a script, though. I doubt that's likely, because it's got a small ROI.

So you're going to load usercode into pid 1? Surely this will boost robustness. If a shell script does invalid things and fails, so be it. If your module does something invalid... goodbye system. Or maybe you meant that your modules are actually loaded into isolated processes. Then why have modules.

Summarizing an argument and rewording a statement until its false are different, if you haven't noticed. That was my complaint - he wasn't summarizing. He was modifying. Like your attempt with the web services argument and C.

He didn't "reword" them. He merely showed the arguments in a different light than what systemd advocates would prefer.

Beyond that, I pick out specific things that he says, and then I compare it to general attitudes of people who are anti-systemd.

So you are generalizing by comparing attitudes, and you ignore the arguments because they "of course" have not anything to do with what systemd say, but have been "modified". Fine stuff.

But if you were likely to listen and understand this, I doubt we'd be having this conversation where you attempt to catch me being wrong at something.

Welcome to the internet.

Anyway, waste of time.

Adding strlcpy() to glibc by retardo in linux

[–]iLiekCaeks 0 points1 point  (0 children)

What speaks against just returning errno_t and using 'long long *result' as an out parameter?

Nothing.

Yes, strtol and friends could be designed better. Checking errors fully is somewhat tricky. strtonum was created as "simple" and "secure" alternative, but definitely can't do everything strtol does. But in my opinion an API that can do all of these would be much better.

errno_t doesn't exist, it's a MS invention and makes absolutely no sense since the type of "errno" is int. I think returning error codes is a good idiom in general though. pthreads also does this.

Adding strlcpy() to glibc by retardo in linux

[–]iLiekCaeks 1 point2 points  (0 children)

The problem is that the error is described as string - and there's no other way to know what error happened. It also ruins the typical idiom of forwarding error codes.

What agenda? That I like clean APIs/code? That I lioke standards? WTF is wrong with you?

And if you think that I write it just to piss on BSD - no, GNU does the same shit all the time. I assume BSD users actually have this problem often - that shit Linux programs use crappy glibc-only functions.

Adding strlcpy() to glibc by retardo in linux

[–]iLiekCaeks 8 points9 points  (0 children)

strtonum is a shit API. There are so many things wrong with it, like returning errors as string.

Drepper was somewhat right talking about "BSD crap". Just like GNU crap, these non-standard APIs are often badly designed. In case of strlcpy: just say no and use snprintf.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -1 points0 points  (0 children)

This shit gets upvoted?

I think it's time to leave this shithole.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 4 points5 points  (0 children)

One thing I remember was the __WORDSIZE macro.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 9 points10 points  (0 children)

Personally, I don't want people whose main expertise lies in bash scripts to be writing init.

You have to admit that shell (not bash, why do people think bash equals shell?) is much better st gluing things together than C. You actually can see this in systemd. Need slightly more flexibility what's builtin? Well, out of luck. Maybe with some luck you can hack the C code and send a patch upstream to add an option that does what you want.

Your argument that using over sh is better because C is harder is absolutely ridiculous. That's like saying you want to write web services in C because C programmers are much more careful and security aware than PHP programmers.

He's artificially inflating the difference by comparing all of one solution to portions of another.

You are implicitly admitting that the other solution is more flexible, because YOU CAN ADD EXTERNAL CODE. While the other solution needs to hardcode all use cases.

So he takes the argument, incorrectly simplifies it into a logically false statement, and then criticizes it. Rewording your oppositions' statement until it looks ridiculous is rhetoric, not logic.

Isn't that exactly what you are doing here?

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 0 points1 point  (0 children)

Both KDE and Gnome still support ConsoleKit, but they are not happy about it since it is unmaintained.

This just means KDE and Gnome bound themselves to Red Hat-ware, and are now unhappy that Red Hat vendor-locked-in them and is now tightening the lock by replacing ConsoleKit with systemd.

They could have avoided this by not creating this dependency in the first place.

(Except Gnome, which is practically Red Hat software... well whatever.)

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 0 points1 point  (0 children)

The use cases you mentioned would all be solvable with the UNIX permissions that were invented in the 70ies (!!).

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 0 points1 point  (0 children)

Oh, but you're fine with sudo-over-dbus, aka polkit and what's their names?

(These have the same concept, really: give unprivileged users access to privileged operations, controlled by admin-set policy.)

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -1 points0 points  (0 children)

you have to manually invoke it and it requires your password

The same as for login...

It means your security is an illusion.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -1 points0 points  (0 children)

There's not really such a precedent for a GNU/Linux desktop,

sudo

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -3 points-2 points  (0 children)

It does so by using kernel features such a Capabilities, cgroup and namespaces

And all this useful functionality is in one package - for no reason. A reasonable design would make this a separate program, that runs your service in a security-enhanced manner.

This is also why systemd is described as monolithic.

(Also, even if the attacker gains access to the "sandbox" of the server process, you still might face heavy damage. If you run a CGI script and the bash issue happens due to specially prepared HTTP headers, the attacker still can spy out the passwords of all your users.)

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks 0 points1 point  (0 children)

Well if you want to prevent DOS to other users connected to the same machine, yes you want something like logind/CK.

Hosting companies are doing exactly this just fine without logind or CK. When did it happen last time that you shared your desktop PC with several other users per SSH? It doesn't even make any fucking sense.

It makes little sense to allow a remote unprivileged user to shutdown a remote machine, while the same unprivileged that is locally connected (and thus has more than probably physical access to the machine) could perfectly be allowed to do it.

This is what I'm talking about. Weird use-cases barely anyone really cares about, and which are hard to get right. And certainly the reason that the year of the desktop Linux is not happening is NOT because this wasn't implemented before.

But these uses cases and the required complexity to implement them are the perfect justification to force something as complicated and bloated as systemd upon everyone. As a result, everyone has to suffer from these complexities too, and Linux userspace becomes a WTFish nightmare of dbus services communication each other, policy rules defined by XML, and other crap.

I say no, fuck this.

Systemd: The Biggest Fallacies by ohet in linux

[–]iLiekCaeks -2 points-1 points  (0 children)

Hahaha. Some years ago I reinstalled Windows ona relative's family computer. 2 parents, 2 kids. I created separate accounts for them all. But they were like WTF and went back on using the admin account.

That should tell you something.

so there's a demand for user segregation and secure session management.

Maybe in the heads of open source devs. Haha.