1 марта — день рождения персонального компьютера. Xerox Alto
Количество слов «первый» в статье зашкаливает.
Первая программа «Hello, World», первая игра MUD, первый шутер, первый deathmatch, первый графический интерфейс, первый «рабочий стол», первая Ethernet, первая трехкнопочная мышь, первая шариковая мышь, первая оптическая мышь, первый полностраничный монитор (full-page-sized monitor), первая многопользовательская игра… первый персональный компьютер.
Год 1973
В городе Palo Alto, в легендарной R&D лаборатории компании Xerox — PARC (Palo Alto Research Center Incorporated), 1-го марта был релиз машины, которую впоследствии назовут первым в мире персональным компьютером (не домашним компьютером, а для индивидуального пользования).
Alto был исследовательским прототипом, а не коммерческим продуктом. Предполагалось, что Alto станет серийно производимой машиной, но она так и не была поставлена на поток. Тем не менее, в общей сложности было произведено несколько тысяч Alto, большая часть которых использовалась в самом Xerox PARC и различных университетах.
Стоимость одной машины Alto оценивается от 12 000 до 40 000 долларов.
Через шесть лет после релиза Alto, его увидит Джобс и позаимствует откроет миру кучу новых фишек.
Попробуем заглянуть под капот и познакомимся с разработчиками.
Разработка компьютера началась в 1972 году с документа («Why Alto?»), написанного Батлером Лэмпсоном (который был вдохновлен концепцией Дугласа Энгельбарта oN-Line System (NLS). Дизайном занимался Чак Текер.
«Каждая компьютерная проблема решается еще одним уровнем абстракции»
В 1960-х годах Лэмпсон участвовал в проекте GENIE в Беркли, в ходе которого была разработана система распределения времени Berkeley Timesharing System для компьютера SDS 940 компании Scientific Data Systems.
В 1970-х Лэмпсон стал одним из основателей лаборатории Xerox PARC, где участвовал в разработке Alto, а так же в разработке технологий лазерной печати, сетей Ethernet, обработки текста в режиме WYSIWYG, two-phase commit protocols (2PC), Bravo, первой высокоскоростной локальной сети (LAN), разработал несколько значимых языков программирования, например, Euclid.
В 80-х годах Лэмпсон ушёл в Digital Equipment Corporation. Сейчас он работает в исследовательском отделе Майкрософт, где занимается вопросами безопасности и борьбы с пиратством. Преподаёт в Массачусетском технологическом институте.
Меморандум Лэпсона «Why Alto?»
XEROX Inter-Office MemorandumTo CSL Date December 19, 1972 From Butler Lampson Location Palo Alto
Subject Why Alto Organization PARC
1. Introduction
This memo discusses the reasons for making a substantial number (10-30) of copies of the personal computer called Alto which has been designed by Chuck Thacker and others. The original motivation for this machine was provided by Alan Kay, who needs about 15-20 ‘interim Dynabooks’ Systems for his education research. Alto has a much broader range of applications than this origin might suggest, however. I will begin by outlining its characteristics, and then go on to consider some of the many exciting uses to which Alto can be put. It turns out that there is some interaction with almost every CSL research program.
2. Characteristics
An Alto system consists of
48-64K 16-bit words of memory (plus parity and perhaps error correction).
A 10 megabyte Diablo disk which transfers one word every 7 us, rotates in 25 ms, and has a track-to-track seek of 8 ms, and worst-case seek of 70 ms.
A 901 line TV monitor whose display surface is almost exactly the size of this page. It is oriented vertically, and is designed to be driven from a bit map in the memory. It takes 32K of memory to fill the display area with a square (825×620) raster. These dots are about 1.4 mils square. It is possible to reduce their width to about 1 mil, which gives an 825×860 raster and 44.3K of memory. The square raster can display 8000 5×7 characters with descenders or 2500 beautiful proportionally-spaced characters.
An undecoded keyboard which allows the processor to determine exactly when each key is depressed or released, and a mouse or other pointing device.
A processor which executes Nova instructions at about 1.5 us/instruction, and can be extended with extra instructions suitable for interpreting Lisp, Bcpl, MPS, or whatever.
A high-bandwidth (10 MHz) communication interface whose details are not yet specified.
Optionally, a fixed-font character generator similar to the one designed and built by Doug Clark. This would save a lot of memory and would permit higher quality characters than can be done with a square raster, but adds no basically new capability. It should cost about $500.
Optionally, a Diablo printer, XGP, or other hardcopy device.
A table about 45" wide and 25" deep to house the machine and mount the display and keyboard.
Most important, a cost of about $lO.5K, which can be reduced to $9.7K by the use of a 2.5 megabyte disk. The cost is about equally split among disk, memory, and everything else. We have spent about twice as much on Maxc per 1974 CSL member.
The system is capable of doing almost any computation which a PDP-10 can do. For most problems it can deliver better performance to the user than a time-shared 10, even if the latter is lightly loaded (obvious exception: lots of floating-point computation). Furthermore, we have under development Lisp, Bcpl, and MPS systems which can run on a Nova and therefore, with slight modification, on Alto. Since most of our own future software work is expected to be done in one of these languages, most of it should be able to run on Alto.
The next paragraph shows that there should be plenty of computing power. Both Lisp and MPS will have some kind of hardware-assisted mapping, as that virtual memory size will not be a problem; a similar arrangement for Bcpl seems feasible, but has not been investigated.
A 64K Alto has as many Lisp cells as 32K of PDP-l0 memory. BBN claims to run Lisp users with an average 25K working set and a 30 ms page fault interval. Forty-two disk tracks hold 256K Lisp cells, and the average access time to a record on one of those tracks is about 32 ms, compared for 17 ms for the 10’s drum. Hence, if execution speed on Alto is half the 10 speed or less, paging will cost no more than on the 10 for Lisp programs. It is highly plausible that we can get a Lisp system on an Alto with a few specialized instructions which can deliver half the performance of a Tenex Lisp running in a 32K swap space. Comparable results can be expected for other languages.
3. Applications
All the applications considered here depend on two facts which summarize the contents of the last section:
Alto is more powerful than a VTS terminal connected to Tenex;
Alto is cheap enough that we can buy one for each member of CSL, if that should prove desirable.
a) Distributed computing. We can very easily put in an Aloha-like point-to-point packet network between Alto’s, using a coax as the ether (or microwave with a repeater on a hill for home terminals). We can then do a large variety of experiments with dozens of machines. It is easy to try experiments which depend on the independence of the participants as well as those which use specialized components which must cooperate to accomplish anything. In particular, we can set up systems in which each user has his own files and communications is done solely for the interchange of sharable information, and thus shed some light on the long-standing controversy about the merits of this scheme as against centralized files.
b) Office systems. We can run Peter’s Lisp-based NLS-competitor or the xNLS system. The computational overkill of Alto will allow us to concentrate on the capabilities of the system rather than on optimizing its performance. Information gained from this approach should complement that obtained from the multi-user xNLS experiments. It may also be possible to run these on Alto and thus escape from Nova dependency; this possibility requires further investigation.
c) Personal computing. If our theories about the utility of cheap, powerful personal computers are correct, we should be able to demonstrate them convincingly on Alto. If they are wrong, we can find out why. We should, for example, be able to satisfy heavy Lisp users such as Warren and Peter with an Alto. This would also take a big computing load away from Maxc. It should also be quite easy to simulate the hardware configuration of other proposed personal computers (e.g., different memory hierarchies) and thus to validate those designs. This is important because more compact machines will require a much larger investment in engineering development and more precise optimization of the memory system.
d) Graphics. Alto is an excellent vehicle for Bob Flegal’s graphics work, and will make the fruits of that work available to a wide community. It can’t do Dick Shoup’s stuff.
4. Competition
Alto competes with some other things we or SSL are doing. I think this is a good thing, since it encourages the proponents of both approaches to excel. Specifically;
a) VTS can do higher quality characters, has intensity control and blinking, costs half to two-thirds as much if you only want a terminal, and can take advantage of the video switch. It can’t do graphics and may suffer from the queueing problems of shared-resource systems (the controlling Nova and communications are shared). And, of course, it is only as good as the computer which uses it.
b) Maxc can compute, and for applications which use existing software, need large working sets, or do lots of multiplications, it will be better. Also, it is known to be good for Lisp, etc., while the suitability of Alto for such large systems remains unproven.
c) Novas which don’t have complex interfaces to other hardware (e.g., Toy, XGP) can be replaced by Altos. Those which do, like the Maxc Nova or, probably, the VTS Nova, are secure.
d) The implications of Alto for the local network are unclear.
Вместе с Батлером Лэмпсоном и другими выпускниками основал компанию Berkeley Computer Corporation, в которой занимался разработкой компьютерной электроники. Однако компания не имела коммерческого успеха и Текер устроился в исследовательский центр Xerox PARC.
В течение 1970-х и 80-х он стал одним из разработчиков протокола Ethernet, а также внёс большой вклад в создание первого лазерного принтера. В 1983 году Текер основал исследовательский центр компании Digital Equipment Corporation (DEC Systems Research Center), а в 1997 году участвовал в создании лаборатории Microsoft Research в Кэмбридже. После возвращения в США, Текер разрабатывал аппаратное обеспечение для планшетного компьютера Microsoft Tablet PC, основываясь на своём опыте работы над Dynabook в Xerox PARC.
«The Internet is not about technology; it’s about communication. The Internet connects people who have shared interests, ideas and needs, regardless of geography.»
Был директором в ARPA’s Information Processing Techniques Office с 1965 по 1969, основатель и руководитель Xerox PARC’s Computer Science Laboratory from с 1970 по 1983, основатель и руководитель Digital Equipment Corporation’s Systems Research Center до 1996.
Автор концепции ООП («Я придумал термин «объектно-ориентированный», и вот что я вам скажу, я не имел ввиду С++.») и ноутбука.
Кстати, Кей сказал свою знаменитую фразу «Лучший способ предсказать будущее – изобрести его» в 1971, а Dennis Gabor (Нобелевский лауреат, создатель голографии) — в 63-м. Inventing the Future (1963): «The future cannot be predicted, but futures can be invented.» (Расследование по этому поводу тут.)
Xerox Alto имел 128 КБ оперативной памяти (стоимостью $4000), расширяемой до 512 КБ, жёсткий диск со сменным картриджем на 2,5 МБ.
Дисководы
Монитор
Для вывода графической информации использовался монохромный монитор 606×808 pixels исполненный в нетрадиционной портретной ориентации.
Камень
Чип: многокристальный секционный микропроцессорное арифметико-логическое устройство (bit-slice arithmetic logic unit) на базе Texas Instruments’ 74181 chip с поддержкой микрокода (до 16 параллелбных задач с фиксированными приоритетами). 5.8 MHz CPU
Клава
64-key keyboard
Мышь
Все мыши, использовавшиеся с Alto, были трёхкнопочными. Первая мышь была механической, с двумя колёсами, поставленными перпендикулярно друг другу. Вскоре эта модель была заменена на мышь с шариком, изобретённая Биллом Инглишем. Позже, появилась оптическая мышь, сначала использовавшая белый свет, а затем — инфракрасное излучение. Кнопки на первых мышках были расположены друг над другом, а не друг рядом с другом, как это принято сейчас.
Первые программы для Alto были написаны на языке программирования BCPL (на BCPL, кстати, были написаны первая прога «Hello world» и первая MUD), затем использовался язык Mesa, который не получил широкого распространения за стенами PARC, но оказал влияние на некоторые более поздние языки, например, Modula. На клавиатуре Alto отсутствовала клавиша подчёркивание, которая была приспособлена для символа левой стрелки, который использовался в языке Mesa в качестве оператора присваивания. Эта особенность клавиатуры Alto могла быть причиной появления стиля именования идентификаторов CamelCase. Другой особенностью Alto была возможность для пользователя программировать непосредственно микрокод процессора.
Несмотря на сравнительно небольшой объём оперативной памяти, для Xerox Alto были разработаны и использовались программы с графическими меню, пиктограммами и другими элементами, ставшими привычными лишь с появлением операционных систем Mac OS и Microsoft Windows.
Bravo and Gypsy — первые WYSIWYG текстовые процессоры
Laurel and Hardy — сетевые E-mail клиенты
Markup and Draw — графические редакторы (bitmap editors)
Neptune — файловый менеджер
FTP и утилиты для чата
Games — Chess, Pinball, Othello and a Alto Trek game by Gene Ball
Sil — векторный графический редактор для интегральных микросхем и печатных плат
Officetalk экспериментальная forms-processing система
Языки программирования — BCPL, LISP, Smalltalk, Mesa, and Poplar
еще скриншоты программ
Display from the keyboard-test program:
The Alto keyboard has a separate signal line for each key and can thus tell when any number of keys are being pressed simultaneously. In the display, the black keys are being held down. The small square above the keyboard represents the mouse (see photo 4); one mouse key is also pressed.
Display of the Alto Executive, with an example of star and question-mark notation.
NetExecutive (similar to the Alto Executive, but it allows access to resources on the Ethernet.
Typical Mesa program being edited by Bravo; note the different typefonts used in the program listing.
Directory from the Neptune directory editor. The file names in black have been selected for further operations such as printing or erasure. The cursor is displayed as a cross in a circle.
Bravo’s ability to change fonts (there are hundreds of fonts for the Alto, from Gothic to Elvish Runes; the central paragraph in this display has been changed to Greek). The document in the bottom window has to been converted to the form shown in the top window.
Points are placed with the cursor, and curves and lines are filled in by the program.
Lines may be «painted» with a variety of “brushstrokes” (the cursor has changed to a small paintbrush).
Texture is given to the lines; dotted lines are created with the scissors cursor.
Picture may be mathematically manipulated; a new figure may be created by reversing, tilting, or stretching a copy of the original.
The eye represents the persona of an opponent. Any Alto on the net can join or leave the game at any time.
The Pinball game:
Flippers are actuated by the two shift keys; an Alto port can be connected to a speaker to provide bells and buzzer sounds.
The multiplayer Trek program:
This game is played entirely under mouse control. The lower portion of the screen shows a short-range sensor scan; above is the long-range display, and navigation and weapons controls.
Maze
Первый deathmatch, первый вид от «первого лица».
а так же:
Astro-roids
Chess
Galaxians
Mazewar
Missile Command
Rinky Dink (Clint Parker’s pinball program)
Space War
Скриншоты
Вот для чего нужны компы
UPD
Не успел посмотреть, но думаю что будет полезно:
2001 год. The Xerox Alto: A Personal Retrospective
Заключение
«Не сомневайтесь в том, что небольшая группа мыслящих и самоотверженных людей может изменить мир. В действительности лишь они и привносят эти изменения.» Маргарет Мид
По-моему, это безумно круто быть свидетелем (и тем более участником) создания новых и интересных штуковин. Мне повезло быть рядом с группой молодых и дерзких людей, которые создавали «Циферблат» (первое антикафе), хоть не ИТ-продукт, но все же очень драйвово и здорово. Я немного беседовал с разработчиками Cybiko, у них куча интересных историй. С удовольствием посмотрел сериал «Halt and Catch Fire». Кто знает ссылки на полезные материалы, поделитесь, а если сами принимали участие в создании нового — пишите в комменты, буду благодарен.
Вместе с компанией Edison стартуем весенний марафон публикаций.
Я постараюсь докопаться до первоисточников IT-технологий, разобраться, как мыслили и какие концепции были в головах у первопроходцев, о чем они мечтали, каким видели мир будущего. Для чего задумывались «компьютер», «сеть», «гипертекст», «усилители интеллекта», «система коллективного решения задач», какой смысл они вкладывали в эти понятия, какими инструментами хотели добиться результата.
Надеюсь, что эти материалы послужат вдохновением для тех, кто задается вопросом, как перейти «от Нуля к Единице» (создать что-то, чего раньше и в помине не было). Хочется, чтобы IT и «программирование» перестали быть просто «кодингом ради бабла», и напомнить, что они задумывались как рычаг, чтобы изменить методы ведения войны образование, способ совместной деятельности, мышления и коммуникации, как попытка решить мировые проблемы и ответить на вызовы, вставшие перед человечеством. Как-то так.