THINGS THAT SHOULDN T EXIST Internet Explorer for UNIX

Show video

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.

2021-08-07

Show video