InquirerCamarines Norte robbery-shooting suspect nabbed after 8 hoursוואלהאישום: תושב כפר קאסם תכנן פיגוע בחוות השרתים של אמדוקס ברעננהRTP DesportoInter Miami conquista Campeones Cup com golo e assistência de MessiPunchPoco Lee’s management praises Zlatan’s support, urges restraintDaily MaverickWHAT’S COOKING: Spaghetti and meatballs with sugo al pomodoro (Italian tomato sauce)The Jerusalem PostFormer Shin Bet official warns Israelis to bring weapons to synagogues during Yom Kippur prayersBollywood HungamaEXCLUSIVE: Abundantia Entertainment and Almighty Motion Picture join hands for Kodaikanal Mercury thriller Heavy MetalХабр[Перевод] Нужны ли квантовые компьютеры чтобы понять химию?RapplerEU Commission proposes under-13s social media banThe South AfricanEkurhuleni killings: What we know about 9 women found deadNumeramaXbox considère Fable comme essentiel à l’ADN de sa plateformeIl Fatto QuotidianoE’ morto a 112 anni Vitantonio Lovallo detto Zitòn: era l’uomo più vecchio d’Italia, ha continuato a lavorare nei campi fino a 106 anni
The Daily Newsstand · Free, Always
Thursday, September 17, 2026

Через тернии к Солнцу: удаленка, которую мы потеряли. Подключаемся к графическому столу Sun Solaris и запускаем интранет

Translate

И снова привет! Я Владимир, технический лидер по развитию сервисов Evolution Data Platform в Cloud.ru и фанат древних рабочих станций, которые несли на себе всю тяжесть цифрового мира 90-х под операционной системой UNIX. В первой части мы сделали длинный экскурс в историю компании Sun Microsystems и ее продукции, посмотрели, что находится внутри рабочей станции Sun SPARCStation 5 и хирургическим путем вылечили ее детскую болезнь, которая препятствовала загрузке и работе.

В следующей части статьи мы погрузились в историю средних веков (UNIX-войны начала 90-х), поговорили в целом о мире коммерческого UNIX-а, установили на Sun SPARCStation актуальную операционную систему Solaris, настроили ее и вышли во «всемирную паутину».

А здесь, в третьей части, я расскажу и покажу, насколько удобно было использовать офисные приложения на UNIX, и создам интранет-портал многопрофильной высокотехнологичной компании.

Deprecated: «киберпространство»

А вы, кстати, заметили, что слова и словосочетания «всемирная паутина», «киберпространство», «виртуальная реальность», которые изначально были какими-то странными, в один момент вдруг стали пахнуть нафталином и их даже в газетах для пенсионеров не используют? Технологии победили, они стали настолько привычными и повседневными, что потребовались менее пафосные слова. Нам больше не нужна «всемирная паутина», потому что у нас есть просто «интернет», и нам не нужно «выходить в киберпространство», потому что мы в нем давно живем. 

Кажется, что всемирная паутина и киберпространство появились лет 10 назад, но нет, на самом деле прошло уже 30 лет

Кажется, что всемирная паутина и киберпространство появились лет 10 назад, но нет, на самом деле прошло уже 30 лет

Ночной Xephyr струит эфир

Давайте уже про удаленку. 

Мне иногда не хочется садиться за стол, чтобы кайфануть со SPARCStation (на самом деле она большей частью лежит на полу). Хочется включить ее и, пересев на диван с ноутбуком, работать с ней с удаленно. Нет проблем, организуем удаленку!

Снова рассказывает про 90-е...

В 90-х годах на кафедре ВМСС (Вычислительные машины, системы и сети) МЭИ работал доцент Рыбинцев. Владимир Олегович преподавал и, похоже, до сих пор преподает предмет «Компьютерные сети». Параллельно преподаванию на кафедре, он работал в системном интеграторе ROY International Consultancy, который внедрял решения Sun Microsystems. Изредка Рыбинцев проводил встречи со студентами в одной из аудиторий Бастилии МЭИ, он же корпус Е. Здание было построено 1929–1932 годах для Всесоюзного электротехнического института (располагается через дорогу на улице Красноказарменной), потом здание передали МЭИ как учебный корпус. Сегодня оно считается одним из шедевров советского конструктивизма. 

Бастилия МЭИ на Красноказарменной улице 13 в Москве. Информация о том, что Владимир Олегович будет проводить встречи со студентами, передавалась из уст в уста: «Такого-то числа Рыбинцев будет рассказывать про UNIX и технику Sun!»

Бастилия МЭИ на Красноказарменной улице 13 в Москве. Информация о том, что Владимир Олегович будет проводить встречи со студентами, передавалась из уст в уста: «Такого-то числа Рыбинцев будет рассказывать про UNIX и технику Sun!»

