Когда мы говорим про запуск Windows программ в Unix, первым в голову нам приходит свободный проект Wine, проект основанный в 1993 году.

Но, кто бы мог подумать, что Microsoft сама была автором ПО для запуска Windows-программ в UNIX.

В 1994 году Microsoft начала проект WISE - Windows Interface Source Environment - прибл. Исходная среда интерфейса Windows - программу лицензирования, которая позволяла разработчикам перекомпилировать и запускать приложения на базе Windows на других платформах.

Пакеты WISE SDK были основаны на эмуляции Windows API, который мог работать на платформах Unix и Macintosh.

SDK напрямую не поставлялись Microsoft. Вместо этого она установила партнерские отношения с несколькими поставщиками ПО (которым требовался доступ к внутреннему исходному коду Windows), которые, в свою очередь, продавали WISE SDK конечным пользователям.

Было несколько поставщиков предоставлявших WISE SDK или эмуляторы на его основе, в основном это были:

  • Mainsoft (Mainwin, реализация MFC на Unix платформах)

  • Bristol Technology Inc. (Wind/U, который работал поверх Motif [Unix GUI-инструментарий подобный современным GTK/Qt/wxWidgets])

  • Insignia Solutions (эмулятор Softwindows)

  • Locus Computing Corporation (эмулятор Merge)

Из этих четырех компаний у меня, увы, получилось найти информацию только по двум.

Mainsoft

Логотип Mainsoft
Логотип Mainsoft

Mainsoft была основана в 1993 году, в основном для того, чтобы предлагать продукты для интеграции между Windows и другими системами. Данная компания была одним из основных поставщиков программы WISE. После запуска данной программы Microsoft расширила свои соглашения с Mainsoft на портирование Windows Media Player 6.3 и Internet Explorer на UNIX.

С тех пор деятельность Mainsoft перешла к интеграции Microsoft SharePoint в IBM продукты (IBM Lotus Notes, IBM WebSphere, Rational Jazz) и продукты, ориентированные на .NET Framework и JavaEE.

Согласно профилю LinkedIn, в 2010 году Mainsoft Corporation сменила название на Harmon.ie (www.harmon.ie).

Утечка исходного кода Windows

Чтобы иметь возможность разрабатывать WISE SDK, разработчики Mainsoft должны были получить доступ к внутреннему исходному коду Windows.

12 февраля 2004 года стало известно об утечке более 30000 файлов исходного кода Windows 2000 и Windows NT 4.0 в пиринговые сети.

Как стало известно позднее, эти исходники были переданы Mainsoft, т.к. адреса электронной почты сотрудников Mainsoft были обнаружены в одном из крэш-дампов, содержавшихся в архиве с исходными текстами.

Через несколько дней после утечки Microsoft выпустила обращение, в котором подтверждала соответствие содержимого zip-архива исходным текстам Windows 2000 и NT 4.0 и обещала применить юридические санкции ко всем, кто будет уличён в его распространении.

Несмотря на угрозу, эти исходные тексты быстро разошлись по хакерским сообществам по всему миру. В частности, вскоре после утечки была обнаружена уязвимость в коде обработки BMP-файлов в IE; специалист по компьютерной безопасности, обнаруживший эту уязвимость, подтвердил, что нашёл её, изучая утёкшие исходные тексты.

Bristol Technologies

Internet Explorer для UNIX (IE для UNIX) был проприетарным браузером с GUI, доступным для бесплатной загрузки и созданный компанией Microsoft для использования в системе X Window System в Solaris и HP-UX. Разработка прекратилась с версии Internet Explorer 5 в 2001 году, а поддержка в 2002 году.

Разработка

В мае 1996 появилось сообщение о том, что Стивен Гуггенхеймер (англ. Steven Guggenheimer) подтвердил, что в Microsoft думают над портированием Internet Explorer в UNIX, но пока не знают, как это сделать. Далее сообщалось, что Стив Балмер, тогдашний исполнительный директор Microsoft, проявил интерес к работе браузера Microsoft в Unix в рамках стратегии ведения войны браузеров:

Microsoft склоняется к версии своего браузера IE для платформы Unix

В погоне за большей долей гигантского рынка браузеров Microsoft работала с производителями ПК и рабочих станций, чтобы их браузер IE был в комплекте с новым оборудованием. Баллмер, однако, намекнул, что отсутствие браузера под Unix создает препятствие для этой OEM-стратегии, основанной на том, чтобы попытаться догнать производителя браузеров № 1 - Netscape Communications Corp., которая занимает около 85% мирового рынка браузеров со своей продуктовой линейкой Navigator. «Возможно, нам просто нужно получить один из них», - сказал Баллмер о браузере на базе Unix.

Dana Gardner, InfoWorld Electric, 29 мая 1996

Логотип Bristol Technology Inc.
Логотип Bristol Technology Inc.

