GEM ( Graphics Environment Manager [2] ) — это устаревшая операционная среда , выпущенная Digital Research в 1985 году. GEM в первую очередь известен как собственный графический пользовательский интерфейс серии компьютеров Atari ST , предоставляющий рабочий стол WIMP . Он также был доступен для IBM PC-совместимых компьютеров [3] [4] и поставлялся с некоторыми моделями Amstrad . GEM используется в качестве ядра для некоторых коммерческих программ MS-DOS, наиболее известной из которых является Ventura Publisher . Он был портирован на другие компьютеры, у которых ранее не было графических интерфейсов, но так и не получил распространения. Окончательная розничная версия GEM была выпущена в 1988 году.
Позднее Digital Research выпустила X/GEM для своей операционной системы реального времени FlexOS [3] [5] с адаптациями для OS/2 Presentation Manager [6] [3] и X Window System, которая также находится в стадии подготовки. [3]
В конце 1984 года GEM начал свою жизнь в DRI как ответвление более универсальной графической библиотеки, известной как GSX (Graphics System Extension), [7] написанной командой под руководством Дона Хейскелла примерно с 1982 года. [8] Ли Джей Лоренцен (из Graphic Software Systems), который недавно покинул Xerox PARC (место рождения современного GUI), написал большую часть кода. GSX был по сути специфичной для DRI реализацией графического стандарта GKS, предложенного в конце 1970-х годов. GSX был предназначен для того, чтобы позволить DRI писать графические программы (диаграммы и т. д.) для любой из 8-битных и 16-битных платформ CP/M-80 , Concurrent CP/M , CP/M-86 и MS-DOS ( NEC APC-III ), [9] задача, которая в противном случае потребовала бы значительных усилий для переноса из-за больших различий в графическом оборудовании (и концепциях) между различными системами той эпохи. [7]
GSX состоял из двух частей: набора процедур для общих операций рисования и драйверов устройств, которые отвечали за обработку фактического вывода. Первый был известен как GDOS (Graphics Device Operating System), а второй как GIOS (Graphics Input/Output System), [10] игра на разделении CP/M на машинно-независимую BDOS (Basic Disk Operating System) и машинно-зависимую BIOS (Basic Input/Output System). [7] GDOS был набором процедур, которые обрабатывали рисование GKS, в то время как GIOS фактически использовал базовое оборудование для создания вывода. [7]
Версия GSX для DOS поддерживает загрузку драйверов в формате CP/M-86 CMD . Следовательно, один и тот же двоичный файл драйвера может работать как под CP/M-86, так и под DOS. [14]
16-битная версия GSX 1.3 [7] [9] превратилась в часть того, что позже стало известно как GEM , что было попыткой построить полноценную систему GUI, используя более раннюю работу GSX в качестве основы. Первоначально известная как Crystal как отсылка к проекту IBM под названием Glass , позже название было изменено на GEM .
В рамках GEM GSX стал GEM VDI (Virtual Device Interface), отвечающим за базовую графику и рисование. [10] VDI также добавил возможность работы с несколькими шрифтами и добавил выбор команд растрового рисования к ранее векторным командам рисования GKS. VDI также добавил несколько видовых экранов , ключевое дополнение для использования с окнами. [15]
Новый модуль GEM AES (Application Environment Services) обеспечивал управление окнами и элементы пользовательского интерфейса, а GEM Desktop использовал обе библиотеки в сочетании для предоставления графического пользовательского интерфейса. [16] Версия 8086 всей системы была впервые официально продемонстрирована на выставке COMDEX в ноябре 1984 года, [4] [3] после демонстрации на компьютере Acorn Business Computer на базе 80286 в сентябре 1984 года, где программное обеспечение было приписано Acorn, [17] а система была отправлена как GEM/1 28 февраля 1985 года. [1]
GEM Desktop 1.0 был выпущен 28 февраля 1985 года. [1] GEM Desktop 1.1 был выпущен 10 апреля 1985 года с поддержкой дисплеев CGA и EGA . [18] [19] Версия для Apricot Computers F-Series, поддерживающая разрешение 640×200 и до 8 цветов, была также доступна как GEM Desktop 1.2 . [20]
Digital Research также позиционировала Concurrent DOS 4.1 с GEM как альтернативу TopView от IBM . [21]
DRI изначально разработала GEM для DOS, чтобы он проверял и запускал только на компьютерах IBM, а не на ПК-совместимых , таких как Compaq , поскольку компания надеялась получать лицензионные сборы от производителей совместимых компьютеров. Разработчики отреагировали тем, что BYTE описала как «небольшой взрыв»; она сообщила, что на семинаре, организованном DRI в феврале 1985 года, более половины участников согласились, что несовместимость GEM с Compaq является серьезным ограничением. Позже в том же месяце компания сняла ограничение. [22] Приложения, которые поддерживали GEM, включали GEM Write от Lifetree Software . [23]
В этот момент Apple Computer подала в суд на DRI [24] [ ненадежный источник? ] , что переросло в длительный спор о «внешнем виде и ощущениях» системы GEM/1, которая была почти прямой копией Macintosh (с некоторыми элементами, имеющими большее сходство с элементами в более ранней Lisa , доступной с января 1983 года). В конечном итоге это привело к тому, что DRI была вынуждена изменить несколько основных функций системы. [25] [26] [27] [28] [24] (См. также: Apple против Digital Research .) Позже Apple подала в суд на другие компании по аналогичным вопросам, включая иск об авторских правах против Microsoft и HP .
Помимо принтеров система также содержала драйверы для некоторых более необычных устройств, таких как Polaroid Palette . [13]
DRI ответила выпуском «дружественного к судебным искам» GEM Desktop 2.0 , выпущенного 24 марта 1986 года, в который в конечном итоге была добавлена поддержка VGA , где-то после его выпуска в 1987 году. [29] Он позволял отображать только два фиксированных окна на «рабочем столе» (хотя другие программы могли делать то, что хотели), изменил значок корзины и удалил анимацию для таких вещей, как открытие и закрытие окон. В остальном он был похож на GEM/1, но также включал ряд исправлений ошибок и косметических улучшений.
В 1988 году Стюарт Олсоп II сказал, что GEM был одним из нескольких графических интерфейсов, которые «уже были вытеснены» с рынка Apple, IBM/Microsoft и другими. [30]
GEM XM с "GEM Desktop 3.0" была обновленной версией GEM/2 в 1986/1987 годах для DOS (включая DOS Plus ), которая позволяла переключать задачи и запускать до десяти программ GEM и DOS одновременно, выгружая их в расширенную память (XM) через EMS / EEMS или на диск (включая RAM-диски , тем самым также позволяя использовать расширенную память ). [31] [32] [33] [34] Данные можно было копировать и вставлять между приложениями через буфер обмена с функцией фильтра (функция, позже также найденная в TaskMAX под DR DOS 6.0 ). [32] Digital Research планировала предложить GEM XM в качестве опции для пользователей GEM Draw Plus и через каналы OEM. [31]
Исходный код GEM XM теперь доступен бесплатно в соответствии с условиями GNU General Public License .
Последним розничным релизом был GEM/3 Desktop , выпущенный 3 ноября 1988 года, [35] который имел улучшения в скорости и поставлялся с рядом базовых приложений. Коммерческие продажи GEM закончились на GEM/3; исходный код впоследствии был предоставлен ряду ведущих клиентов DRI.
В то время как GEM/2 для ПК по-прежнему предоставлял GSX API в дополнение к GEM API, GEM/3 больше этого не делал. [10]
GEM/4 , выпущенный в 1990 году, включал возможность работы с кривыми Безье , функция, которая до сих пор нечасто встречается за пределами мира PostScript . [ требуется ссылка ] Эта версия была создана специально для Artline 2, программы для рисования немецкой компании CCP Development GmbH. [36] [37] [38] [39] [40] [41] [42]
Система также включала изменения в системе управления шрифтами, что делало ее несовместимой с такими системами, как Timeworks Publisher .
Artline 1 все еще работал на GEM 3.1. [39]
Другая версия GEM под названием GEM/5 [43] была создана GST Software Products для Timeworks ' Publisher 2.1. Она содержала обновленный вид с 3D-кнопками, а также такие функции, как масштабирование шрифтов на лету. Она поставлялась в комплекте со всеми стандартными инструментами GEM 3.1. Эта версия была создана из GEM 3.13, и только обработка Безье была взята из GEM/4.
Сам GEM Desktop был выделен в 1990 году как продукт, известный как ViewMAX , который использовался исключительно как оболочка управления файлами под DR DOS . В этой форме система не могла запускать другие программы GEM. Это привело к ситуации, когда ряд приложений (включая ViewMAX) могли существовать со своей собственной статически связанной копией системы GEM. Такой сценарий был на самом деле редким, так как было опубликовано мало собственных программ GEM. В 1991 году был выпущен ViewMAX 2 .
В этих формах GEM просуществовал до тех пор, пока DRI не была куплена Novell в июне 1991 года [44] [45] , и все разработки GEM были прекращены.
В это время DRI также работала над тем, чтобы сделать систему GEM способной к многозадачности. Это началось с X/GEM на основе GEM/1, но это потребовало использования одной из многозадачных операционных систем на основе CP/M. [ необходимо разъяснение ] DRI также создала X/GEM для своей FlexOS [3] [5] операционной системы реального времени с адаптациями для OS/2 Presentation Manager [6] [3] и X Window System, которая также находится в стадии подготовки. [3]
Ли Лоренцен ушел вскоре после выпуска GEM/1, когда стало ясно, что DRI не проявляет особого интереса к разработке приложений. Затем он объединился с двумя другими бывшими сотрудниками DRI, Доном Хейскеллом и Джоном Мейером, чтобы основать Ventura Software . Они разработали Ventura Publisher (который позже был продан Xerox и в конечном итоге Corel ), который некоторое время оставался очень популярной программой для настольных издательских систем .
Разработка версии GEM для 68000 началась в сентябре 1984 года, когда Atari отправила команду под названием «The Monterey Group» в Digital Research, чтобы начать работу по портированию GEM. Первоначально планировалось запустить GEM поверх CP/M-68K , оба якобы были портированы на Motorola 68000 компанией DRI до создания дизайна ST. На самом деле эти порты были непригодны для использования и требовали значительной разработки. Digital Research также предлагала GEMDOS (первоначально написанную как GEM DOS), операционную систему типа DOS, предназначенную для портирования GEM на различные аппаратные платформы. Она была доступна для процессоров 8086 и 68000 и была адаптирована для системы разработки Apple Lisa 2/5 и Motorola VME /10 [46] . [47] В январе 1985 года [48] компания Atari решила отказаться от существующего кода CP/M-68K и вместо этого перенести GEMDOS на платформу Atari ST, назвав его TOS . [49]
Поскольку Atari предоставила большую часть разработки версии 68000, им были предоставлены полные права на продолжение разработки без необходимости обратного лицензирования DRI. В результате иск Apple-DRI не распространялся на версии GEM от Atari, и им было разрешено сохранить более похожий на Mac пользовательский интерфейс.
В течение следующих семи лет, с 1985 по 1992 год, новые версии TOS выпускались с каждым новым поколением линейки ST. Обновления включали поддержку большего количества цветов и более высоких разрешений в растровой части системы, но оставались в целом схожими с оригиналом с точки зрения поддержки GKS. В 1992 году Atari выпустила TOS 4, или MultiTOS , вместе со своей последней компьютерной системой Falcon030 . В сочетании с MiNT , TOS 4 обеспечивала полную поддержку многозадачности в GEM.
Когда 23 июля 1996 года Caldera выкупила оставшиеся активы Digital Research у Novell, [50] первоначальные планы состояли в том, чтобы возродить технологии GEM и ViewMAX для малозаметного пользовательского интерфейса для OpenDOS в мобильных приложениях [51] [52] как Caldera View , но эти планы были отклонены Caldera UK в пользу DR-WebSpyder и GROW . Caldera Thin Clients (позже известная как Lineo ) выпустила исходный код для GEM и GEM XM на условиях GNU GPL-2.0-only в апреле 1999 года. [52] Разработка GEM для ПК продолжается как FreeGEM и OpenGEM .
На платформе Atari ST исходные исходники DRI были снова перенесены для использования в свободном и открытом клоне TOS EmuTOS . Новые реализации частей AES GEM были реализованы с нуля в форме XaAES и MyAES, [53] обе из которых полностью реентерабельны и поддерживают многозадачность поверх расширений многозадачности FreeMiNT для TOS .
«Полная» система GEM состояла из трех основных частей:
GEM VDI была основной графической системой всего движка GEM. Она отвечала за «низкоуровневое» рисование в форме «рисовать линию отсюда сюда». VDI включала в себя независимый от разрешения и координат набор инструкций векторного рисования, которые вызывались из приложений через довольно простой интерфейс. VDI также включала информацию об окружении (состояние или контекст), текущий цвет, толщину линии, устройство вывода и т. д.
Затем эти команды проверялись GDOS, чьей задачей была отправка команд соответствующему драйверу для фактического рендеринга. Например, если определенная среда GEM VDI была подключена к экрану, инструкции VDI затем направлялись в драйвер экрана для рисования. Простое изменение среды для указания на принтер было всем, что требовалось (теоретически) для печати, что значительно сокращало рабочую нагрузку разработчиков (раньше им приходилось выполнять печать «вручную» во всех приложениях). GDOS также отвечал за загрузку драйверов и любых запрошенных шрифтов при первой загрузке GEM.
Одним из главных преимуществ VDI по сравнению с Macintosh был способ обработки нескольких устройств и контекстов. В Mac такая информация хранилась в памяти внутри приложения. Это приводило к серьезным проблемам при попытке заставить Mac обрабатывать упреждающую многозадачность, поскольку слою рисования ( QuickDraw ) требовался прямой доступ к памяти во все программы. Однако в GEM VDI такая информация хранилась в самом устройстве, а GDOS создавала «виртуальные устройства» для каждого контекста – например, для каждого окна.
GEM AES обеспечивал оконную систему, оконный менеджер, стиль пользовательского интерфейса и другие элементы графического интерфейса (виджеты). По соображениям производительности многие виджеты графического интерфейса были нарисованы с использованием символьной графики. По сравнению с Macintosh, AES обеспечивал довольно спартанский вид, и система поставлялась с одним моноширинным шрифтом.
AES выполняет свои операции, вызывая VDI, но в более общем смысле две части GEM часто были полностью разделены в приложениях. Приложения обычно вызывали команды AES для настройки нового окна, а остальная часть приложения использовала вызовы VDI для фактического рисования в этом окне.
GEM Desktop была прикладной программой, которая использовала AES для предоставления файлового менеджера и средства запуска, традиционной среды «рабочего стола», которую пользователи привыкли ожидать от Macintosh. В отличие от Macintosh, GEM Desktop работал поверх DOS ( MS-DOS , DOS Plus или DR DOS на ПК, GEMDOS на Atari), и в результате фактический дисплей был загроможден компьютерными элементами, включая имена путей и подстановочные знаки. В целом GEM был гораздо более «гиковским», чем Mac, но просто запуск пригодной к использованию оболочки в DOS был сам по себе огромным достижением. В остальном у GEM есть свои преимущества перед Mac OS, такие как пропорциональные ползунки.
Собственные приложения ПК GEM используют расширение файла .APP для исполняемых файлов, тогда как настольные аксессуары GEM используют расширение файла .ACC. [54] [55] Все настольные аксессуары (а также несколько простых приложений) могут быть запущены под ViewMAX без изменений. [54] [55]
Новое системное программное обеспечение Graphics Environment Manager (GEM) компании Digital Research Inc. (DRI) было отправлено производителям оригинального оборудования (OEM) по расписанию 28 февраля, сообщила компания 11 марта 1985 года.
[…] Дополнительная документация в виде руководства GSX Language Reference доступна для 16-битных языков DRI внутри GSX-86 Programmer's Toolkit. Продукт содержит обе версии новейшей версии GSX 1.3 - одну для CP/M-86 (включая Concurrent CP/M), а другую для PC-DOS. […][1]
…]
Polaroid Palette
(часть пакета Presentation Master от Digital Research),
цветной струйный принтер
Diablo Cl30, цветной принтер Transtar, плоттеры серии
Houston Instruments
CMP-29/40/41/42. Плоттеры серии Strobe 100/260, плоттер
Hewlett-Packard
7473A и принтеры
Philips
GP 300L Hi и Lo Res. […][2]
GEM XM Desktop позволяет запускать несколько приложений одновременно. Вы можете переключаться между ними по желанию и даже передавать данные из приложения в приложение. Больше не нужно заканчивать одну работу перед началом другой. Больше никаких ошибок при вводе вывода одной программы в качестве входных данных для следующей. Даже для приложений DOS, которые не были специально написаны для GEM. Эти новые возможности являются дополнением к простым в использовании функциям GEM Desktop по организации и отображению содержимого ваших дисков. Все команды используют раскрывающиеся меню, поэтому не нужно запоминать. Диски и файлы представлены значками, которые недвусмысленны и легко выбираются, особенно с помощью мыши. GEM XM Desktop поставляется в комплекте с незаменимым GEM Diary, который имеет постоянно доступные функции будильника, календаря, дневника и картотеки.
[…] В целом, мне нравится идея выпустить Artline 1 и/или 2 в общественное достояние, учитывая, что обсуждаются некоторые общие вещи. […] комментарии к Artline, потому что приложение все время было нашим собственным авторским правом, весь код был написан в CCP, торговая марка принадлежала
Digital Research
(теперь она наша), а операционная система Artline 2 была GEM/4. Artline 1 нуждается в GEM 3.1, в то время как все изменения в GEM/4 были сделаны в сотрудничестве с Ли Лоренценом и Доном Хейскеллом для сохранения совместимости с
издателем Ventura
. Билл Херндон в настоящее время проверяет свой архив, чтобы узнать, может ли он предоставить исходные коды GEM/4 VDI и драйверов. […]
{{cite web}}
: CS1 maint: архивная копия как заголовок ( ссылка )Caldera Thin Clients, Inc.
выпустила исходный код GEM и
ViewMAX
под
лицензией GNU General Public License
в середине апреля, после многих лет спекуляций о будущем GEM. Caldera купила исходные коды GEM у
Novell
вместе с
DR-DOS
в 1996 году, в то время отметив, что они могут развить GEM в платформу для мобильных компьютеров и тонких клиентов. Однако эти планы были отменены, и вместо этого GEM был выпущен в сообщество с открытым исходным кодом.