Привет! Меня зовут Владимир Карагиоз, я технический лидер по развитию гибридных облачных решений в Cloud.ru. Мне кажется, с точки зрения ИТ наше десятилетие очень похоже на 90-е: и тогда, и сейчас «вход» и «выход» из десятилетия отличаются радикально. Тогда главными темами были интернет, Java, «Unix на каждую машину» и ощущение, что мир вот-вот изменится навсегда. Сейчас — ИИ, облака и то же самое ощущение.

В этой статье мы попытаемся поймать технологический дух 90-х: запустить одну из систем, на которых работала добрая часть тогдашнего интернета и половина корпоративного мира.

30-летнее железо, паяльник, дым канифоли и слезы ностальгии. Погнали!

Sun Microsystems: рождение легенды

Hello World

Если вы когда-нибудь писали на языке Java содержимое файла HelloWorld.java, чтобы ворваться в ИТ, или, например, монтировали удаленный сетевой файловый ресурс по протоколу NFS, то вы уже соприкасались с наследием Sun Microsystems. Хотя, возможно, и не подозревали об этом.

Компания Sun Microsystems была основана в 1982 году четырьмя выпускниками Стэнфордского (Stanford University) и Калифорнийского университета в Беркли (UC Berkeley): Скоттом МакНили, Винодом Хослой, Энди Бехтольшаймом и Биллом Джоем. Ее название — акроним от Stanford University Network. Скромно, да.

Винод стал президентом, Скотт — директором по производству, а Энди — вице-президентом по технологиям. К ним также присоединился Билл Джой, доктор наук из UC Berkeley, известный своей разработкой операционной системы Unix. Билл отвечал за создание программного обеспечения для рабочей станции Sun.

Много лет спустя, в апреле 2000 года, Джой опубликует в Wired знаковую статью Why the Future Doesn't Need Us («Почему будущее не нуждается в нас»). В ней он предупреждает об опасности самовоспроизводящихся робототехники, генной инженерии и нанотехнологий, которые могут выйти из-под контроля и сделать человечество ненужным. Он сравнивал риск с атомной бомбой и призывал ученых сознательно ограничить опасные исследования. Статья вызвала острые дебаты: одни увидели пророческое предупреждение, другие — неоправданный страх. Хотя Джой почти не упомянул ИИ, его тезис о том, что технологии развиваются быстрее контроля, обрел новую остроту в эпоху генеративного ИИ 2020-х, и в 2023 году эксперты призвали перечитать статью именно в этом контексте.

Компания сразу же добилась успеха на университетском рынке и за первые два квартала работы получила 8 млн $ выручки. А в конце 1982 года венчурный фонд Kleiner Perkins инвестировал в нее 1,7 млн $, убедившись в перспективности рынка и мощи команды. Идеальная история успеха технологического предпринимательства.

Первая машина Sun — это буквально дипломный проект Энди Бехтольшайма. Он собрал рабочую станцию для нужд Стэнфорда на базе Motorola 68000 (8 МГц) и назвал ее Sun Workstation. Пока никакого SPARC, никакого Solaris, просто добротный ванильный UNIX на недорогом процессоре.

Первая рабочая станция компании Sun Microsystems — Sun-1, выпущенная в 1982 году, находится в постоянной экспозиции Музея компьютерной истории (Computer History Museum) в Маунтин-Вью, Калифорния, США. Она выставлена в рамках масштабной выставки Revolution: The First 2000 Years of Computing
Первая рабочая станция компании Sun Microsystems — Sun-1, выпущенная в 1982 году, находится в постоянной экспозиции Музея компьютерной истории (Computer History Museum) в Маунтин-Вью, Калифорния, США. Она выставлена в рамках масштабной выставки Revolution: The First 2000 Years of Computing

Sun-2 и Sun-3: взросление

Серии Sun-2 (1983) и Sun-3 (1985) продолжали развивать ту же архитектуру. Использовалась та же серия процессоров Motorola 68010/68020, но уже с нормальной поддержкой виртуальной памяти, более быстрой шиной VME и растущей линейкой периферии. Это были громоздкие угловатые корпуса, которые не слышали слова «дизайн», зато их начинка выдавала вычислительную мощность, нужную инженерам-проектировщикам и ученым.

Sun-4: SPARC приходит в мир

В 1987 году вышла серия машин Sun-4. Sun отказалась от Motorola и перешла на собственную SPARC-архитектуру RISC, разработанную совместно с UC Berkeley.

SPARCstation: икона эпохи

В апреле 1989 года Sun выпустила SPARCstation 1. На этот раз инженеры Sun озаботились дизайном (всего 8 миль до Купертино, сильная аура Стива достигла города Санта-Клара, где располагалась штаб-квартира Sun Microsytems).

Корпус машины высотой всего 7,5 см прозвали pizza box (коробка от пиццы), и название стало настолько удачным, что весь форм-фактор в индустрии стали называть именно так. Внутри работал собственный SPARC-процессор на 20 МГц, спроектированный по архитектуре RISC совместно с UC Berkeley. Для 1989 года это была бодрая рабочая лошадка: 10 MIPS, до 64 МБ RAM, Solaris на борту.