В июне Microsoft заключила контракт с Bristol Technology по разработке приложения Wind/U, предназначенного для портрования Win32 и MFC-приложений под UNIX, чтобы портировать Internet Explorer. В то время у Bristol также был контракт с Microsoft, разрешающий ей доступ к исходному коду Windows с сентября 1994 по сентябрь 1997 года.

В конце июля 1996 года Microsoft официально объявила о создании собственной версии проекта. IE для «Solaris и других популярных вариантов UNIX» должен был быть завершен к концу года, и иметь «эквивалентную функциональность, как в Microsoft Internet Explorer 3.0», тем самым «выполняя свое обязательство по предоставлению полнофункциональной поддержки веб-браузера на всех основных платформах операционных систем», а также «поддержку и продвижение открытых стандартов, включая HTML, ActiveX и Java».

Однако после спора в марте 1997 года относительно производительности друг друга и из-за переговоров с Bristol о доступе к исходному коду Windows после сбоя в сентябре 1997 года Microsoft изменила курс и решила напрямую портировать версию Windows внутри компании, используя приложение MainWin XDE (расширенная среда разработки) от Mainsoft, главного конкурента Bristol Technology. (Позднее Microsoft также использовала MainWin для переноса Windows Media Player и Outlook Express на Unix.) Теперь, когда график сильно отставал от плана, ветка 3.0, по-видимому, была заменена на 4.0, которая была выпущена для Windows полгода назад и использовала новый движок рендеринга Trident. Бета-версия для Solaris была доступна 5 ноября 1997 года, а финальная версия ожидалась к марту 1998 года.

Тод Нильсен, генеральный менеджер группы Microsoft по связям с разработчиками, в шутку заявил, что хотел провести запуск браузера в музее Ripley's Believe It or Not в Сан-Франциско из-за скептицизма тех, кто считал проект бесполезным. Далее сообщалось, что версии для HP-UX, IBM AIX и Irix были запланированы (обратите внимание, что в то время MainWin XDE 3.0 был доступен только для «Solaris SPARC платформы 2.51», но MainWin XDE 2.1 был «доступен в Solaris SPARC 2.51, Solaris Intel 5.5.1, SunOS 4.1.4, Irix 5.3, Irix 6.2, HP UX 10.2 и IBM AIX 4.1.5».)

IE 4.0 для Unix на Solaris был выпущен 4 марта 1998. Позже в том же году была выпущена версия для HP-UX.

5 марта 1998 Microsoft достигла соглашения с Bristol, которое «предоставило взаимное освобождение от любых претензий, вытекающих из Соглашения об IE». В 1999 был выпущен IE 5.0 для Unix на Solaris и HP-UX. В 2001 был выпущен IE 5.0 для Unix SP1 для Solaris и HP-UX.

Версии

Существует 9 версий Internet Explorer, официально поддерживаемых Microsoft:

Версия

Шифр

Система

4.01

40-bit

Solaris

HP-UX

128-bit

Solaris

HP-UX

5.0

40-bit

Solaris

HP-UX

128-bit

Solaris

HP-UX

5.0 SP1 beta

128-bit

Solaris

Однако, архивные копии веб-сайта Microsoft IE для UNIX показывают, что Service Pack 1 был выпущен (предположительно в готовом виде) как для Solaris, так и для HP-UX. Неизвестно, почему Microsoft исключила ссылки на них в своем официальном списке; Microsoft размещала только 128-битные патчи SP1 для шифрования, поэтому вполне вероятно, что есть еще три версии:

  • 5.0 SP1 Beta 128-bit на HP-UX

  • 5.0 SP1 128-bit на Solaris

  • 5.0 SP1 128-bit на HP-UX

Архив сайта IE for UNIX:

Readme IE 5.0

Примечательные элементы из Readme IE для Unix 5.0:

«Internet Explorer 5 для UNIX поддерживает большинство функций и технологий Internet Explorer для Windows, но также отличается в некоторых отношениях. Например, Internet Explorer для UNIX не поддерживает загружаемые элементы управления ActiveX или просмотр и организацию ваших локальных файлов и папок в окне браузера. Другие неподдерживаемые функции включают фильтры/переходы в CSS, компонент редактирования DHTML и HTML-приложения (HTAs). [...] Internet Explorer для UNIX предлагает некоторые функции, которых также нет в версии для Windows, например Emacs-стиль горячих клавиш и внешних программных ассоциаций».

У Microsoft была группа новостей под названием «microsoft.public.inetexplorer.unix» на своем общедоступном сервере новостей msnews.microsoft.com.

«Строка пользовательского агента для Internet Explorer 5 является статической, за исключением третьего поля, которое зависит от операционной системы и процессора, который вы используете. Вот некоторые общие конфигурации и строки пользовательского агента, генерируемые Internet Explorer на этих платформах:»

Платформа

User-string

SPARC 5, Solaris 2.5.1

Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.5.1 sun4m; X11)

Any Ultra, Solaris 2.5.1

Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.5.1 sun4u; X11)

