Открыть сервис

NeWS

NeWS (Network/extensible Window System) — оконная система, разработанная компанией Sun Microsystems в середине 1980-х годов. NeWS сочетала в себе возможности оконного менеджера и графического сервера, используя язык PostScript для описания графики и обработки пользовательского ввода. Система была ориентирована на рабочие станции Sun и предназначалась для создания сложных графических интерфейсов, однако не получила широкого распространения, уступив конкурирующей системе X Window System.

История

Предпосылки и разработка

В середине 1980-х годов на рынке рабочих станций доминировали несколько конкурирующих оконных систем. Sun Microsystems, выпускавшая рабочие станции на базе процессоров Motorola 68000 и собственной архитектуры SPARC, использовала собственную оконную систему SunView (Sun Visual/Integrated Environment for Workstations), которая была тесно интегрирована с операционной системой SunOS. Однако SunView имела ряд недостатков: она была статичной, не поддерживала удалённую работу и была привязана к конкретному оборудованию.

Разработка NeWS началась в 1985 году под руководством инженера Джеймса Гослинга (впоследствии известного как создатель языка Java). Основной идеей было использование языка PostScript, разработанного компанией Adobe Systems, для описания не только печатной графики, но и оконных интерфейсов. PostScript, будучи полноценным языком программирования, позволял описывать сложные графические элементы, обрабатывать события ввода (мышь, клавиатура) и выполнять код на стороне сервера.

Первая версия NeWS была выпущена в 1986 году. Система работала поверх операционной системы SunOS и требовала наличия графического адаптера, поддерживающего PostScript. В 1987 году вышла версия 1.1, а в 1988 — версия 2.0, которая включала улучшенную поддержку цветных дисплеев и многозадачности.

Конкуренция с X Window System

В то же время Массачусетский технологический институт (MIT) разрабатывал X Window System (X11), которая была выпущена в 1987 году. X11 была более простой, модульной и не требовала лицензирования. В отличие от NeWS, X11 использовала собственный протокол для передачи графических команд, а не PostScript. X11 быстро стала стандартом де-факто для UNIX-систем, включая рабочие станции Sun.

Sun Microsystems пыталась продвигать NeWS как более мощную альтернативу, но столкнулась с рядом проблем. Во-первых, NeWS была проприетарной и требовала лицензионных отчислений Adobe за использование PostScript. Во-вторых, NeWS была сложнее в реализации и требовала больше ресурсов (памяти и процессорного времени) по сравнению с X11. В-третьих, сообщество разработчиков UNIX предпочло открытый стандарт X11.

В 1989 году Sun Microsystems выпустила OpenWindows — гибридную оконную систему, которая поддерживала как X11, так и NeWS. OpenWindows позволяла запускать приложения, написанные для обеих систем, но постепенно акцент сместился в сторону X11. Последняя версия NeWS (3.0) вышла в 1991 году. В 1993 году Sun объявила о прекращении поддержки NeWS, сосредоточившись на X11 и собственной среде рабочего стола CDE (Common Desktop Environment).

Архитектура и принципы работы

Сервер-клиентная модель

NeWS, как и X11, работала по модели клиент-сервер. Сервер NeWS (дисплейный сервер) управлял графическим выводом и устройствами ввода (мышь, клавиатура). Клиентские приложения отправляли серверу команды на языке PostScript, которые сервер интерпретировал и отображал на экране. В отличие от X11, где клиент и сервер обменивались структурированными сообщениями, в NeWS использовался потоковый протокол на основе PostScript.

Роль PostScript

PostScript в NeWS выполнял двойную функцию: он описывал графические элементы (окна, кнопки, меню) и обрабатывал события (нажатие клавиш, движение мыши). Сервер NeWS содержал интерпретатор PostScript, который выполнял код, отправленный клиентом. Это позволяло, например, описывать поведение кнопки при нажатии прямо в графическом коде, без необходимости дополнительных вызовов.

Пример простого кода NeWS для создания окна: `` /win { /Window new /Title "Пример окна" def /Width 300 def /Height 200 def /Background (1 1 1) def win show } def `` Этот код создавал окно с заголовком, размерами и белым фоном.

Управление окнами и событиями

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

Преимущества и недостатки

Преимущества

  • Гибкость: PostScript позволял описывать практически любые графические элементы, включая сложные кривые, градиенты и анимации.
  • Удалённая работа: NeWS поддерживала выполнение PostScript-кода на сервере, что позволяло клиентским приложениям работать на удалённых машинах.
  • Интеграция с печатью: Так как PostScript использовался и для печати, приложения могли легко переносить графику с экрана на принтер.

Недостатки

  • Сложность: Разработка приложений для NeWS требовала знания PostScript, что было непривычно для программистов, работавших с C или Pascal.
  • Производительность: Интерпретация PostScript на сервере требовала значительных вычислительных ресурсов, особенно на рабочих станциях 1980-х годов.
  • Проприетарность: Лицензирование PostScript от Adobe увеличивало стоимость системы и ограничивало её распространение.
  • Отсутствие поддержки сообщества: В отличие от X11, NeWS не имела открытого исходного кода и активного сообщества разработчиков.

Применение и наследие

Коммерческие продукты

NeWS использовалась в некоторых продуктах Sun Microsystems, включая:

  • SunView (позднее OpenWindows) — среда рабочего стола для SunOS.
  • SunDew — инструмент для разработки графических интерфейсов.
  • NeWS Toolkit — библиотека виджетов (кнопки, меню, полосы прокрутки).

Также NeWS применялась в сторонних продуктах, например, в системе управления базами данных Oracle Forms (версии для Sun) и в некоторых CAD-системах.

Влияние на другие технологии

NeWS оказала влияние на развитие оконных систем и языков описания графики. Идея использования единого языка для описания графики и обработки событий была впоследствии реализована в Display PostScript (разработка Adobe и NeXT) и в Quartz 2D (компания Apple). Также NeWS считается предшественником технологии Java Applets (Java-апплеты), так как Джеймс Гослинг использовал опыт работы с NeWS при создании языка Java.

Критика

Критики NeWS отмечали, что система была излишне сложной для своего времени. Постскрипт, будучи интерпретируемым языком, работал медленнее, чем компилируемые программы на C. Кроме того, отсутствие стандартизации и открытости привело к тому, что NeWS не смогла конкурировать с X11, которая была бесплатной и поддерживалась многими производителями.

Интересные факты

  • Название NeWS расшифровывалось как «Network/extensible Window System», но часто обыгрывалось как «Not X Window System» (в ответ на X11).
  • Джеймс Гослинг, создатель NeWS, позже разработал язык Java, который также использует виртуальную машину и интерпретацию байт-кода.
  • В 1989 году компания Sun Microsystems выпустила OpenWindows, которая поддерживала как NeWS, так и X11, что привело к путанице среди разработчиков.
  • NeWS была одной из первых оконных систем, поддерживающих цветные дисплеи с глубиной цвета 24 бита.

Источники

  • James Gosling, David S. H. Rosenthal, Michelle J. Arden. «The NeWS Book: An Introduction to the Network/extensible Window System». Sun Microsystems, 1989.
  • «Sun Microsystems: The NeWS Window System». Sun Technical Report, 1987.
  • «X Window System vs. NeWS: A Comparison». MIT Laboratory for Computer Science, 1988.
  • «A History of the Graphical User Interface». ACM Computing Surveys, 1996.

BFOmetr — база данных и аналитика по компаниям России.

На главную BFOmetr →