17 ms·
Let’s pause for a bit and dwell on the absurd amount of RAM it takes to run it even after this exercise. Anyone here remember when QNX shipped a demo in 2000 wi
by abraxas 4y ago
Let’s pause for a bit and dwell on the absurd amount of RAM it takes to run it even after this exercise. Anyone here remember when QNX shipped a demo in 2000 with a kernel, GUI, web browser and an email client on a single 3.5” floppy? The memory footprint was also a few megabytes. I’m not saying we should be staying within some miserly arbitrary constraints, but my goodness something that draws UI and manages processes has not grown in complexity by four orders of magnitude in 20 years.
- api 4y agoMy favorite is Geos for the Commodore 64: https://en.m.wikipedia.org/wiki/GEOS_(8-bit_operating_system) https://en.m.wikipedia.org/wiki/GEOS_(8-bit_operating_system... Obviously there were huge limitations but it shows what can be done. This fit on one 170K floppy and ran on a 1.44mhz 8 bit machine with 64K of RAM. In the 1990s I ran both Linux and Windows on less than 64M of RAM with IDEs, web browsers, games, and more. If I had to guess what were possible today I’d fall back on the fairly reliable 80/20 rule and posit that 20% of todays bloat is intrinsic to increases in capability and 80% is incidental complexity and waste.
- weinzierl 4y agoFor me also the Commodore came to mind. It had 64K RAM and a 64K address range, because other things had to fit in there not all RAM was usable at the same time. Clock frequency of the PAL model was 985kHz (yes KILO), so not even a full MHz. Yet, I could do * word processing * desktop publishing * working with scanned documents * spreadsheets * graphics * digital painting * music production * gaming (even chess) * programming (besides BASIC and ASM I had a Pascal compiler) * CAD and 3D design (Giga CAD [1], fascinated me to no end) * Video creation [2] For all this tasks there were standalone applications [3] with their own GUI [4]. GEOS was an integrated GUI environment with its own applications and way ahead of its times [5]. It still blows my mind how all this could work. My first Linux ran on a 386DX with 4M of RAM, but this probably as low as on can get. Even the installer choked on that little RAM and one had to create a swap partition and swapon manually after booting but before the installer ran. In text mode it was pretty usable though, X11 worked and I remember having GNU chess runnning, but it was quite slow. [1] https://youtu.be/ZEf9XMrc5u8 https://youtu.be/ZEf9XMrc5u8 [2] OK, this one is a bit of a stretch but there actually was Videofox for creating video titles and shopping window animations: https://www.pagetable.com/docs/scanntronik_manuals/videofox.pdf https://www.pagetable.com/docs/scanntronik_manuals/videofox.... [3] Some came on extension modules which saved RAM or brought a bit of extra RAM, but we are still talking kilobytes. For examples see https://www.pagetable.com/?p=1730 https://www.pagetable.com/?p=1730 [4] Or sort of TUI if you like; the strict separation of text and graphics mode wasn't a thing in the home computer era. [5] The standalone apps were still better. So, as advanced GEOS was, I believe it was not used productively much.
- nine_k 4y agoSure, Commodore could do all that! But if you had to use that software now, you'd say (justly) that it's extremely basic and limited, and that interoperability with other systems is not great. What can be done ≠ what's comfortable to use.
- api 4y agoThat doesn’t account for the sheer monstrosity of modern software. You don’t need gigabytes of RAM for those things.
- brewdad 4y agoThe state of things would seem to suggest otherwise.
- weinzierl 4y agoFully agreed. When I tried my old Commodore a while ago I couldn't stand the 50Hz screen flicker for long. Unbelievable that back in the day I spent hours on hours in front of that stroboscope. For me it's more about the excitement that the bright future lay ahead of us so clearly mixed with a slight disappointment that I sometimes feel we could have made more out of it.
- alpaca128 4y agoTo me the most impressive recent example is a video editor developed for Haiku OS [0]. It fits on a 1.44MB floppy disk. [0] https://github.com/smallstepforman/Medo https://github.com/smallstepforman/Medo
- Aerroon 4y agoI remember taking Windows XP to below 100 MB of RAM usage.
- bArray 4y agoI remember needing to get Windows XP under 64MB of RAM so that I could run some photo editing software. XP was relatively feature complete, I don't think Windows currently ships with 32x the features of XP (64MB vs 2048MB minimum). Linux with a lightweight GUI for example can still run okay with just 128MB. I ran Debian with LXDE on an old IBM T22, and it worked perfectly well. Running Firefox was a problem (but did eventually work), but something more stripped down like NetSurf or Dillo is blazingly fast.
- 2b3a51 4y agoSeamonkey is still around and works nicely on low spec machines (not sure about 128Mb though) as a step up from NetSurf. You get a graphical email client and news/gopher built in. Also a rudimentary Web page editor. Printing a Web page to pdf is a rough and ready way of getting rich text onto paper. The 'legacy' version of the noscript plug-in will allow selective use of javascript (saves battery and helps with security which might be an issue). [1] https://www.seamonkey-project.org/ https://www.seamonkey-project.org/ [2] https://noscript.net/getit/ https://noscript.net/getit/ [scroll down to bottom, note there is no support]
- anthk 4y agoMore than NoScript, get Ublock Origin Legacy: https://github.com/gorhill/uBlock-for-firefox-legacy https://github.com/gorhill/uBlock-for-firefox-legacy Also, there's a forked dillo called dillo-ng https://github.com/w00fpack/dilloNG https://github.com/w00fpack/dilloNG with mpv support on context menu that works fine with these sites: https://68k.news https://68k.news https://simple-web.org/projects/simplytranslate.html https://simple-web.org/projects/simplytranslate.html https://simple-web.org/ https://simple-web.org/ (several services without js). On the Invidious video links, simply right click the link and choose open with mpv". Also, on Gopher (lynx it's good for this) gopher://magical.fish has a huge service list usable on text mode.
- mixedCase 4y agoHasn't it, though? HDR, fluid animations, monstrous resolutions, 3D everything, accessibility, fancy APIs for easier development allowing for more features, support for large amounts of devices, backwards compatibility, browsers are almost unrecognizable in featureset to the point they resemble an OS unto themselves, email clients have stayed mostly the same at least except for the part that they also ship a browser and few of us even use 'em anymore! Some of those features combine exponentially in complexity and hardware requirements, and some optimizations will trade memory for speed. Not going to defend particular implementations, but requirements? Those have definitely grown more than we give them credit.
- agumonkey 4y agomore features but not sure features i want or need, nor in fun interactions that said 2GB is acceptable considering the state of everything not saying i wouldn't like to have QNX class back
- grishka 4y ago> HDR, fluid animations, monstrous resolutions That's the job of the GPU driver, mostly. > 3D everything That's the desktop compositor. Windows 7 already had one and ran on 1 GB of RAM. > accessibility Not everyone needs it, so it should be an optional installable component for those who do. > fancy APIs for easier development allowing for more features That still use win32 under the hood. Again, .net has existed for a very long time. MFC has existed for an even longer time. > support for large amounts of devices No one asked for Windows on touchscreen anything. Microsoft decided that themselves and ruined the UX for the remaining 99% of the users that still use a mouse and a keyboard. > backwards compatibility That's what Microsoft does historically, nothing new here. > browsers are almost unrecognizable in featureset to the point they resemble an OS unto themselves No one asked for this. My personal opinion is that everything app-like about browsers needs to be undone, yesterday, and they should again become the hypertext document viewers they were meant to be. Even JS is too much, but I guess it does have to stay.
- djur 4y ago> Not everyone needs [accessibility], so it should be an additional installable component for those who do. The UI has to be designed from the ground up to support accessibility.
- ShaneMcGowan 4y agoWe don’t need to worry about memory efficiency until we stop getting gains via hardware improvements. For now developers can just slap a web app into some chromium based wrapper, make sure their code doesn’t have any n^2 in it and you’re good to go.
- Wowfunhappy 4y agoTell that to the person on a fixed income who has to invest in an expensive new machine because their 2015 laptop (which still has a whopping 4 GB of memory and a CPU that would have been top-of-the-line twenty years ago) has become unusably slow. Software efficiency is a serious equity and environmental issue, and I wish more people would see it that way.
- arbitrage 4y agoExpecting your 8+ year old laptop to run as well as it did when it was new is completely unreasonable. That has never been a reasonable expectation in the history of computing.
- Wowfunhappy 4y agoWhy? Are the types of things I want that laptop to do different today than they were 8 years ago? Sure, apps and websites are heavier, but I'd posit the things most people do on their computers haven't changed in a decade at least. > That has never been a reasonable expectation in the history of computing. Yes, but again, why? As I see it, everyone has been conditioned to this lie that computers naturally slow down over time, because that's the way it has always been relative to the speed of current software. Originally, that was for a good reason—I'm glad programs now use full-color GUIs. But now? What would actually happen if Moore's law ended tomorrow, and we were no longer able to make computers faster than they are today? I suspect that a (slim) majority of computer users would actually benefit. Not hardcore gamers, not scientists, and certainly not software developers--some people really do need as much performance as they can get. But for the people who just need to message friends, write documents, check email, etc., the experience would be unchanged—except that their current computers would never slow down!
- tester756 4y ago> has not grown in complexity by four orders of magnitude in 20 years. How about all those sandboxes, protections and mitigations? Nowadays people care about security waaay more than people did 20-30 years ago.
- gbin 4y agoUnfortunately more like nagging features, crapware, etc...
- 5e92cb50239222b 4y agoWell, other operating systems are still relatively decent at this. My main Linux install eats ~250 MiB of RAM after startup, and I've spent exactly zero amount of time on that, so it can be trimmed down further. That's on a system with 32 GiB of RAM — if you have less RAM, it will eat even less since page tables and various kernel buffers will be smaller. FreeBSD can be comfortably used on systems with 64 MiB of RAM for solving simple tasks like a small proxy server. It has always been good at this — back in the day cheap VPS often used it (and not Linux) precisely because of its small memory requirements.
- deleted 4y ago[deleted]
- anthk 4y agoOpenWRT Linux with Musl ran fine under 48MB of RAM, 7-8MB running. Modern GNU/Linux, I mean.
- avx56 4y agoNo GUI though right?
- prmoustache 4y agoToday's version of icewm takes around 16mb of memory, xorg will add a bit to it. There are smaller window managers but I choose this one as an example as it gives a similar experience to the windows xp of olds. I have done the experience on slimming as much as possible a desktop. But once you start a web browser with more than 3 tabs memory usage goes through the roof. In the end if you want to run an old system with 512mb of ram you are kind of forced to use the web sans javascript and images. You are almost better off using links or w3m and tui apps for everything. Netsurf can work too if you are limiting the number of tabs open. One a 1GB system you can definitely use a modern web browser but you definitely need the ad/trackers removal extensions and have to take good care of not opening more than 2-3 tabs or you will start swapping a lot.
- zozbot234 4y agoThe standards were also a lot lower back then. Modern-day users expect high resolution and color depth for their screens, seamless hardware support no matter what they plug into the machine, i18n with incredibly complex text rendering rather than a fixed size 80x25 text mode with 256 selectable characters, etc. These things take some overhead. We can improve on existing systems (there's no real reason for web browsers to be as complex as they are, a lot of it is pure bells and whistles) but some of that complexity will be there.
- darknavi 4y agoAnd they also expect their programs from 20 years ago still run.
- at_a_remove 4y agoIndeed. When I de-bloated Windows NT workstation, I could reliably get it down to fourteen megabytes of RAM.
- phendrenad2 4y agoImagine the first person to realize that you can write bloated software faster than highly-optimized software. Competitive advantage over his peers.
- aaron695 4y ago[dead]
- TacticalCoder 4y ago> Let’s pause for a bit and dwell on the absurd amount of RAM it takes to run it even after this exercise. I agree and I find the apologists to be completely wrong. I run a modern system: 38" screen, 2 Gbit/s fiber to the home. I'm not "stuck in the past" with a 17" screen or something. The thing flies. It's screaming fast as it should be. But I run a lean Debian Linux system, with a minimal window manager. It's definitely less bloated than Ubuntu and compared to Windows, well: there's no comparison possible. Every single keystroke has an effect instantly. After reading the article about keyboard latency, I found out my keyboard was one of the lower latency one (HHKB) and yet I finetuned the Linux kernel for USB 2.0 polling of keyboard inputs to be even faster. ATM I cannot run a real-time kernel because NVidia refuses to modify a non-stock kernel (well that's what the driver says at least) but even without that: everything feels and actually is insanely fast. I've got a dozen virtual workspace / virtual desktops and there are shortcuts assigned to each of them. I can fill every virtual virtual desktop with apps and windows and then switch like a madman on my keyboard between each of them: the system doesn't break a sweat. I can display all the pictures on my NVME SSD in full screen and leave my finger on the arrow key and they'll move so quickly I can't follow. Computers became very fast and monitor size / file sizes for a regular usage simply didn't grow anywhere near close as quickly as CPU performances. Windows is a pig.
- zozbot234 4y agoThe low-end requirements for Debian GNU/Linux (assuming a graphical install and an up-to-date version) are not that low. They're higher than the low-end for Windows XP when it first came out, and probably close to the official requirements for "Vista-capable" machines. So yes, it's a very efficient system by modern standards but it does come with some very real overhead nevertheless.
- anthk 4y agoVIsta capable wasn't that capable. It required 1GB of RAM to run well. Debian with ZRAM and light DE could run with 512MB of RAM and Seamonkey + UBlock Origin with patience.
- yeuxardents 4y ago
- jodrellblank 4y agoEight Gigs And Constantly Swapping. Zawinski’s Law - every program on windows attempts to expand until it can be your default PDF viewer. [cloud file sync, advertising display board, telemetry hoover, App Store…]
- kristianp 4y agoI was recently boggling at how a running small python script could take up 30+ MB of RAM. The data it processed was probably < 100kb in total.
- Gigachad 4y agoYou are getting a whole runtime and standard library bundled in. The whole point of python is for quick and dirty scripts because saving you 4 hours is worth more than using 20mb less ram for something that gets run a couple of times.
- Genbox 4y agoI've worked on several projects where performance was an afterthought. After the product scaled a bit, it suddenly became the highest priority - but at that time, it was impossible to fix. At least for everyone that created the problem to begin with. I've taught high performance data structures to dev teams. I've tried to explain how a complex problem can sometimes be solved with a simple algorithm. I've spent decades on attempting to show coworkers that applying a little comp-sci can have a profound effect in the end. But no. Unfortunately, it always fails. The mindset is always "making it work" and problem solving is brute-forcing the problem until it works. It takes a special kind of mindset to keep systems efficient. It is like painting a picture, but most seem to prefer doing it with a paint roller.
- wizofaus 4y agoAnd I've worked on systems where months were essentially squandered on performance improvements that never paid off because we never grew the customer base sufficiently for them to be worth while... I'm all for dedicating time and effort towards producing performant code, but it does come at a cost - in some cases, a cost of maintainability (for an extreme example there's always https://users.cs.utah.edu/~elb/folklore/mel.html https://users.cs.utah.edu/~elb/folklore/mel.html). In fact I'd suggest in general if you design a library of functions where obviousness/clarity/ease-of-use are your primary criteria, performance is likely to suffer. And there are undoubtedly cases where the cost of higher-grade hardware (in terms of speed and storage capacity) is vastly lower than that of more efficient software. I'd also say performance tuning quite often involves significant trade-offs that lead to much higher memory usage - caching may well be the only way to achieve significant gains at certain scales, but then as you scale up even further, the memory requirements of the caching start to become an issue in themselves. If there were a simple solution it would have been found by now.
- Genbox 4y agoPerformance is not the same as efficiency, and efficiency can't be solved with more hardware. Let's say I build a sorting algorithm that is O(N^2) complexity and works fine for small inputs (takes <1 millisecond), but it is going to be used for large data systems. Suddenly it takes hundreds of thousands of hours to sort the data. One of the corps I worked with went full scalability in their architecture. One-click deployments, dynamic scaling of servers, rebalancing of databases, automatic provisioning of storage. They were handling 40-50k requests pr. second with their 15-ish large server farm, which could sale down to 5 servers, or up to 50-ish before it began to wobble. I got called in because the company had gotten a large client that needed 100k requests pr. second. They tried scaling the system to fit the need, but the whole thing got unstable and their solution was "more operations people to manage it". I built a custom solution for the backend. Took about two months. The new system could do about 2100k requests pr. second on one server. Scalability of the new system was ~90% efficient as well, so lots of capacity for the future. None of their developers understood computers or the science behind them. They were all educated and experienced developers, but none of that were applied to the problem. They were just assembling parts from the hardware store until something worked, and the resulting Frankenstein's Monster was put into production.
- NovaPenguin 4y agoMy go to on this was I remember running Debian on a Pentium 166 with 32MB of RAM back in 98/99. It would boot to the desktop only using 6MB. It wasn't flash but it could handle the basics. Heck Windows XP would boot to Desktop using a little under 70MB. But this isn't just Windows, currently I am on Kubuntu 22.04 and it is using about 1.5GB to get to the Desktop! Yes it is very smooth and flash but it seems like a bit much to do this. This is why I am interesting in projects like Haiku and Serenity OS, they may bring some sanity back into these things.
- vbezhenar 4y agoMinimal debian on VM eats something like 20-40 MB of RAM. Not 6 MB, but still rounding error by today's standards. I guess that with careful selection of GUI components one can fit empty desktop to 60 MB. Until you start browser anyway.
- NovaPenguin 4y agoI guess nowadays it is a choice, back then it was all we had! :D But good to know that we can still 'Hyper-mile' our OS.
- 1vuio0pswjnm7 4y ago2GB is a ridiculous amount of memory for something like an OS. When we see egregious examples like Windows, then it's arguable having constraints might be desirable. It is well-known that "limitation breeds creativity". It's certainly true outside of "tech" companies. I have witnessed it first hand. "Tech" companies are some sort of weird fantasy world where stupidity disguised as cleverness is allowed to run rampant. No more likely place for this to happen than at companies that have too much money.
- 1vuio0pswjnm7 4y agoMany of them do not need to turn a profit and a small number have insane profits due to lack of meaningful competition (cf. honest work). With respect to the later, it's routine to see (overpaid) employees of these companies brag on HN about how they do very little work.
- norman784 4y agoYou can achieve good memory footprints with Linux, just 2 or 3 years ago I was daily driving Arch linux with bspwm as a window manager, it used only 300 mb, for me is pretty darn good, but as soon as I opened my vscode with a JS project my ram usage was at 12gb. We have a lot of bloatware everywhere, that’s pretty sad. edit: This remind me a some rants from Casey Muratori about VS[0] and windows terminal[1] [0] https://youtu.be/GC-0tCy4P1U https://youtu.be/GC-0tCy4P1U [1] https://youtu.be/hxM8QmyZXtg https://youtu.be/hxM8QmyZXtg
- xvilka 4y agoUsing Web technologies for places where they don't belong killed the performance.
- muyuu 4y agoearly expectations on code interfacing and re-usability failed catastrophically in my previous job rather than give people root access to their laptops we had to do things like running a docker image that ran 7zip and we piped the I/O to/from it, and I'm not kidding we all did this and it was only bearable thanks to bash aliases and the fact that we had 16GBs of RAM