NeXT на “белом” железе

Когда Стив объявил приговор “черному” железу, зал ошеломленно молчал. Представьте: Тим Кук, на Apple Event с красивым названием, жизнерадостно сообщает о прекращении разработки и производства Mac’ов. Мол, поставщики прекратили выпуск хитрых винтов для крепления батарей к корпусу, и другого выхода у нас нет. Зато теперь macOS (за 500 долларов, в США и без налогов) можно приобрести и установить на любой PC, вместо Windows или вместе с ней. Каково?

NeXT на “белом” железе. Фото.

Для тех, кто успел полюбить “черное” железо (а таких было много, в нем что-то такое было, что привораживало), случилось именно это. Не они первые, но им от этого было не легче.

К счастью, бессмертная душа платформы переселилась в “белое” железо, и, со временем, превратила его в NeXT на Intel. А потом и не только на Intel…

Я уже писал про NEXTSTEP 3.2, самое важное событие в истории “белого” железа, но не могу не рассказать про неё еще кое-что. Про стороннюю программу, и про технологию от NeXT. Из множества программ и технологий, именно они, по моему, лучше всего отражают суть и природу “взрыва сверхновой”.

Индустрия, объединившись для борьбы с Microsoft, безжалостно растоптала небольшой и уютный уголок компьютерной индустрии. Порожденные этой борьбой стихийные явления разнесли вдребезги её зачинщиков, едва не погубив Apple Computer и выкинув Motorola из числа производителей процессоров, и почти не затронули ни Microsoft, ни Intel.

Растоптанный уютный уголок выжил, и начал отвоевывать себе жизненное пространство взамен утраченного, делая это все лучше и лучше…

SoftPC 3.1

Insignia Solutions, с середины 80-х, в течении десяти лет, безраздельно царствовала на рынке эмуляторов Intel и MS DOS. Начав с эмуляторов для Unix’ов, в том числе и для A/UX, Insignia пришла и на Mac’и с обычной операционной системой (в 1987 году). Естественно, SoftPC появился и в NeXTSTEP.

По состоянию на октябрь 1993 года, по данным Insignia Solutions, SoftPC был установлен в каждой шестой копии NeXTSTEP и NEXTSTEP в мире. Для программы, на ценнике которой 549 долларов, это очень неплохой результат.

В дистрибутив программы, с разрешения Microsoft, включалась полная копия MS DOS, да еще и в особо извращенной форме: скомпилированная из исходников Microsoft и глубоко оптимизированная для улучшения взаимодействия с эмулятором. В руководстве Insignia явно был собственный засекреченный Стив Джобс – вряд ли кто-то еще смог бы убедить Гейтса согласиться на такое.

Замечательная компания и продукт с уникальными потребительскими свойствами.

Но SoftPC 3.1, предназначенная для NEXTSTEP 3.2 и только на “белого” железа, на фоне предыдущих версий этой программы на всех платформах была настоящим шедевром. Не иначе на Insignia Solutions приняли NeXT’овскую веру.

SoftPC 3.1 эмулировала MS DOS 5.0 и… Windows 3.1. Впервые. Позже, Insignia Solutions выпустит отдельный продукт, SoftWindows, и адаптирует его для всех поддерживаемых компанией платформ, но в SoftPC этого больше никогда и нигде не будет. Насколько мне известно.

MS DOS и Windows 3.1 были разобраны до последнего винтика и скомпилированы заново, в фирменном стиле Insignia. В 3.1 отсутствовал эмулятор Intel, съедавший на “черном” железе, на Mac’ах и RISC-станциях на Unix, 2/3 циклов процессора. Он был не нужен, так как в “белом” железе использовались родные для обеих систем Intel-процессоры.

Эмулятор работал в двух режимах, в полноэкранном и в окне NEXTSTEP. Переключением между режимами управляли специальные комбинации клавиатуры.

Между MS DOS и Windows в эмуляторе и NEXTSTEP поддерживался Copy/Paste. Легко и просто для текста, чуть сложнее для графики (но это тоже было возможно, просто нужно было уметь пользоваться программой Grab для получения скриншотов во всех системах).

