Ask HN: Are there any lean operating systems left?

15 points by distcs ↗ HN
If I open anything on current OSes like macos, windows, things literally take seconds to open. Start CMD/Terminal on a cold booted system and I see it literally taking 1 or 2 seconds for CMD/Terminal to open.

I remove desktop animations, motion effects and all fluff and it gets better but there is still visible lag between me clicking and the app opening.

Are there any OSes left that don't add this kind of fluff? The ones that are absolutely as lean as possible and focus on getting work done.

I mean I am a simple person. I don't need any of the fluff in the OSes. I don't need animation effects, motion effects, transparency. Nothing. When I want to open a desktop app, I just want to open and do what I tell it to do.

Any OS like that for me? Am I the only one who needs a simple OS that does things without frills?

31 comments

[ 579 ms ] story [ 2124 ms ] thread
Linux with a good desktop environment might be what you're looking for.
You could try Haiku, it's pretty snappy even on ten year old Thinkpads like my X240 (of course, replacing a spinning rust hard disk by an SSD always helps).

Plan 9 might also be an option, but that might lack the desktop apps you expect to have.

What software can be run on it tho? Does it support flatpak?
I understand your frustration! Depending on what your software needs are for everyday work, you might be interested on any UNIX like system (besides MacOS) for example: OpenBSD, FreeBSD, GNU/Linux distribution. Afterwards what you need is a minimal Desktop Environment. "The minimal Desktop Environment" is actually the important bit here. You have many choices of Desktop environments like, GNOME3 Desktop, KDE Plasma Desktop, MATE Desktop XFCE4 Desktop, but those are fully fledged Environments, lean alternatives are Openbox, i3, dwm and many others. I hope it helps! :D
I think your requirements are quite contradictory; my old Commodore 64 had a lean operating system or basically no operating system at all. Yet it took me nearly half an hour to load a single 40 kilobyte game from tape (only to see it didn't work so I had to try loading it again).

What I'm saying is you're not after a lean operating system - you're after fast I/O and that you can get with money. Also the lag you mention is not about operating systems, it's about apps. My "ls" startup is pretty fast:

  $ time ls
  Desktop  Documents  Downloads  Music  Pictures  Videos  bin  code

  real    0m0.006s
  user    0m0.000s
  sys     0m0.000s
REU : https://www.c64-wiki.com/wiki/RAMDrive

'lean' operating system/software usage setup small enough to fit /run entirely in ram (and/or 100MB+ cpu lvl 1 cache) would avoid i/o issues. --power backup not optional.

Offtopic but lately I've been building a "new" physical C64 which is nearly done - SD2IEC + Epyx Fastload for fast disc emulation and Kung Fu Flash for near instant .prg loading. Related to the discussion I think KFF is faster to load a .prg than my Windows is loading an .exe - not that I would ever do actual work on a C64 with or without KFF.
Off topic, but...

> it took me nearly half an hour to load a single 40 kilobyte game from tape

Surely that's a bit pessimistic? It was around 5 minutes for the ZX Spectrum, the Commodore wasn't a slower baud rate was it?

According to Wikipedia

> Because of its digital format the [Commodore C2N] Datasette is both more reliable than other data cassette systems and very slow, transferring data at around 50 bytes per second.

That's about 400 baud.

Another page suggests the Spectrum's real speed was about 13604 baud.

https://sinclair.wiki.zxnet.co.uk/wiki/Spectrum_tape_interfa...

> Any OS like that for me?

Yes. Windows 95 or MacOS 9.

> Am I the only one who needs a simple OS that does things without frills?

Likely.

I need a simple OS that does things without frills.
Using macOS [current] as an example (as you did), Terminal opens faster than I can react - from ⌘-space ter to typing in Terminal is under half a second

If I click it, it's up in under half a bounce

Word takes longer to open ... but it's also a pretty big application

Likewise Firefox takes several bounces (but it's recovering whoknowshowmany tabs I left open when i closed it)

Boot time on my [first generation] M1-based MBP is faster than anything I can recall running that's anywhere near "modern" (distinctly disingenuous to compare book time on a Mac Classic or SE30 to a modern system - yes, that 30-year-old device started "fast" ... but it also wasn't doing much!)

Even with all the items I have set to come up at boot (about a dozen utilities on this machine), I'm able to start working pretty quickly after a reboot's initiated (which I also only ever do for OS updates that mandate it)

And any time that's "too long to wait through" I mitigate the same way waiting on my dishwasher to be done cleaning dishes: I go do something else (grab a coffee, make a call...)

Your first three things to check regardless of OS:

- storage speed (is it a spinny 5400rpm drive? NVMe? SATA SSD?)

- RAM - the old mantra is as true today as it's ever been - the more the merrier

- CPU speed and core count ... this one is more nebulous: ARM is different from x86-64 is different from SPARC etc; even various flavors of each of those CPU families are different from each other! An AMD 64-core with 768MB cache is going to be a lot different from its sibling offering that only has 256MB cache

As for a random, modern OS that is "lean" ... check OpenBSD, NetBSD, or Haiku-OS (the opensource reimplementation and modernization of BeOS from yesteryear)

But those "lean" OSes are going to need a lot of "deleaning" to get them into a state most people want to use (perhaps excepting Haiku) - on Linux, you can pick a lightweight desktop environment ... but the impact on performance (unless you're on a pretty low-resource device) of running fwvm, say, over KDE is nearly indistinguishable - because you're not spending most of your time interacting with the OS, per se - you're interacting with some set of applications on top of the OS

The OS, largely, is irrelevant - choosing any specific OS comes down to three rational factors (and then a bunch of personal preferences):

- does it run what I need it to?

- can I afford it?

- can I interoperate well-enough with my friends/colleagues/etc to use this hardware and OS vs that OS and hardware?

I wish I could run Haiku full-time...But it does not [yet] support many applications I have to have access to (and the web-based versions of them won't run reliably on the browsers available for the OS [yet])

macOS is not a good example of "lean" OS. Try navigating between "Spaces". Good luck trying to disable its annoying animation.
Procrastination side-quest detected.
Linux Mint on a m2 drive will probably boot and open anything really fast and keep a comfortable experience similar to windows desktop
1. Run a server OS like debian server 2. Install X 3. Install Awesome WM or Subtle WM (no longer in development)
Linux with KDE so that you can turn off the compositor

No composition means no animations, and everything will feel smooth and snappy as heck!

I'm using xfce on Arch and it's pretty snappy.
Does it matter hugely that it takes one second to open a terminal? Not three, or five, but one? I assume when a terminal's open that it's reasonable responsive.

It takes less than a second on my 13 year old ThinkPad running Debian/Gnome3, but what's the difference half a second saved makes? And why even close it?

Focus on the greatness you're about to perform and thank the second for giving you that focus.

I don't want the animation effects, motion effects, transparency, etc, either. I also don't want emoji, and I don't want systemd, and I would want to avoid Unicode when I can, and many other stuff I did not want. I use Linux with no desktop environment, and make many of my own programs, and mostly it is OK, but the web browser is difficult (although I have improved some things), and is still slow regardless of making the chances. (You could try with a simple window manager and no desktop environment which might improve the speed of some programs, but perhaps not all)
Nothing. This is because system is not just "kind of fluff", but in reality, all current computers are small service center with near all need service equipment, running on startup.

They testing floppies, CDs; check for printer on LPT; spent many time to figure out what USB stuff connected to computer, etc, etc.

And don't forget, setup scripts are basically running on extremely slow Shell language, which is interpreted and keep simple for considerations of system service. - For example, some systems used Perl for shell tasks, but now it avoided, because too hard to support Perl itself, so people decided to return to Shell and concentrate on it.

Second, most current systems are monolith type, so they cannot load-unload drivers on demand, and have to load some typical configuration as one big piece at startup and check all it's parts.

You could manually disconnect many checks in startup scripts, you could even customize list of your drivers, but these are really big hassles, and big amount of work.

Some systems now remade to include trick, so their startup running on background, so some things you will got much faster, but if you try to use them too soon, you will see, that some things you may need, are not accessible already, but will appear later, for example on my Ubuntu on core i7, SATA SSD, I measured from 30s to about 100s before all appear.

To be honest, exist many minimal OSes, with microkernel, compiled shell, and other features, making them startup very fast, but unfortunately, none of them considered mass production, all are experimental.

Even special OSes, like Ubuntu touch, considered for Smartphones, are mostly considered as secondary project (non main priority), so even with all their limitations, you will not got even as workable solution as classic Ubuntu.

The OP isn’t asking about boot time.

> Second, most current systems are monolith type, so they cannot load-unload drivers on demand

Which current ones? I don’t see that approach work with USB devices.

> And don't forget, setup scripts are basically running on extremely slow Shell language, which is interpreted and keep simple for considerations of system service. - For example, some systems used Perl for shell tasks

Between the lines, that implies Perl is faster than shell for init scripts. I’m not convinced it is. Perl is interpreted, too, and larger, so likely has a larger startup time. It has more bells and whistles that may make it do what’s needed faster than a shell script, but I don’t think many init scripts need those bells and whistleS.

Also, do the likes of macOS and Linux still have many init scripts? I thought that launchd (on macOS) and systemd (on Linux) were mostly configuration driven.

It is true, though that booting gets slower if the OS has to probe what hardware is available and cannot assume that hardware to be ready for work.

> The OP isn’t asking about boot time.

But unfortunately, any other startup (wake up, etc), implies, drivers enumeration, device restart, because huge amount of legacy in world.

> I don’t see that approach work with USB devices.

Ha! If your system is 100% from modern (non-legacy) USB devices, you are lucky as god!

- Exists "legacy free hardware", but they are rare.

Unfortunately, nearly all modern x86 computers have large number of legacy devices, from CPU starting in real mode, to chipset devices, still existing Floppy drive controller in chipset, ATA (not-SATA, but legacy ATA) controller, LPT, Serial, and many, many others.

If you will disable that legacy, startup time will be radically shortened.

> Perl is interpreted, too, and larger, so likely has a larger startup time

Yes, but no. Perl is larger, this is true, but no one shell (except few exceptions, not wide used), considered for universal computing, so none optimization done.

But Perl have rich history of heavy duty working, so it from some versions made from start as heavily optimized high effective platform.

Perl even have some history of JiT compiler, unfortunately not long.

To be strict, Perl still have good potential as idea, but unfortunately, Perl community becomes too broad, distributed, to focus on development. - Just Perl don't have resources to implement features, now considered typical for platform - zero startup time, compilation to native code, JiT.

But some things still working well, for example, you could precompile code and connect precompiled to working Perl interpreter, so will be zero time startup.

Also, fortunately, Perl already have working multithreading with rich software support, and mature native interfaces, so you could optimize close to hardware languages.

If somebody will have success in consolidating Perl community, also possible to find resources, to implement modern features, like JIT.