Most active commenters
  • trollbridge(3)
  • jsheard(3)
  • perching_aix(3)

←back to thread

518 points LorenDB | 67 comments | | HN request time: 0.389s | source | bottom
1. trollbridge ◴[] No.46173936[source]
Not to disrespect this, but it used to be entirely normal to have a GUI environment on a machine with 2MB of RAM and a 40MB disk.

Or 128K of ram and 400 kb disk for that matter.

replies(10): >>46173975 #>>46174032 #>>46174138 #>>46174272 #>>46174291 #>>46174522 #>>46174810 #>>46174831 #>>46179105 #>>46179554 #
2. Perz1val ◴[] No.46173975[source]
Yea, but those platforms were not 64bit
replies(2): >>46174408 #>>46177254 #
3. maccard ◴[] No.46174032[source]
A single 1920x1080 framebuffer (which is a low resolution monitor in 2025 IMO) is 2MB. Add any compositing into the mix for multi window displays and it literally doesn’t fit in memory.
replies(8): >>46174159 #>>46174187 #>>46174618 #>>46174766 #>>46176381 #>>46178650 #>>46179683 #>>46182290 #
4. embedding-shape ◴[] No.46174138[source]
> Or 128K of ram and 400 kb disk for that matter.

Or 32K of RAM and 64KB disk for that matter.

What's your point? That the industry and what's commonly available gets bigger?

5. echoangle ◴[] No.46174159[source]
Do you really need the framebuffer in RAM? Wouldn't that be entirely in the GPU RAM?
replies(6): >>46174217 #>>46174228 #>>46174232 #>>46174790 #>>46174992 #>>46175002 #
6. znpy ◴[] No.46174217{3}[source]
Aren’t you cheating by having additional ram dedicated for gpu use exclusively? :)
7. sigwinch ◴[] No.46174228{3}[source]
VGA standard supports up to 256k
8. jerrythegerbil ◴[] No.46174232{3}[source]
To put it in GPU RAM, you need GPU drivers.

For example, NVIDIA GPU drivers are typically around 800M-1.5G.

That math actually goes wildly in the opposite direction for an optimization argument.

replies(3): >>46174310 #>>46174452 #>>46175997 #
9. forinti ◴[] No.46174272[source]
The Acorn Archimedes had the whole OS on a 512KB ROM.

That said, OSs came with a lot less stuff then.

replies(3): >>46174428 #>>46175056 #>>46191404 #
10. 1vuio0pswjnm7 ◴[] No.46174291[source]
I would like to have this again

I prefer to use additional RAM and disk for data not code

replies(2): >>46174616 #>>46175682 #
11. Rohansi ◴[] No.46174310{4}[source]
> NVIDIA GPU drivers are typically around 800M-1.5G.

They also pack in a lot of game-specific optimizations for whatever reason. Could likely be a lot smaller without those.

replies(1): >>46174400 #
12. monocasa ◴[] No.46174400{5}[source]
Even the open source drivers without those hacks are massive. Each type of card has its own almost 100MB of firmware that runs on the card on Nvidia.
replies(1): >>46174904 #
13. monocasa ◴[] No.46174408[source]
64 bit generally adds about 20% to the size of the executables and programs as t to last on x86, so it's not that big of a change.
14. psychoslave ◴[] No.46174428[source]
If that is a lot less of things not needed for the specific use case, that is still a big plus.
replies(1): >>46174519 #
15. jsheard ◴[] No.46174452{4}[source]
Doesn't the UEFI firmware map a GPU framebuffer into the main address space "for free" so you can easily poke raw pixels over the bus? Then again the UEFI FB is only single-buffered, so if you rely on that in lieu of full-fat GPU drivers then you'd probably want to layer some CPU framebuffers on top anyway.
replies(2): >>46174701 #>>46174783 #
16. pastage ◴[] No.46174519{3}[source]
It was GUI defined manually by pixel coordinates, having more flexible guis that could autoscale and other snazy things made things really "slow" back then..

Sure we could go back... Maybe we should. But there are lots of stuff we take for granted to day that were not available back then.

