Система разделения времени Дартмута ( DTSS ) — это прекратившая свое существование операционная система, впервые разработанная в Дартмутском колледже в период с 1963 по 1964 год. [1] Это была первая успешно реализованная крупномасштабная система разделения времени , а также система, для которой был разработан язык BASIC . DTSS непрерывно развивалась в течение следующего десятилетия, была повторно реализована на нескольких поколениях компьютеров и, наконец, закрыта в 1999 году.
General Electric разработала похожую систему на основе промежуточной версии DTSS, которую они назвали Mark II. Mark II и более усовершенствованная Mark III широко использовались на их мэйнфреймах серии GE-600 и легли в основу их онлайн-сервисов . Это были крупнейшие подобные сервисы в мире на некоторое время, в конечном итоге превратившись в ориентированный на потребителя онлайн-сервис GEnie .
Профессора Джон Кемени и Томас Курц из Дартмутского колледжа приобрели компьютер Royal McBee LGP-30 примерно в 1959 году, который был запрограммирован студентами на языке ассемблера. Курц и четыре студента запрограммировали компилятор Dartmouth ALGOL 30 , реализацию языка программирования ALGOL 58 , который двое студентов, Стивен Гарланд и Энтони Кнапп, затем развили в язык SCALP (Self Contained ALgol Processor) между 1962 и 1964 годами. Кемени и первокурсник Сидни Маршалл объединились, чтобы создать DOPE (Dartmouth Oversimplified Programming Experiment) , который использовался в больших курсах для первокурсников. [2]
Курц обратился к Кемени в 1961 или 1962 году со следующим предложением: [3] все студенты Дартмута будут иметь доступ к вычислениям, они должны быть бесплатными и открытыми, и этого можно было бы достичь, создав систему разделения времени (о которой Курц узнал от коллеги Джона Маккарти из Массачусетского технологического института , который предложил: «Почему бы вам, ребята, не заняться разделением времени?»). Хотя было заявлено, что DTSS была вдохновлена системой разделения времени на основе PDP-1 в Bolt, Beranek и Newman , нет никаких доказательств, что это правда. [ необходима цитата ]
В 1962 году Кемени и Курц представили NSF предложение о разработке новой системы разделения времени (которая в конечном итоге была профинансирована в 1964 году). [4] У них было достаточно гарантий, что и Дартмут, и NSF поддержат систему, поэтому они подписали контракт с GE и начали предварительную работу в 1963 году, до того, как предложение было профинансировано. [5] В частности, они оценили компьютеры-кандидаты от Bendix , GE и IBM и остановились на системе GE-225 в паре с коммуникационным процессором DATANET-30 . Этот двухпроцессорный подход был неортодоксальным, и Кемени позже вспоминал: [6] «В то время многие эксперты в GE и других местах пытались убедить нас, что путь решения с двумя компьютерами был расточительным и неэффективным». По сути, DATANET-30 предоставлял пользовательский интерфейс и планировщик, в то время как пользовательские программы работали в GE-225.
Ее реализация началась в 1963 году студенческой группой [7] под руководством Кемени и Курца с целью предоставления всем членам колледжа легкого доступа к вычислительным мощностям. [8] Компьютеры GE-225 и DATANET-30 прибыли в феврале 1964 года. Двое студентов, Джон Макгичи и Майкл Буш, написали операционные системы для DATANET-30 и GE-225; Кемени внес свой вклад в компилятор BASIC . Система была введена в эксплуатацию в середине марта, а 1 мая 1964 года в 4:00 утра она начала работу. [9] Осенью 1964 года сотни студентов-первокурсников начали использовать систему через 20 телетайпов , с доступом в средней школе Ганновера через один дополнительный телетайп; [10] позже той осенью компьютер GE-225 был заменен на более быстрый компьютер GE-235 с минимальными проблемами. К лету 1965 года система могла поддерживать сорок пользователей одновременно. [11]
Документ Дартмута от октября 1964 года, позднее пересмотренный GE, описывает общую архитектуру DTSS: [12]
Программа в Datanet-30 разделена на две части: часть реального времени и часть резервного времени. Часть реального времени вводится через управляемое часами прерывание 110 раз в секунду для сканирования линий телетайпа. По мере завершения символов часть реального времени собирает их в сообщения и, когда встречается символ «возврат», интерпретирует сообщение. Если это строка в программе, ничего не делается. Если сообщение является командой, то устанавливается задача резервного времени для начала выполнения команды и вставляется в список резервного времени. Если времени для завершения этой настройки недостаточно, часть реального времени завершит настройку в течение следующего периода реального времени. Часть резервного времени выполняет задачи резервного времени, которые включают в себя в основном дисковые операции и определенные операции телетайпа. В части GE-235 есть резидентная система компилятора, которая действует как транслятор, и резидентная исполнительная процедура для управления операциями ввода-вывода диска и выполнения других функций. Исполнительная система позволяет одновременно использовать оборудование карт, ленточные накопители и высокоскоростной принтер во время разделения времени посредством обработки прерываний. Доступны два алгебраических языка, BASIC и ALGOL, а FORTRAN запланирован на сентябрь 1965 года. Эти однопроходные компиляторы довольно быстры, обычно требуя от 1 до 4 секунд на компиляцию.
Кемени и Курц заметили, что «любое время отклика, которое в среднем составляет более 10 секунд, разрушает иллюзию наличия собственного компьютера», поэтому дизайн DTSS делал упор на немедленную обратную связь. [13] Многие из его пользователей, таким образом, считали, что их терминал и есть компьютер [14] и что, как писал Кемени, «машина существует только для того, чтобы служить ему, и что он имеет полный контроль над всей системой». [15]
Из-за образовательных целей простота использования была приоритетом при проектировании DTSS. Он реализовал первую в мире интегрированную среду проектирования (IDE). Любая строка, набранная пользователем и начинающаяся с номера строки, добавлялась в программу, заменяя любую ранее сохраненную строку с тем же номером; все остальное воспринималось как команда и немедленно выполнялось. Строки, которые состояли только из номера строки, не сохранялись, но удаляли любую ранее сохраненную строку с тем же номером. Этот метод редактирования обеспечивал простую и легкую в использовании службу, которая позволяла использовать большое количество телетайпов в качестве терминальных устройств для системы разделения времени Дартмута.
Включены команды IDE
Пользователи часто считали эти команды частью языка BASIC, но на самом деле они были частью системы разделения времени и также использовались при подготовке программ на ALGOL [14] или FORTRAN через терминалы DTSS.
Кемени и Курц изначально надеялись, что GE вступит в исследовательское партнерство, и с этой целью Курц и студент Энтони Кнапп написали документ о предлагаемой ими конструкции системы, который они представили в офис GE в Фениксе в 1962 году. [16] Однако GE отклонила партнерство, и ее предложение Дартмуту от октября 1962 года было оформлено исключительно как коммерческая продажа. [17] Тем не менее, GE и Дартмут представили действующую систему разделения времени Дартмута в октябре 1964 года на Осенней совместной компьютерной конференции в Сан-Франциско, с тремя телетайпами, подключенными к системе Дартмута в Ганновере. [18]
С декабря 1964 по январь 1965 года два студента из Дартмута установили рабочие копии DTSS и BASIC на компьютерах GE в Фениксе. В начале 1965 года GE начала рекламировать услуги разделения времени на своей системе GE-265 (GE 235 + DATANET 30), включая BASIC и Dartmouth Algol, [19] позже переименовав ее в систему разделения времени GE Mark I. [20] В течение следующих нескольких лет GE открыла 25 компьютерных центров в Соединенных Штатах и других странах, обслуживая более пятидесяти тысяч пользователей. [21]
В коллекции корпоративных историй Музея компьютерной истории история Mark I компании GE описывается следующим образом: [22]
С 1966 по 1968 год DTSS была повторно реализована на GE 635 , [4] по-прежнему используя DATANET-30 для управления терминалом. Система GE 635 была поставлена в ноябре 1966 года. К октябрю 1967 года она предоставляла услуги на основе программного обеспечения Phase I, совместно разработанного Dartmouth и GE, которое GE впоследствии продавала как систему GE Mark II. [20] Параллельно с этой работой в 1967 году Dartmouth приступил к разработке Phase II под руководством профессора Джона Кемени, с программированием, выполненным студентами и преподавателями. Phase II системы разделения времени Dartmouth заменила Phase I 1 апреля 1969 года в Dartmouth. [20]
Как было описано в 1969 году, на новую архитектуру DTSS повлияли три критерия: [23]
Эта новая версия полностью отличалась внутренне от более ранней DTSS, но предоставляла почти идентичный пользовательский интерфейс для обеспечения плавного перехода для пользователей и учебных материалов. Версия 635 обеспечивала интерактивное разделение времени для почти 300 одновременных пользователей в 1970-х годах, очень большое число в то время, и работала на одиннадцати коммерческих и академических сайтах в США, Канаде и Европе. [24] По мере развития в 1970-х годах более поздние версии перешли на мэйнфреймы Honeywell серии 6000 (1973) и коммуникационные процессоры Honeywell 716 (1974). [25] В 1976 году система GE-635 была заменена компьютером Honeywell 66/40A. Она оставалась в эксплуатации до конца 1999 года. [26]
DTSS версии 2 включала новую форму межпроцессного взаимодействия, называемую «файлами связи». Они значительно предшествовали конвейерам Unix , поскольку проектные документы относят их концептуальное происхождение к 1967 году [27] и были кратко описаны на конференции 1969 года:
Файлы связи поддерживали операции чтения, записи и закрытия, а также синхронную и асинхронную передачу данных, произвольный доступ, запросы статуса, внеполосную сигнализацию, сообщения об ошибках и управление доступом, при этом точная семантика каждой операции определялась главным процессом. Как отмечает Дуглас Макилрой : «В этом [файлы связи] были больше похожи на протокол 9P Plan 9 , чем на привычный IO». [28] Заметным применением файлов связи была поддержка многопользовательских конференций, которые вели себя как телефонные конференции и были реализованы полностью как прикладные программы пользовательского пространства. [29]
Как упоминалось выше, Hanover High School была подключена к DTSS с самого начала системы. В течение следующего десятилетия многие другие средние школы и колледжи были подключены к DTSS через сеть Kiewit, названную в честь Питера Кивита, донора фондов для Kiewit Computation Center, в котором размещались компьютеры и персонал DTSS. Эти школы подключались к DTSS через один или несколько телетайпов, модемов и коммутируемых телефонных линий. [30] Учащиеся Дартмута имели бесплатный, неограниченный доступ к DTSS, но у учащихся старших классов были квоты от 40 до 72 часов терминального доступа каждую неделю, а пользователи колледжей платили за использование компьютера. [31] Дартмут проводил активные программы по вовлечению и обучению учителей старших классов использованию вычислений в своих курсах.
К 1967 году к сети Kiewit присоединились следующие средние школы: Hanover High School, The Holderness School , Mascoma Valley Regional High School , Kimball Union Academy , Mount Hermon School , Phillips Andover Academy , Phillips Exeter Academy , St. Paul's School и Vermont Academy . [32] Эта группа расширилась в рамках проекта Dartmouth Secondary School Project, финансируемого NSF в 1967–1968 годах, в который вошли следующие средние школы Новой Англии: Cape Elizabeth High School , Concord High School , Hartford High School (Vermont), Keene High School , Lebanon High School , Loomis School , Manchester Central High School , Rutland High School , St. Johnsbury Academy , South Portland High School и Timberlane High School . [33]
С 1968 по 1970 год Дартмут добавил несколько колледжей в сеть Kiewit через свой региональный консорциум колледжей. Они включали: Bates College, Berkshire Community College , Bowdoin College , Colby Junior College , Middlebury College , Mount Holyoke College , New England College , Norwich University , the University of Vermont и Vermont Technical College . [34]
К 1971 году сеть Kiewit объединила 30 средних школ и 20 колледжей в Новой Англии, Нью-Йорке и Нью-Джерси. [35] В то время DTSS поддерживала более 30 000 пользователей, из которых только 3 000 были в Дартмутском колледже. [35] К 1973 году сеть Kiewit расширилась, включив школы в Иллинойсе, Мичигане, северной части штата Нью-Йорк, Огайо и Монреале, Канада . [36]
Ни один студент в Дартмуте не боится машины. После короткого периода за консолью, когда студент может сыграть в футбол или написать несколько простых программ, у него складывается совсем другое отношение. Страх и таинственность компьютера внезапно исчезают.
— Кемени, 1971 [15]
По состоянию на 1971 год [обновлять]57% использования DTSS приходилось на курсы и 16% на исследования. [15] Кемени и Курц намеревались использовать DTSS для студентов технических и нетехнических специальностей. Они организовали второй триместр занятий по математике для первокурсников, чтобы включить требование по написанию и отладке четырех программ Dartmouth BASIC. К 1968 году более 80% студентов Дартмута имели опыт программирования. 80 занятий включали «официальное» использование компьютера, в том числе по инженерии, классике, географии, социологии и испанскому языку; [13] то, что студенты Школы бизнеса Tuck и социальных наук, а не математики или инженерии, были самыми активными пользователями, удивило Кемени. К 1972 году 90% студентов имели опыт работы с компьютером; поскольку преподаватели знали, что студенты знакомы с DTSS, его использование стало обычной частью многих курсов. [37] Опрос 1975 года показал, что 29% преподавателей использовали компьютер на курсах, и 73% студентов были зачислены на них, 43% преподавателей использовали его в исследованиях, и 45% преподавателей написали компьютерную программу. К тому году администрация университета использовала 28% ресурсов разделения времени, а студенты — 20%, с регистратором и офисом по размещению среди пользователей. [38]
27% использования DTSS по состоянию на 1971 год [обновлять]приходилось на повседневное использование и развлечения, что, по заявлению университета, «ни в коем случае не считается легкомысленным», поскольку это был приятный способ для пользователей познакомиться с компьютером и не бояться его. [15] [37] Библиотека из сотен программ включала, как сообщали Кемени и Курц, « множество игр ». [13] [37] Они были довольны широким распространением DTSS среди преподавателей и тем, что многие студенты продолжали использовать систему после того, как в этом отпала необходимость. Кемени — к тому времени президент университета — написал в брошюре 1971 года, описывая систему, что так же, как студент может войти в Мемориальную библиотеку Бейкера и взять книгу, не спрашивая разрешения или не объясняя своей цели, «любой студент может зайти в Вычислительный центр Кивита, сесть за консоль и использовать систему разделения времени. Никто не спросит, решает ли он серьезную исследовательскую задачу, делает ли свою домашнюю работу простым способом, играет ли в футбол или пишет письмо своей девушке». [15] [39] [37] К 1972 году футбольная симуляция поддерживала одновременную игру лицом к лицу в качестве многопользовательской видеоигры . [37] Расположение Кивита рядом с Дартмутским колледжем Греческие организации сделали его популярным местом для общения; [31] студенты часто приводили с собой друзей в Вычислительный центр, как для игр, так и для демонстрации собственных программ. [37]
К 1967–68 учебному году, в дополнение к 2600 пользователям Дартмута, 5550 человек в десяти университетах и 23 средних школах получили доступ к DTSS. [13] У Кемени был терминал дома, и как президент он установил один в своем офисе. [40] К началу 1970-х годов в кампусе было более 150 терминалов в 25 зданиях, [37] включая переносные устройства для пациентов в лазарете кампуса. Около 2000 пользователей входили в DTSS каждый день; 80% студентов и 70% преподавателей использовали систему каждый год. Дартмутская образовательная сеть с разделением времени за пределами кампуса включала пользователей с 79 терминалами в 30 средних школах и 20 университетах, включая Middlebury College , Phillips Andover , Mount Holyoke College , Goddard College , United States Merchant Marine Academy , United States Naval Academy , Bates College , Dartmouth Club of New York и филиал Dartmouth в Джерси-Сити, штат Нью-Джерси , которые делились DTSS с жителями Дартмута. [15] Система позволяла пользователям обмениваться сообщениями типа электронной почты и общаться в режиме реального времени с помощью предшественника программы Unix Talk .
Хотя в DTSS было доступно несколько языков, по состоянию на 1972 год [обновлять]98% программ были написаны на Dartmouth BASIC. [37] Поскольку BASIC не менялся, система оставалась совместимой со старыми приложениями; Кемени сообщил в 1974 году, что программы, написанные им в 1964 году, по-прежнему будут работать. [14] К 1980 году поддерживаемые языки и системы включали: [41]
В 2000 году был предпринят проект по воссозданию системы DTSS на симуляторе, в результате чего DTSS теперь доступна для систем Microsoft Windows и для компьютера Apple Macintosh . [42]