116 comments

[ 18.4 ms ] story [ 682 ms ] thread
Kinda neat. However i'm pretty sure there are still quite a few i386's online somewhere in the production department of various companies. The 80386 was produced until 2007, just like the 80486 and even the much more recent Core Duo! It outlived the Pentium, which was only produced until 1999, the Pentium II (-2001) and the Pentium III (-2002).
I still use a cnc milling machine controlled by a 386. The only way to load gcode is via manual entry or floppy. However, it still gets the job done just fine for 90% of my needs.
There's probably a way to fit an SD card or flash drive in a floppy emulator?

I'm curious now. Is that a 386 PC? Does it boot off of a small hard drive?

There are adapters that let you use SD cards in place of floppy or IDE drive.
compactflash is nearly pin compatible with ATA, i had several laptops repurposed as home routers with CF cards on little adapters. I could probably dig one out and take a picture.

edit: shoot, i think i meant IDE, not ATA

Yep, my Amiga 1200 does exactly this. It’s very tempting to put it on the internet.
ATA and IDE is the same thing. Usually CF cards will just work on adapters.
Do they support hotplugging? afaik traditional floppies do and could be essential to workflows if you can avoid the costly reboot time.
GoTek being most popular, yes.
There are adapters to use flash cards in real 3½" floppy drives.

I had a nice metal one made by Sony years ago. Flash card slides in one side, and there's a place for a button cell to power it. Then you just stick the whole thing into the floppy drive like a regular disk.

How many OS assumptions does it break to have a massively oversized capacity on a floppy drive?

Or is it just using 1.44mb of a multi-GB SD card?

Neutron star density
I'm assuming if it's a floppy emulator it just has floppy density, but you can emulate an IDE hard drive as well.
Oh, I may have been misunderstanding the parent comment but it sounded like they were saying it was an adapter that let you put flash memory devices of some sort into a regular floppy drive.
No, it is not a ATA/IDE (nor SATA) device, it is intended as a "direct replacement" for floppy drives (on embroidering machines, music instruments, CNC and similar), so it uses the 34 floppy connection (on PC-like hardware).

There is - besides Gotek - an alternative which is open source and (if one wants to) DIY, the HxC, a few different possibilities:

http://hxc2001.free.fr/floppy_drive_emulator/index.html

The GoTEK (or similar) use several floppy images (each one 1.44 MB) and you can select manually which one to use.

I think it depends on the model, but should be able to select among up to 100 or 1000 such images.

Often, these present as multiple floppy sized chunks for exactly the reason you cite. I don't know about the Sony described, but the Gotek I have has a little front panel that let's you select a numerical floppy unit that presents as a: or whatever.
We've got an old cnc lathe that originally ran via a BBC Micro. It ended up being supported by linuxcnc so it might be possible to update your controller if it becomes annoying.
Looking at the problem a different way (maybe), you can buy BBC Basic and run it on modern x86 hardware.
We're in a similar position and the PC runs DOS, with all of it's memory limitations. Any of our bigger pieces need to be run in multiple jobs as one job won't hold enough data to complete it.
You may be able to use a "drip feed" / DNC (direct numeric control) system, where NC code is fed to your machine from an external controller. At a previous company we had a modern PC on the network, with connections to ethernet COM port modules installed on the CNC machines. You'd choose a program for a machine, set up the machine controller to run a program from tape (or somesuch.. it depends on the controller), cycle start.. boom, you're running a large program over the network. It's a very handy solution.
We have Moxas on almost all of our machines now. This one is a special case.
Sounds like Klipper but for cnc.

The scheme is a huge win on 3d printers even though it adds a component to the system (generally a bad thing all else being equal, but all else is not equal).

Even when you aren't talking about being stuck with some old proprietary and limited controller & firmware but can buy powerful new wide open controllers and load your own up to date open source firmware on them, it still ends up being even better to have the minimal klipper firmware on the controller and do all the real work on a host.