В полноэкранном режиме, особенно в MS DOS, Copy/Paste работал не всегда. Зато DOS и Windows занимали весь экран, и ни один шпион не догадался бы, что под ними спрятана NEXTSTEP. Шпионы всегда интересуются такими вещами – а тут их провели.

В эмуляторе поддерживались козырные технологии связывания данных от Microsoft, DDE и OLE – но за пределами эмулятора они были недоступны, даже если в программе для NeXT была реализована их поддержка.

Менеджер продукта, отвечавший на Insignia Solutions за SoftPC, Марк Манфорд, обещал подумать над устранением этого ограничения – его компании было бы выгодно убрать все препятствия с пути клиентов – но, видимо, вмешалась какая-то третья сила.

Были еще кое-какие недостатки, но продукт был премиального класса. На одном из дисков (CD/ROM?) в дистрибутиве NEXTSTEP 3.2 был установщик демо-версии (без ограничений по сравнению с реальной версией, кроме срока действия, через 30 суток после первого включения, секунда в секунду, она переставала работать; по словам одного немецкого NeXT’овода, обмануть её было очень легко – отодвинув текущую дату в прошлое). В установщике были кнопки “Купить”, “Установить” и “Купить и установить”. И копирайт Paget Press.

Покупка “через NeXT AppStore”!

NeXT на “белом” железе. SoftPC 3.1. Фото.

Стоила SoftPC 3.1 249 долларов. Еще и дешевле, более чем в два раза, чем предыдущие версии.

Portable Distributed Objects (PDO)

PDO – это небольшой фрагмент NEXTSTEP, переносимый на другие платформы. Лично я использовал её для взаимодействия клиента с сервером, оба из которых работали под управлением Mac’овской системы – и кажется, вся эта подсистема до сих пор лежит в глубине macOS (я не слышал чтобы её объявляли устаревшей), но уже очень давно мало кто ей пользуется. Ей 26 лет, для программного обеспечения это более чем почтенный возраст.

В чужие системы переносились основные классы NEXTSTEP, библиотека NXStream, программа nmserver (Unix’овая), и самый главный рабочий механизм PDO, классы NXProxy и NXConnection. В эпоху Cocoa они назывались NSProxy и NSConnection, но были они почти такими же, как в начале 90-х.

На другую платформу переносили Objective-C (из GCC 2.4), отладчик GDB и Portable Build Server. И много-много чего еще. NEXTSTEP очень большая система.

В программы на чужой платформе, с которыми планировалось организовать совместную работу, встраивались объекты подклассов NXProxy и NXConnection, а от экземпляра nmserver на NeXT-станции к экземпляру nmserver на Unix-станции, с помощью TCP/IP, отправлялся запрос с указанием имён сервера и искомого объекта.

Найдя искомое (если программа на сервере не была запущена, она запускалась), nmserver уходили в тень, а на NEXTSTEP появлялась полноценная рабочая ссылка на объект в чужой системе, с которым можно было делать все что угодно, как если бы он был на NeXT-станции. Отправлять ему сообщения, на которые он умел реагировать, получать от него результаты вычислений.

NeXT на “белом” железе. Portable Distributed Objects (PDO). Фото.

Вообще-то, в тот момент это была единственная коммерческая реализация подобного взаимодействия в индустрии, возможно единственная вообще. О подобном писали умные статьи, чуть ли не мечтали.

Использовать PDO предполагалось разными способами. Например, непосредственно из программы на NEXNSTEP-станции запускать трудоемкие вычисления на мощных рабочих станциях, или использовать на сотнях NeXT-клиентов общие программы на очень мощном сервере.

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

В октябре 1993, во время презентации NEXTSTEP 3.2, представили первую реализацию PDO, для HP-UX. На Data General и Sun уже шла работа по переносу PDO на DG-UX и Sun Solaris, которые должны были выйти в свет в январе и в марте 1994 года.

История AppleКомпьютеры AppleСтив Джобс