THINGS THAT SHOULDN'T EXIST: Internet Explorer for UNIX
You know, when I teased Internet Explorer for UNIX at the end of my Solaris 7 video, I knew I was going to get a reaction. After all, the mind boggles at such a strange sight that one can only hope for a logical explanation on why such a thing exists. I thought much the same in 2012, when I had a brief opportunity to play with IE for UNIX via X11 forwarding, which is how I made this cursed screenshot. Now, nine years later, I’ve finally taken the time to dig in, explore, and explain this truly cursed piece of software. Now, I could have just left you all hanging, but you know, I’ve learned that people enjoy watching me suffer, so let’s just rip the bandaid off and dive right into it.
For anyone who’s familiar with Microsoft of the 90s, it seems like IE for UNIX is something that really just shouldn’t exist. Infact, I spent hours following trails of breadcrumbs in an effort to ultimately piece this mystery together. As always, this is your host NCommander, and today, we’re going to take a strange trip down a very weird and windy road.
Now, I could start with the dry history, but given I’ve already flashed the goods so to speak, let’s take a break from tradition, and let’s start with the trials and tribulations related to installation. Now, if you watched my Solaris 7 video, it would seem like this would be a relatively simple task, right? Well … no, no it isn'. For that 10 second clip, I spent the better part of a day tracking down system patches, and then debugging multiple failures. It all starts innocently enough with the installer, which mostly wants to know if you want to make Internet Explorer your default web browser, and if you want to install Outlook Express. In keeping with the pain and suffering theme, I of course said yes here. This was, of course, the point where it all started going downhill. Trying to launch IE,
via the “iexplorer” command simply errors out complaining that system patches are missing. That isn’t entirely surprising, since Solaris applications have runtime patch dependencies. That being said, installing updates on Solaris is … well … it’s an experience. That’s the best way I can describe it. System updates are
distributed both as individual patches, and in large bundle known as “patch clusters’. These are roughly equivalent to Microsoft hotfixes and service packs respectively. To actually perform the update, the system needs to be shutdown to single user mode, after which, the install-cluster command can be used. This begins a very slow process in which patchadd attempts to install each part of the cluster. During this process, you get cryptic error messages relating to errors 2, and 8, which is just patchadd saying that a patch is already installed, or it’s not simply needed. After nearly an hour, we’re finally ready to reboot, and try this again.
With a fully patched system, one might hope that all our problems would magically go away, right? Well, no. iexplorer now complains that our patches are too new, and then promptly core dumps. Then, just to add insult to injury, the system kernel panicked. And yes, those two things happened back to back. It’s at this point, I realized that we’re on an express bus to hell.
Still, I wasn’t giving up here. By checking the IE_host_platform log, we can find the exact patch number and revision that IE for UNIX seems to require. Furthermore, in the /usr/local/microsoft folder, I found this script called mwcheck_platform, which appears to do a more comprehensive system check. It specifically shows which patches are “certified” for use, and even includes a description of what they do.
By sheer dumb luck, I was able to find an archive of almost all published Solaris 7 patches, including the exact revisions wanted by IE for UNIX. Finally, progress. Sorta. As it turns out, I couldn’t easily just downgrade a few patches. Instead, I needed to do yet another clean install and then only install the patches listed in the check script. After all that, we finally got something new. I don’t think I’ve ever been more excited to see a license agreement screen in my life. That, my good folk, is what defines winning when dealing with this sort of project.
We can now take a closer look at what IE for UNIX actually is. Comparing IE 5.0 for Windows side by side, they look almost identical. Digging deeper begins to show that this does appear to be a complete port of Internet Explorer, albeit with some UNIX specific changes.
For example: Microsoft appears to have split the difference between vi and emacs users as for selecting default editors. I’m not sure this is a real solution to the editor wars, but I suppose it's to Microsoft’s credit that an attempt was made. Now, I’d love to tell you how IE for UNIX performs, especially in comparison to the Windows version, but, well, there’s a problem with that … The ugly truth is it’s not exactly easy to evaluate a early 2000s web browser in 2021 since the web has moved on, and very little will work “as is” . I’m actually amazed that microsoft.com renders at all.
nethack.org is one of the very few sites that I know of that will render properly. Infact, I was even able to download files which brought up a dialog box that I haven’t seen in many years. From what I can tell, IE for UNIX seems relatively fast and responsive, as compared to Netscape, but there are some hiccups here and there. For one, neither FTP nor Gopher support appears to be present.
While Gopher is excusable, a lack of FTP feels very unusual for the time period. Furthermore, both of these work just fine in the Windows version. I couldn’t find any mention of these features in help or the README file, so I can’t tell if they’re supposed to be present or not. That being said, through the use of tenox’s Web Rendering Proxy, it is, at least to an extent, possible to use IE for UNIX on the modern Internet. The Web Rendering Proxy works by converting web pages to image maps, so this isn’t a perfect simulation, but we can get some idea of what using the browser might have been like in its heyday. However, the thing I’m most interested in has nothing to do with web browsing in 2021. It has everything to do with 2001, and those pesky “IE-only websites”.
Throughout the 90s, both Microsoft and the Netscape Communication Corporation would fight for dominance in what would become the first browser war. In an effort to stack the deck in their favor, Microsoft created proprietary alternatives to the then existing web standard. This practice, which would later be called “Embrace, Extend, Extinguish” led to certain sites that were simply incompatible with anything beside Internet Explorer. To help illustrate what I’m talking about, let’s look at a simple time and date demo on Windows. This demo uses one of those alternatives, specifically VBScript, and, as one might expect, it failed miserably when loaded in Netscape. Infact, this demo seems to be Windows specific
since it also happens to fail on Internet Explorer for Macintosh. The million dollar question thus becomes: will this VBScript demo work in IE for UNIX? I’ll give you a moment to write your guesses below … and with that, let’s get a drumroll please! *drumroll* *TADA.WAV* It works! Let’s be honest, that’s probably not the result most of you were expecting, right? It was this, and other seemingly platform specific behavior that made me start taking a closer look at just what was going on behind the scenes. From what I can tell from the documentation, nearly all IE specific behaviors should work on the UNIX version. It’s even supported by the Internet Explorer Administration Kit. The only major exception appears to be ActiveX controls, since those are specifically tied to the processor’s architecture. There were supposedly plans to provide a UNIX variant of ActiveX,
but I’m not certain if the necessary SDKs ever saw the light of day. We can find more clues if we start digging into the other part of this bundle: Outlook Express. In truth, any sane human would have run like the dickens, but since it's me, let's dive in feet first! Upon starting oexpress, we’re immediately thrown to a screen that should look highly familiar to any Internet user of the late 90s, the Internet Connection Wizard. This isn’t a 1:1 copy however, since a few screens in, there’s a unique checkbox to use Solaris’s built in mail spool instead of an external mail server. This is a feature unique to Outlook Express for UNIX, since Windows has no concept of local mail. Not long after, we’re thrown into the main screen of Outlook Express. We’re also greeted
with two introductory emails that highlight OE’s tendency to generate large HTML emails. I spent a fair bit of time comparing this to the Windows version, and just like Internet Explorer, it seems to be pretty much the same. One of the few exceptions I found was a large number of UNIX-only mail clients listed in the Import Mail wizard, which I thought was a neat touch..
Now, I could just kill -9 Outlook, and be done with, but well … I probably should try actually using it for real mail and news, right? *long suffering sigh*. Right, let’s get to it. Getting this to work required a fresh Ubuntu VM to work as an intermediately, complete getmail, postfix, and quite a few other odds and ends. I’d document the process more in-depth, but honestly, even I have a limit on how much abuse I’m willing to inflict on my viewers. Just trust me when I say, it wasn’t easy. The end result though is that I could send myself a genuine email sent by Outlook Express for Solaris! Yay? I guess.
Well, it at least proves that Outlook Express can be connected to GMai, and it’s already given me inspiration for a new time-limited Patreon perk, so if you want to get your own authentic “Written by Outlook Express” email, check out the link in the description. Before I can escape this horror show though, there’s one other thing I should do. Beside being a fairly mediocre mail client, Outlook Express also supports newsgroups. So, of course, I should to take it onto USENET. If, by happenstance, anyone is subscribed to comp.misc, you MIGHT have found a post I made on July 22nd, 2021, and it might have been made with
Outlook Express for UNIX. I’m not crazy enough to confirm that I actually did this though, but if I did, then I can rest easy knowing fully explored everything OE has to offer. That said, let me take a moment to cleanse those unholy abominations from my body and soul before we continue on … Ah, that’s better … I think that covers the penny tour of Internet Explorer 5 for UNIX, but I find myself having more questions than not. I have to assume a good part of those watching will as well. Let’s loop back around to the how and why? For anyone who is familiar with Microsoft’s history, the idea of them having anything to do with UNIX in the 90s seems ludacris at best. However, this onion had layers,
so if we’re really going to understand the how and why, well, we’re going to have to peel it. As I already noted, IE for UNIX seems to be much closer to the Windows version than one might expect. If we take a closer look in the /usr/local/microsoft directory, we can see a large collection of files. If we look a bit closer, some of these file names might look familiar. In fact, they seem look a lot like the files you’d find in the system32 directory of any contemporary version of Windows.
If you find yourself thinking something along the lines of “this sounds a lot like WINE or WINElib”, then have a cookie. Simply put, Internet Explorer for UNIX was made by porting core Windows libraries to run on top of UNIX, and no, I’m not making that up. This crime against the natural order also wasn’t done by Microsoft. It was done by a company with an annoying similar name called Mainsoft. If you’ve heard of them, it was likely due to a small incident in 2004 where they were indirectly responsible for one of the most famous source code leaks in history. Now, it’s said that extraordinary claims require extraordinary proof, so let's wind this back to the beginning. In the years following the IBM-Microsoft divorce of the early 90s, Microsoft would involve itself in quite a few ventures, many of which might seem odd without context.
One of these was the Windows Integrated Source Environment, or WISE kits. Under the WISE program, Microsoft would license the source code to Windows to independent companies for a variety of purposes. The best known product created with WISE was probably Insigna’s SoftWindows, which was a full PC emulator for Macintosh and UNIX platforms.
Insignia used WISE to allow deeper integration between Windows and the host operating system. This is where Mainsoft enters the picture. At least as early as 1993, Mainsoft was offering special SDKs to ease porting Windows applications to many of the UNIXes of the era. From what I can tell, Mainsoft was primarily a consulting firm specializing in building compatibility solutions.
The earliest versions of their website have the tagline of “Microsoft Technologies on UNIX” only reinforces this belief. Those same archives are also where I found information on their “Visual MainWin” product, which might be a contender of one of the worst product names I’ve heard. Horrid names aside, it appears Mainsoft’s product acted as a set of plug-ins for Visual Studio, combined with modified and recompiled versions of the core Windows libraries and headers. This provided a one stop solution for easily migrating code from Windows to UNIX. According
to the release notes, product announcements, and case studies, Mainsoft appears to offer not only the Win32 API, but a whole host of Microsoft technologies such as MFC, COM, and more. Mainsoft appears to support a large number of the major UNIX variants, but what really surprised me was the fact that they even offered MainWin for Linux. We can even see Linux as a target in this screenshot. In fact, a few of the check scripts shipping IE for UNIX explicitly see if they’re running on a Linux or host or not, and I honestly won’t be surprised if “IE for Linux” was something that might have existed internally at Microsoft or Mainsoft at one point. Unfortunately, besides quoting old sales material, there isn’t a lot more I can say about Visual MainWin. Without the product “in hand” so to speak, it’s hard to tell just how easy it was to port code from Windows to UNIX, or well, do anything besides speculate.
Sadly, given how niche it is, it's likely Visual MainWin will never be properly archived, but on the very offhand anyone has it, please get in touch. I’d love to look at it, and help get it properly preserved. That being said, we can at least content ourselves by looking at these photos of Visual SourceSafe for UNIX, and knowing that some ancient horrors are truly gone and forgotten, Or well ... that's what I want to say ..
Well … while recording this segment I actually managed to find an evaluation copy of VSS for UNIX. I … I can’t help but feel like I should apologize to society as a whole, since this is probably something that was better left forgotten. For those who don’t know, Visual SourceSafe was a source control management system made by Microsoft, and it’s … well the world “bad” doesn’t do it justice. Thankfully there’s a license protection check, so unless I spend a stupid amount of time with GHIRDA or another reverse engineering tool, it’s safely inert. Or at least as inert as hazardous material storage gets ... That being said, in my brief examination, I found some interesting bits and pieces that I could dig into. That however would be for another video, and we’re getting off topic. Stepping back, none of these investigations have answered the broader question of “why does Internet Explorer for UNIX exist”. Well, to be honest I’m just a step above grasping at straws on that bit.
The closest I found to a “mission statement” are a handful of quotes supposedly made by the then executive vice president of Microsoft, Steve Balmer in May of 1996. Balmer states that Microsoft wanted to compete with Netscape, which at the time dominated 85% of the market. The article also noted that not having an UNIX version of IE was proving a problem to OEM adoption, but doesn’t eliberate further. Those of you paying attention will note that I used the term supposedly with that last statement. It’s because I couldn’t verify that this article actually existed. The article, which claims to be from InfoWeek Electric, only exists in the form of a mailing list archive, and some of the wording in it seems suspect to me.
I wouldn’t have even brought it up, if it wasn’t for the only methion of a rationale for IE on UNIX that I was able to find. I’ve included a direct link to the posting in the description, if you all want to see it for yourselves. I recommend all of you to come join me in the comments for a bit of theorycrafting, since, unfortunately, I can’t provide definitive answers on this one. It’s on that note though that if you enjoyed this video, please give a like, and consider subscribing. If you really enjoyed this video,
consider hitting that bell or becoming a Patreon. I’ve recently been working with an editor to improve my videos, and Patreon pledges go a long way in that regard. Also, let me know in the comments if you want me to dig deeper into the topic of the WISE kits; such a video would be much more abstract than my current fair, but it might be an interesting dive. With that said, as always, you can follow my adventures in realtime on Twitter, or come hang out on Discord. Until next time, this is your host NCommander, signing out, and wishing you all a pleasant day.