While I don’t recall ever having a problem with DOS, have you ever tried OS/2? We never attempted it due to the relative fragility of the system and lack of support, but thought it would have provided some more modern capabilities (this was back between 2000-2003).
Unfortunately it wouldn't help since you'd still need to re-write the program (or at least port to a 32-bit compiler and use a DOS Extender), it's the 64k memory segmentation that's the issue
There's a bunch of 386s on the ISS. The main systems on the ISS are MDMs (multiplexer-demutiplexer) that communicate with "dumb" devices like sensors, actuators, and motors. The MDMs contain removable boards with a hardened 386, RAM, an EEPROM, and talk over a 1553 bus. Some MDMs live on the outside components of the station and some live inside. Astronauts can replace the CPU boards inside the MDMs if they burn out. The station has a few dozen MDMs each with four or more boards inside.
I have a tray of i386EX33's in my parts bin. I figured I'd make something out of one eventually.
My company still manufactures new products that use a 186 >.<
An Apple ||gs getting online is pretty commonplace, so a 486 isn't that impressive or rare. Definitely far from the last.
> It seemed that the ancient lan card was able to transmit packets but not able to receive.

> After some inspection with a scope we found out that the RX trace after the transformer was missing / corroded and a patch was needed. A quick fix was to solder a wire and voila we we able to receive an IP address using the mTCP packet software for DOS and the DHCP client that comes with mTCP

Mad debugging skillz!

Me: "Surely the Linux Kernel has build options for x86 that includes no-FPU"

20 minutes later: "Oh right they removed i386 as a target because it sucked and wasn't maintained that includes i486... so now you'd have to target a Pentium or higher"

But seriously the Linux kernel does support not having an FPU... just not on x86 as best I can tell.

The Linux kernel has an x87 emulator.
It does... and doing a quick search of the kernel source it's not actually used for anything I can't find it referenced outside of itself. There is FPU emulation for m68K that is, but x87 is not.
> and doing a quick search of the kernel source it's not actually used for anything I can't find it referenced outside of itself.

It's being used here: https://lxr.missinglinkelectronics.com/linux+v5.16/arch/x86/...

Whenever the kernel gets a "device not available" exception, and CONFIG_MATH_EMULATION is set (which is the case when the kernel is compiled for a 486SX), and the CPU does not have a real FPU, and the "emulation" flag on CR0 is set, it calls the FPU emulator.

Good to know I was looking in the wrong spot, I was looking for what looked like the most likely header other parts of the code would be using.
Ah, you got faked out. The kernel doesn’t really use FPU even in modern CPUs. The emulation is for userspace’s benefit, not the kernel’s
I believe that the latest kernels still support CONFIG_M486 though one would have to check. Even i386 support was only removed because it led to complications in the SMP support code, so it could likely be readded for non-SMP configs (most if not all 80386 systems are single-processor). It's a matter of doing the work (making sure that it does not inconvenience support for other archs), posting it to LKML and committing to maintaining it.
(comment deleted)
There's always NetBSD, and FreeDOS can get online just fine. Both are currently maintained. http://wiki.freedos.org/wiki/index.php/Networking_FreeDOS_-_...

There are also older Linux distribution images available. OS/2 or one of the two commercial spin-offs would have networking support. Windows 95 will run slowly on a 486 but may require the coprocessor. I don't recall about that. Windows 3.1 or 3.11 with Trumpet Winsock will get online.

I have a couple of Portmaster 2e IP to serial servers. When I was in the ISP field before the 56k DSP-based integrated systems, we used to hook modems up to devices like that to provide dial-up service. I can hook up around 40 systems that have RS-232 ports to the Internet that way.

The kernel does support the 486[0], it is just looks like some "486"s were really 386s. 486SX (which is supported) has its FPU disabled so it most likely uses the x87 emulation.

[0] https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/lin...

I can't find support for those flags outside of two files, I'm 90% sure the kernel requires CMPXCHG8B which isn't supported on 486 iirc
> I can't find support for those flags outside of two files

