Originally posted by Krejzi
View Post
Announcement
Collapse
No announcement yet.
GNOME 3.13.2 Temporarily Depends On Systemd
Collapse
X
-
Originally posted by Rexilion View Post
What is the point of systemd in one sentence?
Originally posted by Rexilion View Post- To provide reliable process management. (but what about the syslog and network capabilities?)
The only way to do that, is to make a new logging system like "journald" that can cope with that situation, because syslogd can't. Of course, one could just stop it there, and just have "journald" forward to syslogd, but in effect you would run with two logging systems, reducing syslogd to a mere logging sink that writes to the disk.
The step to provide "journald" with log-writing functionality was a small step, that reduced both system overhead and attack surface.
But the indexed journal solves many problems at the same time too;
1. it provides a proper API for log watching systems. Previously such systems would rely on grepping certain text fragments, and that in effect made the error messages an API in it self; if a program changed its error messages it would break thousands of homespun watch-scripts in the wild. Now those watch programs can rely on a stable API and logging structure to ensure that they work, even if an error message changes from "foobar terminated" to "foobar stopped".
Log-watching is within the larger scope of process management.
2. Multi language error messages (see above)
3. Secure logging: since the logging information is controlled by PID1 on the kernel level, it can offer kernel level protection of the logging info. On a systemd distro, one can distinguish between the real "cupsd" writing to the log file, and a bash script that mere claims it is "cupsd".
There is also log-consistency checks and even forward security sealing.
Secure logs is within the larger scope of process management.
4. It provides a proper API for upstream developers. It is extremely hard to make GUI logviewers with the old rather unstructured text dumps of syslogd. Most of those made were just glorified "less" pagers with windows decorations.
Simple things like sorting, or interleaving messages from two systems, or providing monotonic time lines, or even filtering, became major chores. With systemd and its journald, it becomes very easy to make log viewing programs that are full featured.
My point here is mainly to show, that there actually is some really sound design decisions behind systemd, and that things that may look apart, like process management and logging, actually have good reasons to be tightly integrated. There actually is both a good design and a design scope behind systemd, it isn't just growing in every direction like some people think.
It is admittingly a wide design scope, but at least there is one, that is much more than can be said for the competition.
Now, one can argue all day about whether such tight integration should be developed in unison in one umbrella project, or be spread out among totally different projects. But this remains a sterile theoretical discussion as long as there isn't actual tight integration between such projects outside systemd.
I like systemd, but I would love that it actually had some healthy competition, but it doesn't. Development outside systemd seems extremely fragmented with crucial pieces like user management (ConsoleKit), just bit-rotting away like no one cared.
It is a major selling point for systemd, that it actually exist and is quite mature, which is quite unlike its competition. Like it or not, it is there all the Linux integration seems to be happening.
Comment
-
Originally posted by Vim_User View PostBut if they link to a systemd library, how can this be temporary? Unless the GNOME developers pan to implement those functions themselves, of course.
Comment
-
Originally posted by Vim_User View PostBut if they link to a systemd library, how can this be temporary? Unless the GNOME developers pan to implement those functions themselves, of course.
But at least they will offer Gnome/X using legacy code, at least for a while. It was that legacy support that have been temporarily removed. But offering Consolekit legacy support got to stop at some time in the future, since it is infeasible and unsound to support bit-rotting projects for years on end.
It is totally up to the non-systemd distros and their developers to help upstream projects like Gnome and KDE to function on their distros.
Comment
-
Originally posted by Vim_User View PostBut if they link to a systemd library, how can this be temporary? Unless the GNOME developers pan to implement those functions themselves, of course.
so, yea this is surely temporary fast hack. it is simply faster to set up environment like that and later abstract it by defining connecting interface+remove dependancy. the only way where you would depend on original interface is if that interfaces definition would be abstracted from its owner in order to provide base for other implementors. i don't like gnome how it evolves, but that won't make me bash it where it doesn't deserve
Comment
-
It seems to me that this isn't a bad thing. I know not one person who uses GNOME on BSD, or on anything at all really, unless you count Cinnamon, and if I remember correctly as of version 2 that no longer relies on the GNOME package as a direct dependency - in other words - we're not going to lose much. All BSD projects are BSD-licensed and as GNOME is a direct part of GNU the effort is really sort of wasted to keep it BSD compatible, its only ever going to be a port or package and never included in base, unless you're PC-BSD.
I have to say I don't mind Wayland one bit, because it is indeed more UNIX way conforming to vs X11. The issue is that it currently depends on udev, a GNU/Linux dependency. It'd be nice if instead of relying on a piece of systemd that Wayland instead used a protocol which could map to udev, HAL, devd (FreeBSD's equivalent) or whatever the underlying system used for that role.
Comment
-
Originally posted by Rexilion View PostFirst of all, I like systemd.
As for your question: everything is being shoved into one piece of software. Windows could be viewed as a humongous base package with very little customization or choice (extending far beyond the current state of GNU/Linux including systemd). Systemd is being perceived as limiting people in choice as it seems to handle more and more features.
Systemd is currently:
sysvinit + udev + consolekit + cron + anacron + syslog + logrotate + various network scripts (+ dhcp client/server) + time server
This kind of departs from the idea to have seperate daemon's / software handle specific and well definied tasks. And to handle these well.
However, systemd can still be stripped to a bare minimum of sysvinit + udev according to it's developers.
I *am* starting to wonder: when will it end? Eventually it might become too big and end up like HAL.
Comment
-
Originally posted by Vim_User View PostBut if they link to a systemd library, how can this be temporary? Unless the GNOME developers pan to implement those functions themselves, of course.
if there is one thing that i adore about systemd is the fact that they always define dbus interface for everything. don't like it? create service that hosts dbus server for that interface and not one client should notice any difference
Comment
-
Originally posted by Chousuke View PostThis is the point that keeps confusing people. the "systemd" application isn't really getting any bigger or accumulating features outside of its intended purpose. What is growing is the *project*, which like you said consists of a bunch of tools. The BSD comparison is quite apt... Claiming that "systemd does everything" is pretty much equivalent to claiming that init on BSDs does everything because it's part of an integrated base system.
There are differences Chousuke:- The BSDs base software consists of applications that perform a limited, well definined function. They're also independent of each other, if something in your cat binary breaks its not going to affect any other binary unless cat is a specific dependency. In systemd, they're all tied together. udev is the main duct-tape, glue, whatever term you'd want to use for systemd-udev. If anything breaks udev, the entire monolith breaks apart.
- The BSD userland is mostly POSIX compliant and can be run on top of the Linux kernel, or the illumos kernel without much difficulty, unlike systemd on BSD, which will never happen at least for FreeBSD and OpenBSD, and I doubt illumos is interested either.
Comment
-
Originally posted by TeamBlackFox View PostThere are differences Chousuke:- The BSDs base software consists of applications that perform a limited, well definined function. They're also independent of each other, if something in your cat binary breaks its not going to affect any other binary unless cat is a specific dependency. In systemd, they're all tied together. udev is the main duct-tape, glue, whatever term you'd want to use for systemd-udev. If anything breaks udev, the entire monolith breaks apart.
- The BSD userland is mostly POSIX compliant and can be run on top of the Linux kernel, or the illumos kernel without much difficulty, unlike systemd on BSD, which will never happen at least for FreeBSD and OpenBSD, and I doubt illumos is interested either.
top - 16:54:30 up 9:03, 2 users, load average: 0,87, 0,70, 0,76
Tasks: 2 total, 0 running, 2 sleeping, 0 stopped, 0 zombie
%Cpu(s): 21,1 us, 26,3 sy, 21,1 ni, 31,6 id, 0,0 wa, 0,0 hi, 0,0 si, 0,0 st
KiB Mem: 3915924 total, 2401508 used, 1514416 free, 412 buffers
KiB Swap: 4192252 total, 0 used, 4192252 free. 1698380 cached Mem
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 26440 3624 1832 S 0,0 0,1 0:07.74 systemd
353 root 20 0 29744 1620 1028 S 0,0 0,0 0:00.54 systemd-udevd
Comment
Comment