Any Ultra, Solaris 2.6

Mozilla/4.0 (compatible; MSIE 5.0; SunOS 5.6 sun4u; X11)

HP 9000 C-180, HP-UX 10.20

Mozilla/4.0 (compatible; MSIE 5.0; HP-UX B.10.20 9000/780; X11)

HP 9000 K-250, HP-UX 10.20

Mozilla/4.0 (compatible; MSIE 5.0; HP-UX B.10.20 9000/802; X11)

Исчезновение

Страница с IE для Unix была удалена с сайта Microsoft в третьем квартале 2002 года без каких-либо разъяснений, и заменена текстом: «Мы искренне сожалеем, однако Internet Explorer для UNIX больше не доступен для загрузки.»

Однако было отмечено, что, хотя домашняя страница и была удалена, фактическая страница загрузки некоторое время оставалась доступной.

Отдел Microsoft по связи с общественностью оправдал это следующими словами: «низкий спрос со стороны клиентов на эту разработку не оправдывает ресурсов, необходимых для продолжения работы над ней».

Преемники

Microsoft Internet Explorer для Mac OS X был последним браузером, выпущенным компанией для платформы UNIX до выпуска Microsoft Edge для macOS и Linux в 2020 году.

Помню, в начале 2000-х, когда наша школа стала лицеем и у нас закупили, кроме прочего для робототехники макбуки G4, и там кроме Safari, был такой IE...

Изображение из сети
Изображение из сети
Изображение из сети
Изображение из сети

Мнения

Программа WISE, реализация которой была прекращена вскоре после ее создания, была принята некоторыми как троянский конь, созданный Microsoft для проникновения на рынок Unix. Компании, предоставляющие WISE SDK, должны были иметь доступ к исходному коду Windows, что делало их зависимыми от доброй воли Microsoft. В 1999 году Bristol Technology Inc. , которой был предоставлен WISE SDK, подала в суд на Microsoft, утверждая, что та незаконно утаивала исходный код Windows и использовала свое доминирующее положение для выхода на другие рынки. Позднее постановление обязывало Microsoft выплатить Bristol Technologies 1 миллион долларов.

И напоследок

Вообще написать на эту тему меня вдохновил один из ReactOS-разработчиков. В чатике проекта есть флудилка и однажды там опубликовали видео зарубежного блогера NCommander, который рассказывал про IE fo UNIX. А после него я уже нашел про все остальное и основной проект WISE.

Комментарии (8)


  1. visirok
    01.11.2021 00:45
    +3

    Спасибо за изыскания.

    Но вы в основном пишете про портирование IE, а взаголовке обещалось другое.


    1. petr97 Автор
      01.11.2021 00:52

      Прошу прощения, изначально я в общем хотел рассказать про разные продукты на основе WISE, а про IE оказалось больше всего.


  1. merlin-vrn
    01.11.2021 09:39

    А я пользовался "нативным" MS IE 5.0 в Linux, году так 1999-2000. Недолго, правда. Примерно тогда же я познакомился с Mozilla Suite и появился Firefox (помню, была версия 0.9), перешёл на него.


  1. funcelot
    01.11.2021 11:28

    Мне бы очень пригодилось, если Вы вдруг знаете, или подскажете, как запустить среду разработки VB6 с ActiveX и COM компонентами и привязкой к системным библиотекам, в WINE. И, соответсвенно, получать работающие ActiveX EXE и DLL, с COM билиотеками... Может быть, вы встречали рабочие решения сами, или видели воочию... По ссылка гуглил, но не нашел ни единого работающего на 100% решения. Хотя, казалось бы, это банально эмуляция реестра и ряда вызовов Win32 API функций. Понимаю, что не все Win32 API задокументировано, но столько лет прошло, может быть, кто-то занялся этой проблемой и сделал нормальный эмулятор под Linux? Спасибо


  1. joshhhab
    01.11.2021 19:30

    Самое смешное, я году в 2010-11 запускал IE для мака под Rosetta на 10.6.8 а сам IE бфл то ли от 10.2 то ли от 10.3. Уже тогда это выглядело ужасно, ничего ровно не работало и кириллица ни в каком виде не поддерживалась насколько помню


  1. Frankenstine
    02.11.2021 17:31

    подала в суд на Microsoft, утверждая, что та незаконно утаивала исходный код Windows

    Это как? По какому это закону МС должна была показывать кому-либо исходники своего проприетарного продукта?


    1. petr97 Автор
      02.11.2021 19:02

      Microsoft предоставляла свои исходники компаниям для написания продуктов на WISE. По договору, подписанному обоими сторонами.


      1. Frankenstine
        03.11.2021 12:41

        Microsoft предоставляла свои исходники

        Так если предоставляла, то почему "незаконно утаивала"? :) А если не предоставляла, то наверное уж согласно договора она вряд ли должна была предоставлять любые исходники, а не те, которые требовались для выполнения работ. Утечка исходников показывает, что было от чего "утаивать".