На одной из таких встреч (мне кажется, что в небольшое помещение тогда набилось несколько десятков человек) я узнал, что операционная система UNIX позволяет удаленно подключаться к машине не только через терминал по протоколу Telnet, но можно удаленно подключиться и к графической сессии. Для нас, маглов, пользователей Windows, это представлялось магией. 

Кстати, стоит наверное воздержаться от тотальных обобщений про Winodows: мой одногруппник Гоша пару лет успешно использовал на своем домашнем компе операционную систему OS/2 от IBM. Он говорил, что комп слабоват для Windows, а для OS/2 вполне норм, и что он без проблем запускает виндовые программы на системе от IBM. Сейчас уже трудно выяснить правду, кто был прав, Гоша или пользователи Usenet, которые писали о том, что Windows 3.x шевелится быстрее чем OS/2. Если кто-то из читателей имел опыт работы с «ОС-пополам» — поделитесь своими впечатлениями. 

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

Графический фундамент Unix: система X11

В отличие от монолитных графических подсистем Windows или macOS, графика Unix изначально строилась на принципах модульности и независимости. Основой этой архитектуры стала оконная система X Window System (чаще всего называемая по версии протокола X11), разработанная в Массачусетском технологическом институте (MIT) в 1984 году. 

X11 определила облик и поведение графики в Unix-подобных системах на сорок лет вперед. Ее главная особенность заключается в том, что она предоставляет лишь базовый каркас: механизм отрисовки окон, обработку ввода с клавиатуры и мыши, но намеренно не определяет внешний вид интерфейса, логику управления окнами или дизайн кнопок.

В основе X11 лежит самобытная клиент-серверная архитектура с перевернутой, контринтуитивной терминологией, которая часто сбивает с толку не только новичков, но и повидавших многое юниксоидов. X-сервером в перевернутом мире X11 является программа, запущенная на машине пользователя — именно она управляет локальным монитором, клавиатурой и видеокартой. X-клиентами же называют сами прикладные программы, будь то текстовый редактор, браузер или терминал, которые могут выполняться на абсолютно любом компьютере в сети. Благодаря такой «сетевой прозрачности» пользователь Unix-системы мог запустить ресурсоемкое графическое приложение на мощном удаленном сервере в дата-центре, видеть его окно и управлять им на своем терминале так, будто оно работает локально.

Поскольку сам X-сервер умеет лишь выводить графические примитивы (вы правильно поняли, это точки, прямоугольники, многоугольники, дуги, эллипсы — на самом деле список довольно большой), для управления окнами в Unix используется отдельный тип программ, которые называются оконными менеджерами (Window Managers). Именно они отвечают за появление у окон рамок, кнопок «свернуть-закрыть», за их перемещение, масштабирование, перекрытие и так далее. 

Такое разделение породило большое разнообразие графических сред в Unix-мире. Пользователь был волен выбирать между легковесными мозаичными менеджерами, например i3 или dwm, классическими средами вроде FVWM или CDE в коммерческих Unix-системах и современными тяжеловесными окружениями вроде GNOME и KDE Desktop, которые превращают Unix или Linux в «интуитивную систему для конечного пользователя». Тут ирония по вкусу.

Протокол X11 создавался в эпоху, когда видеокарты были простыми устройствами для вывода 2D-графики, а сети медленными. За десятилетия X11 оброс множеством расширений, например XRender, GLX для 3D-графики и Composite, превратившись в сложную и тяжелую конструкцию, которая с трудом отвечает современным требованиям безопасности и изоляции приложений. 

X11 жив до сих пор, но экосистема Unix-подобных операционных систем переживает длящийся не первый год тектонический сдвиг: на смену почтенному X11 приходит современный протокол Wayland. На отечественных форумах его часто уничижительно называют «вялым», что, в общем-то, красноречиво отражает народный опыт его использования и настройки. Wayland избавляет систему от лишнего посредника в лице X-сервера, делая отрисовку быстрее и безопаснее. Однако концептуальное наследие X11 и его дух абсолютной гибкости навсегда останутся частью истории Unix и Linux.

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

Посмотрите на скриншот: основное пространство экрана занимает рабочая среда CDE, а на переднем плане открыто окно файлового менеджера filemgr, запущенное из каталога OpenWindows (/usr/openwin/bin/). Оконный менеджер CDE (dtwm) терпеливо упаковал это чужеродное окно в свою стандартную прямоугольную рамку CDE, при этом все внутреннее содержимое окна отрисовано старым графическим движком XView (частью OpenWindows) по спецификациям OPEN LOOK: здесь видны аутентичные круглые кнопки-засечки меню и специфические архаичные иконки папок. Этот пример доказывает, что один X-сервер может одновременно и без конфликтов обслуживать совершенно разные поколения графических клиентов. 

Вы можете спросить: «Как операционная система Solaris понимает, что программа, которую он будет запускать, должна использовать OpenWindows, чтобы выбрать соответствующий набор библиотек?»

