PCjr WebServer Hits 2500 Hours Uptime

When [Mike] fired up his PCjr webserver back in March, he probably wasn’t expecting it to go viral. 2640 hours later, here we are! Not only has his machine run continuously for over 110 days, it also is surviving a global hug of death. All of this is thanks to some very special software.

We see lots of old machines here on Hackaday. We also see lots of minimal web servers. But we don’t see many that can run for thousands of hours, offering up to 8 simultaneous connections. Curious if jr is still up? Check brutmanlabs.org. The whole website is hosted on the 40-year-old machine. If you want to be a bit more kind, here’s a direct link to the text-only status page. While many of those hours were idle, currently lots of folks are hitting that little V20 CPU, so please give it a few seconds to respond.

The PCjr has a few upgrades — the aforementioned V20 CPU upgrade, a jrIDE sidecar, and a memory upgrade to 736 kB to name a few.  Ethernet connectivity is via a Xircom parallel port adapter – which is circa 1993.  The operating system is IBM PC DOS 5.02. One thing to note is that all these upgrades were possible back in the mid-1980’s when the PCjr was still current.  [Mike] could run the system with an MFM hard drive, an ISA ethernet card (via an adapter), and use the original CRT monitor. Older DOS versions would work too — though partition sizes would be limited. The “modern” conveniences are just to keep from wearing out vintage hardware which is quickly becoming rare.

The real glue that holds this all together is [Mike’s] own software: mTCP. mTCP is a full set of tools for running internet applications on systems running MS-DOS or a compatible OS. We’ve seen quite a few mTCP projects over the years.  [Mike] has worked tirelessly testing the software, ensuring that it is stable and reliable.

Software is never perfect though – one thing [Mike] didn’t implement is a log roller. Since he has logging turned on, the PCjr was slowly filling up its hard drive. Once the drive was full, mTCP would perform an orderly shutdown — but the uptime will be reset.  [Mike] was able to go in and switch off logging with  DOS’s DEBUG command. A live patch is not the way one would normally update software – but the fact that he was able to do it shows how deep [Mike’s] knowledge of the software goes.

[Mike] has even provided a live stream recording of the little PCjr handling requests from all over the globe.

Continue reading “PCjr WebServer Hits 2500 Hours Uptime”

DIY All-Flash NAS Vs. Commercial Hardware

[Jeff Geerling] has tried building his own network-attached storage before, but found that the Raspberry Pi just wasn’t able to keep pace with his demands. He’s back with a new all-flash NAS build, and put his new design to the test against proper store-bought gear.

His build is based around the ROCK 5 Model B, which is able to truck data around far faster than most other single-board computers. Internally, it can top 1 GB/sec without too much hassle. He decided to build a NAS rig using the board, putting it up against the turn-key ASUSTOR AS-T10G3.

Using OpenMediaVault to run the ROCK 5 as a NAS, [Jeff] was able to get decent performance out of the setup. With a 3-drive RAID 5 configuration, he recorded write and read speeds of 100 MB/sec and 200 MB/sec respectively, over a 2.5 Gbps network connection. There were also some spikes and curious performance wobbles. While speed was better than [Jeff]’s previous Raspberry Pi experiments, it wasn’t capable of double or triple the performance like he’d hoped. In comparison, the ASUSTOR solution was capable of much greater speeds. It topped out at 600 MB/sec write speeds, and 1.2 GB/sec on reads.

If you’re looking to build a high-performance DIY NAS, the ROCK 5 may be a better solution than most Raspberry Pi boards. However, if you want speed over all else, existing commercial NAS solutions really have the edge. Video after the break.

Continue reading “DIY All-Flash NAS Vs. Commercial Hardware”

Bringing Back The Minitel

If you didn’t live in France in the 80s or 90s, it’s likely you missed out on one of the most successful computer networks in existence prior to the modern Internet. Known as Minitel, it was an online service available over existing phone lines that offered a connected computer terminal for users to do most things we associate with the modern world, such as booking travel, viewing news, looking up phone numbers, and plenty of other useful activities. While a lot of the original system was never archived, there are still some efforts to restore some of its original functionality like this MiniMit.

The build requires either an original or a recreation of a Minitel terminal in all its 80s glory, but pairs an ESP32 to support modern network connectivity. The ESP32 interfaces with the Minitel’s DIN socket and provides it with a translation layer between WiFi and the networking type that it would have originally expected to see from the telephone lines. Two of the original developers of Minitel are working on restoring some of the services that would have been available originally as well, which means that the entire system is being redeveloped and not just the original hardware.

