Show HN: My 486 Server
486servu.dy.fi
486servu.dy.fi
Professor Tanenbaum strikes back...
"Many people (including me) don't like the idea of an all-powerful management engine in there at all (since it is a possible security hole and a dangerous idea in the first place), but that is Intel's business decision..."
30 years on and he was still upset I suppose
I'm not sure how I feel about it yet.
I think license choices will bite people, because they have to be made in advance, but nobody's certain of the future. Maybe my thing would not have been popular anyways, but it have been useful for some, so it wasn't a great idea to make it proprietary. Maybe my thing turns out to be beyond useful, so many profit from it, and I still live a modest life while fixing its bugs. The BSD wasn't a great choice then.
So I think, with license choice, a big thing is regret. And each license is also a political statement, especially the case with GPL I feel, with its strong ties to the ideologically driven FSF. These people want to build a world on those foundations, so they think that if people take but also give back, that'll be sustainable.
At the end of the day, Tanenbaum was both fooled and he wasn't. I absolutely empathize with him as a human. But he explicitly allowed for this kind of incident with his license choice.
I recommend downloading the bootable floppy image, unless you want to see the source code.
Edit: This also looks like a fairly Finnish thing to do. Thinking not only of Linux and hacking, but also their general demoscene culture and such things. See also: https://www.gamesindustry.biz/articles/2020-04-16-finland-re...
Actually, there were 3 of them. 1 running Apache and Perl FastCGI, one running MySQL, and a third which mostly ran backups, but could be used as failover for either the web server or database if required. I used to fly from Sydney to San Francisco 3 or 4 times a year with half a dozen hard drives in my carryon, because that was the most reliable way to do major upgrades - we had three identical boxes in the office in Sydney, and would install/configure/test major software and dependancy upgrades in house, then go to the data centre and swap in the new drives one machine at a time with zero downtime - usually. I was rarely the only one in my datacenter aisle with a screwdriver and a PAIX guy looking over my shoulder, but most other people were swapping out whole rack mount servers, not opening them up to replace or upgrade components.
32-33% margin after credit card fees. We were doing great, and totally full of ourselves. We turned down a buyout aisle we thought we were worth 10 or 20 times what they offered. Then Sept 11 happened and our revenue crashed 90% overnight. :sigh:
+1 for this lovely metaphor. I'm Estonian, but I absolutely love Finns for their peculiar between-the-lines humor, and their tendency to go really deep into fringe stuff.
A Finnish guy once demonstrated a retro bicycle he was restoring, stating that it's going to take him two years to finish it. "This needs to be done properly," he said with a barely noticeable smirk.
Re: Finns, demoscene, and frugal computing: see also Viznut and his insightful essays: http://viznut.fi/en/
Here is me using it to log onto my webserver, it loads the SSH key from a 5.25" floppy: https://twitter.com/vkoskiv/status/1370116376166273025?s=20
You'll have http and gopher support granted. If libressl compile and run, place it under /opt, and maybe you'll be able to compile a gemini client.
It's just impossible to compare the numbers when the differences are that large.
And of course, a post like this is not complete without me noting that the response times when pressing a button on the keyboard was vastly faster on my C64 than my modern machine.
Related - the analysis on input latencies by Dan Luu https://danluu.com/input-lag/
No numbers are given for the C64, but the timing for the CBM4016 (with quite similar firmware/BASIC) should be similar. The Apple 2 input latency is even lower. Perhaps this is related to the fact that the Apple 2 firmware didn't use interrupts and polling might have been more efficient in this case.
I actually have two of them (from different vendors) with the same SoC. One has 32 MiB of RAM soldered on that I can't upgrade (a Kontron board), the other has a SO-DIMM slot (a WinSystems board). So $5 and some eBay sleuthing brought it to 128 MiB. As for the former, I don't have schematics, so I'm a little uncomfortable just soldering another SDRAM chip to it and seeing what happens.
Only thing I was a bit sad about was that I spent the time figuring out how to change the CHOST on Gentoo to i586, only to discover that the AM5x86 is a 486 based core...
That was the time before PnP ISA and kernel modules, so to get the sound blaster card to work one had to specify the IRQ (and I/O port address?) in the kernel config and recompile the kernel. Good times!
What is the most retro computer that ever served traffic from HN's top page without going down?
Also not all TCP/IP stacks close the socket properly, so the socket cannot just be removed from the memory immediately after sending the page. There will always be sockets that are just waiting for a timeout.
[1]my 486 server does not have any TCP congestion control at all - it just sends one TCP frame and waits for ACK before sending the next frame.
CPU SH3/SH4a, Frequency of CPU 29MHz, RAM 64 Kilobytes
Unfortunately it didn't survive HN effect
"Tämä palvelin käyttää graafista 16-bittistä lEEt/OS-käyttöliittymää. Järjestelmä on yhdellä 1,44 megatavun 3,5 tuuman levykkeellä. Tämä sivusto on kiintolevyllä. BBS on 360 kilotavun 5,25 tuuman levykkeellä. Vieraile myös BBS-purkissa portissa 486 (telnet)."
Translated:
"Server uses a graphic lEEt/OS-user interface. The system is on a single 1.44 MB 3.5 floppy disk. This site is on a hard drive and the BBS is on a 360 KB 5.25 inch floppy disk. Visit the BBS on port 486 (telnet)."
If you weren't there you probably don't realize that the 486 was a huge leap over the 386. We don't get 100% generational improvements these days. The 486 enjoyed a long life and its later incarnations were giving contemporaneous Pentium models a run for the money, and I'm not even counting socket-compatible upgrades from AMD and so forth. You could put 64MB RAM and big L2 caches and there were PCI motherboards in the later 486 years.
Consider that the AMD Geode was basically the last 486 standing, and it was (is) more than adequate for routing between or firewalling fast ethernet links, serving HTTP etc.
You can do virtual memory above the 256kb mark with the most advanced 80s cards but they're even rarer (I think DESQview worked best with this setup, and its what the 386+ software EMM implementations give you). For regular EMS which only works in a single 64kb region, disk caching and RAMdisk were common use cases, which didn't require rearchitecting the OS or applications to understand a new addressing scheme.
On 286+ you can also call a BIOS function to copy to/from extended memory, using only 8088 instructions in your own code, but of course the BIOS code will rely on newer processor instructions to make it happen. http://www.ctyme.com/intr/rb-1527.htm
Aside: cool project! I wrote a protected mode bootloader for old PCs recently and that was quite enough work!
In the end I minimized the HTTPSERV.APP window so that scrolling down the text would not consume too much CPU time.
P.s. I used a 486 as a router for years, and even upgraded it when I found a Pentium Overdrive... which of course was vulnerable to the F00F bug...
OS - FloppyFW: https://www.zelow.no/floppyfw/
Because ISP used PPTP as way to providing internet and i need to share internet on few machines.
I applied for my university using lynx on that 486. Worked ok(ish).
I know I ran a major "topsite" for most of the core warez groups in around 1996 from a 486 and it handled a ridiculous number of connections. It was probably running BSD rather than Linux in those days though as I remember BSD being more stable/better performing at the time.
Finally sold it to someone else who intended it as a server as well. No clue how long it ran for in total...
And because my TCP/IP stack is 16-bit code, it probably won't work for your system. It's just a DOS program that has an interrupt service routine that the other programs can call.
On 286 and above, the interrupt vectors always start at the address in the IDTR (interrupt descriptor table register), even in real mode. Intel did of course not document that :)
If you do this, you can handle any interrupts you want directly, or "reflect" them to the handler installed by the DOS program. A fast technique for doing this takes advantage of segment:offset alias addresses to use the CS register as a pointer to the old interrupt vector:
reflect_int:
; come from our IVT with CS bits 10..2 = interrupt number
; flags, CS and IP on stack and will remain there
sub sp,2 ;reserve space for return segment
push bx ;will become return offset
mov bx,cs
and bh,3 ;clear high bits, BX now offset into IVT
push bp
push ds
xor bp,bp
mov ds,bp ;DS:BX => vector
lds bx,[bx] ;fetch vector
mov bp,sp
mov [bp+6],ds ;store segment
xchg [bp+4],bx ;store offset / load old BX
pop ds
pop bp
retf ;return to actual handlerhttps://blog.kobol.io/2021/08/25/we-are-pulling-the-plug/
Very sad as it was a really interesting device.
Assuming that one "TCP entry" means one socket, that's a lot of SYN packets...
Video from what it looks like on the server: https://www.youtube.com/watch?v=BVKjVyM53sg
I set the maximum amount of sockets to 32, the maximum amount of file handles of the DOS kernel to 40, and the maximum amount of file descriptors per one VPU process to 40. Now it should (maybe) be able to do its work without randomly running out of memory.
-Bisqwit's channel: https://www.youtube.com/c/Bisqwit
Believe it was something like 133mhz but it might have been 3 or 400mhz I just can’t remember. Also forget how much ram it had..
Amazingly freenas performed admirably for basic smb and nfs for all the time I used it..
I don't think it was fast, nor did it probably serve any purpose apart from existing and possibly serving some information about the software it was running.
https://news.stanford.edu/news/1999/february10/webserver210....
https://web.archive.org/web/19991128033948/http://wearables....
>The Matchbox Webserver, which is serving this and the other web pages to you, is a single-board AMD 486-SX computer with a 66 MHz CPU, 16 MB RAM, and 16 MB flash ROM, big enough to hold a useful amount of RedHat 5.2 Linux including the HTTP daemon that runs the web server.