Из искры возгорелось пламя: SPARCstation 2 в 1990 году удвоила частоту до 40 МГц. Параллельно появились lunchbox-модели IPX и IPC — компактные ланч-боксы для тех, кому pizza box казалась слишком большой (да-да, на Reddit есть люди, которые признавались, что им больше нравятся ланчбоксы).

В 1994 году вышла SPARCstation 5, самая массовая рабочая станция в линейке: 100 000 единиц продано за первые 9 месяцев и больше 400 000 за все время производства — это был настоящий хит. В практической части статьи мы будем говорить именно о SPARCstation 5.

Ultra: SPARC взрослеет

В 1995–1996 годах Sun сделала ставку на 64-битную архитектуру UltraSPARC и выпустила серию машин-преемников SPARCstation: Ultra 1, 2, 5, 10. 

В 90-х Sun был не просто железом, вокруг него возникла философия: открытые стандарты, мощные UNIX-системы, надежная ОС Solaris и культовый слоган The Network is the Computer («Сеть — это компьютер»).

В 1995 году Sun выпускает Java, и это меняет индустрию. Принцип Write once, run anywhere («Напиши однажды, запускай везде») звучал как магия, ведь можно было собрать код один раз и запускать его на любой из платформ, для которой существовала среда исполнения Java.

На технологиях Java поднялся корпоративный бэкенд целого поколения. Если в 90-х балом правила архитектура приложений клиент-сервер (помните: Oracle Forms, Sybase PowerBuilder и, конечно, Borland Delphi?), то язык Java стал катализатором перехода к трехзвенной архитектуре. Не то, чтобы концепция была до этого момента неизвестна, но так уж совпало, что появился универсальный клиент в виде браузера, язык Java и J2EE (Java 2 Platform, Enterprise Edition) — платформа и набор спецификаций от Sun Microsystems для разработки корпоративных многоуровневых приложений на Java. Но это тема для отдельной статьи.

А вы знали, что Java — это название острова и сорта кофе? И, кстати, престижный в СССР чешский мотоцикл (Jawa). Если у тебя был мотоцикл «Ява», то шансы познакомиться и прокатить на нем красотку были гораздо выше, чем у владельцев «Ижа» или «Минска». «Ява» (и «Чезет» — CZ) были статусными, стоили под 1 000 руб. при з/п инженера 120 и автоматически делали владельцев модными и привлекательными ))

2000-е: точка в dotcom

Вскоре пришли 2000-е. Dotcom-пузырь лопнул, акции компании рухнули с 64 $ до 3 $. После краха дот-комов рекламный слоган Sun «We put the dot in dotcom» звучал иронично.

Sun продолжала делать крутые вещи: явила миру ZFS, DTrace, сделала свободный вариант ОС OpenSolaris, но монетизировать open source так и не научилась. А оборудование на процессорах Intel и AMD давно уже доросло до тяжелых нагрузок.

В 2010 году Oracle поглотила Sun за 7,4 млрд $. Скотт МакНили ушел раньше, в 2006 году, CEO Sun с 2006 по 2010 годы был Джонатан Шварц, который, как утверждают многочисленные хейтеры, и «проспал полимеры», вместо бизнеса занимаясь развитием своего блога на 11 языках. OpenSolaris закрыли, часть команды разбежалась по другим проектам — так появились LibreOffice и MariaDB. А Java, SPARC и Solaris продолжили свою капиталистическую жизнь под крылом большой красной корпорации Oracle.

Почему я снова захотел поставить себе на стол SPARCstation

В моей жизни было три машины SPARCstation 5, и каждая оставила свой след.

Первой я не владел, но хорошо ее помню: она стояла в Вычислительном центре МЭИ, где я подрабатывал во время учебы. За ней работал мой одногруппник, он участвовал в проекте обмена исследовательскими работами между институтами и НИИ. Под проект использовался Lotus Domino 5.0, Solaris 7, традиционные юниксовые сервисы и даже ICQ под Solaris. В конце 90-х на рабочих станциях Sun можно было и работать, и общаться с друзьями.

Вторую SPARCstation 5 мне подарили в 2000 году, когда я устроился в «Протек Флагшип». Это была dev- и stage-машина для разработки биллинговой системы для сотовых операторов.

Стоит сказать пару слов о компании: в конце 90-х «Протек Флагшип» был настоящим российским хайтеком мирового уровня. Компания активно продавала биллинговые системы операторам на постсоветском пространстве и половине земного шара. Через нее прошло немало людей, которые позже стали ключевыми фигурами в российском телекоме. Я горжусь, что мне довелось там поработать.

Тот экземпляр SPARCstation 5, впрочем, долго не прожил: батарейка в чипе NVRAM села, типичная болезнь Sun тех лет, и я обменял машину на другую технику.

На скриншоте — пример интерфейса системы: как любили в 90-х, фронтенд писали на PowerBuilder. Может быть, если будет настроение, я соберу стек под энтрепрайз-разработку середины-конца 90-х. Про Delphi знают все, и у многих читателей наверняка был опыт студенческой или профессиональной разработки на Delphi, а PowerBuilder жил большей частью в сегменте корпоративных клиент-серверных приложений, интенсивно работающих с реляционными базами данных
На скриншоте — пример интерфейса системы: как любили в 90-х, фронтенд писали на PowerBuilder. Может быть, если будет настроение, я соберу стек под энтрепрайз-разработку середины-конца 90-х. Про Delphi знают все, и у многих читателей наверняка был опыт студенческой или профессиональной разработки на Delphi, а PowerBuilder жил большей частью в сегменте корпоративных клиент-серверных приложений, интенсивно работающих с реляционными базами данных

