Ask HN: Are there any lean operating systems left?
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 ] threadPlan 9 might also be an option, but that might lack the desktop apps you expect to have.
[0] : https://en.wikipedia.org/wiki/Light-weight_Linux_distributio...
[1] Linux from scratch : https://www.linuxfromscratch.org/
[2] Yocto : https://www.yoctoproject.org/
[3] Contiki : https://docs.contiki-ng.org/en/develop/
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:
'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.
[0] : https://www.lyonlabs.org/commodore/onrequest/geos/index.html
[1] : https://vice-emu.sourceforge.io/vice_2.html
[2] : https://vice-emu.sourceforge.io/qnx.html
> 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?
> 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...
[1] https://news.ycombinator.com/item?id=36446933
Yes. Windows 95 or MacOS 9.
> Am I the only one who needs a simple OS that does things without frills?
Likely.
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])
[1] https://genode.org/download/sculpt
No composition means no animations, and everything will feel smooth and snappy as heck!
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.
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.
> 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.
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.