Когда мы говорим «операционная система с графическим интерфейсом», первое, что обычно приходит в голову — это macOS и Microsoft Windows (кое-кто, конечно, сразу вспоминает Linux). Причем примерно в такой последовательности наиболее распространенные сегодня платформы с GUI и развивались исторически: считается, что первой на коммерческий рынок «операционок с окнами» вышла Apple, к которой спустя некоторое время подтянулись разработчики из Редмонда. Но еще задолго до этих двух компаний собственную графическую платформу начали разрабатывать в другой фирме, широко известной сегодня своими принтерами и копировальными аппаратами. Речь, как ни странно, идет о Xerox.
Мысль о том, что в традиционном интерфейсе ОС, требующем держать в голове огромное количество команд и ключей, которые ты набираешь вручную в консоли, нужно что-то менять, витала уже давно. Компьютеры быстро развивались, и даже в семидесятых годах прошлого века терминал многим не казался верхом технологического совершенства, а в начале восьмидесятых его и вовсе воспринимали как анахронизм. В своей юмористической книге «Дейв Барри в Киберпространстве», увидевшей свет в 1996 году, знаменитый американский публицист Дейв Барри вспоминал самый расцвет эпохи командной строки следующим образом:
Как же, в общих чертах, работала MS-DOS? Самая первая версия, 1.0, не делала практически ничего, кроме как выводила на экран следующее: A:>. Вот и все. Это абсолютно точно. Спросите у кого-нибудь, кто использовал компьютеры с MS-DOS в те времена. Они включали машину, и эта A:> таращилась на них с экрана. Как бы то ни было, люди усаживались за свои персоналки, любовались на A:> в течение какого-то времени, а затем пытались набрать на клавиатуре что-нибудь после A:>, например, вот так: A:>HELLO. Однако вот тут-то в действие вступало другое важное правило MS-DOS — что бы вы ни делали, ответ всегда был одинаковым: «BAD COMMAND OR FILE NAME». После чего без всяких объяснений на экране вновь появлялось это проклятое A:>. Среди пользователей ходили туманные слухи (очень редко, впрочем, подтверждавшиеся фактами), что если напечатать на клавиатуре какие-то секретные слова, то можно получить от системы другой ответ. Но если такие слова и существовали в природе, то знал их, наверное, только сам руководитель Microsoft Билл Гейтс. Поэтому основным предназначением MS-DOS, на которое тратились миллионы человеко-часов, заключалось в том, чтобы заставить ее в конечном итоге сделать хоть что-нибудь полезное.
На самом деле, теоретические основы графического интерфейса для человеко-машинного взаимодействия были заложены еще в шестидесятых. И занимался этими разработками ученый из расположенного в Бирмингеме исследовательского центра Southern Research Institute Дуглас Энгельбарт (Douglas Englebart). В своей работе доктор Энгельбарт заложил основы, базовые принципы построения графических интерфейсов, впервые описав такие элементы пользовательской среды, как динамически генерирующиеся окна для запуска различных программ, активизирующиеся при наведении курсора всплывающие меню, а также утилиты, обеспечивающие взаимодействие между оконными приложениями, устройствами ввода-вывода компьютера и другими составляющими операционной системы. В своих разработках Энгельбарт прежде всего ориентировался на пользователей инженерных и конструкторских программ — им графическая среда была нужнее всего.
Дуглас Энгельбарт
Очевидно, что управлять окнами и экранными кнопками при помощи клавиатуры (а именно она и являлась основным «устройством ввода» в те времена) было крайне неудобно — в сочетании с ней лучше всего работала как раз командная строка. И Дуглас Энгельбарт решил придумать какое-то другое устройство, с помощью которого взаимодействовать с графическим интерфейсом было бы немного комфортнее. Сам Дуглас вспоминал, что источником вдохновения для этой его разработки послужила таблица Менделеева, в которой каждый элемент занимает собственную ячейку, снабженную уникальным номером. Условно разделив экран компьютера на вертикальные и горизонтальные линии, Энгельбарт получил некое подобие шахматной доски, каждую клетку которой можно описать совокупностью координат по вертикали и горизонтали. К этим координатам и было решено «привязать» курсор. А перемещать его изобретатель решил с помощью придуманного им манипулятора на длинном тонком проводе, похожем на мышиный хвост.
Первая мышь Дугласа Энгельбарта — с дисками и одной кнопкой
Первая мышь, построенная Дугласом Энгельбартом, имела в нижней своей части два вращающихся диска, управлявших перемещениями курсора. Однако при таком подходе мышь отлично перемещалась строго по горизонтали или вертикали, а вот передвинуть ее в диагональном направлении было практически невозможно. Поэтому конструкцию вскоре чуть изменили: воспользовавшись идеей Билла Инглиша, внутрь устройства поместили резиновый шарик, касающийся двух перпендикулярно расположенных валов: при движении мыши шарик вращал валы, а поворот каждого валика на определенный угол управлял смещением курсора мыши на соответствующее экранное расстояние. Для того чтобы выполнить какое-либо действие над объектом, расположенным в отмеченной курсором области экрана, Энгельбарт разместил на корпусе мыши специальную кнопку, по нажатию на которую компьютер выполнял ту или иную операцию, заложенную в него программой. Например, если пользователь перемещал мышь на определенное расстояние, указатель просто менял свое положение на экране, а если он проделывал то же действие при нажатой кнопке, на экране можно было нарисовать линию. Изобретение получилось крайне футуристичным, но теперь дело оставалось за малым: разработать ПО, которое полноценно поддерживало бы это принципиально новое устройство.
Развитие софта тормозило, прежде всего, то обстоятельство, что большинство дисплеев в те времена были алфавитно-цифровыми, и с полноценным отображением графики они не очень-то справлялись. Даже игры в 70-х строились в основном на принципе «буква «А» бегает по экрану за буквой «Б»», что уж говорить о более серьезных вещах? Все изменилось, когда в конце семидесятых годов в исследовательском центре компании Xerox в Пало-Альто (Palo Alto Research Center, PARC) был разработан персональный компьютер «Alto», оснащенный растровым дисплеем, позволявшим отображать на экране графические элементы, дисководом и разъемом, с помощью которого можно было подключать к внешнему порту ЭВМ принтер и другую периферию. Этот компьютер по своим характеристикам позволял запускать приложения с графическим интерфейсом, а главное, поддерживал изобретение Дугласа Энгельбарта — компьютерную мышь, в конструкцию которой для пущего удобства пользователя добавили еще две кнопки.
Персональный компьютер Xerox Alto
Xerox Alto стал одним из первых поступивших в продажу полноценных персональных компьютеров (первые прототипы были представлены в 1973 году) — все, что присутствовало на рынке до этого, являлось по большому счету «программируемыми терминалами» и требовало подключения к мейнфрейму. Alto предназначался для университетских лабораторий, исследовательских центров, этим компьютером могли с успехом пользоваться инженеры, конструкторы и банковские служащие. В комплект поставки входили практически все компоненты, которые в наши дни являются обязательными для любой настольной персоналки: растровый дисплей, жесткий диск со сменными картриджами объемом 2,5 Мбайта, клавиатура, мышь, адаптер для подключения машины к локальной сети.
Жесткий диск со сменным картриджем объемом 2,5 мегабайта
Но самое главное – на Xerox Alto была установлена специально разработанная для этой машины операционная система с графическим интерфейсом – первая в мире коммерческая операционная система, в составе которой были реализованы такие элементы, как рабочий стол, гиперссылки, динамически генерирующиеся окна и кнопки, меню, а также режим управления компьютером с помощью мыши, подразумевающий выделение и перетаскивание объектов. Таким образом, компания Xerox стала первой на нашей планете фирмой, выпустившей на рынок платформу, оснащенную полноценным графическим интерфейсом. Про сам компьютер и его «железную» начинку подробно написано здесь, нас же интересует в первую очередь его программная составляющая.
Графический интерфейс Xerox Alto
В основе системы, на которой работал Xerox Alto, лежала созданная Дугласом Энгельбартом концепция NLS (oN-Line System), доработанная в Augmentation Research Center (ARC) при Стенфордском исследовательском институте (Stanford Research Institute, SRI). Монохромный дисплей Alto в непривычной для нас портретной ориентации вытягивал разрешение 606 x 808 точек, что позволяло отрисовывать на нем довольно замысловатые графические объекты.
Оконная среда Alto была написана на языках Smalltalk и Mesa. Она включала несколько виртуальных рабочих столов, а также окна, которые могли перекрывать друг друга. Эти окна можно было перетаскивать по экрану при помощи мыши и произвольно менять их размер. В интерфейсе ОС полностью отсутствовали значки приложений — вместо них использовались текстовые таблицы и меню (практически как в знаменитом Northon Commander, который появился на свет спустя десятилетие).
Графический интерфейс Xerox Alto
Поскольку Alto использовал полноценную графическую среду, для этого компьютера был написан целый набор программ, поддерживавших этот оконный режим работы. В основе платформы лежал файловый менеджер Neptune. Он имел двухколоночное представление: в каждой из колонок отображался список файлов на выбранном носителе, например, жестком диске или дискете. Выделить нужный файл можно было при помощи мыши, далее следовало нажать одну из кнопок, чтобы выполнить над файлом ту или иную операцию: скопировать, переименовать или переместить, либо удалить его. Чтобы запустить приложение, нужно было выделить файл мышью и нажать на кнопку Start в окне Neptune — после этого при необходимости у пользователя появлялась возможность задать параметры запуска приложения с помощью вводимых с клавиатуры ключей.
Файловый менеджер Neptune
Помимо файлового менеджера для Alto существовало как минимум два полноценных текстовых WYSIWYG-редактора: Bravo и Gypsy, два растровых графических редактора: Markup и Draw, клиенты для обмена текстовыми сообщениями по сети Hardy и Laurel (прообраз современных почтовых программ), утилита для сетевого чата, утилита для обмена файлами по сети, векторный редактор для проектирования печатных плат Sil, а также целый набор игр, включавший шахматы и Pinball. На этом видео из 70-х показана работа компьютера Xerox Alto — здесь отлично виден файловый менеджер Neptune.
Несмотря на то, что Alto успешно выпускался и продавался вплоть до конца 70-х, эта машина все же считается мелкосерийным экспериментальным изделием: всего было построено чуть больше двух тысяч экземпляров этого ПК, а сам компьютер получился весьма дорогим. Все идеи и технические решения, разработанные PARC для Alto, нашли свое применение в серийном персональном компьютере «Star», выпущенном компанией Xerox на рынок в 1981 году.
Xerox Star
В процессе разработки персонального компьютера «Star» инженеры Xerox столкнулись с рядом технических сложностей, связанных, в первую очередь, с невысокой производительностью имевшихся в их распоряжении процессоров: из наиболее подходящих по быстродействию для использования в составе персонального компьютера чипов можно было выбрать только Intel 8008 или MOS Technology 6502. Но ни та, ни другая микросхема не позволяли добиться скорости вычислений, необходимой для нормальной работы графической операционной системы. Выход нашелся весьма неожиданным образом: на компьютере было установлено четыре процессора, не только обеспечивавших необходимое быстродействие при работе с ОС, но и позволявших осуществлять обмен данными в локальной сети Ethernet пропускной способностью порядка 10 Мб/с. Не опираясь на аппаратные прерывания, разработчики все же сумели обеспечить работоспособность управляемого событиями интерфейса, благодаря чему сама графическая оболочка могла выполнять приложения в псевдомногозадачном режиме. Для «Xerox Star» были созданы базовые протоколы Ethernet и даже международная система сетевой адресации, общий принцип которой впоследствии был принят при разработке формата записи адресов в интернете, известного пользователям, как URL. Иными словами, технические и программные решения, заложенные в «анатомию» персонального компьютера Xerox Star, явились во многом определяющими для всех последующих поколений персональных компьютеров, оказав значительное влияние на развитие информационных технологий вообще и компьютерной промышленности в частности.
Помимо подключения к локальной сети (это умел еще Alto), Xerox Star мог работать с первыми лазерными принтерами производства той же Xerox. Кроме того, для Star впервые была разработана мышь с оптическими датчиками — пока еще не лазерная, но уже не совсем механическая. Но больше всего изменений появилось в графическом интерфейсе пользователя.
Интерфейс Xerox Star
Прежде всего, в ОС Xerox Star впервые в мире стали использоваться значки файлов и папок — практически в том самом виде, в которым мы позже увидели их в macOS и Microsoft Windows. Причем для разных типов документов использовались разные значки. Окна получили иное, более «продвинутое» оформление с «псевдотрехмерными» рамками, в заголовках окон программ появились инструментальные панели. Основной парадигмой ОС Xerox Star стал принцип WYSIWYG — What you see is what you get. Интерфейс операционной системы по задумке архитекторов должен быть интуитивно понятен любому пользователю, в противовес сложным для изучения платформам с командной строкой, в которых могли разобраться только яйцеголовые инженеры в белых халатах. Количество действий, которые можно было выполнять над экранными объектами при помощи мыши, значительно возросло: помимо выделения и перетаскивания у пользователя появилась возможность воздействовать на значки и кнопки двойным щелчком. Кроме того, именно в Xerox Star пользователь впервые смог загромождать Рабочий стол произвольным содержимым, а не только теми значками, которые изначально поместили туда разработчики — как это было в Alto.
Интерфейс Xerox Star
В составе Star появился язык разметки Interpress, позволявший создавать документы со сложным форматированием, версткой и интегрированными объектами — что-то вроде того, что сейчас позволяет делать TeX. Кроме того, впервые в истории пользователю не нужно было предварительно запускать программу, чтобы открыть в ней какой-либо файл: в Star было достаточно всего лишь дважды щелкнуть мышью на значке документа, чтобы открыть его в соответствующем приложении, которое запускалось при этом автоматически. Для 1981 года это был самый настоящий прорыв. Еще одна прорывная технология, заложенная в операционную систему Star изначально — унификация файловых форматов. Например, график, нарисованный в редакторе диаграмм, можно было без труда вставить в текстовый документ, а текст — в графическую иллюстрацию. В Windows подобная технология связывания и встраивания объектов OLE появилась, скажем так, сильно позже — в 1990 году. На Xerox Star она работала «из коробки» в 81-м. Расширился и набор прикладных программ: их ассортимент дополнили несколько инженерных пакетов САПР, табличный редактор и уже упоминавшийся ранее редактор диаграмм, а также средства работы с базами данных. В общем, у Xerox получилась полноценная и вполне современная по своим характеристикам персоналка, с оконным графическим интерфейсом и набором прикладных программ, способных удовлетворить даже самого взыскательного пользователя.
Интерфейс Xerox Star
К сожалению, широкой экспансии Xerox Star на рынок помешала высокая цена: одно рабочее место обходилось покупателям в сумму от 16,5 до почти 50 тысяч долларов в зависимости от выбранной комплектации, что, прямо скажем, немало. Именно на первую половину 80-х пришелся бум развития недорогих персоналок: на рынок хлынули ПК от Atari, Commodore, Sinclair, RISC, IBM. На их фоне навороченные, но дорогие как самолет Xerox Star катастрофически проигрывали конкурентную борьбу.
В 1979 году Стив Джобс посетил исследовательский центр PARC в Пало Альто и провел довольно конструктивные переговоры, в результате которых компания Xerox разжилась акциями Apple, а Джобс получил доступ к разработкам операционной системы Xerox Star. Концепция этой ОС легла в основу созданной инженерами Apple платформы Macintosh. Отдаленное эхо данной сделки мы ощущаем и сейчас, покупая устройства с логотипом в виде надкусанного яблока на корпусе. Ведь именно идеи Дугласа Энгельбарта и специалистов из Xerox, придуманные еще в 70-х, наши свое воплощение во всех современных ОС с графическим оконным интерфейсом.