Третью машину в конце 2025 года мне передал Игорь Смирнов, мой друг и коллега, для доукомплектования и запуска. Он взял с меня обещание описать этот опыт в статье для Хабра. Вот держу слово, Игорь.

В 1997 Игорь стал первым специалистом на территории бывшего СССР, сертифицированным NPA (Network Professional Association) как Certified Network Professional. Если интересно, вот интервью с Игорем «Конверсия личного масштаба».

Зачем вообще это затевать? Во-первых, хочется почувствовать дух настоящего Unix: не эмулятора, не виртуалки, а железа, которое этот Unix родило. Во-вторых, весь интернет 90-х в значительной части работал на Sun: веб-серверы, DNS, почта крутились на Solaris. Запустить такую машину сегодня — значит прикоснуться к этой инфраструктуре руками. Ну и в-третьих, вайб конца 20-го века. Для меня эти машины и есть дух того времени. Первый выход в интернет в 1996-м, странные самодельные сайты на Geocities и Tripod, поиск через AltaVista, первые чаты. Огромная часть этого интернета стояла на Sun. Вот и весь ответ на вопрос «зачем» .

SPARCstation 5: Aurora в руках

Корпус

SPARCstation 5 с кодовым названием Aurora выполнена в том-самом пицца-бокс корпусе, который она делила со SPARCstation 4 и SPARCstation 20. Характерная черта шасси — это фиолетовые треугольные ножки по краям корпуса. Высота около 9 см соответствует примерно двум юнитам.

Размеры корпуса в сантиметрах некруглые:

  • ширина около 43 см, это 17 дюймов;

  • глубина примерно 37 см, это 14,5 дюйма;

  • высота 9 см — это эквивалент 3,5 дюймов;

  • вес пицца-бокса по ощущениям примерно 6–7 килограмм.

В левой части находится логотип Sun, справа — название модели со стильной молнией в букве «А». Она отсылает к слову «spark» (искра, разряд), именно так первоначально называлась внутренняя разработка Sun в 1985–1986 годах еще до того, как архитектура получила официальное имя SPARC.

С правой стороны находятся отсеки для флоппи-диска и CD-ROM. Флопик на месте, а CD-ROM, как и жесткие диски, отсутствует
С правой стороны находятся отсеки для флоппи-диска и CD-ROM. Флопик на месте, а CD-ROM, как и жесткие диски, отсутствует

Я потратил много времени, пытаясь найти SCSI CD-ROM на онлайн-барахолках, пока не понял, что овчинка не стоит выделки. Во-первых, цена некоторых экземпляров доходит до 15 000 рублей за плексторы в хорошем состоянии. Plextor был технологическим лидером в сегменте высококачественных и высокоскоростных SCSI-приводов в 1990-е годы. Оказалось, что торговцы ретротехникой прекрасно это помнят и поэтому не снижают цены. Во-вторых, в корпусе SPARCstation стоял slim SCSI-привод, что делало поиск еще более сложным. Памятуя о том, что поставить ОС можно и по сети, я прекратил поиски CD-ROM.

Выключатель питания и все разъемы находятся в задней стенке корпуса
Выключатель питания и все разъемы находятся в задней стенке корпуса
В нижней части корпуса находятся разъемы и коннекторы, расположенные на материнской плате. Выше — коннекторы карт расширения
В нижней части корпуса находятся разъемы и коннекторы, расположенные на материнской плате. Выше — коннекторы карт расширения

Пройдемся по коннекторам, нижний ряд слева направо:

  • SCSI-коннектор для подключения внешних дисков, сканеров, стримеров и т.д.;

  • два одинаковых коннектора: тот, что выше — это параллельный порт, а тот, что ниже — AUI Ethernet. AUI Ethernet это физический интерфейс, который служил для подключения сетевой карты к внешнему трансиверу. Идея была в разделении логики сетевой карты и физической среды передачи. Один и тот же сетевой адаптер с портом AUI можно было подключить к разным средам: толстому коаксиалу (10Base5), тонкому коаксиалу (10Base2), витой паре (10Base-T);

  • далее идет классический разъем Ethernet для витой пары. Большое спасибо, что он здесь есть, я не знаю, где бы я искал трансивер для AUI;

  • дальше два 25-пиновых серийных порта A и B;

  • круглое гнездо — разъем клавиатуры. Нет, это не PS/2. Sun в те времена использовал свой разъем для клавиатуры и мыши;

  • и замыкает ряд блок аудиоразъемов: выход на наушники, линейный вход и линейных выход, разъем для микрофона.

Первый взгляд внутрь

С внешним видом разобрались. Теперь снимаем крышку, она сдвигается назад после откручивания винтов (ок, одного винта, потому что второй штатный винт за эти 30 лет потерялся). По отзывам пользователей, SPARCstation 5 — типичный пицца-бокс: все внутри плотно, все на виду и никакой кустарщины.

Процессор

Сердце машины — чип microSPARC II, изготовленный, судя по маркировке и поиску в интернете, компанией Fujitsu по заказу Sun (маркировка Fujitsu — MB86905). На оранжевой наклейке «-70A» означает частоту 70 МГц (существовала также версия 85A), а код 9442, вероятно, означает дату производства: 42-я неделя 1994 года.

