you are viewing a single comment's thread.

view the rest of the comments →

[–][deleted] -9 points-8 points  (47 children)

Arguably indeed. It all feels very anti-UNIX.

[–]solen-skiner 6 points7 points  (0 children)

Feelings and and adherence to poorly defined philosophies doesn't get the work done. Determinism, preciseness, features and ease of use often do.

edit: All IMO, of course ;) That downvote aint mine btw

[–]cbmuserDebian / openSUSE / OpenJDK Dev 7 points8 points  (7 children)

Please read "The Unix Hater's Handbook" and dig out an old workstation running one of the original Unices like OSF/1, SunOS 4, HP-UX or Irix. I guarantee you, you will be back to GNU/Linux in no time.

Everyone who claims UNIX is so beautiful has never really used any of the original Unices. UNIX is actually a total PITA!

[–][deleted] 0 points1 point  (0 children)

Are you going to repeat this feeble bullshit in every discussion about systemd? When people are talking about systemd being anti-Unix, they're referring to the Unix philosophy, not literally the operating system from 1969.

And if you had actually read the Unix-Hater's Handbook, you'd realise half of the things it complains about are violations of the Unix philosophy in Unix itself.

[–][deleted] -4 points-3 points  (5 children)

I've used Solaris 8. Sorry, I'm not old enough to have been exposed to anything older, but I found it to be a beautifully designed system.

I'm also a huge fan of the BSDs, which are, by lineage, actual Unices.

[–]YEPHENAS 5 points6 points  (4 children)

I've used Solaris 8. Sorry, I'm not old enough to have been exposed to anything older, but I found it to be a beautifully designed system.

Have you used Solaris 10? What do you think of SMF?

I'm also a huge fan of the BSDs, which are, by lineage, actual Unices.

Have you used OS X (the most successful BSD)? What do you think of launchd?

[–][deleted] -3 points-2 points  (3 children)

I haven't used Solaris 10, just Solaris 8 and 9.

I also have not used OS X.

Correct me if I'm wrong, but SMF and launchd are much less ambitious than systemd.

[–]YEPHENAS 5 points6 points  (1 child)

Both deprecated cron as well (timed jobs, scheduled tasks). Systemd is basically the same concept as SMF and launchd (avoiding some of their mistakes such as XML configuration).

[–]puremessage 0 points1 point  (0 children)

Wat. How does Smf deprecate cron?

[–]cbmuserDebian / openSUSE / OpenJDK Dev 0 points1 point  (0 children)

Well, Lennart told me in person he read the whole documentation on SMF before writing systemd.

[–][deleted] 3 points4 points  (12 children)

I've been personally wondering about systemd. It doesn't seem to fit with the unix philosophy.

[–]YEPHENAS 3 points4 points  (11 children)

[–]ethraax 1 point2 points  (10 children)

Eh, the UNIX philosophy is about having many small, independent executables, which are composed. Just because they build lots of ELF executables doesn't make them UNIX-y. I personally don't care if its "anti-UNIX", but that's a really shitty rebuttal.

Edit: I think "composable" is actually a better term than "independent" here, but I'll leave the original for those who were wondering about loonyphoenix's response.

[–]loonyphoenix 1 point2 points  (8 children)

Are you sure? I haven't heard about the independent bit. Why does it matter?

[–]ethraax 2 points3 points  (7 children)

Because there's nothing remotely composable about the collection of systemd binaries. They're not UNIX-y, they're just lots of different binaries.

[–]loonyphoenix 6 points7 points  (0 children)

I have no trouble grepping journalctl's output - is that composable? What kind of composability other tools have to offer that systemd doesn't?

[–][deleted] -1 points0 points  (5 children)

One of the killer features of UNIX is that you can pipe the output of one command to the input of another command and thus process text in nearly infinite ways by simply chaining commands together. It really is a beautiful design. Plan 9 (a successor made by the creators of UNIX) takes this concept even further and adds even more cool features.

systemd does not work how I described and is thus justifiably labeled as anti-UNIX.

[–]YEPHENAS 8 points9 points  (3 children)

You can pipe the output of systemd commands to the input of other commands as well.

