Менеджер - ManaGeR

ManaGeR или MGR была ранней оконной системой, первоначально спроектированной и разработанной для компьютеров Sun в 1984 году Стивеном А. Улером , затем сотрудником Bellcore .

MGR имел перекрывающиеся асинхронные окна и интерфейс приложений, независимый как от машины, так и от сети.

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

Система была представлена ​​на Четвертом семинаре по компьютерной графике USENIX в 1987 году как «MGR - оконная система для UNIX». Полный исходный код MGR был размещен в группе новостей comp.sources.unix Usenet , том 17, выпуск 1, в январе 1989 года.

Внутренне, MGR произносилось как Мунгер со ссылкой на Mung , хотя пользователи произносятся каждую букву.

Функции

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

  • функции управления терминалом в стиле termcap , графические примитивы, такие как рисование линий и окружностей;
  • Операции векторного рисования могут выполняться как с абсолютными (на основе пикселей), так и с фиксированными относительными координатами. Последнее позволяло масштабировать содержимое окна при изменении размера окна без пересчета координат.
  • средства для управления растровыми изображениями, шрифтами , значками и всплывающими меню ;
  • команды для изменения формы и расположения окон; и средство передачи сообщений , позволяющее клиентским программам встречаться и обмениваться сообщениями. Клиентские программы могут запрашивать информацию, когда происходит изменение в оконной системе, например, изменение формы окна, нажатая кнопка мыши или сообщение, отправленное из другой клиентской программы. Эти изменения называются событиями . MGR уведомляет клиентскую программу о событии, отправляя ей строку символов ASCII в формате, заданном клиентской программой. Существующие приложения могут быть интегрированы в оконную среду без изменений, если MGR имитирует нажатия клавиш в ответ на определяемый пользователем выбор меню или другие события.

Все эти функции работали одинаково хорошо, если клиентская программа выполнялась на том же компьютере, что и сервер MGR, или если клиент выполнялся на удаленном компьютере. Тип подключения был несущественным. Например, вы можете использовать telnet через TCP / IP или модемное коммутируемое соединение. Однако растровые изображения вызвали проблемы с подключениями с низкой пропускной способностью. Чтобы использовать растровое изображение, его нужно было загрузить в оконный менеджер по каналу связи. Приложения с тяжелыми растровыми изображениями часто загружали растровые изображения, которые использовались при запуске приложения, из-за чего приложение могло выглядеть так, как будто оно зависло. Поскольку приложения использовали потоки ввода и вывода, могут возникнуть проблемы при поступлении неожиданного ввода, например, из-за шума в линии или из системного сообщения.

Внешние программы, такие как собственный MTX Стивена Улера и rmgr Говарда Чу, позволяли мультиплексировать несколько окон через одно соединение с удаленным хостом, даже используя обычное модемное коммутируемое соединение.

Более поздняя функция, $ HOME MOVIE, позволила записывать действия пользователя для последующего отображения.

Порты

MGR работал как минимум на этих системах: SunOS на рабочих станциях Sun (исходная платформа разработки), Apple Macintosh , Unix System V на ПК AT&T UNIX , Ultrix на DECstation 3100 , MiNT на Atari ST , OS-9 , Coherent , Linux. , FreeBSD и VSTa .

Первоначальный перенос на Macintosh был выполнен на компьютере Macintosh Plus с использованием компилятора Lightspeed C. Это был гибридный порт, поскольку многие низкоуровневые операции передавались QuickDraw вместо использования внутреннего растрового кода. Приложение не соответствовало правилам пользовательского интерфейса Macintosh, поскольку занимало весь экран. Первоначальная версия использовала любой доступный последовательный порт в качестве канала связи. Более позднее обновление порта может использовать либо Ethernet, либо последовательную связь.

Смотрите также

Рекомендации

Внешние ссылки