25 ms·
Show HN: My website, hosted on a 386 25 MHz, 4 MiB of RAM, 38400 baud internet
- LeoPanthera 5y agoIt took a second or two to get going but it did load, albeit slowly!
- tomthumb 4y agoIs it just me… this website has the snappiest page load!
- serentty 4y agoThat is what happens when you have a page which is genuinely tiny even for the early days of the web, served over a modern internet connection, and it is cached so it does not have to go all the way to the server. The web could be so much faster than it is.
- tomrod 5y agoI guess we could host sites on phones now too. That'd be really cool.
- lucb1e 5y agoThat was my first thought when I got unlimited mobile data back in ~2006. I could be always on IRC, seed torrents infinitely... and that's when the teenage lucb1e realized that there is no port forwarding on mobile networks and why that is a problem. To this day I wonder why nobody seems to care at all about that. It's like being on the real internet except you can't reach each other, you have to always go through some third party that is on the internet proper. At least we got "net neutrality" now, which doesn't apply to SYN packets for some reason but at least it applies in the other direction, so no more 'blocked site' page on buienradar.mobi because KPN wanted to sell its expensive SMS weather service instead of this newly popular weather radar site. For what it's worth, I did compile and run a bitcoin miner on my phone ten years ago. Running services on it isn't exactly a new idea, but now that they're so powerful, it also means we can't supply enough power from the battery or dissipate enough heat while in a pocket.
- rsaxvc 4y agoFor a long time AT&T would allow phone to phone IPv4 traffic. When T-Mobile rolled out IPv6 you could get to your phone from anywhere else with IPv6.
- controlledchaos 5y agoLink doesn’t work
- notuger 5y agoit's loading fine here
- serentty 5y agoIt could be that it is genuinely not working, but it could also be that it takes a while to start loading. The server can only serve 8 clients at once, over a bandwidth of about 4 KiB/s. So maybe try again and give it some time to load in another tab.
- unfocussed_mike 5y agoEnjoyably deadpan :-)
- christophilus 5y agoPets; not cattle. That’s the way I like it.
- serentty 5y agoIt has gotten pretty busy. In case you can’t manage to load it live from the machine, here is a snapshot of it: https://archive.ph/WUdgc https://archive.ph/WUdgc
- raverbashing 5y agoYeah, even a local cache in front of the serial link would go a long, long way into making this more feasible
- jotm 5y agoBig ooof, of course it's down. I'm hosting a simple static site on a Core 2 Duo + 4GB RAM and it's amazing just how slow the hardware is. It can barely handle 100 concurrent visitors (as tested with JMeter), and if it starts swapping on the spinning rust inside... that's it, forget it, come back the next day. I don't even know how a 386 can even start with modern software.
- serentty 5y agoIt isn’t running modern software. It is running MS-DOS 6.22. If it’s not loading for you, you can try the snapshot.
- jandrese 5y agoI assume you're doing more than just serving up static HTML if your machine can't handle 100 simultaneous connections with a C2D.
- alduin32 5y agoIt could also be thermals.On old hardware the thermal paste is often completely fried. I've seen C2Ds barely able to handle anything once they got hot.
- ericd 5y agoYeah, or dust - my C2D Macbook Pro used to peg all its cores with kernel_task at the slightest hint of work, to the point where the UI thread started hitching because it was getting preempted, and the mouse would skip around the screen. Took me a bit of research to figure out that they use kernel_task for thermal throttling (great naming, guys). Opening it up, there were mats of dust that looked like felt pads between the fans and the heatsinks. Took out the felt pads, suddenly everything was smooth as butter.
- digitallyfree 5y agoA regular static site shouldn't be a problem on a C2D with 4GB, and it shouldn't be swapping either (unless you're doing more than web hosting on that machine). I'm assuming you're literally serving static pages and not running much server-side. Many people host static sites on 1GB SBCs and 1GB/1T VMs with no issues, and you can make do with even less. Update: I tried some tests on my secondary server, which is likely slower than your C2D (AMD G-T48E). I simply ran ApacheBench on the Proxmox Backup Server web interface login page since that's the only web service I have running on it. The two machines were connected over Gigabit LAN and HTTPS was used. This is 1000 requests at a time for a total of 5000 requests. While it was running I was able to make a connection to the login page in my browser as well (it took six seconds to load, but it loaded). I think I did the test properly but let me know if I should try something else; it's been a while since I've done this kind of stuff. ~$ ab -n 5000 -c 1000 https://<PBS server>:8007/ This is ApacheBench, Version 2.3 <$Revision: 1843412 $> ... Benchmarking <PBS server> (be patient) ... Finished 5000 requests ... Server Software: ... SSL/TLS Protocol: TLSv1.2,ECDHE-RSA-AES256-GCM-SHA384,2048,256 Server Temp Key: X25519 253 bits ... Document Path: / Document Length: 1940 bytes Concurrency Level: 1000 Time taken for tests: 34.274 seconds Complete requests: 5000 Failed requests: 0 Total transferred: 10215000 bytes HTML transferred: 9700000 bytes Requests per second: 145.88 [#/sec] (mean) Time per request: 6854.761 [ms] (mean) Time per request: 6.855 [ms] (mean, across all concurrent requests) Transfer rate: 291.06 [Kbytes/sec] received Connection Times (ms) min mean[+/-sd] median max Connect: 21 2863 2225.0 2535 10907 Processing: 98 3275 1836.3 3142 10434 Waiting: 1 3275 1836.4 3142 10434 Total: 118 6138 3078.9 5655 12545 Percentage of the requests served within a certain time (ms) 50% 5655 66% 6733 75% 6965 80% 7569 90% 12324 95% 12469 98% 12504 99% 12517 100% 12545 (longest request)
- SystemOut 5y agoThis is what my first PC was my freshman year of college back in 1990. Felt damn good I got the 65MB hard drive instead of the typical 40MB that most machines had back then.
- serentty 5y agoHeh, this has an 80 MB hard drive and it is killing me with how small it is. I’m constantly transferring stuff back and forth.
- philjohn 5y agoLuxury! I had a 40MB hard drive on my Cyrix 386, and double-spaced it to "80"MB It's crazy to think how little 40MB is now, I've edited PowerPoint decks larger than that.
- wonderbore 4y agoI still remember all the tricks to make a floppy disk fit more data and get more ram. This was long before websites like https://downloadmoreram.com https://downloadmoreram.com were invented.
- deleted 5y ago[deleted]
- AviationAtom 5y agoI just like to go to these to see if they actually are working. Sadly, but predictably, they never are.
- serentty 5y agoIt worked ridiculously well before I posted it to Hacker News. ;)
- AviationAtom 5y agoOh, no doubt, but I hold out hope that somehow, some way, somebody will find a way to handle the hug of death. Perhaps it's simply impractical on such modest hardware.
- serentty 5y agoI think it would have fared much better if I had waited until I got my ISA Ethernet card in the mail. But serving this over serial at 38400 baud and watching it try to keep up was tempting. I’ll have to see how well it fares with real networking hardware. At that point I might post it again, although I will have to add enough content to it to justify a repost.
- CyberRabbi 5y agoAre you able to measure the latency of processing one request when there is no load? Just back of the envelope, if it takes 200,000 instructions to handle a request and we assume 6 cycles per instruction, then that’s about 25 requests per second. HN is roughly 50K requests over 6 hours, so that’s roughly 2 requests per second on average. I would imagine it peaks to about 25. So in theory you should be able to handle the traffic.
- admax88qqq 5y agoThe 38400 baud might be the biggest bottleneck. http://bettermotherfuckingwebsite.com/ http://bettermotherfuckingwebsite.com/ is 20k, ignoring http overhead. Maybe strip that to 15k after compression, and cut some content. Still 15000/38400 <= 3 responses per second. Add in serial parity overhead, http overhead. Might be able to sustain 2 rps with enough cleverness. Leaves no room for bursts
- system2 5y agoI guess it explains why it doesn't load for me, or anyone.
- MrYellowP 5y agoPoor 386. 25MHz ... an SX, I'd guess? Man, you should get that upgrade to 8 megs of RAM. Windows 3.1 benefitted greatly and even OS/2 Warp, which already worked fine with 4 megs, saw some improvements in performance.
- serentty 5y agoIt is indeed an SX! I am upgrading it to 16 MiB soon, as well as putting an Ethernet card in it. At that point I think it might end up a much more capable host. I am not sure if I want to find some way to keep this page up long-term yet. If there ends up being a reason to, then I will look around for some suitably retro way to host it, while still allowing me to use the 386 for other things.
- sgt 5y agoThe SX makes it practically a 286, right?
- smackeyacky 5y agoSort of. 32 bit internally, 16 bit externally. Not as fast as the DX but had all the processor modes so could run protected mode unlike the 286. One place I worked we sold a 286 upgrade board that had a 386sx and a few support chips. Undearneath was a 286 style socket. You removed your 286 and put this thing in its place. They worked OK and provided a decent speed boost.
- unfocussed_mike 5y agoAmstrad's last great PC series (the 3x86 series made with very standard components, unlike the unusual 2x86 series) used this strategy for the 3386, I think.
- guidedlight 5y agoThe 286 is a 16-bit CPU, whereas the 386 is 32-bit CPU. This alone made the 386 far more capable and compatible with modern software (Linux requires 32-bit).
- mechanical_bear 5y agoYour machine is smoking right about now… might want to open a window.
- Simplicitas 5y agolol .. it's always the same story with these .. lol
- deleted 5y ago[deleted]
- Stampo00 4y agoThey can't open any windows. It's only running DOS.
- deleted 5y ago[deleted]
- fevangelou 5y agoThanks to CloudFlare, it's working now...
- serentty 5y agoYep, I figured it was the only way to get it to keep working. Interesting that it seems to work for you already. It isn’t yet going through CloudFlare for me when I try to visit it. Maybe DNS cache?
- fevangelou 5y agoIt could be your local DNS cache. Testing with a private browser window usually does the trick, otherwise, just flush your DNS cache ;)
- cush 5y agoWouldn't load. Title checks out. :)
- freitasm 5y agoCloudflare free plan exists for a good reason.
- the__alchemist 5y agoMakes me wonder if you could do it on a Cortex-M!
- Keyframe 5y agoLoaded and now I want to know more about Rust->C64 (kickass and acme here)
- serentty 5y agoThis fork is handy for that. It’s fun to play with, but you need to do a decent amount yourself to get it set up. https://github.com/mrk-its/rust-mos https://github.com/mrk-its/rust-mos
- butz 5y agoI bet someone is trying to access this website using similar hardware.
- xyst 5y ago> I have gotten Rust to compile for 386 DOS machines before I don't know why I laughed so hard at this. Why would any sane person do this?
- mhh__ 5y agoWhy not? If you talk to the spooky GCC people with beards they'll point out that they support much much weirder chips than that (albeit with little to no library support).
- serentty 5y agoIt’s fun. Lots of people like doing retro game dev and the like, but often you are stuck with ancient C toolchains that suck even if you like C itself. Getting Rust working is a great way to make it more enjoyable from a hobbyist perspective, I think.
- b112 5y agoI guess you will laugh harder, at the guy trying to get it to work on Psion 3a.
- cesarb 5y ago> Why would any sane person do this? Perhaps the same kind of people who got GCC to compile for 386 DOS machines (also using DPMI). Which might sound useless, since it's an underpowered operating system running on underpowered hardware, but it was used to build some very popular software, like the original Quake game (source: http://www.delorie.com/djgpp/history.html http://www.delorie.com/djgpp/history.html).
- nine_k 4y agoThe original Doom, yes. Even though it was barely playable on a 386 25 MHz. The original Quake was barely playable on a 486 DX4 100 MHz, and was fine on a Pentium.
- anthk 4y agoThe FastDoom port slims down some floor textures and such and makes Doom playable (and not stamp sized) on a 386. About the 386, you could run SICP as a GNU Info file blazingly fast and a Scheme compiler on another TTY, or under GNU Screen. You could typeset with Groff and Mom, too. Now try running LaTeX on that. Yes, Donald Knuth is the Ur-creator on CS and typesetting, but hey, sometimes you don't need a full 3GB Texlive suite to typeset some book or math equation notebook.
- MiddleEndian 5y agoIt loaded for me just now, took a minute or so.
- sydthrowaway 5y agoWhy aren't there ASICs for hosting web sites
- IgorPartola 5y agoESP32 can do it.
- idealmedtech 5y agoThat's a general purpose microcomputer, not application specific!
- cperciva 5y agoBecause there's no point. A single server can push hundreds of Gbps of traffic already; using an ASIC would just make it less agile.
- ip26 5y agoYou might be able to bake some preprocessing of e.g. HTTP into the NIC, doing incrementally more work using well defined standards before delivering packets to the host. Especially with an FPGA.
- cookiengineer 5y ago> Why aren't there ASICs for hosting web sites Isn't this what ESP32 variants are trying to achieve? [1] [1] https://en.wikipedia.org/wiki/ESP8266 https://en.wikipedia.org/wiki/ESP8266
- csdreamer7 5y agoWhat is the power consumption? Curious how it compares against a Raspberry Pi Zero.
- vmception 5y agoIts a good reminder that you can! My issue with these projects is how much energy they use for whatever task they can do. I have a 10 year old machine that was a high end machine in its day, being lapped by a high end laptop on all tasks, except for gpu tasks I slammed into the PCIe slot. The power consumption is honestly sad. Its not like its an energy cost thing, as it would take decades to break even in lower electricity bills after buying a high end machine specifically for lower energy use, its more of a self conscious thing. OPs machine should just be a compute instance virtualized in some gigantic memory cluster somewhere that was already running.
- aaaaaaaaaaab 5y ago>OPs machine should just be a compute instance virtualized in some gigantic memory cluster somewhere that was already running. Then it would no longer be OP's.
- deleted 5y ago[deleted]
- taf2 5y agoWhat’s amazing to me is my tiny esp32 d4 pico has attached psram of 8mb compared to the x386 powering this with only 4mb… I bet my ram is faster too…
- huhtenberg 5y agoTakes 80ms to load. From Europe. That's insane, if not altogether impossible. But the IP resolves to 188.114.96.3, which is Cloudflare. So regrettably it doesn't look like I was actually fetching anything off 386 per se.
- serentty 5y agoWhen I first posted it a few hours ago, I didn’t have CloudFlare. You can see lots of people unable to load the page at all in the earliest comments. Unfortunately it got to a point where pages weren’t just slow to load, but the connections were dropped entirely. So I figured that between the options of enabling CloudFlare or just having it be completely inaccessible, the former was preferable even at the cost of authenticity. I would love to find a better idea for how to keep the site online, if you have any.
- zepearl 5y agoBut but..., going through Cloudflare makes it lose all what's related to the context of being hosted ony a 386SX etc... :(
- deleted 5y ago[deleted]
- wonderbore 4y agoIt took 96ms to load on an Indonesian island. This is the internet we deserve.
- throw7 5y agodelete
- serentty 5y agoPlease see the comments on this thread. It was directly internet facing when I posted it initially. Hacker News managed to bring it down. I had to add a cached reverse proxy. If you have any ideas about how to more authentically keep the site online, please let me know.
- throw7 5y agoFair enough, I'll admit I was a bit triggered by the title. I'll delete my original comment. There is a realistic bound to the amount of requests you can serve per seconds per hardware... I'm not doubting you've done things to increase that.
- quenix 5y agoThis uses CloudFlare and the page is cached (CF-Cache-Status: HIT header). Kinda disappointing that we're not receiving data from your compunet but rather the CloudFlare edge machine.
- WheelsAtLarge 4y agoI find it interesting how little computer power you need to host a highly accessed website by using CloudFlare. When 386's were the cutting edge it would have taken a car load of computers plus some fancy cutting edge load balancing software. All very expensive.
- vlovich123 4y agoYou could put that entire web page in a Worker probably and not even bother with an origin (or use CF pages). Disclaimer: I work on R2
- tbyehl 4y agoThe 386 was far from cutting edge by the time Al G^H^H^H^H Tim Berners-Lee got around to inventing the Inter^H^H^H^H^H World Wide Web.
- Tepix 4y agoThe web was invented in 1989, the same year the 80486 hit the market. So the 80386 wasn't that far from the cutting edge.
- serentty 5y agoIf you had visited a few hours earlier it would have been direct. Then the hug of death hit. If you want to visit the page directly without CloudFlare, go to http://trombone.zapto.org http://trombone.zapto.org instead.
- em3rgent0rdr 4y agoI love watching the text load in discrete chunks!
- orangepurple 5y agoDitch cloudflare and write the web server in assembly and see if it holds up to raw HN traffic. Bonus points if you have an L1 cache and can fit and serve your entire website from it.
- serentty 5y agoI think the 38400 baud connection is a bigger issue than the CPU load. When I get Ethernet working I think there is a decent chance that I won’t need CloudFlare—especially if I can find a full 32-bit server that really uses the potential of the 386. Now to wait for that card to arrive in the mail. ;) Edit: If you want to visit the page directly without CloudFlare, go to http://trombone.zapto.org http://trombone.zapto.org instead.
- orangepurple 5y agoI guess the next challenge is gigabit ethernet (!!!) for the 386
- serentty 5y agoThere are 100 Mbps (Fast Ethernet) cards for the ISA bus, which in practice can apparently be around 50% faster than 10 Mbps Ethernet over such a bus. However, they seemed pretty expensive compared to the ubiquitous 3com Etherlink III that are available quite cheaply. I think Ethernet will still make a huge difference in terms of serving this site.
- mikesickler 5y agoI hope you've disabled call-waiting on your phone line :)
- Cd00d 4y agoWhy does the title have the 'i' in 4 MiB of RAM? That's 4 megabytes, right? Traditionally 4 MB? What does the extra lowercase letter indicate? I'm not used to that, and I've been dealing with bytes from the kilo-size to the peta-size for 40 years.
- johnnyapol 4y agoMiB refers to mebibyte, which is in base-2 (2^20 bytes). MB is canonically base 10 (10^6 bytes).
- kadoban 4y agoMiB is an attempt to disambiguate what used to be unambiguous before the hard drive companies set their marketing teams on it. Specifically, MiB is 1024^2 bytes. MB is either that or 1000^2 bytes, depending on who you ask and if they're trying to sell you something.
- mbbrutman 4y agoFor the record, the machine is running the mTCP web server: http://www.brutman.com/mTCP/mTCP_HTTPServ.html http://www.brutman.com/mTCP/mTCP_HTTPServ.html I wrote it back in 2014 and I've hosted brutman.com on it at times. My usual machine to run it on for torture testing is a PCjr with a hard drive and Ethernet. This 386 would be so much happier with an Ethernet card; the serial port connection is really hurting the performance. A new version of mTCP is in the works; look for it in the next two months.
- serentty 4y agoOh wow, I know you from the README! It really is something seeing you here. It is not a very impressive site at the moment but the immense amount of traffic that I have been getting is encouraging me to grow it into something with some actual content. Probably something retro related in some way.
- deleted 4y ago[deleted]
- borgchick 4y agoPSA: if you want to see how the site loads directly from the machine (eg, bypass cloudflare), just give it any random query string param. Such as: http://serentty.com/?t=13432 http://serentty.com/?t=13432 or http://serentty.com/?t=356561649 http://serentty.com/?t=356561649 If you look at the headers, you'll see "CF-Cache-Status: MISS". And you'll see the site load, just as you remember from the BBS days. You are welcome.
- serentty 4y agoI actually added a link to the page to bypass CloudFlare entirely. I wanted the page to remain accessible so people could see what was on it regardless, but CloudFlare helps with that, but I also know that setting the page load slowly from the real machine is also an experience that many people are there for, so I tried to find a way to have my cake and eat it too.
- borgchick 4y agoah! nice! sorry about that, I will admit (although I think you already know), that I didn't initially read the contents of your page :)