Архитектура SPARC: v8, 32 бита, интегрированный FPU, кеш команд 16 КБ, кеш данных 8 КБ. По нынешним меркам — это велосипед, но в середине 90-х этого без боли хватало для X11, CAD, да и после появления среды Java он вполне справлялся с ней в первые годы.

Память

SPARCstation 5 использует модули памяти типа DSIMM (Dynamic Single In-Line Memory Modules). Это специальные DIMM с поддержкой паритета, емкостью 8 или 32 МБ на слот (всего 8 слотов, максимум 256 МБ). Модули заполняются индивидуально — это значит, что не нужно искать пары планок для апгрейда в отличие от машин более поздней серии Ultra. Игорь мне передал машину с одной планкой на 32 МБ. Каким-то чудом мне удалось найти еще одну планку, итого у меня в машине установлено 64 МБ памяти.

Много ли это было или мало? По отзывам современников, для 1994 года 32–64 МБ было вполне достаточно. Для конца 90-х, наверное, уже и частоты, и объема памяти было маловато. Для сравнения, у моего первого ПК, собранного в 1997 году, было 16 МБ памяти, и их местами было маловато для комфортной работы.

Видеокарта

На фото верх и низ видеокарты S24 24-Bit Color Frame Buffer. Карта имеет разъем AFX — это специализированная шина, которая позволяла графическому адаптеру работать напрямую с системной памятью на высокой скорости. Можно сказать, это прообраз разъема AGP для ПК. Карта поддерживает разрешение до 1152 x 900 пикселей и полноценный 24-битный цвет (True Color).

Ниже на фото видны разъемы SBUS и более плотный разъем AFX.

Видеокарты для Sun почему-то принято было называть фрэймбуфферами. Sun в 1994 году, видимо, не знала, что такое монитор с разъемом VGA, поэтому использовала собственный разъем видеосигнала DB-13W3 — это 13-пиновый разъем с тремя толстыми коаксиальными центрами для RGB.

Чтобы подключить обычный VGA-монитор, нужен переходник DB-13W3 на HD-15 (VGA). Такие адаптеры все еще продаются на китайском маркетплейсе, также при желании можно купить разъемы по отдельности и спаять переходник самостоятельно.

Я купил переходник на AliExpress за 1250 рублей. Если вам он тоже понадобится, будьте осторожны: у рабочих станций IBM, например IBM RS/6000 7012-320, или SGI тоже применялись такие разъемы, но с другой распиновкой. Продавцы на такие глубокие вопросы, для какой конкретно платформы предназначен переходник, не отвечают. 

Диски

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

Я начал охотиться за старыми дисками на известной сетевой барахолке, но без особого успеха. Удалось купить два диска IBM, у которых совпадал коннектор, но емкость (12 ГБ) была выше, чем максимальная емкость, которую может переварить дисковая подсистема машины, а по разным источникам это 4–5 ГБ.

Пару лет назад я услышал об эмуляторах флоппи-дисков и жестких дисков IDE и SCSI, которые подключаются вместо старого устройства, а образ диска хранят на SD или CF-карте. Вовремя вспомнил и нашел эмулятор BlueSCSI2 на вышеупомянутой большой сетевой барахолке.

UPD: Игорь вдогонку снабдил меня SCSI-диском на 200 МБ. Его не хватит для запуска Solaris 2.5-2.7, который я ранее запланировал поставить, но, кажется, можно будет поставить более ранний SunOS 4.1 — последний релиз из линейки, основанной на BSD UNIX. Судя по документации версии 4.1, он мог работать на SPARCstation 1, надеюсь, что и с пятеркой заведется. Но мы пока пойдем по ветке установки современных релизов 2.5–2.7.

BlueSCSI v2 — это open source плата на базе микроконтроллера Raspberry Pi RP2040, в разъем которой вставляется SCSI-шлейф. В отличие от первой редакции платы, которая эмулировала только один диск, BlueSCSI2 может притворяться одновременно несколькими устройствами, подключенными к одной SCSI-шине. Очень удобно: машина увидит одновременно и нужное количество жестких дисков, и один или несколько CD-ROM.

Образы дисков, файлы с расширением hda хранятся на обычной microSD-карте, а параметры дисков описываются в файле bluescsi.ini, который располагается там же на карте. Никаких шпинделей и шума, никакого страха за клин подшипников диска (если-таки его удалось его найти).

Подключается кабелем SCSI-50 напрямую к внутреннему SCSI-контроллеру SS5. Важный нюанс для тех, кто не имел дело с SCSI: контроллер требует терминации на конце шины. То есть на одной шине могут последовательно висеть одно или несколько устройств, при этом последнее устройство должно терминироваться — это либо положение перемычки на жестком диске, либо для внешних устройств, подключаемых, например, по кабелю Centronics. В случае эмуляторов на них просто выставляется нужная перемычка.

Забегая вперед, моя машина долго не хотела определять эмулируемые диски. Я брал ванильный файл bluescsi.ini, перебирал опции, связался с продавцом платы, который припомнил, что у него был покупатель из Дагестана, который покупал BlueSCSI2 именно для эмуляции дисков в SPARCstation. Я связался с тем человеком, он поделился своим конфигом и попутно я узнал, что серверы до сих пор трудятся для поддержки подвижной радиосвязи TETRA!

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