Ответ: Solaris понимает это благодаря механизму операционных систем Unix, который называется динамическое связывание (Dynamic Linking), и структуре самого исполняемого файла программы. Когда вы запускаете файл, например /usr/openwin/bin/filemgr, ядро ОС не гадает, к какой среде относится программа. Все происходит автоматически на этапе старта через заранее определенные и прописанные зависимости. 

Каждая программа в Solaris (и вообще в UNIX и GNU/Linux) — это файл формата ELF (Executable and Linkable Format). Внутри этого файла есть заголовок, в котором разработчики при компиляции зафиксировали список библиотек (.so-файлов), необходимых программе для работы. Если посмотреть на файл с помощью системной утилиты ldd, которая показывает зависимости, то будет примерно такая картина: 

Вот программа filemgr, работающая в оконной среде OpenWindows, просит загрузить библиотеки XView: libxview.so и другие

Вот программа filemgr, работающая в оконной среде OpenWindows, просит загрузить библиотеки XView: libxview.so и другие

Практика

Разобравшись с теорией, вернемся к практике. Чтобы получить доступ к удаленной графической сессии Solaris и увидеть на современной машине все то великолепие CDE и OpenWindows (ирония), о котором шла речь выше, мне нужен был подходящий инструмент. Из всего арсенала современных средств работы с удаленной X11-графикой я остановил свой выбор на Xephyr. Он представляет собой так называемый вложенный (nested) X-сервер, то есть полноценный X-сервер, который запускается внутри обычного окна текущего графического окружения. Проще говoря, Xephyr создает на рабочем столе отдельное окно, которое становится самостоятельным виртуальным экраном со своим собственным дисплеем (например, :1). Внутрь этого окна-песочницы можно направить графический вывод удаленных X-клиентов, запущенных на Solaris. 

Однако, если мы сразу попробуем соединиться с клиентом, то нас ждет бесконечное ожидание, так как по умолчанию Solaris не рад гостям.

Отредактируем настройки в файле /usr/dt/config/Xconfig. Неплохо бы сначала сохранить оригинал файла, и вот тут пригодятся навыки использования редактора vi — именно vi, не vim. На самом деле правильнее сделать копию в /etc/dt/config, при ее наличии настройки будут считываться из файла в /etc.

Расскомментируем строку и установим Dtlogin.requestPort: 177.

Строка Dtlogin.requestPort: 177 нужна для того, чтобы открыть на Solaris стандартный сетевой UDP-порт 177 для протокола XDMCP, так как по умолчанию удаленный доступ к графическому экрану входа заблокирован в целях безопасности. Установка этого параметра заставляет диспетчер входа dtlogin слушать сеть и ожидать входящие запросы на подключение от удаленных терминалов. Без этой настройки Solaris будет полностью игнорировать любые попытки программы Xephyr и других серверов связаться с ним, и мы не получим удаленный доступ к графическому интерфейсу системы.

Аналогично копируем файл /usr/dt/config/Xaccess в /etc/dt/config/Xaccess. Далее указываем разрешенный источник подключения: * (для всех хостов) или IP конкретной машины. Этот шаг необходим для настройки авторизации, так как после открытия порта 177 система Solaris должна знать, кому именно разрешено подключаться к ее графическому экрану. Файл Xaccess работает как белый список фаерволла для протокола XDMCP.

Далее перезапускаем login: 

/usr/dt/bin/dtlogin -kill; /usr/dt/bin/dtlogin -daemon 

Или делаем reboot.

Можно потом сделать проверку: netstat -an | grep 177

Современный netstat на Linux для слушающего UDP-порта оставил бы поле состояния пустым, так как UDP — это протокол без установления соединения. В классическом Solaris, особенно старых версий вроде Solaris 2.6, 7, 8 или 9, вывод netstat -an для UDP-портов работает иначе. Статус Idle — это норма для UDP в Solaris. В стеке TCP/IP от Sun Microsystems состояние Idle (свободен/ожидание) означает, что UDP-сокет успешно открыт, привязан к порту 177 (в данном случае это *.177 — диспетчер дисплеев XDMCP) и готов принимать входящие пакеты. 

Что получилось в финале?

Я не буду приводить все варианты, которые я пробовал, вот заветная команда:

Xephyr :10 -ac -br -resizeable -screen 1024x768 -query 192.168.1.50 -once -terminate

Параметр -screen 1024x768 задает разрешение виртуального экрана и размер окна Xephyr. Для Solaris 2.6 и среды CDE это считалось оптимальным классическим разрешением.

Параметр -ac отключает контроль доступа (Access Control). Он полностью снимает ограничения безопасности X-сервера. Без этого флага старая система Solaris 2.6 не сможет пройти авторизацию на современном X-сервере Fedora.

Параметр -br создает черный фон (Black Root). Он заменяет стандартный для X11 старый фон в виде серой ряби или сетки на сплошной черный цвет до момента, пока не загрузится рабочий стол Solaris. Так было в учебнике, но и без этого флага фон все равно черный.

