Зацепка. В ретро-техническом разборе первого устройства BlackBerry мелькнула деталь, которую глаз инженера просто не может пропустить: внутри пейджера 1996–1998 годов сидит «настоящий, полноценный Intel 386EX» — встроенная версия того самого легендарного 386-го, на котором выросла вся x86-кухня. В карманном устройстве 90-х — процессор архитектуры, которая к тому моменту уже считалась музейной! Но самое вкусное выяснилось дальше, в вики-статье про чип: 386EX «использовался на борту нескольких орбитальных спутников и микроспутников» и был частью проекта NASA FlightLinux. То есть один и тот же консервативный, давно «устаревший» кремний работал и в кармане бизнесмена, и в вакууме на орбите. Захотелось понять, как так вышло — и почему это, на самом деле, гениальный инженерный паттерн, а не курьёз.
В 1994 году Intel выпустила странную на первый взгляд вещь: вариацию 80386SX, предназначенную для embedded-рынка, — i386EX. По высоким меркам процессор уже устарел: 16-битная внешняя шина (как у SX), ядро до 33 МГц, адресация до 64 МБ памяти. Pentium тогда уже вовсю продавался, и казалось, что 386 — это история про музеи и утилизацию.
Но суть 386EX была не в производительности, а в архитектурной плотности. Intel упаковала на кристалл по сути половину материнской платы IBM PC:
Периферия при этом была совместима со стандартными PC/AT-компонентами. Получилась система-на-кристалле за $39 (в партиях от 5000 штук, данные на конец 1993-го): вместо разводки вокруг процессора россыпи дискретных чипов — один корпус, минимум обвязки, предсказуемое поведение.
И здесь два свойства, которые для десктопа ничего не значили, а для встраиваемых систем значили всё.
Первое — static core. Ядро можно тактировать сколь угодно медленно — вплоть до полной остановки клока — без потери состояния. Для десктопа это неважно, там всё равно вентилятор шумит. А для системы на батарейке AA это главный трюк: процессор спит с нулевой частотой, просыпается на пришедший пакет, отрабатывает и снова засыпает. Именно так пейджер жил от одной батарейки две недели.
Второе — репутация. 386 — самый вылизанный, самый широко задеплоенный дизайн Intel: миллионы машин, тысячи приложений, десятилетия полевых испытаний. В инженерной культуре встраиваемых систем это превращалось в аргумент «мы знаем про этот кремний всё».
Wiki-фраза «used aboard several orbiting satellites» оказалось проверяемой — и вот тут начинаются по-настоящему красивые вещи.
SUNSAT (Стелленбошский университет, ЮАР). Первый южноафриканский микроспутник, запущенный в 1999-м, строился на бюджет меньше $2 млн силами студентов. Его полётная документация прямо фиксирует: «общие задачи управления полётом — планирование, управление CCD-имиджером и коммуникациями — выполняет процессор Intel 386EX, с резервированием на Intel 80C188EC». А T800-транспьютер, выделенный под систему точной ориентации, в случае отказа тоже передавал задачи обратно 386-му. То есть в архитектуре отказоустойчивости южноафриканского спутника «советский» по духу принцип «main + холодный резерв» реализовывался через пару серых чипов Intel.
UoSAT-12 (SSTL, Суррей). На этом 350-килограммовом исследовательском аппарате SSTL отрабатывала автономное управление орбитой (Orbit Control Kit от Microcosm при участии AFRL): программное обеспечение автономного маневрирования жило «на кастомном бортовом компьютере на базе 386, разработанном SSTL». Впервые в истории — демонстрация автономного удержания спутника на орбите без человека в контуре — и делало это железо из настольного сегмента десятилетней давности.
NASA FlightLinux. Проект Пата Стейкема (Goddard) собирался сделать Linux бортовой ОС для научных спутников, и 386EX числился одной из целевых платформ. Проект, правда, фактического полёта так и не увидел: финансирование кончилось 30 июня 2002 года с формулировкой «не хватило времени на лётную демонстрацию», а исходники остались под ITAR-ограничениями. Но важен сам жест: NASA всерьёз примеряла массовый x86 к космическому полёту.
Почему это работало? Не потому, что 386EX был «космическим» процессором — он им не был, радиационной закалки у него не было вообще. Ответ в экономике микроспутников: классические космические CPU (RAD6000, RAD750) стоят сотни тысяч долларов за штуку. Микроспутник за $2 млн не может позволить себе CPU дороже самого дорогого прибора на борту. Вместо этого инженеры брали серый рынок и оборачивали вокруг чипа системную защиту: watchdog, тройное резервирование, EDAC-память, согласие двух машин. Отказ одного процессора не убивал миссию — его просто обходили. Схема «дешёвое коммерческое железо + умная избыточная архитектура» стала классикой SSTL и позже разошлась по всему миру кубсатов. 386EX здесь — идеальная иллюстрация: консервативный, всеизвестный, дешёвый чип, которому доверили корабль.
Второй и менее известный фронт — карманные устройства. Для 386EX это была тоже не ниша ради фана, а логичное применение его главного качества — самодостаточности.
RIM Inter@ctive Pager 900 (1996) и BlackBerry 950/957 (1998–2000). Компания Research In Motion из канадского Ватерлоо начала не со смартфонов, а с двусторонних пейджеров. Inter@ctive Pager 900 (он же RIM-900) работал в сети Mobitex и первым в индустрии подарил миру вещи, которые мы считаем появившимися гораздо позже: peer-to-peer доставку сообщений, read receipts и даже text-to-speech. Проверенный в York University Computer Museum экземпляр — 4 МБ флеша, полноценная клавиатура, одна батарейка AA.
А дальше — главное. BlackBerry 950/957 строились вокруг того же Intel 80386EX: 4 МБ флеша, 512 КБ SRAM, монохромный экран 132×65, AA-батарейка на две недели и радиомодем 900 МГц для Mobitex. RIM OS использовала MMU 386-го для защиты памяти — кооперативная многозадачность с message passing, приложения на C++ в PE-формате (да-да, в том же, что у Windows), которые сайдлоадились через Desktop Manager, линковались с кодом на устройстве и исполнялись прямо из флеша. Систему писали люди, выросшие на PC-архитектуре, — и они получили PC-совместимую логику в кармане, без IBM PC-совместимости в целом: устройство называло себя x86, но BIOS, PCI и весь десктопный стек тут отсутствовали как класс.
Только в 2002-м (модели 5810/5820) RIM переехала на ARM7 и Java-окружение — за шесть лет до первого Android, кстати, тоже построенного на Java поверх ARM. А Nokia 9000 Communicator — первый «смартфонный» слайдер — внутри нес честный Intel 386 на 24 МГц с GEOS/ROM-DOS на PDA-стороне.
Парадокс: миллионы людей в 1998–2002 годах носили в кармане i386, не подозревая об этом. Последний массовый 386-девайс в мире оказался не компьютером, а почтовым пейджером.
Есть у этой истории и драматический шлейф, без которого она неполна. Устройство с 386EX-сердцем зимой 2005–2006 годов чуть не исчезло из США целиком — и виноват был не чип, а концепт.
В 1990 году чикагский изобретатель Томас Кампана-младший (сын молочника, сержант ВВС, около 50 патентов за карьеру) запатентовал ряд идей беспроводного push-почты. В 1992-м он с патентным поверенным Доном Стаутом — человеком, хранившим все бумаги в обычном канцелярском ящике — создал холдинг NTP (New Technologies Products): ни сотрудников, ни офиса, ни продукта, только патенты. Когда BlackBerry взлетела, Стаут предложил RIM лицензию; RIM, по словам Лазаридиса, провела внутреннюю проверку и ответила, что нарушений нет — письменного следа ответа в суде так и не предъявили. В ноябре 2001-го NTP подала иск в «rocket docket» Восточного округа Вирджинии.
Дальше — вердикт, который стоит помнить любому инженеру: присяжные разобрались за три часа. Демонстрация RIM «приоритетной» системы SAM провалилась — софт в демо оказался моложе патентов Кампаны, судья Спенсер позже назвал действия защиты «questionable» и даже «fraudulent». Инфринжемент признали «willful»: роялти подняли с 5,7% до 8,55% выручки, плюс штраф и запрет на продажи BlackBerry в США. Единственное, что спасало рынок — эскроу и апелляции. Момент истины настал, когда DOJ и Минобороны США в брификах заявили: отключение BlackBerry в правительстве неприемлемо — это был, кажется, первый случай, когда патентный спор буквально грозил вырубить почту Белого дома, Конгресса и Пентагона. Верховный суд отказался слушать дело, и 3 марта 2006 года RIM заплатила NTP $612,5 млн «полным и окончательным урегулированием» — около $978 млн в нынешних деньгах.
Горько-ироничный финал: Кампана умер от рака 8 июня 2004 года, не дожив двух лет до победы. Его патенты к тому моменту USPTO уже штамповал как недействительные по переэкзаменовке — но юридическая фикция «действительны, пока не рассмотрена апелляция» сделала своё дело. Всё это не имело к кремнию 386EX никакого отношения: конфликт шёл вокруг идей сетевого слоя. Железо, построенное на самом массовом и «очевидном» процессоре в мире, оказалось заложником самых невидимых вещей — формул патентных претензий.
Самое неочевидное в этой истории — судьба направления. 386EX оказался «существенно успешнее своего предшественника 80376» (wiki), разлетелся по Garmin GPS III+, GPS 48, GPS 12, спутниковым телефонам Globalstar/Qualcomm GSP-1600, модемам USRobotics Courier I-«everything», светофорным контроллерам Swarco ITC-2, гирокомпасам Sperry Marine и пожарным панелям Ziton ZP3. Это действительно был один из первых (если не первый) Intel-процессоров с контроллером памяти и клокером прямо на кристалле — за 15 лет до того, как «интегрированный северный мост» стал мейнстримом.
И при этом Intel сама этого не заметила. После 386EX компания не выпускала ни одного интегрированного x86-процессора целых тринадцать лет — до Tolapai (EP80579) в 2007-м. Даже сам Intel, вложившись в Pentium/MMX-гонку против AMD, смотрела не туда, где её же продукт тихо летал в космосе и лежал в карманах. Встраиваемый x86 в итоге подняли не создатели архитектуры, а AMD с Geode и позже Intel с Atom — но это уже другая страница истории, и она начинается, по сути, с нуля, а не с наследия 386EX.
Собственно, зачем всё это. История 386EX — хрестоматийный урок о том, что «устаревание» кремния — это не абсолют, а вопрос контекста.
Первое. У 386 была уникальная комбинация качеств: огромная база знаний, простота, дешевизна, полная документированность. Для рабочей станции это уже не значило ничего — а для карманного устройства на одной батарейке и для микроспутника за $2 млн это было решающим. Правильная архитектура — не самая быстрая, а та, у которой ровно тот профиль риска и стоимости, что нужен твоей системе.
Второе. Устойчивость к радиации — понятие системное, а не только кремниевое. Чип без всякой радиационной закалки летал на орбите и управлял ориентацией спутника, потому что вокруг него построили резервирование, watchdog и «соглашение двух машин». Космическая надёжность — это свойство архитектуры системы, а не только литографии. Именно поэтому сегодня маленькие спутники всё чаще летают на consumer-железе с программной обвязкой, а большие межпланетные зонды — всё ещё на RAD750 за $200K. Оба подхода правильные — для разных бюджетов риска.
Третье — и это мой любимый слой. Судьба 386EX — это судьба всех «скучных» технологий. Пока рынок смотрел на герцовку Pentium, чип-ветеран тихо вёз почту бизнесменов, светофоры, гирокомпасы и южноафриканскую науку на орбите. Ничем не блистая. Именно в такой тихой утилитарной роли проходит настоящая проверка архитектуры: не в бенчмарках, а в том, переживёт ли она 30 лет после того, как её объявили устаревшей.
По мотивам одного хабровского разбора BlackBerry 957 можно сказать просто: самую недооценённую архитектуру Intel носили в кармане и ставили на орбиту. Уважение к коду — и к кремнию — нужно заслужить. 386EX заслужил.