Чип NVRAM

Первое, с чем сталкивается владелец любой Sun-машины после долгого простоя — сообщение при старте: The IDPROM contents are invalid
Первое, с чем сталкивается владелец любой Sun-машины после долгого простоя — сообщение при старте: The IDPROM contents are invalid

В Sun SPARCstation 5 чип NVRAM играет ключевую роль в работе системы. Он хранит уникальный hostid машины и заводской Ethernet‑адрес, которые использовались, в том числе, для лицензирования программного обеспечения. Мы же, конце концов, говорим о проприетарной платформе, на которой крутился проприетарный дорогостоящий софт.

В NVRAM также записаны параметры загрузки, в частности, устройство, с которого машина запускается, а также часть конфигурационных переменных, похожих на современные переменные загрузчика. SPARCstation NVRAM содержит встроенные часы реального времени (RTC) и поддерживается отдельной батарейкой. Проблема cевшей батарейки в NVRAM стала актуальной уже в 90-е годы: в библиотеке Максима Мошкова приведена одна из первых версий FAQ по модулями Sun NVRAM авторства Марка Хендерсона от 1996 года.

Кроме конфигурационных данных и часов, NVRAM в SPARCstation 5 тесно связана с работой среды загрузки OpenBoot. При старте машина читает из NVRAM параметры загрузки, а также настройки диагностики, например, какие тесты RAM и других подсистем выполнять при включении. Именно поэтому, когда NVRAM портится или сбрасывается, SPARCstation 5 может начать зависать в Post‑самотестировании, спрашивать параметры загрузки или вообще не определять дисковые устройства, а часы машины уходят в 1970 год.

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

Сначала я купил за 470 рублей на AliExpress аналогичный чип M48T18 и после того, как он пришел, убедился, что там тоже севшая батарейка. Видимо китайцы просто распродают старые партии чипов без оглядки на то, что там внутри есть какие-то батарейки.

Вторая попытка решить проблему — народный метод. Срезаем боковую часть корпуса дремелем или надфилем, добираемся до контактов внутренней батарейки типоразмера CR2032 и подпаиваем к ней новую батарейку. Я предпочел заранее купить контейнер для батарейки 2032 с проводами, которые можно припаять в нужное место и выключателем.

Надфиль, кстати, не помог. Спасибо коллеге, который снабдил меня дремелем. Dremel — американская машинка-гравер с множеством насадок, торговая марка которого стала именем нарицательным
Надфиль, кстати, не помог. Спасибо коллеге, который снабдил меня дремелем. Dremel — американская машинка-гравер с множеством насадок, торговая марка которого стала именем нарицательным
На фото результат сверления и бурения корпуса микросхемы. Дремель работает быстро, поэтому главное не сточить дорожки в процессе сверления или стачивания корпуса
На фото результат сверления и бурения корпуса микросхемы. Дремель работает быстро, поэтому главное не сточить дорожки в процессе сверления или стачивания корпуса
А это фото демонстрирует отсутствие у меня базовых навыков пайки ?
А это фото демонстрирует отсутствие у меня базовых навыков пайки ?

Готовый результат: NVRAM с новой батарейкой CR2032 на проводах, замотанной скотчем (простите за маникюр). Нельзя назвать победой инженерной мысли, но работает. Вставляем чип обратно в гнездо на плате. Теперь можно запрограммировать MAC-адрес и Host ID через OpenBoot.

Терминальный доступ

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

У машины два 25-пиновых COM-порта. Для подключения к SPARCstation 5 по COM‑порту в Linux обычно используют программу minicom. После установки (sudo apt install minicom на Debian‑подобных системах, sudo dnf install minicom на Fedora/RHEL и т.п.) ее запускают в режиме настройки: sudo minicom -s:

  1. В меню выбирают пункт «Настройка последовательного порта».

  2. Указывают нужный порт, обычно /dev/ttyS0 для классического COM или /dev/ttyUSB0 при использовании USB‑to‑serial‑адаптера.

  3. Выставляют параметры под Sun: скорость 9600 бод, 8 бит данных, без четности, 1 стоп‑бит (8N1).

  4. Сохраняют настройки по умолчанию.

  5. Выходят в главное меню и запускают соединение, после чего в терминале minicom можно наблюдать загрузку своего подопечного и работать с OpenBoot‑консолью. После установки minicom обычно запускают с правами root или через sudo, чтобы был доступ к порту /dev/ttyS0 или /dev/ttyUSB0.

Первоначально я планировал подключиться через адаптер USB-COM9 плюс переходник DB9-DB25, но не тут-то было: USB-адаптер выдавал наползающие друг на друга буквы. Пришлось искать аппарат с железным COM-портом. Сначала я достал со шкафа древний сервер Fujitsu Primergy RX100 S1, на котором стоит CentOS 3, но работать пришлось в наушниках из-за шума вентиляторов. Потом я решил проверить, нет ли в моем уже немолодом десктопе Dell Optiplex 9020MT COM-порта, и, ура, он там был! После запуска minicom и включения SPARCstation на черном экране появилась надпись SPARCstation 5!

Программирование NVRAM

