Doug Doug

Emulating NeXTStep and the First Web Browser

I’ve been rewatching Halt and Catch Fire and just finished season 3 which concluded with an episode titled NeXT and is set during the dawn of the web. In this episode you can see a few of the characters booting up an early web browser on a NeXTcube.

I got inspired to see if I could do this for myself in an emulator.

My first thought was to try Infinite Mac since they have various versions of NeXTStep running. However, I couldn’t find a way to mount external data or active network access, so I changed course and tried to get a local emulator working.

My first attempt was with qemu, but I ran into issues finding a bootable installer CD that worked well with qemu.

Then I found the Previous project and, after a little bit of searching, some disk images with NeXTStep 3 installed.

Now, it was just a matter of installing the developer tools, which you can find ISOs of on the Internet Archive. Interestingly, the install process is very similar to modern MacOS, which makes sense given its lineage.

CERN has a great page on the birth of the web, but I wasn’t sure if the code for Tim Berners-Lee’s original browser, called WorldWideWeb was published there.

Thankfully, some folks at CERN had completed a project to rebuild the WorldWideWeb app so it could run inside modern browsers. Sadly, it doesn’t seem like that actual project is available on the site any more. But, they do link to the original NeXTStep code!

Previous makes it easy to mount a directory on your host system as an NFS share inside NeXT, which is what I did to easily make the source available inside the emulator.

After poking around the codebase for a bit, I found there was a Makefile…could it be as easy as just running the “make” command?

Yes, yes it is!

This build process would be very familiar to anyone who has spent time working with C/C++ projects on Unix/Linux environments.

And, as expected, the “make install” command puts the built application into place!

I also was able to get the source building in ProjectBuilder, which is the NeXT development environment.

And here it is, the world’s first browser, up and running!

CERN hosts a copy of the first website which failed to load with a HTTP error, likely because their server doesn’t accept older versions of HTTP requests (or immediately tries to redirect to HTTPS). But, FrogFind saves the day!

This was a fun tour through the dawn of the web! It’s amazing to see how much the concepts implemented in this early code are still relevant today, so much so that stripped down HTML served over HTTP can still be loaded.

This was also the most time I’ve spent using NeXTStep. There were a few quirks I had to get past at first, but after that it was a familiar environment. I think writing code in this environment would be a challenge where a plain text editor seems to be the state of the art. I suppose there was always vi available, but I’m not sure how commonly used that was for NeXT developers.

One thing that I noted was how most applications, including WorldWideWeb, defaulted to opening every document in a new window which is very different from the modern trend of single window applications, often filled with tabs. I think I kinda miss the era when apps favored windows over tabs.

Read More
Doug Doug

The History of OS/2

I’ve been reading Steven Sinofsky’s Hardcore Software Substack which follows his career at Microsoft. In the early sections there are lots of mentions of Microsoft’s partnership with IBM on the OS/2 operating system. I was familiar with this effort in name, but never knew the details and turns out they are fascinating. The story of OS/2 is the story of IBM’s fall from dominance in the personal computer industry.

By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=18849795

By Source, Fair use, https://en.wikipedia.org/w/index.php?curid=18849795

If you are into computer history, give this a read.

Ars Technica’s history of OS/2.

And if you want this in podcast format, Flashback #14 covers OS/2.

Read More
Doug Doug

My new iMac

Introducing my new Blueberry iMac G3! (Well, new to me.)

After replacing the PRAM battery, which thankfully hadn’t leaked(!), I crossed my fingers and powered it on for the first time.

It works!

I had forgotten what hard drives from this time sounded like. So when it first spun up and started clicking away, I thought “that’s too loud, something must be wrong!”

But lucky for me, it’s working without issue! I was able to wipe the system and do a clean install of OS 8.6 from the original restore disk which came with the machine.

Amazingly, internet access just worked thanks to the Ethernet port. Browsing the web with IE 4.5, well that’s another matter. Thankfully there’s a decent amount of retro resources online that have minimal browser requirements. Mac84.net is a good example and has links to other resources.

I was even able to get a game of Quake in!

Read More
Doug Doug

Emulating Macintosh System 7 on iPad

Just in time for System 7’s 30th Anniversary, I got it running in emulation on my iPad. I was surprised how well it works and I think it actually looks kind of nice on the iPad screen.

IMG_0949.jpeg
IMG_0088.jpeg
IMG_0087.jpeg
IMG_0089.jpeg

It’s interesting how simultaneously familiar and odd this operating system is. Also is interesting that TCP/IP support is an add on extension!

I was inspired by Matt Sephton’s post to give this a try. I found these guides helpful to figure out how to get BasiliskII up and running on iPad:

Read More