Параметр -listen tcp активирует прослушивание TCP-портов. Он разрешает удаленным клиентам подключаться к этому X-серверу по сети. Для работы старого протокола XDMCP это критично, так как Solaris должен иметь возможность передавать графику окон обратно на Fedora по протоколу TCP.

Параметр :1 указывает номер нового дисплея (Display Number). Он создает изолированный виртуальный экран на Fedora, который займет сетевой TCP-порт 6001. Данный экран никак не пересекается с основным рабочим столом, который обычно использует номер :0.

Почему-то сплэш-скрин тут с желтыми вставками в отличие от реального экрана.

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

Но на втором уровне вложенности кириллица вернулась.

Можно выставить размер окна побольше, для этого меняем размеры после флага screen:

Xephyr :10 -ac -br -resizeable -screen 1920x1080 -query 192.168.1.50 -once -terminate

Установка Wordperfect

Давайте уже ставить бизнес-приложения!

Немного истории.

В 1979 году в Университете Бригама Янга (штат Юта) аспирант Брюс Бастиан и профессор Алан Эштон решили создать текстовый редактор для мини-компьютера Data General. Программа получила амбициозное название WordPerfect (что-то типа «Идеальное слово»). 

В 1982 году выходит версия для IBM PC и начинается золотой век WordPerfect. В то время главным текстовым редактором планеты был WordStar, но новинка из Юты быстро сместила его с пьедестала. Стоит заметить, что в те далекие времена штат Юта был одним из центров американской компьютерной индустрии. Помимо WordPerfect он был домом важной в то время корпорации Novell.

Секрет успеха WordPerfect был в трех уникальных фишках.

Чистый экран, никаких меню и линеек

Пользователь видел только мерцающий курсор на синем фоне, и это позволяло полностью сфокусироваться на творчестве, например составлять судебный иск или писать роман. Сегодня мы называем это «темной темой» и считаем модной фичей, а тридцать лет назад в WordPerfect это было просто суровой DOS-обыденностью.

Функция Reveal Codes

После нажатия Alt + F3 экран делился пополам. Снизу показывались скрытые теги форматирования: жирный шрифт, отступы. Вы всегда точно знали, почему текст на бумаге уехал в сторону. 

Позже пользователи Word для Windows будут годами страдать, пытаясь понять, как отформатировать параграф, а в WordPerfect все решалось за секунду.

Управление горячими клавишами

Если вы хотя бы раз задавались вопросом, для чего есть столько функциональных клавиш (F1–F12), то теперь вы знаете ответ. Кстати, изначально в клавиатурах IBM PC XT и AT было 10 функциональных клавиш, а в 1985 году их стало 12.

К концу 1980-х годов WordPerfect контролировал более 60% мирового рынка текстовых процессоров. Компания стала ИТ-гигантом, а ее софт — стандартом для юристов, правительств и корпораций. 

Наступил 1990 год. Microsoft выпускает Windows 3.0. Графический интерфейс с иконками и мышкой стремительно меняет индустрию. Руководство WordPerfect совершает критическую ошибку: они считают Windows «временной модой» и затягивают с выпуском версии для новой ОС. 

В 1980-х годах скепсис в отношении Windows был абсолютно оправдан историческим опытом. До появления Windows 3.0 рынок уже пережил череду громких провалов графических оболочек. Разработчики и пользователи привыкли к текстовому интерфейсу DOS, который работал молниеносно, в то время как первые попытки сделать окна, такие как Visi On (1983) или DESQview (1985), воспринимались как тяжелые, неповоротливые игрушки. 

Более или менее популярная тогда DESQview позволяла запускать несколько программ DOS в окнах и переключаться между ними, но она требовала огромных ресурсов, постоянно конфликтовала с железом и часто зависала. Вживую я DESQview не видел, но помню, что в старых (начала 90-х годов) выпусках американских компьютерных журналов его агрессивно рекламировали. 

Скепсис перед Windows также сквозил в первых изданиях отечественной «библии» IBM PC, книги В. Э. Фигурнова «IBM PC для пользователя». Эта книга была настолько популярной, что во многом сформировала менталитет целого поколения пользователей 90-х, которые годами отказывались переходить на Windows, повторяя тезисы из учебника. 

Справедливости ради стоит добавить, что в середине 90-х Фигурнов добавил в последующие редакции книги инструкции по работе с Windows.

Текстовые редакторы вроде WordPerfect работали напрямую с процессором и памятью, летая даже на слабых компьютерах. На этом фоне ранние версии Windows (1.0 и 2.0) выглядели как очередная медленная, перегруженная графикой надстройка, которая лишь тратит драгоценные мегабайты оперативной памяти ради красивых, но бесполезных иконок. Программисты старой школы были уверены: профессионалы никогда не променяют мгновенные команды с клавиатуры на робкие клики мышкой.