replies(2): >>46175092 #>>46176265 #
17. taylodl ◴[] No.46174522[source]
When I first started using QNX back in 1987/88 it was distributed on a couple of 1.4MB floppy diskettes! And you could install a graphical desktop that was a 40KB distribution!
18. beng-nl ◴[] No.46174616[source]
To think that the entire distro would fit in a reasonable LLC (last level cache)..
replies(2): >>46174806 #>>46175925 #
19. snek_case ◴[] No.46174618[source]
I had a 386 PC with 4MB of RAM when I was a kid, and it ran Windows 3.1 with a GUI, but that also had a VGA display at 640x480, and only 16-bit color (4 bits per pixel). So 153,600 bytes for the frame buffer.
replies(2): >>46174630 #>>46178683 #
20. Dwedit ◴[] No.46174630{3}[source]
640 * 480 / 2 = 150KB for a classic 16-color VGA screen.
21. the8472 ◴[] No.46174701{5}[source]
well, if you poke framebuffer pixels directly you might as well do scanline racing.
replies(1): >>46174815 #
22. bobmcnamara ◴[] No.46174766[source]
It's so much fun working with systems with more pixels than ram though. Manually interleaving interrupts. What joy.
replies(1): >>46181605 #
23. throwaway173738 ◴[] No.46174783{5}[source]
Yes if you have UEFI.
24. ◴[] No.46174790{3}[source]
25. bobmcnamara ◴[] No.46174806{3}[source]
I've been wondering if I could pull the DIMM from a running machine if everything was cached.

Probably not due to DMA buffers. Maybe a headless machine.

But would be funny to see.

26. croes ◴[] No.46174810[source]
With 320x240 pixels and 256 colors
replies(1): >>46177349 #
27. jsheard ◴[] No.46174815{6}[source]
Alas, I don't think UEFI exposes vblank/hblank interrupts so you'd just have to YOLO the timing.
28. nilamo ◴[] No.46174831[source]
"640k ought to be enough for everyone!"
29. jsheard ◴[] No.46174904{6}[source]
That's 100MB of RISC-V code, believe it or not, despite Nvidias ARM fixation.
30. maccard ◴[] No.46174992{3}[source]
You’re assuming a discrete GPU with separate VRAM, and only supporting hardware accelerated rendering. If you have that you almost certainly have more than 2MB of ram
31. ErroneousBosh ◴[] No.46175002{3}[source]
Computers didn't used to have GPUs back then when 150kB was a significant amount of graphics memory.
replies(1): >>46177337 #
32. xyzzy3000 ◴[] No.46175056[source]
That's only RISC OS 2 though. RISC OS 3 was 2MB, and even 3.7 didn't have everything in ROM as Acorn had introduced the !Boot directory for softloading a large amount of 'stuff' at boot time.
33. masfuerte ◴[] No.46175092{4}[source]
The OS did ship with bezier vector font support. AFAIK it was the first GUI to do so.

P.S. I should probably mention that there wasn't room in the ROM for the vector fonts; these needed to be loaded from some other medium.

34. oso2k ◴[] No.46175682[source]
There’s an installation option to run apps off disk. It’s called “The Mount Mode of Operation: TCE/Install”.
35. veqq ◴[] No.46175925{3}[source]
Like the k language!
36. hinkley ◴[] No.46175997{4}[source]
Someone last winter was asking for help with large docker images and it came about that it was for AI pipelines. The vast majority of the image was Nvidia binaries. That was wild. Horrifying, really. WTF is going on over there?
37. xyzzy3000 ◴[] No.46176265{4}[source]
RISC OS has the concept of "OS units" which don't map directly onto pixels 1:1, and it was possible to fiddle with the ratio on the RiscPC from 1994 onwards, giving reasonably-scaled windows and icons in high-resolution modes such as 1080p.

It's hinted at in this tutorial, but you'd have to go through the Programmer's Reference Manual for the full details: https://www.stevefryatt.org.uk/risc-os/wimp-prog/window-theo...

RISC OS 3.5 (1994) was still 2MB in size, supplied on ROM.