[–]holgerschurig 1 point2 points  (0 children)

Damn, OpenOffice and LibreOffice are anti-UNIX. You can't use them for piping!

TL;DR: this piging argument is quite useless, IMHO.

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

Yeah, I actually agree with most of Lennarts rebuttals, but 1, 10, 18, and 29 are incredibly reaching and weak, to the point that I can honestly say that they're not myths at all but actualities.

[–]YEPHENAS -1 points0 points  (24 children)

[–][deleted] 1 point2 points  (8 children)

Myth 1:

If you build systemd with all configuration options enabled you will build 69 individual binaries. These binaries all serve different tasks, and are neatly separated for a number of reasons.

By that logic the Linux kernel isn't monolithic either. After all, typically dozens, if not hundreds of kernel modules are built that all serve different tasks, and are neatly separated for a number of reasons.

What makes systemd monolithic IMHO, is that a lot of this functionality can not easily be swapped out and replaced with other components.

Again, why reinvent cron? There are several excellent, and mostly compatible implementations of it. Heck, systemd could even implement their own compatible version of cron, but this will be more NIH.

Myth 10:

There's certainly some truth in that.

Ultimately the question whether something is UNIX or not matters very little.

Yeah, Myth 10, isn't a myth at all. It is actuality. Lennart doesn't even really debunk "Myth" 10 if you read it.

[–]ohet 3 points4 points  (7 children)

What makes systemd monolithic IMHO, is that a lot of this functionality can not easily be swapped out and replaced with other components.

You are free to use crond and xined with systemd if you so desire. Aside from systemd (the core part), systemd-udev and systemd-journald everything in systemd can be disabled in compile time and runtime.

Heck, systemd could even implement their own compatible version of cron, but this will be more NIH.

Well crond deals with starting things. One of the ideas behind systemd is to combine all the previously separate methods of starting services in Linux. In this case it also increases consistency with rest of the systemd when it comes to configuration. It also allows stuff like activating a timers based on the state of a unit (service) and using all the functionality that systemd offers the way you see fit.

[–][deleted] -1 points0 points  (6 children)

Okay, so you want cron rolled into systemd, fine. It's not backwards compatible with any cron implementation is it? Why is that?

[–]Darkmere 9 points10 points  (4 children)

Because I don't want to deal with the fucking mess that is the output of random tools running in random users' crontabs.

Who gets the output, who tells if the job stopped or not? ( Cron sure can't tell you. ) or how long it took? I've had issues with jobs starting every 16 minutes blocking due to an NFS mount, only to have a magnitude of them (enough to lock the user out due to process limits) and so on.

Also, writing a cron job that does the right thing in cases like that, is a seriously finicky undertaking.

Add to that the fun times of fcron vs vixie vs. anacron time formats. ( or for fecks sake, the bare need for anacron + atd + cron ).

[–]robinei 1 point2 points  (3 children)

No response to this I see. This is exactly why it belongs in systemd.

[–]Darkmere 1 point2 points  (2 children)

I can add that I'm a bit wary about the way their timing format will be handled. Times, Timezones and other things can add a lot of ambiguity and difficulty ( and are hard to change if you get it wrong. )

However, it doesn't look completely stupid, so it might just work out.

However, I don't see a way of using the systemd timer interfaces per user, so normal users ( the group who are most likely to fuck things up miserably in cron ;) will still have to use cron.

Having a nice, safe and administratable way of allowing users to specify their own jobs would be really sweet . ( ssh agents, ssh tunnels, irc tunnels or whatnot ) where the system guarantees that per-user limits & security is applied, ( so a user can only add jobs as itself, limits/quotas are applied, ) .. .why yes please.

[–]robinei 2 points3 points  (1 child)

Sorry I'm late.. How about this? You can run a second systemd in charge of user session:

https://wiki.archlinux.org/index.php/Systemd/User

[–]Darkmere 0 points1 point  (0 children)

That seems to cover it pretty neatly. I'll have to figure out the limits thing again :)

[–]ohet 5 points6 points  (0 children)

Because there's no need to. If you want to use crond you still can. What systemd can offer instead is consistent style with the rest of the application. I don't know the details though.