Когда в 1991 году WordPerfect под Windows все-таки выходит, программа оказывается чудовищно медленной, нестабильной и постоянно вылетает. В это время Microsoft выпускает идеальный для своего времени Word 2.0 под Windows и создает пакет Microsoft Office, в составе которого Word, Excel и PowerPoint продаются вместе с огромной скидкой.

В 1994 году создатели продают WordPerfect компании Novell за 1,4 млрд долларов. Спустя всего два года Novell, не зная что делать с активом, перепродает его канадской корпорации Corel всего за 115 млн долларов. 

Канадцы сотворили техническое чудо: они переписали код, исправили баги и превратили WordPerfect Office в отличную альтернативу софту от Microsoft. Программа выжила и заняла свою уникальную нишу. Долгое время WordPerfect оставался главной программой в американских судах и адвокатских конторах. Юристы обожали его за точность при работе с многостраничными документами, автоматическое создание юридических индексов и за ту самую функцию Reveal Codes, гарантирующую, что в официальном документе не поедут шрифты.

Я взял дистрибутив WordPerfect 8 уже кореловских времен и примонтировал iso как виртуальный CD-ROM. Вот, что было дальше.

Просто запускаем файл install.wp и ждем.

Принимаем лицензионное соглашение.

Обратите внимание, какие операционные системы поддерживаются: появился новомодный Linux (возможно, в следующий раз попробуем поставить на Slackware) и экзотический Solarix для x86. Еще при всем богатстве выбора в списке нет SGI IRIX. Ребята из Corel предположили, что технику, которая стоит в несколько раз выше, чем Sun или IBM RS/6000, не будут гонять ради набора текстов.

Выбираем место для установки. Чтобы не путаться, я добавляю весь новый софт в папку /opt.

Дистрибутив, помимо GUI-версии, дает возможность также установить версию для работы в текстовом терминале. Это видимо, для тех, кто привык работать с редактором под DOS в 80-х.

Хо-хо-хо! Проприетарщина! Мне пришлось приложить некоторые усилия, чтобы найти серийный номер.

А вот интересное окно. Инсталлятор запрашивает разрешение на изменение системного файла /etc/magic. В операционных системах Unix и Linux этот файл используется системной утилитой file. Она определяет тип любого файла, например, картинка это, текст или исполняемая программа, не по его расширению, как в Windows, а по специальным сигнатурам внутри самого файла. Эти сигнатуры называются «магическими числами» (magic numbers).

В современных дистрибутивах Linux файл /etc/magic по умолчанию пуст. Все стандартные «магические» сигнатуры системы хранятся в другом месте. Они скомпилированы в бинарный файл базы данных для быстродействия. Основные системные файлы утилиты file находятся здесь:/usr/share/misc/magic.mgc — это основная скомпилированная база данных. А текстовые исходники этих правил находятся в файле /usr/share/misc/magic.

Список языков интерфейса явно подбирали где-то в Канаде, English-Canadian и French-Canadian я вижу впервые (допускаю, что они есть и в других программах и просто не интересовался этими диалектами).

Следующий экран запрашивает выбор драйверов для текстовых (аппаратных) терминалов, в которых сможет работать WordPerfect, если запускать его в чисто консольном режиме без графического интерфейса. В 1980–1990-х годах к одному серверу Unix по последовательным портам подключались физические текстовые терминалы (монитор + клавиатура без системного блока), и для каждого требовались свои настройки управляющих символов и клавиш. 

VT102 — это базовый выбор, оставим его.

Дальше идет инсталляция с предупреждениями лицензионно-юридического характера.

Инсталляция завершилась, вот он — успех!

Ах, да, давайте вернемся и посмотрим, как работает знаменитая функция Reveal Codes. Под основным окном редактирования появилось дополнительное окно, в котором показаны примененные модификации стиля.

Не скажу, что я провел часы, кайфуя в WordPerfect, но по ощущения он очень похож на Word 97. И, кстати, работает быстро, не лагает (парни, которые пилят LibreOffice, вам на заметку!).

Устанавливаем Netscape Enterprise Server и делаем первый сайт

В предыдущей части статьи мы обсуждали «технооптимизм» Марка Андриссена, основателя компании Netscape Communications, которая создала браузер Netscape и вывела на рынок веб-сервер Netscape Enterprise Server. 

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

Но возникла серьезная техническая проблема: существующий софт той эпохи не был рассчитан на такие нагрузки и задачи. Главным веб-сервером раннего интернета был NCSA HTTPd, разработанный в Иллинойском университете, где создавался и первый популярный браузер Mosaic. 

NCSA HTTPd был бесплатным, академическим и очень простым. Он хорошо справлялся с отдачей статичных текстовых страничек и картинок, поддерживал CGI и мог обрабатывать динамические страницы, но для корпоративных требований часто требовались доработки. Бизнесу была нужна надежность, скорость обработки запросов, защита данных и возможность связывать веб-сайт с внутренними базами данных компании. Ну, и поддержка поставщика.