После включения SPARCstation 5 пользователь получает доступ к OpenBoot, встроенной микропрограмме, хранящейся в постоянной памяти системы. Эта среда предназначена для управления аппаратным обеспечением на низком уровне и обеспечивает выполнение функций диагностики оборудования, включая проверку состояния компонентов системы. OpenBoot позволяет сделать выбор источника загрузки: жесткий диск, сетевой ресурс или оптический носитель, и восстановить работоспособность системы в случае сбоев до запуска основной операционной системы.

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

Для управления параметрами в NVRAM доступны специализированные команды, например:

  • setenv, позволяет изменять значения переменных, например, указывать путь к загрузочному образу операционной системы;

  • printenv, отображает текущие настройки, сохраненные в NVRAM;

  • reset-all, сбрасывает все параметры к заводским значениям.

Кроме того, OpenBoot включает в себя встроенный интерпретатор языка программирования Forth, что позволяет создавать скрипты для автоматизации диагностических процедур и выполнять сложные операции по изменению конфигурации NVRAM на уровне аппаратного обеспечения.

У более свежего железа, например у серверов Sun Fire, между OpenBoot и операционной системой располагается слой удаленного управления ALOM (Advanced Lights Out Management). АLOM предоставляет возможности мониторинга, управления питанием и доступа к консоли, но работает отдельно от OpenBoot. ALOM позволяет подключаться к серверу через сеть или последовательный порт, перезагружать его, следить за состоянием железа и даже получать доступ к OpenBoot, но сам OpenBoot остается основной средой для низкоуровневой настройки и загрузки.

Наклейка на NVRAM чипе Sun Microsystems содержит штрихкод и шестизначный hex-код вроде 719BA9, который обозначает последние три байта Ethernet MAC-адреса и hostid.

Для машин семейства SPARCstation (5, 10, 20) и Ultra по этому коду можно воссоздать MAC-адрес и hostid. Первые три байта MAC всегда 08:0:20, а для hostid первый байт зависит от типа системы (для SPARCstation 5 это 0x80).

Код 719BA9 интерпретируется как байты 71:9B:A9.

Таким образом, мы получим MAC-адрес 08:0:20:71:9B:A9 (последние три байта из наклейки) и Hostid 809BA971.

Далее мы можем использовать команду mkp OpenBoot для записи байтов в NVRAM по соответствующим смещениям.

Сначала подготовка:

ok set-defaults
ok setenv diag-switch? false
ok .idprom

Set-defaults сбрасывает все переменные NVRAM OpenBoot в заводские значения по умолчанию, включая boot-device, auto-boot? и параметры диагностики — это очищает пользовательские настройки, но не трогает IDPROM.

Setenv diag-switch? false отключает автоматический запуск диагностики POST при каждой загрузке — POST будет работать только при power-on reset или принудительно — это ускоряет загрузку.

.idprom показывает текущее содержимое IDPROM в читаемом виде: формат, тип машины, Ethernet MAC, дату производства, серийный номер (hostid), checksum.

Далее вводим команды по байтам. Команды для MAC-адреса 08:0:20:71:9B:A9 и Host ID 80719BA9:

1 0 mkp     \ format 01
80 1 mkp    \ тип SS5 (80)
08 2 mkp    \ Ethernet[0]
00 3 mkp    \ Ethernet[1]
20 4 mkp    \ Ethernet[2]
71 5 mkp    \ Ethernet[3]
9B 6 mkp    \ Ethernet[4]
A9 7 mkp    \ Ethernet[5]
80 8 mkp    \ дата (тип 80)
00 9 mkp    \ дата производства, можно вставить нули
00 a mkp    \ дата
00 b mkp    \ дата
71 c mkp    \ Host ID[2]
9B d mkp    \ Host ID[3]
A9 e mkp    \ Host ID[4]

Пересчитываем контрольную сумму:

0 f 0 do i idprom@ xor loop f mkp

И проверяем состояние памяти:

Вуаля! Значения сохранены, перегружаем машину.

Однако она пытается загрузиться по сети через netboot: ищет RARP/DHCP-сервер для IP/MAC, затем TFTP-сервер с boot-файлом.

Через команду minicom Ctrl A-F мы шлем машине сигнал Stop-A, чтобы прекратить бесплодные попытки загрузиться по сети. Далее редактируем файл bluescsi-ini для того, чтобы у машины, наконец, появились HDD и CD-ROM… Через два дня возвращаемся к машине...

Выкладываю грязный файл bluescsi.ini с одним жестким диском и тремя виртуальными CD-ROM  с инсталляторами ОС Solaris 2.6, Oracle EE8 и текстового редактора Corel WordPerfect for UNIX.

cat bluescsi.ini

[SCSI]
# Settings that apply to all SCSI ids

# Select a system preset to apply default settings
# Known systems: "Generic", "MacPlus", "MegaSTE"
System="Generic"

#Debug = 0   # Same effect as DIPSW2, enables verbose log messages
SelectionDelay = 255   # Millisecond delay after selection, 255 = automatic, 0 = no delay
PhyMode = 0   # 0: Best available  1: PIO  2: DMA_TIMER  3: GREENPAK_PIO   4: GREENPAK_DMA
Dir = "/"   # Optionally look for image files in subdirectory
#Dir2 = "/images"  # Multiple directories can be specified Dir1...Dir9
DisableStatusLED 0 # 0: Use status LED, 1: Disable status LED



