gui что это в windows
Что такое GUI (графический интерфейс пользователя)?
Этот дизайн пользовательского интерфейса делает использование вашего компьютера проще
GUI обозначает графический интерфейс пользователя и произносится как GOO-EE или Gooey. Графический интерфейс пользователя содержит графические элементы, такие как окна, меню, значки, ссылки и другие элементы экрана, которые вы выбираете при работе с операционной системой, программным приложением или мобильным приложением. До разработки графического интерфейса пользователи взаимодействовали с компьютерами через командную строку, используя текстовые команды, набранные на клавиатуре.
Что такое пользовательский интерфейс и как он работает?
Пользовательский интерфейс использует окна, значки, меню и текст для управления программным обеспечением, установленным на компьютере. Пользователь выбирает один или комбинацию этих элементов в пользовательском интерфейсе, нажимая клавиши на клавиатуре, щелкая мышью или нажимая на экран. Эти серии действий позволяют быстро и легко открывать приложения, перемещать файлы, копировать текст, делать покупки в Интернете, искать информацию и выполнять другие задачи.
Существует два типа пользовательских интерфейсов: графические пользовательские интерфейсы и пользовательские интерфейсы командной строки. Ранние компьютерные системы использовали пользовательские интерфейсы командной строки. Современные компьютерные операционные системы и программные приложения используют графический интерфейс пользователя для взаимодействия с пользователем.
В пользовательских интерфейсах командной строки все взаимодействия с компьютером и программным обеспечением выполняются путем ввода команд на клавиатуре компьютера. В графических пользовательских интерфейсах команды и действия выполняются путем прямого манипулирования графическими элементами на экране.
GUI не только для компьютеров. GUI можно найти на смартфонах, портативных музыкальных проигрывателях, холодильниках, принтерах, автомобилях и многом другом. Все, что отображает информацию на экране, и любой экран, принимающий пользовательский ввод, использует графический интерфейс пользователя.
История GUI
До графического интерфейса на экранах компьютеров отображался только простой текст, которым управляла клавиатура. Взаимодействия с компьютером были набраны в командной строке. Таким образом, вместо перетаскивания файла для его перемещения пользователь вводит имя команды, имя файла, который нужно переместить, и каталог назначения.
В 1981 году Xerox представила PARC, первый графический интерфейс. Стив Джобс увидел PARC во время тура по Xerox и выпустил операционную систему на основе графического интерфейса для Macintosh в 1984 году. В 1985 году Microsoft выпустила Windows 1.0.
Эти основанные на графическом интерфейсе программы управлялись указателем мыши, который перемещался по экрану, когда пользователь перемещал свою физическую мышь. Пользователям больше не нужно было изучать длинный список команд для работы на компьютере. Каждая команда была представлена в меню или значком на экране. Пользователь выбрал эти команды с помощью мыши. Это было начало «укажи и щелкни».
К 1990 году GUI стал больше походить на GUI, используемый на каждом подключенном устройстве, используемом в настоящее время.
В начале 2010-х новые возможности ввода были добавлены в возможности графического интерфейса. Графические интерфейсы, разработанные для мобильных устройств, таких как смартфоны и планшеты, также работают с командами касания и прокрутки. Графические интерфейсы в новых моделях автомобилей также работают с кнопками управления. Графические интерфейсы также принимают входные данные от джойстиков, световых перьев, камер и микрофонов.
Особенности графического интерфейса пользователя
GUI – это набор программ, которые используют графические возможности компьютера, чтобы сделать приложения простыми в использовании. GUI использует указатель, указывающее устройство и элементы интерфейса для управления компьютером и программным обеспечением.
Указатель – это символ на экране, который используется для выбора значков и выполнения задач. Указывающее устройство перемещает указатель и может быть любым типом устройства, включая клавиши со стрелками на клавиатуре, мышь или сенсорный экран. Элементами интерфейса являются значки, меню и окна, которые пользователь выбирает для запуска приложений, открытия файлов и выполнения команд.
Это различные типы элементов пользовательского интерфейса:
Эти элементы графического пользовательского интерфейса предоставляют согласованную визуальную подсказку о задачах, которые можно выполнить с помощью программного приложения. Эти элементы графического интерфейса облегчают людям изучение работы с компьютерами и облегчают изучение новых программных приложений.
🇮🇹 Что такое GUI (графический интерфейс пользователя)?
GUI или графический пользовательский интерфейс – это интерфейс, предоставляемый пользователю, суперпользователю или администратору для простого взаимодействия с системой.
Графический интерфейс обычно состоит из одного прикосновения или нажатия компонентов, таких как кнопка, текстовое поле, слайдер, изображение и т. д.
История GUI
GUI был разработан в конце 1970-х годов, и до появления GUI существовал интерфейс командной строки или CLI, который представляет собой отвратительный интерфейс, обычно используемый техническими или профессиональными людьми.
Первый коммерчески доступный графический интерфейс разработан Xerox под названием PARC.
Он выпущен с именованной информационной системой Xerox 8010, выпущенной в 1981 году.
После этого Стив Джобс увидел GUI в туре по Xerox. Запущена операционная система Apple на основе графического интерфейса для персонального компьютера Macintosh, выпущенная в 1984 году.
После этого выпуска Windows также начала разработку операционной системы на основе графического интерфейса, в которой 1985 год был выпущен на основе графического интерфейса для Windows 1.0.
GUI Компоненты
Графический интерфейс состоит из разных компонентов.
Не все компоненты должны существовать в графическом интерфейсе, но в большинстве случаев эти компоненты используются.
Преимущества GUI
До GUI интерфейс командной строки или простой CLI был способом взаимодействия с системой или приложениями.
С развитием и использованием графического интерфейса популярность компьютерных систем возросла, поскольку она дает много преимуществ.
Вот некоторые преимущества GUI.
Примеры GUI
Сегодня многие операционные системы, программы и приложения имеют графический интерфейс. Здесь мы перечислим различные типы GUI
Google Chrome предоставляет классические компоненты графического интерфейса, такие как вкладка, меню, кнопка, изображение и т. д.
Windows Server GUI предоставляет пользователям доступ к рабочему столу.
Windows Проводник GUI предоставляет левую панель для навигации с панелью для списка файлов и папок
Linux GUI
Linux – открытая и вызывающая операционная система.
Linux в основном начинался как операционная система на основе командной строки, которая в основном предназначена для опытных пользователей.
Со временем он сильно изменился и интегрировал различные компоненты и инструменты графического интерфейса, такие как Desktop Manager.
Linux имеет тот же опыт для Windows с точки зрения рабочего стола.
Linux предоставляет различные графические окружения рабочего стола, как показано ниже.
Графический интерфейс Windows
Windows – самая популярная операционная система пользовательского уровня, где ее графический интерфейс делает ее настолько популярной.
Windows предоставляет своим пользователям очень простой интерфейс с графическим интерфейсом, где дети, пожилые люди, не имеющие технической подготовки могут легко изучить и использовать его.
Windows в основном предназначалась для использования в основном с мышью, а в некоторых случаях с клавиатурой.
GUI, не GUI — или как включить и отключить графический интерфейс в Windows Server 2012
Когда появилась самая первая версия Server Core многие администраторы избегали его по той причине, что они могли использовать исклюительно возможности командной строки, а это не всегда удобно. Однако, в Windows Server 2012 ситуация поменялась, теперь стало возможным использовать гибридный режим, т.е. возможно как отключение, так и включение графического интерфейса.
Отключение GUI
В Windows Server 2012 GUI последовал примеру общей архитектуры интерфейса управления и работы операционной системы и стал «фичей». Это в свою делает процесс удаления графического интерфейса простым до невозможности. Для начала необходимо запустить «Server Manager».
Нажмите «Manage», а затем выберите пункт «Remove Roles or Features» из меню.
Далее нажмите «Next» для того, чтобы проскочить предварительные пункты мастера настройки, далее выберите необходимый вам сервер из доступного пула (в нашем случае это сервер DC1) и нажмите «Next».
Так как GUI не является ролью, нажмите «Next», чтобы пропустить мастер ролей и перейти к следующей секции.
Когда вы дойдете до мастера фич, вам будет необходимо снять галочку с чек-бокса «User Interfaces and Infrastructure», а затем нажать «Next».
Поставьте отметку на «Restart Destination Server» и нажмите «Remove».
После этого действия GUI будет удален.
После удаления всех необходимых данных сервер будет автоматически перезагружен.
После того как сервер вновь загрузиться, а вы залогинитесь – с этого момента вы сможете использовать только командную строку для взаимодействия с сервером.
Включение GUI
После того как мы успешно удалили GUI, было бы очень неплохо знать как же все-таки его вернуть обратно. Для этого мы используем утилиту «SConfig» — так что просто наберите в командной строке «sconfig» и нажмите Enter.
В самом низу экрана можно увидеть пункт меню 12, который как раз отвечает за восстановление графического интерфейса – все что нам остается сделать, это набрать 12 и нажать «Enter».
На экране появится уведомление о том, что в случае включения GUI потребуется перезагрузка сервера – смело нажимаем «Yes» для завершения операции восстановления графического интерфейса.
После этого запуститься DISM, который произведет добавление необходимых файлов для активации графической оболочки.
После окончания вышеуказанного процесса вам будет предложено перезагрузить сервер, наберите «y» и нажмите для перезагрузки.
Отключение GUI с помощью PowerShell
Также мы можем осуществить все вышеперечисленный операции как по удалению, так и по возвращению GUI гораздо быстрее, если воспользуемся командами PowerShell. Для этого необходимо открыть «Server Manager», нажать на «Tools» и запустить PowerShell.
Для того чтобы удалить GUI мы используем командлет Remove-WindowsFeature:
Remove-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra
В свою очередь Remove-WindowsFeature является просто алиасом команды, а значит мы вполне можем также использовать следующие команды:
Uninstall-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra
После ввода команды и нажатия клавиши «Enter» начнется процедура удаления графического интерфейса.
После завершения операции удаления бинарников необходимо будет перезагрузиться, для того чтобы изменения вступили в силу. Набираем следующую команду и нажимаем «Enter»:
После перезагрузки для работы будет доступна только командная строка.
Включение GUI с помощью PowerShell
Первое что нам нужно сделать, это попасть в PowerShell, набираем из командной строки PowerShell и нажимаем «Enter».
Теперь нам понадобится командлет Add-WindowsFeature для того чтобы вернуть GUI обратно:
Add-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra
Это также является алиасом для следующих команд:
Install-WindowsFeature Server-Gui-Shell, Server-Gui-Mgmt-Infra
После завршения процедуры добавления компонентов необходимо перезагрузить сервер с помощью команды shutdown:
После перезагрузки сервера графический интерфейс будет снова доступен.
P.S> Загрузить Windows Server 2012 RC можно здесь.
С уважением,
Георгий А. Гаджиев
Эксперт по информационной инфраструктуре,
Microsoft
Универсальный GUI
Введение
В настоящее время любая современная мониторинговая система включает в себя прикладное программное обеспечение (ПО) для визуализации данных. Как правило, запуск этого ПО предполагает наличие рекомендуемой операционной системы (ОС), в большинстве своих случаев ОС компании Microsoft. Однако сейчас наблюдается тенденция использования кроссплатформенных средств для разработки ПО. В результате этого появляется возможность запуска готового программного продукта на разных ОС, включая и мобильные ОС.
Кроме того, в связи с бурным распространением интернета популярным направлением разработки ПО стала разработка веб-приложений или веб-сервисов. Веб-приложение является полезным дополнением к клиентской прикладной программе (приложению). Обычно веб-приложение даёт возможность удалённого использования мониторинговой системы. Это означает, что пользователь не привязан к месту расположения аппаратной части мониторинговой системы и может использовать её из любой точки мира, где есть рекомендуемое интернет-соединение. Важно заметить, что разработка веб-приложений в значительной степени отличается от разработки клиентских приложений и это в свою очередь создаёт некоторые проблемы. В частности, это проблема создания универсального графического интерфейса пользователя (GUI). Чтобы клиентское приложение и веб-приложение были реализованы в едином графическом стиле, необходимо приложить достаточно усилий как разработчику интерфейса клиентского приложения, так и разработчику интерфейса веб-приложения. В конечном счёте величина усилий одного или другого разработчика будет зависеть от того, интерфейс какого приложения будет задавать общий стиль.
Современные способы построения интерфейсов
Рассмотрим наиболее популярные в настоящий момент способы построения интерфейсов клиентских приложений на языке C++, как наиболее используемом для разработки ПО, для ОС Microsoft Windows (MS Windows) и ОС Linux. Главным средством разработки ПО для MS Windows является MS Visual Studio [1]. Эта интегрированная среда разработки (IDE) позволяет разрабатывать ПО на разных языках программирования, но основными языками, конечно, являются C++ и C#. Для разработки интерфейса приложения имеются два основных средства — Windows Forms (WinForms) и Windows Presentation Foundation (WPF). Большая часть существующих приложений для MS Windows разработана с использованием WinForms, однако с появлением более современных версий ОС (MS Windows 7, 8), система WPF становится более популярной. Кроме того, последние версии MS Visual Studio позволяют использовать язык разметки HTML5 для построения интерфейсов, близких по стилю к нативным веб-приложениям. Однако стоит заметить, что коммерческая лицензия MS Visual Studio является платной, как и лицензия MS Windows, что несомненно является недостатком для низкобюджетных проектах.
Если говорить о низкобюджетных проектах, то тут наиболее подходящим вариантом является ОС Linux. Помимо того, что большинство дистрибутивов этой ОС являются абсолютно бесплатными, в том числе и для коммерческого использования, также имеется ряд бесплатных средств для разработки качественного ПО для ОС Linux. Самым распространённым средством для разработки ПО на языке С++ является кроссплатформенный инструментарий Qt [2]. Важно подчеркнуть, что Qt позволяет разрабатывать приложения не только для ОС Linux, но и для MS Windows, Mac OS X, Android и других UNIX-подобных ОС. Разработчики Qt предлагают как бесплатную для коммерческого использования, так и платную лицензию с дополнительными возможностями. Но исходя из современной практики разработки ПО с помощью этого инструментария, бесплатной лицензии оказывается больше чем достаточно.
Если проводить аналогию с MS Visual Studio, то в Qt мы имеем IDE Qt Creator. Здесь альтернативой WinForms являются так называемые виджеты (Qt Widgets), а альтернатива для WPF — Qt Quick. Также в Qt Creator имеется возможность создания интерфейсов на основе HTML5. Но наиболее интересным модулем инструментария является встраиваемый веб-движок WebKit, который лежит в основе всех современных веб-браузеров. Подобный модуль имеется и в MS Visual Studio, но он имеет ряд ограничений, и тем более нас больше интересуют низкобюджетные средства, которые позволяют уменьшить издержки при создания программного продукта. Веб-движок — это ядро браузера, он отвечает за правильное отображения веб-страниц. Модуль Qt WebKit позволяет создавать интерфейс клиентского приложения с использованием техники разработки интерфейсов веб-приложений. В основе создания интерфейса веб-приложения лежит устоявшийся стек технологий. Он включает язык разметки HTML (HTML 4, 5), каскадные таблицы стилей (CSS 2, 3) и скриптовый язык JavaScript с богатым выбором дополнительных библиотек (каркасов). Отдельного внимания заслуживает тот факт, что скорость появления новых полезных каркасов для языка JavaScript стремительно растёт, а это делает разработку, насыщенных функционалом приложений, более быстрой и удобной.
Теперь решение проблемы создания универсального GUI лежит на поверхности, но это только на первый взгляд.
Традиционный способ: Qt WebKit + Qt-костыли
Рассмотрим традиционный способ создания универсального GUI с помощью модуля Qt WebKit на примере модуля визуализации данных системы акустического мониторинга, разрабатываемой в рамках кандидатской диссертационной работы [3]. Под системой акустического мониторинга подразумевается система, включающая аппаратную и программную части. Аппаратная часть системы состоит из сенсорной сети акустических датчиков, данные с которых обрабатываются на микроконтроллере и отправляются по какому-либо интерфейсу (UART, IEEE 802.X и др.) на персональный компьютер (ПК). Программная часть состоит из набора прикладных программ, работающих как на локальном ПК (клиентское ПО), так и на удалённом сервере (серверное ПО).
Традиционный метод подразумевает использование межпроцессного
Рис. 1. Традиционный метод реализации универсального GUI
взаимодействия по средствам встроенного механизма Qt. Здесь подразумевается взаимодействие между основной логикой клиентского приложения, изображённой на рис.1 как Обработчик данных, и GUI-элементом. Одним из недостатков такого подхода является то, что код для реализации GUI на языке JavaScript будет иметь специфические функции, которые будут актуальны только для клиентского Qt-приложения. Для серверного приложения, отвечающего за GUI, нужен будет другой, специфичный для серверной реализации, код. Например, в случае использования PHP-скрипта для реализации основной логики серверного приложения, понадобится реализация межпроцессного взаимодействия с помощью какой-либо другой технологии (AJAX или WebSocket). Отсюда следует ещё один недостаток, а именно использование дополнительного языка программирования для реализации основной логики серверного приложения и разработка нового алгоритма межпроцессного взаимодействия.
Более интересный подход: Qt WebKit + WebSocket
Для решения этих проблем предлагается новый метод, основанный на использования упомянутой выше технологии WebSocket. Суть метода заключается в том, чтобы унифицировать метод межпроцессного взаимодействия между основной логикой приложения и GUI, как на клиентской стороне, так и на серверной. В этом случае появляется возможность использования JavaScript кода для реализации универсального для обеих сторон GUI.
Рис. 2. Новый метод реализации универсального GUI
На рис. 2. видно, что теперь для межпроцессного взаимодействия, как для клиентской, так и для серверной части используется технология WebSocket. То есть теперь мы имеем один универсальный JavaScript код для разных приложений. В этом случае необходимым условием является серверное приложение, основная логика которого реализована с помощью Qt, на не совсем привычном для веб-разработчиков, языке C++. С одной стороны такой подход к реализации серверного приложения усложняет задачу для узкоспециализированного веб-разработчика. Но с другой стороны мы имеем универсальные части кода, которые позволяют нам сэкономить время на дублировании одних и тех по смыслу алгоритмов на разных языках. Важно также подчеркнуть, что для использования технологии WebSocket необходима дополнительная библиотека, которая имеется в интернете в свободном доступе или включается по умолчанию в более поздние версии Qt.
Рис. 3. Локальное (справа) и серверное (слева) приложения, запущенные на ОС Ubuntu 14.04
На рис. 3 приведён пример реализации нового метода создания универсального GUI для ОС Ubuntu 14.04. Как видно на рисунке, в конечном итоге мы получаем универсальный интерфейс, как для локального приложения, запущенного в качестве исполняемого файла ОС, так и для серверного приложения, запущенного в современном веб-браузере. Так как для разработки ПО используются кроссплатформенные инструменты, это позволяет говорить о простой переносимости программного продукта на другие ОС в будущем.
Вехи развития GUI: Alto, Apple, Blit, Paintbox и другие ранние системы
Перед следующей статьей из цикла «Приключения микропроцессоров» мы решили поговорить с вами о GUI. Из года в год система взаимодействия ОС, ПО и пользователей совершенствовалась. Аппаратные методы общения с компьютером уступили место интерфейсу командной строки. Командная строка в пользовательском сегменте «сдалась» под напором файл-менеджеров. И, наконец, появились полностью графические интерфейсы пользователя с привычными окнами, выпадающими меню и прочими удобствами.
Сегодня мы хотели бы поговорить о том, как развивался графический пользовательский интерфейс на протяжении последних 50 лет. Под катом рассмотрим некоторые интересные образчики применения GUI, необычные ОС и компьютеры. Как обычно, с массой фотоматериалов и видео. Потому что, как говорила Алиса, «что же это за книжка, в которой нет картинок?».
Кратко о первых устройствах ввода
Вероятно, одним из самых ранних образцов пользовательского интерфейса (конечно же, если воспринимать его в качестве некой системы взаимодействия программиста и вычислительной машины) является перфокарта. Ничего общего с UI в современном понимании этого термина перфокарты не имели. Фактически, это всего лишь средство ввода программ и данных для последующей обработки. Одно из первых устройств для создания перфокарт было разработано Германом Холлеритом еще в 1897 году. А на фотографии ниже изображено устройство середины XX века.
Перфокарта в перфораторе. // Источник: visualhistory.livejournal.com
Вслед за перфокартами компьютеры обзавелись клавиатурами. Сначала — в виде модернизированных печатных машинок (или подобных устройств), а первые полноценные компьютерные клавиатуры появились только в 1970-х.
Приблизительно так выглядели первые компьютерные «клавиатуры»: телетайпы и печатные машинки нередко «модифицировали» для подключения к ЭВМ. // Источник: Bazava.ru
В 1968 году на Калифорнийской выставке интерактивных устройств была продемонстрирована первая компьютерная мышь, а 2 года спустя Дуглас Энгельбарт запатентовал свое изобретение. В СССР компьютерные мыши также производились. Одна из первых версий носила гордое имя «Манипулятор „Колобок“» — по всей видимости, из-за металлического шарика. Тем не менее, лишь с приходом на массовый рынок GUI мыши приобрели повсеместную популярность.
Прототип мыши Дугласа Энгельбарта. // Источник: en.wikipedia.org
Отечественный «Колобок». Следы плавления на корпусе остались от проводов, которыми он был обмотан во время хранения. // Источник: polymus.ru
Еще одно популярное устройство ввода, джойстик, перекочевало в компьютерное (преимущественно игровое) применение из военной техники. Да, это не совсем «указывающее» устройство, однако мы не могли пройти мимо следующего интересного факта.
Неизвестно, кто именно начал применять джойстики для управления компьютером, однако первым электрическим джойстиком на сегодняшний день считается knüppel («кнюппель»), специальное устройство, с помощью которого осуществлялось управление ракетами Henschel Hs 293 1943 года.
Один из вариантов knüppel. // Источник: Wehrmacht-history.com
Кроме того, в течение нескольких десятилетий на рынке существовали разнообразные варианты трекболов (предшественник мыши), световых перьев и прочих устройств ввода. Некоторые из них так и остались в истории, некоторые трансформировались в привычные нам сегодня девайсы. Однако не будем заострять излишнее внимание на средствах взаимодействия с GUI и перейдем к разговору непосредственно об этой концепции.
GUI как принцип
Вначале стоит сказать пару слов непосредственно о том, что такое GUI и какими критериями интерфейс должен обладать, чтобы называться «графическим».
Традиционно принято считать, что GUI (Graphic User Interface) предполагает взаимодействие пользователя с компьютером при помощи разнообразных графических элементов управления, иконок. В лаборатории Xerox PARC (об их разработках мы поговорим чуть ниже) была предложена концепция WIMP (Windows, Icons, Menus, Pointers).
Полноценный GUI от Xerox. // Источник: white-windows.ru
В качестве вспомогательных элементов могут использоваться звуки и другие атрибуты «пользовательского комфорта», не имеющие к GUI непосредственного отношения, однако способствующие раскрытию некоторых интерфейсных метафор.
Метафорами в мире GUI принято называть интерфейсные реализации объектов/парадигм физического мира, знакомых пользователю. Например, к таким метафорам относятся «рабочий стол», «папка» и т.п.
Характерные примеры систем с GUI:
графическая оболочка GEM для ОС CP/M Гэри Килдалла.
Windows 1.01. // Источник: TAdviser, автор скриншота: пользователь M С
Скриншот одной из версий GEM для CP/M. // Источник: blogspot.com
В свою очередь, текстовый (TUI) и командный интерфейсы (CLI) основываются на ручном вводе всех необходимых команд в командной строке. Для представления информации в них используются исключительно набор буквенно-цифровых символов и символов псевдографики.
Commodore 64 (работа пользователя с компьютером начинается в интерпретаторе BASIC);
ZX Spectrum (также интерпретатор BASIC);
Microsoft DOS (командная строка);
CP/M (командная строка).
При включении C64 без дополнительных картриджей пользователю доступен интерпретатор языка BASIC. // Источник: der-softwareentwickler-blog.de
Система CP/M, запущенная в эмуляторе. // Источник: wikipedia.org
Строго говоря, во многих системах из этого списка GUI мог быть реализован в рамках отдельных программ (например, GEOS для C64).
Иногда текстовый интерфейс может комбинироваться с графическим, однако в таких случаях вряд ли стоит говорить о полноценном GUI. К примеру, некоторые штатные модели ZX Spectrum имеют загрузочное меню, предлагающее выбор (переход к BASIC, загрузка с магнитной ленты или гибкого диска и пр.), а переходы между пунктами меню сопровождаются характерными щелчками.
Стартовый экран ZX Spectrum 128. // Источник: bytedelight.com
Исторически одной из первых компьютерных программ, имплементировавших нечто похожее на GUI, является программа для рисования схем и чертежей Sketchpad. Она была разработана инженером Айвеном Сазерлендом в 1963 году и управлялась световым пером.
Работа со Sketchpad. // Источник: cadproekt.ru
А в конце 1960-х команда Стенфордского университета под руководством Дугласа Энгельбарта разработала NLS, On-Line System. Эта система фактически предвосхитила появление более поздних инструментов для совместной работы с текстом и прочими данными. Для взаимодействия с гиперссылками предлагалось использовать устройство типа «мышь».
Пользователь NLS оперирует мышью для работы с гиперссылками. // Источник: misc.ru
И Sketchpad, и NLS не являются полноценными примерами реализации GUI, тем не менее, сам факт их существования свидетельствует о том, что в ряде случаев использование графики и навигация при помощи указывающего устройства способны сделать работу с компьютером гораздо более удобной.
Xerox Alto и Xerox Star
Первым компьютером с графическим пользовательским интерфейсом считается Xerox Alto, разработанный в лаборатории Xerox PARC в 1973 году. Это был экспериментальный продукт, не предназначенный для широкого рынка. Тем не менее, к концу 1970-х было произведено порядка 2000 машин этой линейки.
Большая их часть, порядка полутора тысяч, были установлены непосредственно в Xerox Laboratories, остальные продавались университетам в качестве учебных и вычислительных машин.
Xerox Alto. // Источник: bit-tech.net
Уже в первые годы существования Alto приобрел широкую известность в Кремниевой долине. Еще большую популярность Xerox принесла разработка усовершенствованной версии Alto, Xerox Star. Первые лица крупных технологических компаний, в том числе представители Microsoft и глава Apple Стив Джобс посещали Xerox Laboratories, чтобы поработать с этими компьютерами. Известно, что в 1979 Джобс договорился о специальных демонстрационных сессиях в обмен на некоторые бонусы для Xerox от компании Apple. В следующие несколько лет на свет появились Apple Lisa и Macintosh, первые рыночные образцы ПК с графическим пользовательским интерфейсом.
Помимо Джобса, вдохновение для собственных GUI у Xerox черпал и Билл Гейтс. В мире высоких технологий всегда действовал принцип «кто первый показал, тот лучше продается», поэтому времени на разработку уникального интерфейса ни у Apple, ни у Microsoft толком не было. Именно поэтому ранние версии графических ОС у обеих компаний выглядят как близнецы-братья. Взгляните сами:
Xerox Star(слева), Apple Lisa (справа сверху), Apple Macintosh (справа снизу). // Источник: medium.com
Windows 1.0, версия 1983 года. // Источник: betawiki.net
Разумеется, Джобс не мог упустить возможность подать на Гейтса в суд за наглое копирование его собственного самобытного (позаимствованного у Xerox) дизайна ОС.
Xerox Alto дал толчок отрасли разработки графических пользовательский интерфейсов. Тем не менее, ввиду дороговизны компьютерных компонентов, сложности разработки GUI и неготовности крупных игроков менять подход к созданию компьютеров и ПО, первые машины, снабженные графическим интерфейсом, стали массово появляться на рынке лишь десятилетие спустя, в начале 1980-х. Далее в статье мы рассмотрим некоторые примеры подобных устройств, и промышленных, и предназначенных для домашнего использования.
Quantel Paintbox
В 1981 году эпоха персональных компьютеров только-только начиналась, однако по-настоящему актуальные и прогрессивные ЭВМ (наподобие Alto) простым пользователям были недоступны. Сказывались и молодость рынка, и высокая стоимость отдельных комплектующих.
Однако крупные компании уже активно пользовались подобными устройствами. Quantel Paintbox, специализированная рабочая станция для работы с компьютерной графикой, применялась для создания телевизионных «спецэффектов».
// Источник: wikimedia.org
Машину разработала британская технологическая компания Quantel, а одной из первостепенных задач, которые ставились перед Paintbox, являлось создание графики (титры, переходы и т.п.) для выпусков новостей в прямом эфире. Компьютеры продавались по цене порядка 250 000 долларов (что сейчас эквивалентно 374 000 долларов), поэтому позволить их себе могли исключительно крупные телевизионные сети, такие как NBC.
// Источник: RedSharkNews.com
В 1981 году Paintbox произвел революцию в производстве телевизионной графики. Со временем практически все телекомпании, включая небольшие региональные каналы, переключились на полностью «компьютерный» монтаж. Кроме того, считается, что именно в Paintbox впервые появились так называемые всплывающие меню.
Терминал Blit
Программируемый терминал растровой графики Blit был разработан Робом Пайком и Бартом Локанти-младшим, сотрудниками Bell Labs, в 1982 году. Использовался для работы с Unix-машинами и предлагал пользователю широкие графические возможности.
Терминал Blit. // Источник: wikimedia.org
При включении Blit может показаться обыкновенным текстовым терминалом. Однако после входа в систему Unix-хоста (подключенного к терминалу через последовательный порт) с помощью специальных управляющих последовательностей загружается программное обеспечение, управляемое непосредственно процессором терминала. Это ПО используется для реализации графических возможностей терминала и взаимодействия с периферийными устройствами, такими как клавиатура или мышь. Оконная система mpx (или mux, ее более поздняя версия) заменяет командную строку терминала удобным оконным интерфейсом.
Изначально в каждом окне запускался базовый эмулятор терминала, однако можно было заменить его любым доступным интерактивным графическим приложением, например, более продвинутым эмулятором терминала, текстовым редактором или приложением часов. Иными словами, Blit позволял пользователю реализовать интерфейс, крайне сходный с Unix’овским.
UNIX-машина // Источник: aminux.wordpress.com
Терминал нашел применение как в офисах крупных компаний, которым требовалось разделение мощностей «серверного» компьютера, так и в университетах.
Apple Lisa и Macintosh
Эти компьютеры появились на свет в результате уже упомянутой выше «коллаборации» Xerox и Apple. Стоит отдать должное Стиву Джобсу: он одним из первых увидел потенциал графических интерфейсов для персональных компьютеров. Конкуренты в те же годы довольствовались куда более простыми, командными/текстовыми интерфейсами.
Apple Lisa, выпущенная в 1983 году, имела продвинутый графический интерфейс, запускающийся поверх основной системы (загрузка ОС производилась с жесткого диска). Особой популярности компьютер не приобрел ввиду высокой стоимости.
Apple Lisa. // Источник: applebase.net
Несколько упрощенный Apple Macintosh, выпущенный в 1984 году и разработанный с прицелом на удешевление, стал первым коммерчески успешным продуктом, в котором использовался многопанельный оконный интерфейс. Кроме того, в операционной системе была реализована концепция (метафора) рабочего стола: файлы выглядели как листы бумаги, каталоги — как папки с файлами. Кроме того, пользователю был доступен набор «настольных» принадлежностей, таких как калькулятор, блокнот и будильник. Их можно было передвигать по экрану, при необходимости скрывать и вызывать снова.
Apple Macintosh. // Источник: arkzoft.net
А удалять файлы и папки можно было, перетаскивая их на значок корзины. В дальнейшем разработчикам Apple, как мы знаем, удалось успешно развить свое видение работы пользователя с компьютером. Так, до сих пор в операционных системах Apple используется управление однокнопочной мышью (в противовес более популярной на рынке двухкнопочной), корнями уходящее в 1980-е.
Commodore Amiga
Компьютер Amiga, один из наиболее прорывных и интересных компьютеров своего времени, был выпущен компанией Commodore в 1985 году. В качестве графического интерфейса использовалась собственная операционная система Workbench, основанная на оконном «движке» Intuition. Пользователю были доступны перетаскиваемые окна, иконки, выпадающие списки и многие другие актуальные и по сей день элементы управления.
Одна из первых версий Workbench. // Источник: gala100.net
В Workbench (в переводе — «верстак») каталоги были представлены в виде ящиков, а программы в идеологии ОС именовались «инструментами». Управлять ОС можно было как с помощью мыши, так и исключительно клавиатурой, с использованием специальных клавиш-модификаторов для перемещения курсора. ОС поставлялась на нескольких дискетах и была доступна как на младших моделях без HDD, так и на более мощных компьютерах, оснащенных жестким диском.
Даже тут не обошлось без Стива Джобса: он был одним из первых, кому тогда еще небольшой стартап Amiga пытался продать свою разработку. Джобс внимательно изучил компьютер и его ОС, от покупки отказался, однако тут же приказал ускорить работу над GUI для Apple, чтобы опередить вероятных конкурентов.
Примечательно, что подавляющее большинство игровых программ не требовало предварительной загрузки операционной системы: достаточно было вставить дискету и запустить компьютер. Как и в случае с Workbench, загрузка осуществлялась через расположенное в ПЗУ компьютера ПО. Фактически, Commodore Amiga была первым по-настоящему мультимедийным компьютером с поддержкой всех актуальных устройств ввода-вывода, огромной палитрой и мощным ПО для дизайнеров, художников и специалистов по видеомонтажу. Отчасти это обусловлено тем, что Amiga (до того, как стартап был выкуплен Commodore) задумывалась как игровая консоль. Но ввиду видеоигрового кризиса корпорация решила выпустить полноценный компьютер.
К изначальной концепции приставки Amiga вернулась лишь незадолго до банкротства компании. Amiga CD32 поставлялась в формате консоли, а в качестве носителя были выбраны CD-диски. А при известных модификациях консоль могла «превратиться» обратно в компьютер, технически сходный с Amiga 1200.
Современная версия AmigaOS 3.9. // Источник: hipwallpaper.com
Amiga Workbench до сих пор активно поддерживается фанатами компьютера, несмотря на то, что сама компания Commodore закрылась в связи с банкротством еще в 1994 году.
Несмотря на успех Amiga, восьмибитный Commodore 64 также активно продавался до 1994 года, пережив несколько ревизий и технический «апдейт» — офисную машину с Zilog Z80 в качестве сопроцессора для CP/M, Commodore 128.
Графическая оболочка GEOS была выпущена для C64 в 1986 году. Вскоре после запуска собственные порты GEOS получили компьютеры серии Apple II и Commodore 128. Дистрибутив GEOS включал ряд базовых прикладных программ, таких как календарь и текстовый редактор.
Интерфейс GEOS с поддержкой мыши. // Источник: c64-wiki.com
PC/GEOS, специальная версия для IBM PC, позиционировалась в качестве компромиссной ОС для компьютеров, которые не справляются с более «тяжелой» Windows 3.1.
Интерфейс одной из последних версия GEOS для PC. // Источник: toastytech.com
Тем не менее, за пределами 8-битных компьютеров система практически не снискала успеха среди пользователей, отчасти из-за чрезмерно авторитарной политики компании-производителя, отчасти из-за скудного багажа возможностей.
Windows: компьютер в каждый дом
Широкое распространение ПК как среди «домашних» пользователей, так и в бизнес-среде заставило производителей задуматься об упрощении работы с компьютером для людей, ранее не имевших опыта работы с подобными устройствами. GUI позволил бы компаниям охватить гораздо большую аудиторию, соответственно, стало экономически выгодно вкладывать деньги в его разработку.
Приложения с графическим интерфейсом существовали и в чистом DOS, однако для их запуска пользователю все равно потребовалось бы вводить команды или использовать файл-менеджер. А это уже чуть более сложная задача, чем клик мышкой.
Norton Commander, одна из поздних версий. // Источник: white-windows.ru
MS-DOS Shell, псевдографический файловый менеджер, 1988. // Источник: old-dos.ru
Еще одним фактором, стимулировавшим развитие GUI, стало расширение возможностей графических адаптеров, обеспечивающих тысячи и миллионы цветов, наряду с быстрыми процессорами, дешевой оперативной памятью и новыми устройствами хранения, вмещавшими гигабайты информации. Все это сделало возможным продавать пользователям качественно новое «железо», способное обеспечить работу требовательных графических интерфейсов.
Windows 3.11. // Источник: winworldpc.com
После Windows 3.11 Microsoft приступила к разработке новой версии операционной системы, ориентированной на потребителя. Windows 95 включала улучшенную версию DOS, часто называемую MS-DOS 7.0. Win95 и WinNT могли запускать 32-разрядные приложения и использовали возможности процессора Intel 80386 для реализации вытесняющей многозадачности.
Windows 95 рекламировалась как 32-разрядная операционная система, хотя на деле она базировалась на гибридном ядре (VWIN32.VXD) с 16-разрядным пользовательским интерфейсом (USER.EXE) и интерфейсом графического устройства (GDI.EXE) Windows 3.11, работавшимим совместно с 32-разрядной подсистемой (USER32.DLL и GDI32.DLL). Это позволяло запускать в системе и 16-разрядные, и 32-разрядные приложения.
В представлении не нуждается: Windows 95. // Источник: white-windows.ru
Говорить о рыночном успехе Windows, думаем, будет излишне: на текущий момент это самая популярная домашняя ОС, не говоря уже о ее коммерческом применении.
Заключение
Безусловно, в статье собраны далеко не все «титаны» GUI. В первую очередь нам хотелось познакомить с ранними версиями графических пользовательских интерфейсов тех читателей, которые могли считать, что до Windows «жизни» не было.
Если тема ранних GUI интересна для вас, рекомендуем также ознакомиться со следующими ресурсами:
Подробнее о ранней версии Workbench;
Графическая псевдо-ОС для ZX Spectum-совместимых машин.
В одной из будущих статей мы обратим внимание на не менее интересную тему: этап развития пользовательских интерфейсов в web. По традиции, ждем ваших комментариев и историй о работе с компьютерами до того, как это стало мейнстримом.