Марк Андриссен и его команда, вовремя ушедшие из университета для создания Netscape Communications, первыми осознали этот пустующий коммерческий сектор. Они поняли, что компании готовы платить серьезные деньги за серверный софт, если он решит их проблемы. Так началась история серверной линейки Netscape. 

Первыми коммерческими продуктами компании стали Communications Server и Commerce Server, выпущенные в конце 1994 года. Главной отличительной особенностью Commerce Server стала поддержка протокола SSL, который инженеры Netscape придумали для шифрования трафика. Это было революцией, ведь теперь пользователи могли без страха вводить данные кредитных карт прямо на сайтах. Именно эти разработки позже эволюционировали в Netscape Enterprise Server. 

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

В течение короткого времени рынок веб-серверов в те годы стал напоминать Дикий Запад, где Netscape пришлось столкнуться с очень разными и опасными соперниками. Главным бесплатным конкурентом стал Apache, который появился в 1995 году как форк академического NCSA HTTPd. Группа энтузиастов исправила ошибки предшественника, добавила модульную архитектуру и отдала продукт миру бесплатно. 

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

Вторым мощным лагерем были производители традиционных операционных систем для бизнеса. Главным игроком здесь выступала как раз компания Sun Microsystems. Продукты Netscape изначально создавались в тесном партнерстве с Sun, ведь Enterprise Server идеально работал на Unix-системах. Однако другие Unix-гиганты вроде IBM или Hewlett-Packard тоже пытались продвигать свои решения, что создавало плотную конкуренцию в верхнем ценовом сегменте, где стоимость лицензий исчислялась тысячами долларов.

Но самый страшный и смертоносный конкурент пришел со стороны Редмонда. Билл Гейтс проспал начало интернет-бума, но когда осознал масштаб угрозы, Microsoft включила всю свою колоссальную мощь. Компания выпустила веб-сервер Internet Information Services, более известный как IIS. Главным оружием Microsoft стала интеграция: IIS включили в серверную операционную систему Windows NT и стали предлагать клиентам в составе лицензии на ОС. 

Бизнесу стало сложно обосновывать покупку дорогого Netscape Enterprise Server, когда в коробке с Windows уже лежал готовый сервер от Microsoft, который к тому же неплохо интегрировался со всеми офисными технологиями. Именно это давление со стороны бесплатного Apache и наступающего на пятки Microsoft IIS в итоге определило драматическую судьбу Netscape в конце 90-х годов.

Однако в 1996-1997 годах дела в Netscape еще шли хорошо. Отраслевые издания в красках описывали развитие Enterprise Server

Помимо графического интерфейса администратора, корпоративным пользователям были доступны «интеллектуальные агенты», которые могли отслеживать изменение контента на страницах и уведомлять пользователей или наоборот принимать и публиковать изменения от контент менеджеров. Также сервер поддерживал интеграцию веб-страниц и Java-апплетов на страницах c CORBA-объектами.

CORBA (общая архитектура брокера объектных запросов) — это крутая технология из 1990-х годов, которая позволяла разным программам общаться друг с другом, даже если они были написаны на разных языках и работали на разных компьютерах.

Представьте ситуацию, когда у большой компании есть база данных клиентов, написанная на древнем языке COBOL, которая крутится на не менее древнем мейнфрейме. Еще есть программа расчета бонусов продавцов и отчислений дилерам, написанная на C++, которая работает на сервере Unix. И есть красивый веб-сайт, который крутится на Netscape Enterprise Server. В те годы подружить их между собой было настоящим кошмаром. 

Вот тут на сцену и должна была выйти CORBA. Она работала как универсальный цифровой переводчик и диспетчер (через ORB, брокер объектных запросов). Сегодня для этих целей программисты используют технологии вроде REST API, gRPC или JSON. Но тридцать лет назад именно CORBA была главной надеждой построить большую и сложную корпоративную систему. 

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

Мы на нашу машину будем ставить Netscape Enterprise Server версии 3.5.1, традиционно скачанную с archive.org

Комментировать скриншоты я не буду, на них достаточно текста, чтобы понять, что происходит. Единственное замечание: инсталлятор встречает нас баннером Netscape SuiteSpot Server Installation, хотя ставит строго один конкретный продукт — Netscape Enterprise Server. 

Netscape SuiteSpot, вероятно, первый в истории ИТ интегрированный пакет серверного ПО, созданный для развертывания интранета крупных компаний. Похоже, даже если клиент покупал или скачивал исключительно одиночный Enterprise Server, он все равно запускал монолитный бинарник инсталлятора от SuiteSpot.

