this post was submitted on 04 Oct 2023
728 points (95.3% liked)

linuxmemes

21222 readers
37 users here now

Hint: :q!


Sister communities:


Community rules (click to expand)

1. Follow the site-wide rules

2. Be civil
  • Understand the difference between a joke and an insult.
  • Do not harrass or attack members of the community for any reason.
  • Leave remarks of "peasantry" to the PCMR community. If you dislike an OS/service/application, attack the thing you dislike, not the individuals who use it. Some people may not have a choice.
  • Bigotry will not be tolerated.
  • These rules are somewhat loosened when the subject is a public figure. Still, do not attack their person or incite harrassment.
  • 3. Post Linux-related content
  • Including Unix and BSD.
  • Non-Linux content is acceptable as long as it makes a reference to Linux. For example, the poorly made mockery of sudo in Windows.
  • No porn. Even if you watch it on a Linux machine.
  • 4. No recent reposts
  • Everybody uses Arch btw, can't quit Vim, and wants to interject for a moment. You can stop now.

  • Please report posts and comments that break these rules!

    founded 1 year ago
    MODERATORS
     
    you are viewing a single comment's thread
    view the rest of the comments
    [–] [email protected] 79 points 1 year ago* (last edited 1 year ago) (30 children)

    If you really want the short version:

    Systemd was half baked literally when it came out and figuratively as an idea, so much so that there’s already a replacement for it in the works.

    A longer version:

    Systemd replaced the init script style of boot and process management, which had been in place for decades. init scripts were so simple they could be understood just by looking at the name: the computer is Initialized by Scripts. Systemd was much more complex and allowed many more tools to interact with the different parts of the computer, but people had to learn these tools. Previously all a person had to understand to deal with the computer was how to edit a text file and what various commands and programs did. After systemd a person has to understand how to use the dozens of invocations of systemctl and it’s variants and if they are dealing with a problem, —you know, the only reason a person would ever be dealing with initializing services— they gotta know what’s going on with the text files that systemd uses to run different commands and programs.

    So a person who already understood what was going on might rightly say “hey, this systemd thing is just the same shit with different file locations and more to learn”.

    People complain about the creator and maintainer of systemd, lennart poettering . Poettering is also the person behind pulseaudio, an powerful but complex audio management daemon in Linux whose name you only recognize because it’s caused you no end of trouble. Pulseaudio was also replaced relatively quickly by pipewire.

    The argument could be made (and probably has) that poetterings work is indicative of the problems with foss developers working as employees of major companies with their job responsibilities inclusive of their foss projects. The developer in that situation has an incentive to make big sweeping changes, they’re being paid for it after all, instead of being more careful and measured.

    When every big foss maintainer is trying to find a way to justify being paid for it, their projects are never done.

    At least poettering is working for Microsoft, ruining windows now…

    E: oh my god I forgot about the binary log files! So before (and now), the universal format for log files was plain text. You know, because it’s a log that’s text. Systemd uses binary log files that need a special tool to open and parse. So if you want to look through them on a computer without that tool you’re kinda screwed. Now systemd isn’t the only software package with binary log files, but many people have made the very persuasive argument that it’s not a trait to copy.

    E2: actually spelled the man’s name right. Thanks @[email protected] !

    [–] [email protected] 12 points 1 year ago (4 children)

    Yep, to add on as well as summarized this... Linux has historically had a design methodology of "everything is a file". If your not familear with the implications of this, it means your command line tools just kind of work with most things, and everything is easy to find.

    For instance, there's no "registry / regedit" on Linux... There's just a folder with a config file that the application stores settings in. There's no control panel application to modify your network settings... Just a text file on your OS. Your system logs and startup tasks were also (you guessed it) sinole filea on the system. Sure there might be GUI apps to make these things easier for users, but under the hood it reads and writes a file.

    This idea goes further than you might assume. Your hard drive is a file on the file system (a special file called a block device). You can do something like "mount /dev/sda1 /home/myuser/some_folder" to "attach" the drive to a folder on the system, but that special block device (dev/sda1 in this case) can be read and written to byte by byte if you want with low level tools like dd.

    Even an audio card output can show as a file in dev (this is less the case now with pipewire and pulse), but you used to be able to just echo a raw audio file (like a wav file) and redirect the output to your audio device "file" and it would play out your speaker.

    Systemd flipped this all around, and now instead of just changing files, you have to use applications to specify changes to your system. Want to stop something from starting? Well, it used to be that you just move it out of the init directory, but now you have to know to "systemctl disable something.service", or to view logs " journalctl -idk something.service" I dont even remember the flags for specifying a service, so I have to look it up, where it used to just be looking at a file (and maybe use grep to search for something specific)

    [–] [email protected] 7 points 1 year ago

    Systemd flipped this all around, and now instead of just changing files, you have to use applications to specify changes to your system. Want to stop something from starting? Well, it used to be that you just move it out of the init directory, but now you have to know to “systemctl disable something.service”, or to view logs " journalctl -idk something.service" I dont even remember the flags for specifying a service, so I have to look it up, where it used to just be looking at a file (and maybe use grep to search for something specific)

    not true, SystemD still uses files for this very reason....

    and what is the last time you used the text version of a syslog.8.xz file?

    you are basically complaining that you need to learn how your system works... before you can use it. and there is nothing preventing you from making your own distro that doesn't uses SystemD, or using rSyslog instead of systemd-journal for logging.

    incidentally, to just view the logs its journalctl -xef (see https://man7.org/linux/man-pages/man1/journalctl.1.html for what that means) it will be like the syslog you know.

    want to see the status of a daemon : systemctl status want it for the system systemctl status want to see the logs of only a specific daemon journalctl -xefu . this all, means that its easier to find the logs for diffrent services since there not scattered somewhere in the /var/log dir... (is it in the syslog, does it have its own log file, is it in the kernel log)...

    You are free to setup your system in whatever way you like... but whining about that something works differently is "Microsoft mentality"... lets leave that with them.

    load more comments (3 replies)
    load more comments (28 replies)