Most of or all of the uses of those M486/M486SX/etc flags are on that file itself. For instance, it sets CONFIG_X86_INVD_BUG whenever either CONFIG_M486SX or CONFIG_M486 is set. It's those other flags that are used elsewhere; as you can see, there are many of them.

> I'm 90% sure the kernel requires CMPXCHG8B which isn't supported on 486 iirc

I believe CMPXCHG8B is CONFIG_X86_CMPXCHG64, which as you can see on that file, is not set for M486/M486SX. As you can see searching for that, there is support for CMPXCHG8B emulation (see for instance https://lxr.missinglinkelectronics.com/linux+v5.16/arch/x86/...) on CPUs which do not have that instruction (complete with an use of the "alternatives" mechanism to automatically replaces the emulation calls with the real CMPXCHG8B instruction when it's available on the current CPU).

If I remember rightly, the 487SX was actually a full 486DX processor that, when installed, disabled the existing 486SX CPU.
> But seriously the Linux kernel does support not having an FPU

How does this work? Do they use software emulation of floating point calculations?

not anymore :) (as of 13:22 UTC), though I expect it will come back. eventually.
Well, it was the last i486 online. All it took was posting it on HN.
Came looking for this comment, heh.
If they put cloudflare in front, would it still be right?
You could put one of those tiny embedded microcontrollers behind cloudflare and it would be alright, provided the site is static. You might need a pro plan, but with the right cache headers each cloudflare origin would hit you once then serve many requests with that response.
Heh yeah, you don't even need to do TLS.
If they put any CDN in front of it. Or another web server hosted in a datacenter.

Cloudflare isn't anything unique or special aside from getting a bunch of VC funding so they could make the entry level plan free. Historically CDNs didn't do this because most sites don't need it, and abuse was common. However it clearly worked out for them in community name recognition.

Cloudflare is special because it regularly pisses me off with its captchas that feel like actual work to prove my humanity or, even worse, outright non-bypassable "this website uses Cloudflare to protect itself from online attacks". I don't know how good of a CDN it is, but its reputation in my eyes is "something that meddles with my web browsing for no good reason when I least expect it".
Cloudflare will only block inbound traffic in two situations:

- if the request contains an exploit (the Cloudflare WAF) - if the website owner created a rule to block a request

Most of the "this website uses Cloudflare to protect..." is a consequence of the second one.

To make things easier Cloudflare has a switch to automate the second one - basically it just looks at IP threat levels based on honeypot services all around. Visitors receive a "level" based on IP, region, browser version, etc and if the level is above the switch (Low, High, Medium) then it's blocked.

People go for this option - set the switch to High and block almosty everything. Other people will set it to Low or Off and then create their own firewall rules - for example a website owner can create a complex set of rules (in addition to the Cloudflare WAF exploit, or replacing it). See https://community.cloudflare.com/t/the-firewall-rules-we-fol... for an example.

People will see the page sayng "Cloudflare blocked you" when in fact was most likely the website owner.

Any CDN. They just need to set the cache header right - or set to cache everything.
Found this hilarious XD..
Right?

A 486 running a webserver behind CloudFlare returning a 502 Bad Gateway was the perfect "I don't know what I expected" moment.

It was the same when someone posted a web server running on a Sinclair zx81
There's still a Sinclair ZX81 online:

http://zx81-siggi.zx-team.org/index.html (previous HN discussion: https://news.ycombinator.com/item?id=25638936)

and a Commodore 64: https://www.tfe.c64.org/

not anymore. both links down.
"That was a priceless Steinway." "Not anymore." - Inspector Clouseau.
Way to go, you just set fire to a Sinclair and a Commodore, you monster.
Yeah, you lot wreck my poor little Alpha Micro Eagle 300 (68030) every time it gets posted here. It's like you like these old beasts or something. ;)
Now that I think about it, my first visit to the Internet was on a 486 (though I’d been using the same machine to access BBSes beforehand). I guess that’d be the same for a bunch of people here.
Yep, same here.

