Сегодня мы публикуем перевод статьи из журнала Byte от 1981. Она посвящена культовому компьютеру Xerox Alto.
Шел 1973 год. Компьютеры были громоздкими, маломощными и неповоротливыми. До изобретения ZX Spectrum оставалось 9 лет. Commodore Amiga 1000 появился в 1985-м. Всего, что составляет широкий пласт ретро-техники, еще толком не существовало. Тем не менее, в компании Xerox уже создали революционный компьютер. Он был технологичнее и меньше многих своих собратьев. Он так и остался прототипом, выпущенным в количестве нескольких тысяч экземпляров. Но все, кто хотя бы раз прикасался к нему — и тогда, и сейчас, в один голос говорили: это удивительно интересное устройство.
Обложка журнала Byte, сентябрь 1981 года
О Xerox Alto уже написано немало интересных статей. Тем не менее, сегодняшний материал особенно интересен. Он написан журналистом журнала Byte в 1981 году, фактически, в годы актуальности Alto, и дает нам возможность увидеть его глазами современников.
Материал публикуется с некоторыми малозначительными сокращениями. В конце мы приведем ссылки на эмуляторы Alto и более качественные иллюстрации, нежели те, что были опубликованы в журнале.
В наше время редкий компьютерный энтузиаст или профессионал, глядя на современные машины, не задается вопросом: что же будет дальше?
Alto: персональный компьютер
В 1972 году Xerox Corporation решила выпустить персональный компьютер, предназначенный для научных исследований. В результате был создан Alto, над которым работали Эд Мак Крейт, Чак Такер, Батлер Лэмпсон, Боб Спроулл и Дейв Боггс. Перед ними стояла задача сделать компактное устройство, которое без проблем поместится в обычном офисе. При этом оно должно быть достаточно мощным, чтобы обеспечивать качественную и надежную работу операционной системы и графического дисплея. Целью разработчиков было снабдить каждого пользователя собственной вычислительной машиной, которая закрывала бы все его потребности, а также коммуникационным устройством для быстрого обмена информацией.
В 1978 году Xerox выдала 50 компьютеров Alto университетам Стенфорда и МТИ. Эти машины моментально вписались в рабочие процессы ученых и быстро стали стандартом для всех остальных ПК.
Сомнительно, что кто-то за пределами научного сообщества когда-либо сможет позволить себе покупку Alto. Эти компьютеры предназначены, скорее, не для широкого потребителя, а для внутренних исследований Xerox, поэтому массово продаваться они не будут. Но поговорить о них стоит хотя бы по той причине, что многие ПК завтрашнего дня будут разрабатываться с учетом знаний и опыта, накопленных в процессе создания и работы с Alto.
Фото 1: Два Xerox Alto. Каждый процессор Alto смонтирован в стойке прямо под двумя жесткими дисками на 3 Мб каждый. Обратите внимание, видео-дисплеи компьютера в отличие от стандартных телевизионных экранов вытянуты по вертикали, как бумажный лист.
Оборудование
Alto состоит из четырех основных частей: графический дисплей, клавиатура, графическая мышь и системный блок (box), вмещающий дисковый накопитель и процессор. Каждый Alto заключен в элегантный корпус из рельефного металла кремового цвета, что уже намекает на его цену в $32000. За исключением системного блока, стоящего на полу, компьютер помещается на рабочем столе.
Графический дисплей
Графический дисплей — самый поразительный компонент Alto. Он похож на телевизионный экран, повернутый на 90 градусов. Дисплей растровый. Его физические габариты составляют 8 дюймов по горизонтали и 10 дюймов по вертикали. Черно-белый экран позволяет оперировать с 808 пикселями по вертикали и 606 пикселями по горизонтали. Конечное разрешение составляет приблизительно 80 точек на дюйм.
Изображение выводится методом побитового растрового сканирования. Это значит, что каждая точка дисплея соотносится с конкретным битом в памяти.
Что касается отображения текста, на экране помещается до 60 строк по 90 символов (из расчета, что каждый символ имеет размеры 7x9 пикселей, как и в большинстве видеотерминалов). Alto не имеет аппаратного знакогенератора. Набор символов может быть создан пользователем, а затем выведен на экран. Смешанные шрифты также разрешены, поэтому тексты различного размера и формы могут быть показаны на экране одновременно.
Фото 2: Программа для тестирования клавиатуры. Каждая кнопка на клавиатуре Alto имеет свой сигнальный провод, поэтому поддерживается одновременное нажатие сразу нескольких клавиш. На изображении выше нажатые кнопки отмечены черным. Небольшой квадратик над клавиатурой обозначает мышь. Как можно увидеть, одна ее кнопка нажата.
Поскольку пиксели экрана соотносятся только с одним битом памяти, градации цвета и интенсивности компьютер не поддерживает. Однако высокая плотность пикселей и различные комбинации из них позволяют сформировать «текстуру», которая создает впечатление оттенка серого. Точно так же печатаются фотографии в газетах.
Клавиатура
Фото 3: Игра «Пинбол». Флипперы управляются с помощью двух клавиш Shift. Порт Alto может быть соединен с динамиком для воспроизведения игровых звуков.
Если не углубляться в детали, клавиатура Alto в точности копирует обыкновенную печатную машинку за исключением нескольких специальных клавиш. Она весьма удобна в печати и может быть отсоединена в любой момент. Кроме того, каждая клавиша имеет собственный сигнальный провод, подходящий к интерфейсу клавиатуры. Это позволяет программам пользоваться всеми преимуществами так называемых «аккордных команд», когда пользователь держит нажатыми одну или несколько клавиш. К примеру, «аккорд» Shift+Control+E Alto распознает с той же легкостью, что и A+B+C. Еще один плюс — возможность определить длительность нажатия клавиши. К примеру, «Пинбол» определяет силу удара по тому, как долго пользователь удерживает кнопку. Разумеется, существует и другое программное обеспечение, которое позволяет пользоваться клавиатурой в более консервативной манере.
Графическая мышь
Фото 4: устройство ввода «мышь». Оператор использует мышь для контроля расположения курсора на экране. Она определяет изменение своего собственного расположения, а оператор «катает» её по коврику из мягкого пластика.
Мышь — это небольшая коробочка, на верхней грани которой расположены три кнопки. Она соединяется с клавиатурой Alto посредством тонкого и гибкого провода. Кнопки называются «красной», «желтой» и «зеленой», несмотря на то, что все они черного цвета. Мышь размещается в правой руке пользователя и катается по мягкому пластиковому коврику, который вращает шарики на её нижней части.
Изменение положения мыши отслеживается по состоянию одного из этих шариков, а затем отсылается компьютеру. Соответственно перемещается курсор на дисплее. Физическое положение мыши на столе не имеет значения, поскольку отслеживается только сам факт ее перемещения. Графический интерфейс мыши гораздо удобнее, нежели bit pad, джойстик или трекбол. Многие программы Alto могут управляться только мышью, без участия клавиатуры.
Системный блок
Процессор и дисковое хранилище Alto располагаются в небольшом шкафчике-стойке высотой до пояса. Каждый Alto снабжается дисковым накопителем объемом 3 Мб. Жесткие диски из-за их формы и габаритов часто сравнивают с коробками для пиццы.
«Мозг» Alto — это 16-битный изготовленный на заказ процессор. Он состоит из множества TTL ICs (интегральные схемы транзисторно-транзисторной логики) среднего и малого размера. Процессор способен выполнять порядка 400 тысяч инструкций в секунду. Каждый Alto имеет адресное пространство объемом 64 тысячи 16-битных слов, включая экранную область. Использование технологии под названием «выбор банка» позволяет расширить её до 256 тысяч слов. Компьютеры с увеличенной памятью известны под названием wide-bodied Alto, «широкоплечий».
Большая часть «магии» Alto происходит на уровне микрокодов. Alto способен одновременно выполнять до 16 задач, а планирование и операции ввода-вывода осуществляются в микрокодах. Тем не менее, пользователь может управлять только одной задачей. Она обладает самым низким приоритетом и обязана при необходимости «отдавать» ресурсы другим процессам, к примеру, программам, которые контролируют дисплей, диски, клавиатуру, мышь и Ethernet-соединение. Пользователь имеет прямой доступ к микрокодам и при необходимости может переписать их в соответствии с собственными нуждами.
Реклама Alto, 1979
Программное обеспечение
В Alto для многих задач, которые чаще всего выполняются аппаратно (например, знакогенерация), используются программы. В итоге получается весьма громоздкая, но одновременно гибкая архитектура.
Каждый Alto снабжен ROM (read-only memory), программного содержимого которого достаточно для того, чтобы «загрузить» Alto из локальной сети. Благодаря этому пользователь всегда имеет возможность «безопасно» загрузиться по Ethernet, если какая-то системная программа не работает. Любое ПО для Alto можно получить по сети.
Alto Operation System представляет из себя программу, которая обеспечивает базовый набор инструментов для управления компьютером. Она написана на BCPL, языке, который очень походит на C. Большинство программ запускаются напрямую из Alto OS. Поскольку адресное пространство Alto невелико, специальный метод под названием «Junta» позволяет BCPL-программам избавляться от ненужных разделов Alto OS во время выполнения. Если же эти фрагменты потребуются позже, их можно восстановить, выполнив «Counterjunta».
Фото 5: демонстрация программы Executive на Alto.
Одна из BCPL-программ, выполняемых поверх операционной системы, называется Alto Executive. Она общается напрямую с пользователем и позволяет манипулировать файлами и запускать другие программы. Интересной особенностью Executive является возможность дополнения имени файла.
Если ввести только начало имени файла и escape-код, Executive может «дописать» его самостоятельно. Программисты могут называть файлы описательным образом (например, Gatewaylnformation.press), но не вводить длинное имя каждый раз при обращении к ним. Исполняющая программа распознает файл, как только получит достаточно символов для его однозначной идентификации. Введя вопросительный знак вместо escape-кода, вы получите от Executive все имена файлов, с которыми совпадает введенный текст.
У Alto очень гибкая и надежная файловая система. В отличие от многих файловых систем (например, у CP/M от Digital Research или TRSDOS от Radio Shack), которые ограничивают имена до 6-8 символов плюс расширение из 3-х символов, файловая система Alto допускает имена файлов длиной до 31 знака. Когда вы вводите имя файла, оно сохраняется в том же виде, в котором было напечатано, даже с учетом прописных и строчных букв. Поскольку имена файлов могут быть очень длинными, это позволяет программисту использовать прописные и строчные буквы для улучшения читабельности. Согласитесь, LongFileName.BigExtension намного приятнее глазу, чем LONGFILENAME.BIGEXTENSION. Когда пользователь запрашивает файл у компьютера, регистр игнорируется. Допустимо любое из двух имен в предыдущих примерах, а также longfilename.bigextension.
Файлы в Alto делятся по страницам. Каждая из них содержит небольшой заголовок, который описывает страницу, определяет, к какому файлу она принадлежит, а также указывает на места на диске, которые содержат следующую и предыдущую страницы того же файла. Это делает файловую систему практически неразрушимой. А программа под названием Scavenger может автоматически восстанавливать поврежденную файловую систему.
Фото 5b: NetExecutive (похожа на Executive, но позволяет получать данные по Ethernet)
Конечно же, Alto не существует в вакууме. Для работы с сетью Ethernet требуется программное обеспечение. Часть этого программного обеспечения появляется в форме NetExecutive (см. Фото 5b) и FTP (file-transfer program, программа для передачи файлов). NetExec — это программа, очень похожая на Alto Executive, но софт она загружает по сети, а не с жесткого диска. Пользователю не нужно хранить редко используемые или большие программы локально. Их можно загружать через сеть (со скоростью около 800 000 бит в секунду) только при необходимости. FTP выполняет примерно ту же задачу, но куда более гибко.
Фото 5c: Mesa-программа, редактируемая в Bravo. Обратите внимание на то, что в листинге используются различные шрифты.
Несмотря на то, что большая часть ПО для Alto написана на BCPL, недавно появился новый инструмент для разработки: Mesa. Это подобный Паскалю язык программирования. С BCPL из-за ряда различий в микрокодах он не совместим. Вполне вероятно, Mesa станет основным языком программирования для преемников Alto.
BCPL и Mesa — системные языки Alto, на них написаны основные утилиты и множество прикладных программ. Тем не менее, на Alto доступны и другие. Существенная часть научно-исследовательского ПО написана на SmallTalk. Это очень мощный и простой в изучении язык программирования. Кроме того, компьютер поддерживает LISP, популярный в сообществе исследователей искусственного интеллекта.
Использование экрана
Фотография 5d: представление директории в Neptune directory editor. Отмеченные имена файлов выбраны для проведения дальнейших операций (печать или удаление). Курсор выглядит как крестик в окружности.
Alto обладает превосходными графическими возможностями. Экран может быть поделен на окна. Многие программы для Alto управляются только посредством мыши и этих окон. К примеру, Neptune служит для работы с содержимым локального диска. Можно удалить файл, кликнув по нему мышью, а затем нажав экранную кнопку Delete. Как только курсор перемещается в новое окно, он может изменить форму: в одном окне он выглядит как «стрелочка», а в другом — уже как «кисть».
Фотография 5e: Bravo может использовать различные шрифты (для Alto есть сотни шрифтов, от готических до эльфийских рун. Центральный абзац на дисплее отображается на греческом).
Поскольку Alto широко используется для исследований в области автоматизации делопроизводства, ему необходим хороший текстовый редактор. Bravo — это текстовый редактор и форматер. В традиции экранно-ориентированных редакторов текущее состояние пользовательского файла всегда отображается на экране. Bravo управляется командами клавиатуры и с помощью мыши. Пользователь может открывать в окнах сразу несколько файлов. Текст добавляется и удаляется с помощью курсора мыши и клавиатурных команд. Bravo поддерживает множество различных шрифтов и позволяет пользователю легко переключаться между ними. Кроме того, Bravo запоминает изменения, внесенные в документ, и позволяет пользователю отменить их.
Помимо функций редактирования текста, пользователю могут понадобиться иллюстрации. Для этого есть специальная программа, Draw.
Draw — это интерактивная программа для рисования. В ней есть множество разных инструментов для создания и редактирования изображений, «собранных» из линий, кривых и текста. Draw делит экран на несколько окон (см. Фото 6 ниже). В левой части экрана расположено меню команд и различные кисти. Сверху находится область уведомлений и ввода текстовых команд. Середина экрана — рабочая зона. Кривые можно нарисовать либо вручную, либо отметив несколько точек и позволив Draw математически достроить линии. Как только фигура готова, можно поработать с ней кистями. Это похоже на работу художников и каллиграфов: у пользователя остается простор для самовыражения. С помощью мыши и клавиатуры можно продублировать объект, повернуть его, растянуть или сжать.
Фото 6а. Использование программы Draw: точки размещаются курсором, а кривые и линии дорисовываются программой.
Фото 6b. Использование программы Draw. Линии могут быть «нарисованы» различными «кистями» (курсор изменился на маленькую кисть).
Фото 6с: Использование программы Draw, пунктирные линии создаются с помощью курсора-ножниц.
Фото 6d. Использование программы Draw: можно математически манипулировать изображением. Новую фигуру можно создать путем переворачивания, наклона или растяжения копии оригинала.
Сеть
Каждому Alto назначается Ethernet-адрес, который однозначно идентифицирует его в сети. Стандартный адрес, например, 50#100, большинству людей ни о чем не говорит. Поэтому каждому Alto присваивается собственное, запоминающееся имя. Например, компьютеры Alto в Стэнфорде названы в честь рек и гор штата Калифорния. Alto в CMU названы в честь драгоценных камней, а Alto в самой Xerox — в честь выдающихся людей. В результате получаются такие интересные имена, как Cypress, Turquoise или Machiavelli. Их гораздо легче запомнить, чем условный 50#100.
Сети Alto не состоят только из персональных компьютеров. К Ethernet-сети могут быть подключены и другие виды устройств, например, серверы.
Серверы — это компьютеры Alto «без пользователя», имеющие свою узкую задачу. Например, сервер может быть подключен к принтеру, и печать файла будет состоять из отправки соответствующих сообщений на сервер печати. Другим распространенным типом серверов является файловый сервер. Эти машины поддерживают очень большие диски и являются репозиториями для программ и файлов, которые слишком велики или слишком редко используются, чтобы их хранить на обычных машинах. Стэнфордский файловый сервер называется Lassen.
К сети можно подключить коаксиальным кабелем совершенно чистый Alto с пустыми с завода накопителями, и он обзаведется полным набором ПО в считанные минуты. Alto также может быть отключен, перемещен на другой порт и снова подключен. Это не повлияет ни на производительность сети, ни на сам компьютер.
Фото 7: многопользовательская программа Trek. Эта игра полностью управляется мышью. В нижней части экрана — радар ближнего действия; выше — более мощный радар, окна навигации и управления оружием.
Существует несколько программ, использующих возможности Ethernet. Самые интересные из них — игры. Trek — многопользовательская космическая игра, управляемая преимущественно мышью (см. Фото 7).
Mazewar — еще одна многопользовательская игра, лабиринт (см. Фото 8). Уникальная особенность этих игр заключается в том, что несколько пользователей могут присоединяться к игре или выходить из нее по своему усмотрению, не влияя на других игроков. Поскольку все Alto могут одновременно прослушивать один и тот же пакет (блок информации в Ethernet), игровая программа работает не на одной координирующей машине, а сразу на всех машинах-участниках независимо.
Фото 8: Многопользовательская игра Mazewar. Любой Alto в сети может присоединиться к игре или выйти в любое время.
Взгляд в будущее
Alto можно пользоваться и автономно, но наиболее эффективная конфигурация — это группа Alto, соединенных по Ethernet. Поскольку Ethernet является локальной сетью, было разработано специальное устройство, шлюз, который позволяет локальным сетям взаимодействовать с другими сетями Ethernet или пакетными сетями других типов. Сейчас многие компании заняты разработкой сетевых схем, которые позволили бы передавать пакеты по линиям кабельного телевидения. Эти кабели в настоящее время установлены во многих домах и учреждениях, поэтому легко представить себе город будущего с «информационной сетью», аналогичной электрической сети. В сочетании с системой электронной почты (сегодня на Alto используется прототип Laurel) возможности ошеломляют.
Alto существует уже несколько лет. Однако исследования не стоят на месте, и старые технологии понемногу покрываются пылью. Новые продукты будут основываться на бесценном опыте, полученном при создании и эксплуатации Alto.
В ближайшее время стоит ожидать резкого повышения качества персональных компьютеров и появления новых способов соединять их между собой.
Но без сомнения: Alto — один из первых персональных компьютеров, который удовлетворяет потребностям и программистов, и секретарей, и бизнесменов.
Послесловие
Всего было произведено несколько тысяч компьютеров Alto. Они использовались как внутри самой Xerox, так и в нескольких крупных университетах. До масс-маркета компьютер так и не добрался. Сейчас трудно переоценить степень новаторства Xerox: сетевые возможности, необычные программные решения, форм-фактор, похожий на современный. Может показаться, что в 1973 году кто-то открыл секрет машины времени и «украл» компьютер будущего.
Xerox Alto оставил немалый след в мировой компьютерной истории. Его интерфейсу подражали лидеры рынка. Его технологии и находки применялись во множестве более новых компьютерных устройств (в 1979 году Стив Джобс попал на экскурсию в Xerox PARC, после чего незамедлительно решил воплотить увиденное в Apple II).
Прикоснуться к Alto прямо сейчас можно на этом сайте, с помощью браузерного эмулятора. Приведем несколько собственных скриншотов из игр и программ Alto. Предупреждаем, эмулятор весьма неспешен.
Также существует «стационарный» эмулятор Alto, ContrAlto, написанный на C#. Его исходный код можно найти на GitHub.
В завершение статьи поделимся несколькими скриншотами.
Аналог «Морского боя»
Игра Turkey. Картинка перемешивается при нажатии любой клавиши на клавиатуре. Управляется мышью.
Менеджер директорий Neptune
Интерфейс программы «Draw»
Увы, ни один из наших дизайнеров с Alto Draw не справился. Но было очень интересно!
Демонстрационное видео Alto 1974 года на японском