38. beagle3 ◴[] No.46176381[source]
The Amiga 500 had high res graphics (or high color graphics … but not on the same scanline), multitasking, 15 bit sound (with a lot of work - the hardware had 4 channels of 8 bit DACs but a 6-bit volume, so …)

In 1985, and with 512K of RAM. It was very usable for work.

replies(1): >>46176430 #
39. mrits ◴[] No.46176430{3}[source]
a 320x200 6bit color depth wasn't exactly a pleasure to use. I think the games could double the res in certain mode (was it called 13h?)
replies(2): >>46176576 #>>46177038 #
40. krige ◴[] No.46176576{4}[source]
For OCS/ECS hardware 2bit HiRes - 640x256 or 640x200 depending on region - was default resolution for OS, and you could add interlacing or up color depth to 3 and 4 bit at cost of response lag; starting with OS2.0 the resolution setting was basically limited by chip memory and what your output device could actually display. I got my 1200 to display crisp 1440x550 on my LCD by just sliding screen parameters to max on default display driver.

Games used either 320h or 640h resolutions, 4 bit or fake 5 bit known as HalfBrite, because it was basically 4 bit with the other 16 colors being same but half brightness. The fabled 12-bit HAM mode was also used, even in some games, even for interactive content, but it wasn't too often.

41. teamonkey ◴[] No.46177038{4}[source]
You might be thinking of DOS mode 13h, which was VGA 320x200, 8 bits per pixel.
replies(3): >>46177480 #>>46177603 #>>46178666 #
42. IAmLiterallyAB ◴[] No.46177254[source]
Switch to an ILP32 ABI and you get a lot of that space back
43. trollbridge ◴[] No.46177337{4}[source]
The IBM PGC (1984) was a discrete GPU with 320kB of RAM and slightly over 64kB of ROM.

The EGA (1984) and VGA (1987) could conceivably be considered a GPU although not turning complete. EGA had 64, 128, 192, or 256K and VGA 256K.

The 8514/A (1987) was Turing complete although it had 512kB. The Image Adapter/A (1989) was far more powerful, pretty much the first modern GPU as we know them and came with 1MB expandable to 3MB.

replies(3): >>46180590 #>>46181872 #>>46191382 #
44. trollbridge ◴[] No.46177349[source]
640x480 with 16 colours was standard in offices in the late 80s.

If you were someone special, you got 1024x768.

replies(1): >>46181888 #
45. bananaboy ◴[] No.46177480{5}[source]
And 6-bits per colour component.
replies(1): >>46182771 #
46. globalnode ◴[] No.46177603{5}[source]
i remember playing with mode 13h, writing little graphics programs with my turboc compiler. computers were so magical back then.
47. perching_aix ◴[] No.46178650[source]
More like 6.2+ MB, or at least I'd sure hope that a FHD resolution is paired with at least a 24 bit (8 bpc) SDR color. And then there's the triple buffered vsync at play, so it's really more like 18.6+ MB.
replies(1): >>46179560 #
48. ◴[] No.46178666{5}[source]
49. perching_aix ◴[] No.46178683{3}[source]
> and only 16-bit color (4 bits per pixel).

The "high color" (16 bit) mode was 5:6:5 bits per channel, so 16 bits per pixel.

> So 153,600 bytes for the frame buffer.

And so you're looking at 614.4 KB (600 KiB) instead.

replies(1): >>46181007 #
50. bigiain ◴[] No.46179105[source]
Anyone else remember the QNX demo disk from the late '90s? A full unix-like GUI environment that booted from a 1.44MB floppy disk. Ran super responsively in 386 machines with 8MB of RAM.
replies(2): >>46179881 #>>46179970 #
51. BobbyTables2 ◴[] No.46179554[source]
I agree. That system even had MS word in something like 2-5MB of storage.

Windows 3.1 was only something like 16MB of storage.

Imagine the Cray supercomputer in those days being used to run a toaster or doorbell…