В состав этого масштабного пакета входила обойма специализированных продуктов, которые должны были закрыть все потребности бизнеса:

  • Netscape Enterprise Server — флагманский веб-сервер для размещения внутренних сайтов компании.

  • Netscape Mail Server — сервер для управления корпоративной электронной почтой.

  • Netscape News Server — платформа для создания внутренних форумов и досок объявлений.

  • Netscape Proxy Server — инструмент для ускорения загрузки страниц и контроля за тем, куда ходят сотрудники в интернете.

  • Netscape Directory Server — централизованная база данных пользователей, работавшая по протоколу LDAP.

В те годы Lotus Notes от IBM был настоящей священной коровой и абсолютным монополистом в мире серьезного бизнеса. Это была тяжелая, дорогая, но безальтернативная система, в которой сидели все мировые корпорации ради внутренней почты, документооборота и совместной работы. 

Появление пакета SuiteSpot было наглядной попыткой молодой Netscape зайти на территорию IBM и надрать ей задницу, показать, что открытые, легкие веб-технологии и обычный браузер могут легко заменить старые закрытые платформы. Марк Андриссен открыто заявлял, что они собираются пересадить весь бизнес с проприетарного софта на интернет-стандарты.

Ну, все, пошли уже устанавливать.

Cоздадим пользователя в терминале:

useradd -u 1001 -g other -d /export/home/nsuser -m -s /bin/ksh -c "Netscape SuiteSpot Server" nsuser

Или можно воспользоваться графической утилитой:

Успех. Сервер установлен, на порте 22605 доступен интерфейс администратора платформы.

Представим, что нам необходимо развернуть интранет-сайт для компании LUMON. Веб-дизайнеры уже поработали, и у нас есть готовый контент, который мы зальем на NFS-шару, с которой мы сможем его скопировать на Sun. Для начал положим его в папку /tmp

После перезагрузки сервера заходим в веб-админку и обнаруживаем, что сервер сам по себе не стартует.

Проверим через терминал, работают ли процессы, запущенные под пользователем nsuser.

ps -ef | grep nsuser

Увы, нет.

Давайте пока запустим сервер руками, проверим, что он способен стартовать.

Переходим в главный корень нашей серверной папки Netscape:

cd /usr/netscape/suitespot/

Далее погружаемся на уровень ниже, заходим в директорию нашего конкретного рабочего инстанса (обычно она называется по шаблону https-имя_машины, например https-ss5) и запускаем главный веб-сервер:

cd https-ss5

./start

Возвращаемся на шаг назад и аналогичным образом оживляем сервер администрирования, чтобы у нас заработал веб-интерфейс на порту 22605:

cd ../admin-serv 

./start

Запускаем сервер администрирования командой из домашней папки:

./start-admin

Админка снова доступна.

А вот так выглядит домашняя страница сервера.

Отлично, раз все завелось вручную, настраиваем полноценный автозапуск. В Sun Solaris традиционно используется система инициализации System V Init — это та система, которая несколько десятков лет успешно работала в UNIX и GNU/Linux-системах до того, как в начале 2010-х годов одиозный программист компании Red Hat Леонард Поттеринг решил ее улучшить и написал systemd. 

Чтобы сервер и админка Netscape просыпались сами после перезагрузки железа, мы создадим один скрипт управления и жестко привяжем его к системным уровням запуска.

Работаем под пользователем root.

Переходим в системную директорию, где хранятся эталонные сценарии управления службами:

cd /etc/init.d

Создаем новый файл с именем netscape.

vi netscape
#!/bin/sh
#
# Netscape Enterprise Server and Admin Server Startup Script
# Built for Lumon Industries Intranet
SERVER_ROOT=/usr/netscape/suitespot
case "$1" in
'start')
    if [ -f ${SERVER_ROOT}/start-admin ]; then
        echo "Starting Netscape Server Infrastructure..."
        # Start the global administration server
        ${SERVER_ROOT}/start-admin
        # Start the primary web server instance
        # Verify if 'https-ss5' matches your actual server directory name
        ${SERVER_ROOT}/https-ss5/start
    fi
    ;;
'stop')
    if [ -f ${SERVER_ROOT}/stop-admin ]; then
        echo "Shutting down Netscape Server Infrastructure..."
        # Stop servers in reverse order
        ${SERVER_ROOT}/https-ss5/stop
        ${SERVER_ROOT}/stop-admin
    fi
    ;;
*)
    echo "Usage: $0 {start|stop}"
    exit 1
    ;;
esac
exit 0

В операционной системе Solaris сам по себе скрипт в папке /etc/init.d/ может присутствовать, но система о нем ничего не узнает, пока мы не пропишем специальные указатели (жесткие ссылки) в каталогах, отвечающих за этапы загрузки. Нам нужно сделать так, чтобы веб-сервер автоматически запускался, когда Solaris поднимает многопользовательский режим с поддержкой сети. За это отвечает папка /etc/rc2.d/. 

Создаем стартовую ссылку командой:

ln /etc/init.d/netscape /etc/rc2.d/S99netscape