Rocked a Packard Bell 486DX2 66mhz, with 8MB Ram, and a 400MB HDD. Came with a 14,4kbps modem that I upgraded to 33.6kbps. BBSes from the free newspapers is what got me "online" and eventually I was able to PPP over WinSock to get my Windows 3.11 on to the REAL internet.

I miss those times.

Nothing like spending hours downloading a few early MP3s in 94-95, and having to play them back at 1/2 or 1/4 quality because the 486 couldn't keep up (and even then running out of cache 60-70 seconds in and paused for it catch back up).

> Nothing like spending hours downloading a few early MP3s in 94-95, and having to play them back at 1/2 or 1/4 quality because the 486 couldn't keep up (and even then running out of cache 60-70 seconds in and paused for it catch back up).

LOL. I used to have to decompress them into 40MB WAV files to play them. My whole hard drive was 50MB.

Am486DX4/100 couldn't run 44k/Stereo, but at 22k it would play it in a ... single mode (Win9x with WinAmp) and at 11k you could even try to do something easy, like writing text in Notepad.

Though I preferred to just play MIDIs and do my things.

Well now I feel compelled to install a web server on mine. I've got a fully functional i486DX2 66Mhz, though the PSU is a little shoddy.

Maybe we can create an old school banner network linking all these old computers together :D

how many amps does the PSU draw at the wall under full load? there's probably something like a pico/nano PSU that will work with AT (those were AT, right?)
I've no idea - but it's probably worth replacing either way.
I still remember when the engineering company I worked at obtained its first 486 PC - through acquisition of another company, no less.

We reverently talked about "the 486" and it was stored behind a locked door. Only the most CPU-intensive jobs would be deemed worthy of CPU time on the beast.

And then the CAD department bought a whole bunch of 486s to do PCB layout, and the mystique was gone.

My first job was working for a small retail/VAR shop - just me and my engineering-background boss/owner who specialized in CAD/CAM transitions for manufacturing. (Plus blueprint scanning/digitalization and vector conversion)

Our very first order came in for an i486 - so excited, I grabbed all the components, headed into the backroom and built the machine.

Once it was all together - I eagerly threw the power switch on... Darkness... the breaker blew, the lights were out...

Well... turns out, I had rotated the CPU 180 degrees from it's required position. OMG... here I am a teenager and now I am going to have to pay for a $1200+ part?

My boss calmly reseated the CPU correctly, and... it worked!

We did a 5-day burn-in/benchmark with no problems, and never had any callbacks from the customer.

> Well... turns out, I had rotated the CPU 180 degrees from it's required position. OMG... here I am a teenager and now I am going to have to pay for a $1200+ part?

I did something similar with an i486 DX4-100; I wasn’t so lucky: the power supply held up, the CPU smoked and it took out the motherboard. Thankfully this was well into the Pentium-II era, but it was still pretty devastating. If I recall correctly, it just slotted in the wrong way like it was meant to go; I guess modern CPU sockets have fixed that.

> I guess modern CPU sockets have fixed that.

Kinda. All that's stopping you from inserting a Ryzen CPU wrong way around is a 0.3mm copper pin that exists in one corner, but not the other. So there's still that worry of, "should I force it because it needs a bit of force, or should I not force it because I'll break it?" I think Core CPUs are the same way.

Seems like knowing when to apply force is half the battle of building a PC. For reference, modern CPU installation should require NO force if done properly. Gravity alone should let settle into the socket. Gently attempting to twist it should yield no movement if it is seated correctly.
The first computer I ever upgraded on my own was a P3 system (my family owned a few, we just never upgraded them without taking them to a shop). I knew if I broke something/did something wrong my parents would never forgive me, so before I tried upgrading the RAM I read all the documentation and a couple A+ books.

The thing they all repeated was how applying force was absolutely the wrong thing, you should never need to force anything into place.

Well, I'm sure you know how this turned out: none of the RAM I installed was seated in its socket properly so in a cold sweat I forced all of them into place. Still feel nervous about installing RAM to this day.