52. BobbyTables2 ◴[] No.46179560{3}[source]
My video card then didn’t have video ram for 256 color SVGA…
53. SoftTalker ◴[] No.46179683[source]
Those old computers were 640x480 or so. Maybe smaller.
54. Suppafly ◴[] No.46179881[source]
They had a free distro for a while, it's was pretty exciting being real time and with a microkernel and such. As a CS student it was neat to see where the world of computing might have went if different decisions had been made in the past.
55. Scoundreller ◴[] No.46179970[source]
Here’s a blast of classic internet: http://toastytech.com/guis/qnxdemo.html

No ssl, probably so you can access that site on the browser

56. ErroneousBosh ◴[] No.46180590{5}[source]
Neither EGA or VGA were "GPUs", they were dumb framebuffers. Later VGA chipsets had rudimentary acceleration, basically just blitters - but that was a help.

The PGC was kind of a GPU if you squint a bit. It didn't work the way a modern GPU does where you've got masses of individual compute cores working on the same problem, but it did have a processor roughly as fast as the host processor that you could offload simple drawing tasks to. It couldn't do 3D stuff like what we'd call a GPU today does, but it could do things like solid fills and lines.

In today's money the PGC cost about the same as an RTX PRO 6000, so no-one really had them.

57. snek_case ◴[] No.46181007{4}[source]
"Windows 3.1 primarily used palette-based color modes, common modes included 16 colors (VGA/EGA) and 256 colors (SuperVGA)"
replies(1): >>46181122 #
58. perching_aix ◴[] No.46181122{5}[source]
Right, so 16 color, not 16 bit color.

To be frank, I wasn't aware such a mode was a thing, but it makes sense.

replies(1): >>46184560 #
59. em3rgent0rdr ◴[] No.46181605{3}[source]
If you use a tile-based hardware renderer, such as on the original nintendo chip, then pixels are rendered on the fly to the screen by the hardware automatically pulling pixels based on the tile map.
60. Yeask ◴[] No.46181872{5}[source]
A video card is not a GPU.
61. Yeask ◴[] No.46181888{3}[source]
And a 20kg monitor.
62. AshamedCaptain ◴[] No.46182290[source]
You do not really need a framebuffer to drive a GUI, though. That's very much a PC thing.
63. oso2k ◴[] No.46182771{6}[source]
VGA color palette was 18-bits/256K, but input into the palette was 8-bit per channel. (63,63,63) is visibly different from (255,255,255).

http://qzx.com/pc-gpe/tut2.txt

http://qzx.com/pc-gpe/

replies(1): >>46190798 #
64. mananaysiempre ◴[] No.46184560{6}[source]
I recently installed NT4 (including Plus!) in an emulator with a VESA video driver, and was greatly surprised when about half of the icons that I thought of as “Windows 2000” (including the memorable “My Computer” one with the bulbous sky-blue screen) turned out to be available even there, provided a non-indexed mode. The rest were the more familliar 16-color-compatible 95/NT4 ones, making for an incongruous result overall. I guess what I want to say is that 16-color compatibility is a large part of the 95/NT4 look from which 2000 very carefully departed.
65. bananaboy ◴[] No.46190798{7}[source]
Sorry I'm not exactly sure what you're saying. I know very well how it works as I write a lot of demos and games (still today) for mode 13h (see https://www.pouet.net/groups.php?which=1217&order=release) and I can program the VGA DAC palette in my sleep. Were you referring to the fact that you write 8-bits to the palette registers? That's true, you do, but only 6-bits is actually used so it effectively wraps around at 64. There are 6-bits per colour component which as you pointed out is 18-bits colour depth.

Btw I was a teenager when those Denthor trainers came out and I read them all, I loved them! They taught me a lot!

66. lproven ◴[] No.46191382{5}[source]
> The 8514/A (1987) was Turing complete

WTF? Tell me more!

I have one, but I have no matching screen so I never tried it... Maybe it's worth finding a converter.

67. lproven ◴[] No.46191404[source]
> The Acorn Archimedes had the whole OS on a 512KB ROM.

True. And it's still around. It's FOSS now, runs natively on a Raspberry Pi 1-400 and Zero, and has Wifi, IPv6, and a Webkit browser.

https://www.riscosopen.org/content/

https://www.riscosdev.com/direct/