4 ms·
I think what he's running into is "the unix philosophy". It is basically about small tools, limited in scope, that solve a problem surgically and comprehensive
by m463 2y ago
I think what he's running into is "the unix philosophy".
It is basically about small tools, limited in scope, that solve a problem surgically and comprehensively. They work together by mixing and matching to solve the problem.
systemd is sort of like if microsoft word took on system init. In the beginning it was small, but now it is web based and does videoconferencing.
I don't know, it is sort of like busybox, replacing other system components in a limited Minimum Viable Product way, but more like limited function, not limited resources.
- cyberax 2y ago> I think what he's running into is "the unix philosophy". "Unix philosophy" is throwing crap at the problem, until it kinda-sorta works on the developer's machine.
- oguz-ismail 2y ago> systemd is sort of like if microsoft word took on system init. In the beginning it was small, but now it is web based and does videoconferencing And it's slow. Windows 11 boots in 5 seconds on my laptop, Ubuntu 22 used to take about a minute before I finally made the switch.
- dralley 2y agoThat almost certainly has little to do with systemd itself, and more to do with which services are enabled on boot.
- lmm 2y agoIt's due to systemd in that systemd makes it too fiddly to figure out or change which services are enabled on boot. (I used to know a way to disable certain services on boot under systemd, but it doesn't work any more, and I've reached a state of learned helplessness at this point)
- vetinari 2y ago`systemctl disable` and `systemctl mask` work today just like they worked decade and half ago.
- lmm 2y agoI don't know if they're the recommended way of doing things today, but they weren't what was in the manual when I was learning.
- RandomThoughts3 2y agoThey are there from the start and were always the recommended way to do things in the documentation. I mean the command is literally disable. The command to list services enabled on boot is also completely esoteric: systemctl list-unit-files --state=enabled
- cyberax 2y agoMy system boots systemd in 2 seconds from the firmware handover to my code fully running. And this includes device initialization and a DHCP lease renewal. On VMs you can get to within 200ms for a full system. You can use `systemd-analyze critical-chain` to visualize the boot process. The slowdown is likely caused by something unexpected.
- mariusor 2y agoWindows 11 probably uses Fast Startup for those speedy boot times, which is to say that it's not a "cold" boot. Apples and oranges and all that...
- mananaysiempre 2y ago> Windows 11 boots in 5 seconds on my laptop Try measuring a reboot instead. On modern Windows versions with “fast startup” enabled, the “Shutdown” button is a lie: it logs you out and hibernates the system instead of actually shutting it down. (This is important if you dual boot, because it means you can’t safely access the Windows partition in the interim.)
- oguz-ismail 2y ago> the “Shutdown” button is a lie: it logs you out and hibernates the system instead of actually shutting it down I'm okay with that. How do I enable this on Ubuntu?
- bmicraft 2y agoAre you seriously complaining right now that systemd doesn't have a specific feature no other init for linux has either, while at the same time complaining it is too complicated and does too much stuff?
- oguz-ismail 2y agoI'm asking a question
- theamk 2y agoI think the problem is that small tools are missing that "comprehensively" part.. trying something as simple as getting full system startup log (something very useful on headless system!) - it was basically impossible until systemd came. Only gentoo tried to do this for a few years, but then that functionality broke. Same goes for service startup - why does start-stop-daemon discards stdout/stderr instead of logging it? This would be trivial to fix, but somehow this was not available until upstart (and then systemd) did it.
- AnthonyMouse 2y agoThis seems like the motte and bailey thing. Some of the oldest init systems made decisions that were sensible at the time but not so much now, e.g. when storage is hundreds of thousands of dollars per GB you don't want to log everything, when it's tens of cents per GB you do. But you can obviously make a non-monolithic init system that causes output to be stored to a log instead of being discarded. So then systemd comes in, solves some of the old problems and independently, unnecessarily introduces new ones by being a huge monorepo that lacks clean and stable interfaces between its own components, inhibiting anyone else from providing a viable competing implementation of an individual component. Then people complain about the latter and the defense that comes back is of the former. But that's no defense -- we could instead be making the good change and not the bad change.
- egorfine 2y ago> lacks clean and stable interfaces between its own components, inhibiting anyone else from providing a viable competing implementation That's exactly what Microsoft did back in the era with Word and others, just like GP stipulated.
- mattpallissard 2y ago> systemd is sort of like if microsoft word took on system init. In the beginning it was small, but now it is web based and does videoconferencing. It's actually a suite of tools that do solve individual problems comprehensively. Not as small as the programs in coreutils, but still not a huge monolith.
- m463 2y agoI don't agree with comprehensively. for example timesyncd is barebones and not super accurate when it comes to timekeeping, while chrony and ntp actually manage the system time. similar - systemd-boot is barebones, systemd-networkd is barebones (but has gotten more MVP-featured in a busybox way), etc Maybe 10 more years and everyone will be used to things, and people won't be arguing about chesterton's fence. https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_fence https://en.wikipedia.org/wiki/G._K._Chesterton#Chesterton's_...
- egorfine 2y ago> It's actually a suite of tools It's a suite of tools created with hate to the unix philosophy. That's something that all of them have in common. There was no reason to create systemd timers as cron worked just fine for decades.
- RandomThoughts3 2y ago> with hate to the unix philosophy It's a suit of a tools each doing one thing and communicating together via a message bus. How exactly is that hating the "unix philosophy" whatever that means? From where I stand, it's extremely close to the way Unix has ever done things. The design is even directly lifted from the boot system of a certified Unix.
- egorfine 2y agoTo me it looks exactly like ann opposite of suite of independent tools.