We’ve mentioned that this system was first implemented in the 80s, but the surprising thing is that even well after broadband Internet would have been available to most people in France, the Minitel system still had widespread use, not being fully deactivated until 2012. They remain popular as inspiration for other projects as well, like this one which was brought a little more up-to-date with the help of a modern display and Raspberry Pi.

Linux Fu: Easy And Easier Virtual Networking

One of the best things about Linux is that there are always multiple ways to do anything you want to do. However, some ways are easier than others. Take, for example, virtual networking. There are plenty of ways to make a bunch of Internet-connected computers appear to be on a single private network. That’s nothing new, of course. Linux and Unix have robust networking stacks. Since 2018, though, Wireguard has been the go-to solution; it has a modern architecture, secure cryptography, and good performance.

There’s only one problem: it is relatively difficult to set up. Not impossible, of course. But it is a bit difficult, depending on what you want to accomplish.

How Difficult?

You must set up a wireguard server and one or more clients. You’ll need to pick a range of IP addresses. You might need to turn on routing. You have to generate keys. You might need to configure DNS and other routing options. You’ll certainly need to modify firewall rules. You’ll also need to distribute keys.

None of these steps are terribly difficult, but it is a lot to keep straight. The wg program and wg-quick script do most of the work, but you have a lot of decisions and configuration management to keep straight.

Browse the official “quick start,” and you’ll see that it isn’t all that quick. The wg-quick script is better but only handles some use cases. If you want really limited use cases, there are third-party tools to do a lot of the rote work, but if you need to change anything, you’ll still need to figure it all out.

That being said, once you have it set up, it pretty much works without issue and works well. But that initial setup can be very frustrating. Continue reading “Linux Fu: Easy And Easier Virtual Networking”

Where Exactly Did That Network Packet Come From?

Have you ever noticed that some websites can figure out, at least roughly, where you are? Sometimes they use it to find you a closer content provider. Or they might block you from seeing certain things while offering you other things specific to your location. This is possible because there are databases that map IPs to locations. [Mark Litwintschik] looks at using those databases from an API or downloading them into your own database. He also shows some very large database queries, which is interesting, too. He uses IPInfo, although there are other providers. Some only provide a limited number of lookups, but there are plenty of free tiers for low-volume usage.

The database changes every day. Of course, each provider has a different way of getting data, and so there are differences. [Mark] compares the IPInfo dataset against MaxMind’s also free database. That involved comparing over 3 billion records! Actually, the 3 billion are the number of IPs that matched up in both databases. There were an additional 118 million that didn’t match and 34 million that were not in the MaxMind database.

Continue reading “Where Exactly Did That Network Packet Come From?”

Network Programming

If you want a book on network programming, there are a few classic choices. [Comer’s] TCP/IP books are a great reference but sometimes is too low level. “Unix Networking Programming” by [Stevens] is the usual choice, but it is getting a little long in the tooth, as well. Now we have “Beej’s Guide to Network Programming Using Internet Sockets.” While the title doesn’t exactly roll off the tongue, the content is right on and fresh. Best part? You can read it now in your browser or in PDF format.

All the topics you’d expect are there in ten chapters. Of course, there’s the obligatory description of what a socket is and the types of sockets you commonly encounter. Then there’s coverage of addressing and portability. There’s even a section on IPV6.

Continue reading “Network Programming”

A black and white image of the Sun and Earth with a series of lines radiating out from the sun and bisecting rings circumscribed around it. On the Earth are three dots with the text "Active Server" on one exposed to the Sun and two dots representing "Inactive Server"s on the dark side.

Solar Protocol Envisions A Solar-Powered Web

The transition to low carbon energy is an important part of mitigating climate change, and the faster we can manage, the better. One project looking at how we could reduce the energy requirements of the web to more quickly adopt renewable energy is Solar Protocol.

Instead of routing requests to the fastest server when a user pulls up a website, Solar Protocol routes the request to the server currently generating the greatest amount of solar power. Once a user is on a website, the experience is energy-responsive. Website style and image resolution can range based on the power left in the active server’s batteries, including an image free low power mode.

Another benefit to the project’s energy efficiency approach is a focus on only the essential parts of a page and not any of the tracking or other privacy-endangering superfluous features present on many other websites. They go into much more depth in the Solar Protocol Manifesto. As a community project, Solar Protocol is still looking for more stewards since the network can go down if an insufficient number of servers are generating electricity.

For more details on the project that inspired Solar Protocol, check out this low-tech website.