11 ms·
SystemE: A lightweight systemd replacement written in Emacs Lisp
- todd8 7y agoInteresting. This runs on KISS Linux. https://getkiss.org/ https://getkiss.org/ Linux has become so versatile and powerful, but I miss the days of simple OS’s. I used to be a Unix OS architect and would study kernel code professionally while working on virtual memory systems, distributed file systems, and so forth. Linux has gotten so big now that I don’t think I’d have the energy to dive into the kernel code anymore. The KISS Linux distro looks interesting because of it’s extreme focus on simplicity.
- m-p-3 7y agoAnd complexity is the enemy of security too. I like to keep things simple, even though many real-life scenarios don't always bend themselves to simplicity.
- qwerty456127 7y agoLooks curious, I'd love to try it, I always wanted a system which wouldn't run anything I don't need (e.g. I never need Avahi or Samba, I don't need a user manager and would love to startx, I agree to sacrifice boot speed for simplicity - waiting a minute is ok for a desktop PC to start if you get something as valuable as understanding your system in exchange). That's a pity it doesn't have binary packages - building everything I need from source is going to take too long. I also doubt everything is going to work without the D-Bus. AFAIK many apps also fail to work with musl, and busybox might not include all the features of the classic GNU tools I may occasionally need. So I wish there were a slightly less radically simple Linux distribution. PS: and I hate sh (as many others probably do), everything-LISP would probably be more fun.
- anthk 7y agoYou'd love Guix.
- qwerty456127 7y agoIsn't it too GNU? I want all of my system (including all the hardware) to actually function and this is hardly possible without non-free code.
- owl57 7y agoYou can install vanilla kernel and firmware. It won't ever be in the official repos, but the needed configuration is relatively simple and easy to google.
- _emacsomancer_ 7y agoit's easy to add additional channels/repositories, e.g. https://github.com/guix-users/guix-nonfree https://github.com/guix-users/guix-nonfree , https://gitlab.com/divansantana/guix-packages-nonfree https://gitlab.com/divansantana/guix-packages-nonfree , &c.
- NieDzejkob 7y agoI have found this channel to be the most complete and up-to-date: https://gitlab.com/nonguix/nonguix https://gitlab.com/nonguix/nonguix
- sjy 7y agoHave you tried Arch? It has binary packages; GNOME, Avahi, Samba and similar basic but non-essential packages must be explicitly installed; the package manager is ridiculously fast; and it’s usually easy to install proprietary blobs and other unsupported stuff using the huge user package repository, if you’re comfortable with the associated risks.
- vpzom 7y ago> systemd
- gmueckl 7y agoThere' artix Linux for that: https://artixlinux.org/ https://artixlinux.org/ It's a very good derivative of arch that removes systemd.
- JdeBP 7y agoHyperbola is an Arch Linux derivative that famously does not have systemd. There are others. * https://hyperbola.info/ https://hyperbola.info/
- qwerty456127 7y ago> A fully free, stable, secure, simple, lightweight and long-term support distribution The first, second and the last attributes make a kind of distributions I am really (really!) glad they exist but, unfortunately, am hardly going to use because from the real life perspective this means your hardware is not going to work, you won't be able to read common file formats and you will be limited to ancient version of software.
- qwerty456127 7y agoI used Arch during the days before it switched to systemd (and before Ubuntu introduced Unity) and enjoyed it until I have accidentally found out Ubuntu feels faster on my PC so I switched to Ubuntu. Once Ubuntu switched to GNOME3 I have switched to Manjaro (with KDE5) and I really love it (it feels like the perfect spot between Arch freshness and reasonable stability - you still get the fresh stuff reasonably fast but they test it before that so it's much less likely for an update to ruin your system) but I don't know how to get rid of Avahi: :: removing avahi breaks dependency 'avahi' required by geoclue :: removing avahi breaks dependency 'avahi' required by gvfs :: removing avahi breaks dependency 'avahi' required by kdnssd :: removing avahi breaks dependency 'avahi' required by libcups :: removing avahi breaks dependency 'avahi' required by mpd :: removing avahi breaks dependency 'avahi' required by nss-mdns :: removing avahi breaks dependency 'avahi' required by ostree :: removing avahi breaks dependency 'avahi' required by pulseaudio-zeroconf :: removing avahi breaks dependency 'avahi' required by sane i.e. I certainly need CUPS (to have a virtual PDF printer) and it depends on it (and I don't even know what 2/3 of the rest of the packages listed do). It is also very much possible the situation is the same on Arch. Also, I don't really mind systemd from the practical point of view but the actual idea we were speaking about is having a simple, intuitive init system, which systemd is not.
- vpzom 7y agoThoughts on https://voidlinux.org/ https://voidlinux.org/?
- petre 7y agoIt's nice, simple, boots fast. Uses runit as init. The package manager, XBPS, has a funny name which I always misspell, the tools are separate like legacy apt-get, apt-search etc and it's CLI is a bit like pacman's, as in not quite the user friendliest. Package number is comparable to alpine. It's probably a bit like a modern Slackware.
- blackhaz 7y agoHave you looked at BSDs?
- edgyquant 7y agoI wouldn't call any BSD simple. They have less kernel code than Linux, sure, but they are huge beats in of themselves.
- jonhohle 7y agoIn my experience as an end user, they are decidedly simpler, have much better documentation, and changes are broadcast through standardized release processes. I spend a lot less time “admin-ing” my FreeBSD servers than I did when they were Linux.
- zelly 7y agoFreeBSD you mean. OpenBSD and NetBSD are still simple. You can realistically read the entire source code of OpenBSD, compile it, and know exactly what's on your computer front to back. To do the same with Linux is a research project.
- skissane 7y ago> You can realistically read the entire source code of OpenBSD, compile it, and know exactly what's on your computer front to back. To do the same with Linux is a research project. openbsd/src is over 17,000 *.c files with over 3 million lines of code
- nineteen999 7y agoThat's just a light weekends reading for your average testicle in an eggcup.
- majewsky 7y ago> and know exactly what's on your computer front to back That's assuming you read all that firmware code already...
- zelly 7y agoCheck out OpenBSD. It gives me that old Linux feeling before it became corporate infrastructure. The code is not bloated like Linux so you can actually contribute as an individual.
- newnewpdro 7y ago> The code is not bloated like Linux so you can actually contribute as an individual. What on earth are you talking about? Individuals can and do contribute to Linux every day! The barrier to contributing to Linux is lower than ever, this is such utter nonsense.
- rat9988 7y agoIt is not. You are really dismissing his original point that the contribution is made difficult because of code bloat. I have a hard time believing this is easier than ever, as 20 years ago the code must have been simpler.
- newnewpdro 7y agoThe code bloat of what exactly? Are we talking about the kernel or the entire distro? Let's look at one of the favorite whipping boys from uninformed folks claiming linux systems are now bloated: systemd. In many ways the consolidation of various disparate userspace components that occurred with the advent of systemd has substantially simplified the task of contributing to anything it covers. There's now a mono repo encompassing a huge swath of the core of userspace with far less code duplication than we used to have in the bad old days where every little component was a snowflake project managed by its own respective cabal with its own mailing lists (if you're lucky) and its own ideas of how configuration files should be parsed, services installed/enabled/run, and generally a huge snowflake pile of redundant functionality. Anyone with basic C knowledge now can clone the well organized repo and in very little time be reading and modifying code in a DVCS, and with systems and processes like git and github in place you can have your first patch up in the form of a reviewable and upstream-mergable PR in under an hour, without anyone else's involvement! If you don't think this is has all lowered the barrier substantially for individual contributors interested in understanding, modifying, and contributing changes to the code underpinning their systems, you simply have no idea what it used to be like.
- dmos62 7y agoI hadn't heard of Kiss, looks cool. I'd say that the go-to simple linux option has been Slackware for a very long time. And the simple linux modern option is something like Void Linux. Simplicity largely comes from not using systemd in the case of Void, though I'd be reluctant to say the same of its (very powerful) package manager.
- majewsky 7y ago> focus on simplicity > explicitly uses Xorg instead of Wayland Just as I thought. No actual simplicity, just some neckbeards complaining about software evolving in the last 20 years.
- johnr2 7y ago> No actual simplicity, just some neckbeards complaining about software evolving... Care to rephrase that without the insulting terminology?
- Athas 7y agoNothing is particularly simple about X11, especially in its modern incarnations. It's much simpler to have an API that maps cleanly to what the hardware is actually doing, which is what Wayland is. You can still prefer X11 for its features, like network transparency, but it is more complex than Wayland.
- oblio 7y agoX is not simple.
- majewsky 7y agoWayland is just a vastly simpler architecture compared to Xorg, enabling lower redraw latency and tighter control of the display hardware on modern hardware (as in: systems where the GPU rather than the CPU computes the actual colors of pixels). Those concerns are more important for graphical desktop environments, not so much for terminal multiplexers [1]. Therefore most existing Wayland compositors are focused on conventional desktop users. People with a "I just need a bunch of terminal windows" mindset will look at these and complain about bloat, but it's not really bloat to be able to play games without screen tearing (an issue that I always had with Xorg and that's just gone with Wayland). And it's not bloat to be able to play audio in Firefox either (Firefox afair only supports PulseAudio). [1] Referencing the old 90s joke that Xorg is just a graphical terminal multiplexer, since the average Unix user mostly just uses it to have multiple terminal emulator windows open at the same time.
- lilyball 7y agoThis is fascinating, but I just have to ask why?
- michaelhoffman 7y agoFun.
- agumonkey 7y agoGNU fun?
- andrewshadura 7y agoLet me interject for a moment, but what you guys are referring to as fun, is in fact, GNU/fun, or as I've recently taken to calling it, GNU plus fun. Fun is not a thing unto itself, but rather another free component of a fully functioning GNU system.
- na85 7y agoOne could ask the same question about systemd and its ecosystem.
- lilyball 7y agosystemd and its ecosystem isn't built inside of Emacs.
- agumonkey 7y agoThat's because systemd is a mild editor lacking a decent lisp os
- flatiron 7y agoBecause it’s way better than what we had before. SystemD doesn’t care to be portable so it can expose a ton of nice Linux specifics and it centralizes a ton of stuff that was all over the place previously. I understand people hate it just consuming functionality one by one as it grows but from an end user perspective it’s been helpful.
- Koshkin 7y agoSee also http://www.informatimago.com/linux/emacs-on-user-mode-linux.html http://www.informatimago.com/linux/emacs-on-user-mode-linux....
- spudlyo 7y agoI think this is really cool, but calling it a "systemd replacement" feels like click bait to me. Systemd manages a huge number of things, and this doesn't even reap zombies, which all good init programs do. It doesn't support run levels, it doesn't support "resapwn" (for getty processes) -- hell feature-wise this isn't even a legit replacement for SysV init. Having said that, I think this is a neat idea, and it'd be cool to have an emacs server process as a true pid 1 init, and when you SSH or go to the virtual terminals you'd get an "emacsclient".
- microtherion 7y agoI was just going to say that "lightweight" and "systemd replacement" seem rather contradictory goals.
- kick 7y agoIt's called a joke, guys. The README is literally full of them.
- sirn 7y ago>The README is literally full of them. Looking at the author's .emacs[1], I'm quite sure the README is legitimate ;-) [1]: https://github.com/a-schaefers/dot-emacs/blob/master/.emacs https://github.com/a-schaefers/dot-emacs/blob/master/.emacs
- kick 7y agoSomething can be filled with jokes and yet legitimate!
- hkt 7y agoI was fooled until I saw "Emacs lisp"
- teknopaul 7y agoSaying that something is not a systemd replacement because it does not do x feature that systemd does misses the point that systemd does too much. /sbin/init can be simple, and written in any language, and when it is, its often better than systemd because of that. If software supports start but not stop or restart or enable disable as both systemV and systemd do, its still a fully functional systemd replacement if your context does not need those features
- chabad360 7y agoAs interesting as this is, SystemD replacement seems to be the wrong term, as it doesn't seem to support SystemD service, target, etc. files. Maybe a better term might be "Init System"...
- dbtx 7y agoRight. Don't replace systemd, compete with it. Don't remind everyone that your competitor exists.
- teknopaul 7y agoTo replace the functionality of something you dont have to read its ugly config files. :) E.g. nginx can be used as an apache replacement. If it read exiting config file typically you would call it a "drop in replacement".
- chabad360 7y agoConsidering how ubiquitous SystemD is, I think a drop in replacement might just be a better idea.
- gumby 7y agoOn the old fsf machine* I used Emacs as my login shell (in /etc/passwd), but this takes it to a whole new level. Outstanding! * yes there was a time when the fsf’s only computer was a fax 750 (“soon to be running gnu”)
- KC8ZKF 7y agoWhat did rms use? GDB?
- gumby 7y agoThat's not as weird as it might sound (perhaps you knew this). He used /bin/sh until bfox wrote bash. But on ITS, the PDP-10 OS we mostly used until the mid 80s, DDT (the debugger) was the shell. There were no core dumps for interactive programs; if your program halted abnormally you were already in the debugger so it was no big deal. The Lispm, of course, worked this way too although the debugger was more sophisticated than DDT.
- themckman 7y agoIf you’re looking for a service manager written in a lisp, there’s always GNU Shepherd. Written in and configured with Guile scheme.
- kbumsik 7y agoI'm curious if it is actually more "lightweight" than Systemd in terms of memory consumption or CPU load, especially it depends on emacs PID2. Less lines of code does not always means lightweight.
- whalesalad 7y agoPretty soon you'll be able to set your init process to just be emacs.
- m463 7y agoSo here's this new kid, systemd, mindlessly gobbling os functionality and annoying the elders with binary log files. And then the sleeping giants wake, Lisp and Emacs. 62-year old Lisp, based on Lambda calculus from 80-90 years ago, pretty much pioneered much of computer science. And 44-year old emacs and 35-year old elisp, they pioneered subsuming. I mean, there's a church of emacs. https://upload.wikimedia.org/wikipedia/commons/b/bf/Richard_Stallman_-_Preliminares_2013.jpg https://upload.wikimedia.org/wikipedia/commons/b/bf/Richard_... by the way, emacs has already been used as init: http://www.informatimago.com/linux/emacs-on-user-mode-linux.html http://www.informatimago.com/linux/emacs-on-user-mode-linux....
- KC8ZKF 7y agoWhat rough beast, its hour come round at last, slouches towards Bethlehem to be born?
- rusk 7y agoHaha thanks :-) Turning and turning in the widening gyre The falcon cannot hear the falconer; Things fall apart; the centre cannot hold; Mere anarchy is loosed upon the world, http://www.potw.org/archive/potw351.html http://www.potw.org/archive/potw351.html
- otabdeveloper4 7y ago> ...pioneered much of computer science. 'Computer science' is the study of information complexity and how it maps to solving computational problems, so no.
- exdsq 7y ago'Computer science' also heavily deals with the foundations of computation which very much involves lambda calculus, so yes.
- otabdeveloper4 7y agoLisp didn't pioneer lambda calculus, come on!
- steve1977 7y agoWhen something written in Emacs Lips is the lightweight alternative... we're living in marvelous times indeed...
- fctorial 7y agoI'm waiting for intellij to become a lightweight alternative.
- levosmetalo 7y agoYeah, just imagine, Eight Megabytes And Constantly Swapping.
- kazinator 7y ago$ ps aux | awk 'NR == 1 || /bash/' USER PID %CPU %MEM VSZ RSS TTY STAT START TIME COMMAND kaz 2105 0.0 0.0 30196 5676 pts/0 Ss 14:22 0:02 bash Bash on 64 bit Ubuntu 18: 29 meg footprint, 5.5 meg resident.
- tomThom 7y agoSystemL L stands for lightweight and (e)lectron.
- frank2 7y agoThe impression that Emacs and Emacs Lisp are heavyweight comes from the 1980s. (Since then Emacs Lisp has gained the ability to talk to GTK+ and to the GUI toolkits native to Mac and Windows, but has bloated up very little otherwise.) Compared to for example 2020's Firefox or Chrome, 2020's Emacs Lisp is very lightweight.
- dredmorbius 7y agoZawinski's Law, updated: All software attemps to expand until it can replace systemd.
- JdeBP 7y ago"emacs is a great operating system lacking only a decent text editor", goes the old joke. It's amusing that people are doing this. I wonder what text editor M. Schaefers will end up using. (-:
- ngcc_hk 7y agoAs it is based on kiss, no pi 4 ver I guess?
- bilekas 7y agoThis is pretty interesting but sketchy.. Also.. Lets be cautious about getting Emacs reapable.. Do we really want to witness hoard of abominations (nice things too ofc) that would surface! :D
- Aardwolf 7y agoLightweight, but written in EMACS aka "Eats Memory And CPU Superbly"? Just kidding, I know EMACS is lightweight for todays standards, at least compared to electron apps :)
- euske 7y agoNow someone has to write an init in Chrome.
- Aardwolf 7y agoThis comes close to that: https://bellard.org/jslinux/ https://bellard.org/jslinux/
- artificialidiot 7y agoFirefoxOS
- idoubtit 7y agoI now expect a few features from anything that aims at replacing my init and service manager. Beyond booting the system, I want to manage daemons: * ease of use: I don't want to deal with background/foreground processes, storing PID in files and hacks like the old start-stop-daemon.sh. * reliable services: if it stops, restart it automatically. But stop hammering if it fails repeatedly. * sandboxing: this service must have no access to the network nor to /home, etc. This "lightweight replacement" does not have this small subset of features, so it's more an alternative init than a replacement of systemd.