# Settings that can be needed for compatibility with some hosts
Quirks = 0   # 0: Standard, 1: Apple, 2: OMTI, 4: Xebec, 8: VMS
EnableUnitAttention = 0 # Post UNIT_ATTENTION status on power-on or SD card hotplug
EnableSCSI2 = 1 # Enable faster speeds of SCSI2
EnableParity=1  # Sun контроллеры ОБЯЗАТЕЛЬНО требуют четность
EnableUnitAttention=1 
#Debug=1

#EnableSelLatch = 0 # For Philips P2000C and other devices that release SEL signal before BSY
#EnableParity = 1 # Enable parity checks on platforms that support it (RP2040)
#MapLunsToIDs = 0 # For Philips P2000C simulate multiple LUNs
#MaxSyncSpeed = 10 # Set to 5 or 10 to enable synchronous SCSI mode, 0 to disable

# ROM settings
DisableROMDrive = 1 # Disable the ROM drive if it has been loaded to flash
#ROMDriveSCSIID = 7 # Override ROM drive's SCSI ID

[SCSI3]
#Image = "/HD0_512.hda"
Type = 0           # Fixed Disk
BlockSize = 512
TerminatorEnable = 1  # Важно, эмулируем наличие терминатора в SCSI-цепочке!
# Settings that can be specified either per-device or for all devices.
Vendor = "QUANTUM"
Product = "FIREBALL1"
Version = "1.0"
Serial = "0123456789ABCDEF"
Type = 0     # 0: Fixed, 1: Removable, 2: Optical, 3: Floppy, 4: Mag-optical, 5: Tape
#TypeModifier = 0  # Affects only INQUIRY response
#SectorsPerTrack = 63
#HeadsPerCylinder = 255
#RightAlignStrings = 0 # Right-align SCSI vendor / product strings, defaults on if Quirks = 1
#PrefetchBytes = 8192 # Maximum number of bytes to prefetch after a read request, 0 to disable
#ReinsertCDOnInquiry = 1 # Reinsert any ejected CD-ROM image on Inquiry command, 1 to enable

# Settings can be overridden for individual devices.
#[SCSI2]
#Product = "Disk with ID2"

#[SCSI5]
#Product = "CD-ROM Drive"
#Type = 2

# If IMG0..IMG9 are specified, they are cycled after each CD eject command.
#IMG0 = FirstCD.iso
#IMG1 = SecondCD.iso

# Raw sector range from SD card can be passed through
# Format is RAW:first_sector:last_sector where sector numbers can be decimal or hex.
# If end sector is beyond end of SD card, it will be adjusted automatically.
# [SCSI4]
# IMG0 = RAW:0x00000000:0xFFFFFFFF # Whole SD card

[SCSI6]
Type=2 # CD
Vendor="TOSHIBA"
Product="XM-4101TASUNSLCD"
BlockSize=512

[SCSI5]
Type=2 # CD
Vendor="TOSHIBA"
Product="XM-4101TASUNSLCD"
BlockSize=512

[SCSI4]
Type=2 # CD
Vendor="TOSHIBA"
Product="XM-4101TASUNSLCD"
BlockSize=512

Содержимое SD-карты:

bluescsi.ini                         
HD3_512.hda
CD4_COREL_WPUNIX_1.iso              
CD5_Oracle8iEE.Solaris26.iso        
CD6_Sol26.598InstallationSparc.iso

После каждого запуска машины с адаптером BluesSCSI на SD-карте обновляется файл log.txt для диагностики ошибок. Если машина сразу не подхватывает диски, стоит также обратить внимание на мигание светодиодов на плате. Например, если на плате RPi Pico мигает светодиод 5 раз, это означает, что не получается прочесть карту. На сайте BlueSCSI есть страница, посвященная траблшутингу, которая может сэкономить время при поиске причин проблем.

Почему загрузочный диск с Solaris имеет номер 6?

В SPARCstation 5 стандартная заводская конфигурация SCSI ID — SCSI ID 3 - загрузочный жесткий диск (нижний слот), SCSI ID 6 — CD-ROM drive.

Спойлер следующей части

Подведем промежуточный итог. Мы получили машину с мертвым NVRAM и оживили его: вскрыли чип, заменили, припаяли на проводах батарейку и вставили обратно. Запрограммировали MAC-адрес и Host ID через OpenBoot. Нашли «железный» COM-порт в старом десктопе Dell и подключились к нему из программы minicom. Подключили BlueSCSI2 для эмуляции SCSI-дисков, долго бились с конфигом, пока не пришла помощь из Дагестана.

WIN: машина видит эмулируемые диски и загружается с виртуального CD-ROM с инсталлятором операционной системы. В следующей части будем ставить Solaris и делать его уютным.

Команда boot cdrom запустит инсталлятор с диска, и мы, попивая ароматный кофе (теперь вы знаете, что чашка с кофе на логотипе Java это неспроста), будем устанавливать операционную систему Solaris 2.6.