Префикс S99 в имени ссылки очень важен. Он сообщает загрузчику Solaris, что наш скрипт нужно дернуть с аргументом start в самую последнюю очередь, когда система уже точно подняла сетевые интерфейсы и инициализировала пользователя nsuser.

Если перезагрузить машину Sun, внутренние базы данных конфигурации Netscape могут побиться. Чтобы этого не произошло, мы заставим Solaris корректно останавливать процессы веб-сервера при выключении или перезагрузке ОС. За это отвечают каталоги rc0.d (выключение) и rc1.d (однопользовательский режим).

Создаем ссылки на остановку службы:

ln /etc/init.d/netscape /etc/rc0.d/K01netscape

ln /etc/init.d/netscape /etc/rc1.d/K01netscape

Префикс K01 (от слова Kill) означает, что при выключении компьютера система первым делом безопасно остановит рабочие потоки ns-httpd и админку и только потом начнет отключать диски.

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

Нужно только дать права на исполнение нашему скрипту:

chmod 755 /etc/init.d/netscape

Останавливаем сервер, имитируя выключение машины. Для этого мы вызываем скрипт через созданную нами «убивающую» ссылку:

bash/etc/rc0.d/K01netscape stop

Проверяем, что сервер не работает:

# ps -ef | grep  netscape

    root   407   386  0 16:36:45 pts/3    0:00 grep netscape

Запускаем сервер обратно, имитируя включение компьютера. Теперь мы дергаем стартовую ссылку:

/etc/rc2.d/S99netscape start

Снова проверяем наличие процессов.

Хорошо, все работает.

Теперь, когда Netscape Enterprise Server 3.5.1 прописан в автозагрузке Solaris 2.6 и стартует сам, мы переходим к финальному и самому приятному этапу: настраиваем интранет-сайт Lumon Industries через графический веб-интерфейс админки Netscape.

На диске машины наш сайт будет физически лежать по адресу /usr/netscape/suitespot/docs/lumon/.

Перенесем туда из папки /tmp наш контент.

mv /tmp/lumon /usr/netscape/suitespot/docs/

Далее нужно поменять владельца папки lumon и ее содержимого на nsuser. Нам нужно сделать так, чтобы веб-сервер, запущенный от имени nsuser, имел полный доступ к этим файлам:

id nsuser

uid=1001(nsuser) gid=1(other)

В нашей системе пользователь nsuser принадлежит к группе other, которая имеет идентификатор gid=1.

chown -R nsuser:other /usr/netscape/suitespot/docs/lumon

В админке кликаем на настройки сервера (белое поле с надписью ss5).

Попадаем в меню.

Поскольку мы положили файлы в подпапку lumon, нужно убедиться, что сервер поймет, какой файл отдавать главным при переходе по адресу http://ss5/lumon/.

В верхнем горизонтальном ряду кнопок выбираем вкладку Content Management (Управление контентом). А в левом вертикальном меню нажимаем на пункт Document Preferences (Настройки документов). 

Проверяем текстовое поле Index Filenames. Там обязательно должно быть прописано имя index.html. Если оно на месте, то сервер автоматически подхватит главную страницу интранета Lumon.

Зарегистрируем исполняемую папку cgi-bin на случай, если будем работать с серверными скриптами.

В самом верхнем горизонтальном меню переходим во вкладку Programs (Программы). В левом вертикальном меню выбираем пункт CGI Directory (Директория CGI).

В открывшейся форме заполняем два ключевых поля:

URL prefix: вписываем виртуальный хвост, по которому скрипты будут вызываться из браузера: /lumon/cgi-bin/.

CGI Directory: указываем физический путь, куда мы перенесли файлы на жестком диске нашей машины: 

/usr/netscape/suitespot/docs/lumon/cgi-bin

Результат на скриншоте.

В целом все готово, мы готовы зайти в интранет.

To be continued (or not)

Эксперимент по оживлению Netscape Enterprise Server 3.5.1 на аутентичной Solaris 2.6 показывает, что многие идеи веб-разработки родились еще в прошлом веке. Запуская интранет для Lumon Industries, мы прикоснулись к технологиям той эпохи, когда интернет только учился быть коммерческим, а молодая и дерзкая Netscape Communications пыталась переписать правила игры в ИТ-индустрии. Пусть их серверная экосистема и проиграла жесткую войну гигантам из Редмонда и бесплатному Apache, заложенные в нее концепции — от администрирования через браузер до серверного JavaScript — изменили облик глобальной сети. 

P.S. Я в прошлом посте дал волшебное обещание сделать интернет-сайт, пользуясь рецептами из «Книги с верблюдом», но, боюсь, это придется сделать в одной из следующих статей. Пока спойлер: книга с верблюдом — это популярный в 90-х годах язык программирования, который активно использовался в раннем вебе. 

View the original on Хабр

KioskNews shows a cleaned-up reading view extracted from the publisher’s page — the original always lives on their site, not ours.