That KKKKRACK! when you put brand new ram into a brand new motherboard for the first time is the worst. Nothing gives me greater anxiety about the future of my new baby PC than that sound. It's the PC building equivalent of cutting the umbilical cord.
Intel CPUs are not the same way, and haven't been for nearly 20 years. The pins are on the motherboard, and the CPU has lands; hence the name 'Land Grid Array' (starting with the LGA775).

Most of AMD's CPUs are still of the PGA (Pin Grid Array) type; but it's worth noting that this isn't true for Socket AM5, which is itself an LGA socket, and the socket for the Threadrippers has been LGA since its inception.

Back in the day, if you were a top tier animation, video game, graphics, or CAD shop and you could afford it, you bought an SGI workstation. One workstation. For your entire company if you were small and boutique enough. They cost tens to hundreds of thousands of dollars a pop, but they could do 3D accelerated graphics like no other computer could.

Today even the rinky-dink Intel GPU in an HP Stream has more oomph than those SGI beasts, and people doing visualization work just buy PCs with NVIDIA cards. They can get pricey, but not top-end SGI pricey.

My first time I worked on an SGI workstation, I remember running TeX on it. I thought nothing happened because the process that took around 10 seconds on my 486 tower ran so quickly that the window didn't even scroll: It just repainted with the new output.
I did my work experience at SGI the week that the first Reality Center was opened. A side room held racks of Power Onyx and Infinite Reality2 tin to drive the wraparound projection screen, and there were some very impressive demos.

Six years later I was at a university seminar where one of the exact same demos was shown off, running on a laptop.

There were SGI workstations in the late 1990s-early 2000s with the equivalent of a full computer cluster inside; the IRIX operating system running on them managed to expose a single-system programming model where a single global address space and shared-memory support was provided by software, abstracting away the separate per-node RAM in the cluster.

Linux is still quite far from doing anything like that, though container support provides a required foundation for any such feature, and is already paving the way for intermediate steps such as process checkpointing and migration across hosts.

I still remember asking for a mathematical co-processor for my birthday so I could run CAD at home (my family owned a tool and die company, so I got to see all the cool tech they were using).
HackerNews crushes "the last" 486, then proceeds to smash all the other machines posted in the comments. It's like the day of reckoning for cute old hardware.
I'm tempted to post the address of my DEC running NeXT ...
We could easily melt that down too.
It would literally turn into soup.
Makes me want to get my old 8088 XT out and hack it into the web.
I wonder what a Vortex86SX counts as. It's not Intel, it's closer to a Pentium, but lack a FPU.
It's nowhere near as impressive, but I kept a PII running as a server for a very long time.

The Pentium Pro-PIII era was an interesting time because USB had just shown up, PCI was commonplace, FPUs and SIMD were now standard. Many x86 Linux builds target i686, so it's the the oldest PC you can reasonably run modern Linux on without much hassle.

I'm pretty sure that modern software projects like Firefox need special patches to work on PIII-era hardware. The Debian versions of Firefox for i686 do include these patches, so they ought to work provided that the system has enough RAM.
We have a SPARC IPX online (albeit firewalled from the Internet) doing production tasks for $reasons. It's been online since about 1992. The hard drive sounds like a metal grinder.

Anyone else have an IPX or older online for non-novelty purposes?

Edit: 30 years now!

I ran a SparcStation 5 until about 2006. About 30 users.
I use to run an uptime server (http://uptime.openacs.org) and a tiny url server (http://myturl.com) on an old SparcStation pizza box until 2006, when the final hard drive I was going to buy for the best finally dead.
That's hilarious. I also ran a tiny URL server off my SS5. Nowadays that service would have been cloud based and cost $1k/mo in AWS costs for the same amount of users.
Back in January 2000 I set up an Atari 800 as a web server with a 3com CS-210 terminal server as the TCP interface.

The Atari had no problems keeping up with several requests per second even after being Slashdotted since all of the expensive TCP stuff was offloaded.

There was a 16-bit hit counter on the page that overflowed and the CS-210 would crash after a day or so but otherwise it worked surprisingly well.

https://kevinloch.com/atari/