systemd VS nixpkgs

Compare systemd vs nixpkgs and see what are their differences.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured
systemd nixpkgs
524 979
12,714 16,249
2.0% 3.6%
10.0 10.0
2 days ago 3 days ago
C Nix
GNU General Public License v3.0 only MIT License
The number of mentions indicates the total number of mentions that we've tracked plus the number of user suggested alternatives.
Stars - the number of stars that a project has on GitHub. Growth - month over month growth in stars.
Activity is a relative number indicating how actively a project is being developed. Recent commits have higher weight than older ones.
For example, an activity of 9.0 indicates that a project is amongst the top 10% of the most actively developed projects that we are tracking.

systemd

Posts with mentions or reviews of systemd. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-06-03.
  • Systemd v256
    1 project | news.ycombinator.com | 12 Jun 2024
  • systemd v256
    1 project | news.ycombinator.com | 12 Jun 2024
  • Debian's /Tmpest in a Teapot
    1 project | news.ycombinator.com | 4 Jun 2024
    It isn't cleaned up at boot IIRC. Unless you leave your computer off for 30 days and then come back [1] :).

    But it shouldn't be too hard to write a relativly simple systemd.unit file that does that at boot. After all the main part would be `Requires/After=local-fs.target` and something like `ExecStart=bash -c 'rm -rf /var/tmp/*'` I think (you'd need to double check what exactly to do if you want to do this).

    [1] https://github.com/systemd/systemd/issues/33162

  • Ask HN: Who wants to be hired? (June 2024)
    13 projects | news.ycombinator.com | 3 Jun 2024
    Email: v[at]vda.io

    Hi HN! I'm a Linux security engineer looking for work on Open Source software. I've done some security work in the Linux Kernel (containerization primitives), in systemd as well as some work on Secure Boot.

    Notably I've implemented auto-enrollment of secure boot keys in systemd. See (https://github.com/systemd/systemd/pull/20255 & https://lpc.events/event/16/contributions/1259/).

    Lately, I've been very interested in MicroVMs and minimizing the Linux Kernel attack surface.

    Message me if any of that sounds interesting!

  • It's always TCP_NODELAY. Every damn time
    7 projects | news.ycombinator.com | 9 May 2024
  • Dlopen() Metadata for ELF Files
    1 project | news.ycombinator.com | 8 May 2024
  • PoC to demonstrate root permission hijacking by exploiting "systemd-run"
    2 projects | news.ycombinator.com | 4 May 2024
    No, the OP was not sent any harassment, the OP _did_ the harassment as it can be seen in the tweets. I mean, they are right there, just click on the links you shared. One of the OP's followers even openly called for the assassination of the project maintainer, and you have the galls to defend him? This is truly deranged stuff.

    And again, there is no "vulnerability", there is simply a person that doesn't know how Linux works and has learned something new. Which again it's fine, nobody knows everything and we all learn new things everyday, it's just that normal and sensible people don't use that to make grand claims on social media and start harassment campaigns culminating in death threats.

    Professional security researchers responsibly report real issues using the appropriate channels, such as defined at: https://github.com/systemd/systemd/security/policy this is not the work of a researcher, this is a grifter looking for self-promotion on social media.

  • Run0 – systemd based alternative to sudo announced
    6 projects | news.ycombinator.com | 1 May 2024
    > 3. even `adduser` will not allow it by default

    5. useradd does allow it (as noted in a comment). 6. Local users are not the only source, there things like LDAP and AD.

    7. POSIX allows it:

    * https://github.com/systemd/systemd/issues/6237#issuecomment-...

  • Systemd Rolling Out "run0" As sudo Alternative
    2 projects | news.ycombinator.com | 30 Apr 2024
    > I for one love to type out 13 extra characters

    FWIW, systemd is normally pretty good at providing autocomplete suggestions, so even if you don't want to set up an alias you'll probably just have to type `--b ` to set it.

    > I wonder what random ASCII escape sequences we can send.

    According to the man page source[0]:

    > The color specified should be an ANSI X3.64 SGR background color, i.e. strings such as `40`, `41`, …, `47`, `48;2;…`, `48;5;…`

    and a link to the relevant Wikipedia page[1]. Given systemd's generally decent track record wrt defects and security issues, and the simplicity of valid colour values, I expect there's a fairly robust parameter verifier in there.

    In fact, given the focus on starting the elevated command in a highly controlled environment, I'd expect the colour codes to be output to the originating terminal, not forwarded to the secure pty. That way, the only thing malformed escapes can affect is your own process, which you already have full control over anyway.

    (Happy to be shown if that's a mistaken expectation though.)

    [0] https://github.com/systemd/systemd/blob/main/man/run0.xml

    [1] https://en.wikipedia.org/wiki/ANSI_escape_code#SGR_(Select_G...

  • Crash-only software: More than meets the eye
    1 project | news.ycombinator.com | 30 Apr 2024

nixpkgs

Posts with mentions or reviews of nixpkgs. We have used some of these posts to build our list of alternatives and similar projects. The last one was on 2024-06-03.
  • Show HN: Brioche – A new Nix-like package manager
    6 projects | news.ycombinator.com | 3 Jun 2024
    Agreed. NixOS is a marvel of engineering to me, and kind of hard to go back from once you get used to it. Automatic snapshotting on every configuration change, the entire system state being configurable through text files and therefore never being ambiguous, being able to temporarily install stuff without it polluting your path for forever by using nix-shells, clearly being able to see and define stuff like boot parameters and kernel modules are just insanely wonderful things, all while still using (I think) a vanilla kernel and really no runtime overhead, allowing you to make an insanely lean system without ever being unsure if you're missing something. In my mind about as close to an "objectively better" way to handle an OS (at least for people who are technical). I have no desire to go back to any other distro for my server.

    But the Nix language itself is really quite annoying. I mean, I've more or less gotten used to its annoyances, and I do think that some of the DSLs it has are excellent (I really like the Nginx and systemd configuration stuff, for example), and a lot of the configs are just `services.myservice.enable = true` which is fine, but a lot of the time I'm kind of confused about what syntax is allowed and how loops work and the like. It's not horrible or anything, just a bit annoying because I'll occasionally have to do a nixos-rebuild like three or four times because I messed up some subtle syntax, and it's especially annoying if I have to go dig at the root Nix package to find out what I did wrong [1].

    I think decentralizing stuff in the form of flakes might be able to help with this, if for no other reason the area in which you'd be forced to look for configuration stuff could be reduced, but I do think NixOS would benefit from some rearchitecture.

    [1] Which happened yesterday with an ethernet card configuration: https://github.com/NixOS/nixpkgs/blob/nixos-24.05/nixos/modu...

  • Linux virtual machines, with a focus on running containers
    9 projects | news.ycombinator.com | 27 May 2024
    I agree NixOS + docker/podman-compose is a good compromise but one has to be aware NixOS still run podman as root (1) [0]. What is very scary and defeat the purpose of rootless container.

    - [0] https://github.com/NixOS/nixpkgs/issues/259770

  • Enlightenmentware
    22 projects | news.ycombinator.com | 20 May 2024
    I don't think there's a right way to do it, you are correct in that learning NixOS is pretty tedious.

    Re: flakes, my personal opinion is to use flakes. While Flakes are imperfect, they still provide a lot of functionality that Nix doesn't otherwise have. In my mind, it's like Nix's equivalent of "Go modules" or something like that. I do feel like people who do not like flakes make many valid points (the boilerplate, the fact that the top-level flake expression is a subset of Nix for some reason, etc.) but the argument isn't that those problems shouldn't be solved, it's that flakes are a sub-optimal design. Since they're so proliferated throughout the ecosystem though, it is quite unlikely that Nix or any prominent fork will outright drop flakes support any time in the near future. For better or worse, Flakes are part of the Nix ecosystem for the foreseeable future. In my opinion, one may as well take advantage of that.

    If you haven't already, I'd get your feet wet with installing Nix on a non-NixOS machine first, and please feel free to ask questions about Nix in the NixOS Discourse "Help" section.

    I have some recommendations:

    1. https://github.com/nix-community/nix-direnv - Since Nix derivations usually wrap around other build systems, the entire derivation is recomputed when any file in it changes; using direnv, you can just get your normal dev tools upon cd'ing into your project directories. This gives you a lot of the benefits of Nix during local development, but with your normal stack, and without needing to globally install anything.

    2. If you are trying to build something, chances are you can find inspiration in Nixpkgs. Are you curious how you might package a Bevy game? No problem: literally search "bevy" on the Nixpkgs GitHub repo and see what comes up. I found a derivation that does: https://github.com/NixOS/nixpkgs/blob/master/pkgs/games/jump...

    3. If you use flakes, you should keep the flake "schema" handy. There are a lot of different kinds of flake outputs and there are different ways to specify the same thing, which is somewhat needlessly confusing; keeping the flake schema handy will make it easier to understand what Nix is looking for in a flake, which might make it easier to see what's going on (especially if it's obfuscated.) The most important takeaway here: A command like `nix run flake#attr` will try multiple different attributes. https://nixos.wiki/wiki/flakes#Flake_schema

    4. Likewise, I really recommend reading up on what NixOS modules are. NixOS modules are the basis for configurations on NixOS, and having a clear understanding of what is even going on with them is a good idea. For example, you should understand the difference between the Nix language's `import` directive, and using the NixOS modules `imports` attribute to import other NixOS modules. Understanding how the configuration merge works saves a lot of headache, makes it easier to understand how people's configurations works, and also makes it easier to modularize your own NixOS configurations, too. https://nixos.wiki/wiki/NixOS_modules

    Unfortunately though, there's just no way to make it "click", and I can't guarantee that it's worth all of the effort. For me, I felt it was, but yes, there's no one correct way to do it.

    But please feel free to ask questions if anything seems confusing.

  • Tracexec: TUI for tracing execve and pre-exec behavior
    5 projects | news.ycombinator.com | 8 May 2024
    This will drop you into a shell where `tracexec` is installed.

    [1]: https://github.com/NixOS/nixpkgs/pull/310158

  • Nix: The Breaking Point
    3 projects | news.ycombinator.com | 29 Apr 2024
    I don't think so. The article is probably intended for the Nix community, so the author doesn't need to convince HN that something is going on. If as an outsider you are interested then you need to look into it yourself, the community has no obligation to make their internal conflicts legible to the outside world.

    As an outsider myself, it certainly looks like something is going on as more than 20 Nixpkg maintainers left in a week: https://github.com/NixOS/nixpkgs/issues?q=label%3A%228.has%3...

  • Maintainers Leaving
    1 project | news.ycombinator.com | 26 Apr 2024
  • Air Force picks Anduril, General Atomics to develop unmanned fighter jets
    1 project | news.ycombinator.com | 25 Apr 2024
    https://github.com/NixOS/nixpkgs/commits?author=neon-sunset
  • Eelco Dolstra's leadership is corrosive to the Nix project
    6 projects | news.ycombinator.com | 22 Apr 2024
    I see two signers in the top 6 displayed on https://github.com/NixOS/nixpkgs/graphs/contributors
  • 3rd Edition of Programming: Principles and Practice Using C++ by Stroustrup
    6 projects | news.ycombinator.com | 19 Apr 2024
    For a single file script, nix can make the package management quite easy: https://github.com/NixOS/nixpkgs/blob/master/doc/languages-f...

    For example,

    ```

  • NixOS/nixpkgs: There isn't a clear canonical way to refer to a specific package
    1 project | news.ycombinator.com | 9 Apr 2024

What are some alternatives?

When comparing systemd and nixpkgs you can also consider the following projects:

openrc - The OpenRC init system

asdf - Extendable version manager with support for Ruby, Node.js, Elixir, Erlang & more

tini - A tiny but valid `init` for containers

Home Manager using Nix - Manage a user environment using Nix [maintainer=@rycee]

inotify-tools - inotify-tools is a C library and a set of command-line programs providing a simple interface to inotify.

git-lfs - Git extension for versioning large files

s6 - The s6 supervision suite.

easyeffects - Limiter, compressor, convolver, equalizer and auto volume and many other plugins for PipeWire applications

earlyoom - earlyoom - Early OOM Daemon for Linux

spack - A flexible package manager that supports multiple versions, configurations, platforms, and compilers.

supervisor - Supervisor process control system for Unix (supervisord)

waydroid - Waydroid uses a container-based approach to boot a full Android system on a regular GNU/Linux system like Ubuntu.

InfluxDB - Power Real-Time Data Analytics at Scale
Get real-time insights from all types of time series data with InfluxDB. Ingest, query, and analyze billions of data points in real-time with unbounded cardinality.
www.influxdata.com
featured
SaaSHub - Software Alternatives and Reviews
SaaSHub helps you find the best software and product alternatives
www.saashub.com
featured