To be continued…

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


  1. tutova_tut
    28.05.2026 09:00

    Ааааа, оно живое! Спасибо за статью. Правда мои олдскулы теперь так свело, что у меня только один вопрос: на этом можно поиграть в "Поле чудес"?


    1. htop Автор
      28.05.2026 09:00

      Нет, но под старый Solaris была сборка SimCity (помимо вездесущего Doom) - спасибо за идею с играми, надо его скачать и поставить!


  1. easimonenko
    28.05.2026 09:00

    Статья крутая. Спасибо! Интересно было бы почитать про установку и запуск на нём NetBSD или другой свободной системы.


    1. htop Автор
      28.05.2026 09:00

      Спасибо! Да, я планирую поставить или NetBSD или менее требовательный к ресурсам SunOS 4.1 на упомянутый в статье диск Maxtor вместо эмулятора BlueSCSI, чтобы система на 100% состояла из старого железа.


      1. easimonenko
        28.05.2026 09:00

        Класс, будем ждать рассказа.


      1. unreal_undead2
        28.05.2026 09:00

        Интересно было бы посмотреть на интерфейс NeWS в SunOS. Хотя и в солярке 2.2 было ещё оно, по идее тоже должно взлететь - и там можно ещё с тредами поиграться, Sun был одним из пионеров, тогда ещё была схема M:N.


        1. htop Автор
          28.05.2026 09:00

          Надеюсь, что в ближайшее время доберусь и до NeWS.

          В 2.6 доступны CDE и OpenWindows.

          Последний прямо очень уж архаичный; CDE же когда-то вызвал у меня оторопь, но по прошествии нескольких лет, в особенности после наблюдения за прогрессом среды GNOME, я начинаю испытывать симпатию к CDE))


          1. unreal_undead2
            28.05.2026 09:00

            Когда поднимал Линукс дома в первый раз (это где-то 1996/7), поигрался с разными wm, доступными в слаквари, и остановился на olvwm, эстетически понравился. По сути этот тот же OpenWindows, частично ушедший в open source, а он в свою очередь реализует под X11 look&feel оригинального NeWS. При этом исходники тулкита (xview) тоже были доступны - но как то основная линуксовая масса их не оценила, стороннего софта на нём не видел. И живая солярка тоже нигде не попадалась.

            Xfce изначально копировал внешний вид CDE, потом перешёл на более привычный сейчас вид с горизонтальной панелькой сверху (но в любом случае удобнее, чем современные GNOME/KDE).


  1. MaFrance351
    28.05.2026 09:00

    Интересно!

    Лежат в щедрых закромах Родины парочка таких артефактов. Но, увы, остального железа пока неа, искать его тоже не готов.

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

    Странное довольно решение. Получается, при отказе этого чипа весь лицензионный софт на ПК отлетал?


    1. htop Автор
      28.05.2026 09:00

      Нет, при замене чипа на новый туда можно внести старые Hostid и Ethernet-адрес. это я как раз описал в этой части текста:

      Далее вводим команды по байтам. Команды для MAC-адреса 08:0:20:71:9B:A9 и Host ID 80719BA9:

      1 0 mkp     \ format 01
      80 1 mkp    \ тип SS5 (80)
      08 2 mkp    \ Ethernet[0]
      00 3 mkp    \ Ethernet[1]
      ....

      Для того, чтобы пользователь задумался об этом после замены чипа, OpenBoot ругается на неправильную контрольную сумму в NVRAM (NVRAM checksum error)/


    1. htop Автор
      28.05.2026 09:00

      Похоже, Ваши процессоры от старших моделей линейки Fire, типа v490 / v890.
      V890, кстати, размером с тумбочку или небольшой шкаф и весит от 88 (пустой) до 127 килограмм (полный фарш)).


  1. TheOldGrouch
    28.05.2026 09:00

    Прикладная некромантия, всё как мы любим.

    PowerBuilder был интересным комбайном (довелось поработать на 6.5), но ровно до момента, когда подтянулись конкуренты в виде C#, кмк.


    1. htop Автор
      28.05.2026 09:00

      Да-да, все верно! В ВЦ МЭИ, была большая группа разработчиков, которая освоила PowerBuilder году в 95м и успешно на нем писала года до 2000-2001. PowerBuilder хорошо подходил для проектов вроде автоматизации учетной деятельности. Ребята, например, сделали решение для приемных комиссий ВУЗов и успешно его внедрили в нескольких институтах. Но в начале нулевых было принято решение переходить на рельсы C#.

      В "Протеке" же архитекторы решили пойти по "открытому" пути, и перешли на Java со всеми "взрослыми обвесами" того времени - Enterprise Java Beans, "фасады" для представления единой точки доступа к подсистемам, "адаптеры" для интеграции с внешними системами и тонны XML-а - для описания бинов EJB, политик и и XSLT для генерации страниз из XML.

      Кстати, для проектов небольшого размера с не очень интенсивной работой с БД очень хорошо себя показывал Sybase SQL Anywhere (его еще называли "Маленьким Сайбейсом", а Sybase ASE был "большим")


  1. NutsUnderline
    28.05.2026 09:00

     отказалась от Motorola и перешла на собственную SPARC-архитектуру RISC, разработанную совместно с 

    для введения это ОК, но вообще ка кто здорово. ладно разработала, так еще и чипы как то изготовила и все это в недлинные сроки? Хороший такой, показательный пример выходит ;)


    1. unreal_undead2
      28.05.2026 09:00

      Ну так они их не на своих заводах печатали.


      1. NutsUnderline
        28.05.2026 09:00

        в этом абзаце многое осталось "за скобками"


  1. NutsUnderline
    28.05.2026 09:00

    USB-адаптер выдавал наползающие друг на друга буквы

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