[История IT, Старое железо] Краткая история Chaosnet
Автор
Сообщение
news_bot ®
Стаж: 6 лет 9 месяцев
Сообщений: 27286
Мы решили совершить еще один вояж в прошлое сетевых технологий. На сей раз мы поговорим о Chaosnet, специфическом сетевом протоколе, который использовался в 1970-х годах в Lisp-машинах. Исходным материалом для статьи послужила заметка на TwoBitHistory, которую мы расширили и дополнили собственными находками и иллюстрациями.
Если с помощью dig отправить к DNS запрос о каком-то сайте, например, it-grad.ru, мы получим примерно такой ответ:
$ dig it-grad.ru
В строке Answer Section содержится информация о записи типа A.
Приглядимся к полю «IN». Возможно, кто-то думает, будто «IN» — это такой предлог: it-grad.ru IN (внутри) A и имеет IP-адрес 212.116.122.3. На самом же деле «IN» значит «Internet». Это класс записи.
Возникает закономерный вопрос: а какие, собственно, еще варианты здесь могут быть? Как можно получить доступ к хосту, который находится не в Интернете? Может показаться, что IN — это вообще единственное значение, которое имеет смысл в современном мире. К тому же, если «пробить» тот же it-grad.ru и явно указать, что вы хотите получить запись с классом, отличным от IN, DNS-сервер вернет ошибку. Давайте сделаем еще один запрос и посмотрим, к чему приведет явное указание класса. Например, HS (Hesoid). Сервер вернет статус SERVFAIL.
$ dig -c HS it-grad.ru
Классы, отличные от IN, практически не используются в современном мире. Но это вовсе не означает, что их нет: например, существуют HS или CH. HS зарезервирован для использования в информационной службе Hesoid, названной в честь древнегреческого поэта. А вот класс CH зарезервирован под нужды героя статьи, Chaosnet. На текущий момент он представляет разве что историческую, мемориальную ценность.
Остальные классы DNS
Сегодня мир принадлежит TCP/IP. Этот протокол (вместе с UDP) управляет подавляющим числом сетевых подключений. Но, как видите, кое-где еще остались следы другой, давно исчезнувшей системы, и это по-своему замечательно. Что такое Chaosnet? Каким он был и кем использовался? Почему он канул в Лету? Давайте разберемся.
Всё началось в MIT
Chaosnet был создан сотрудниками лаборатории по изучению искусственного интеллекта MIT в 1970-х. Он был «сопутствующим» продуктом проекта машины, которая могла бы работать на языке программирования Lisp более эффективно, чем компьютеры общего назначения.
Lisp — это детище профессора MIT и лауреата премии Тьюринга 1971 года Джона Маккарти. Он является основоположником функционального программирования и автором термина (порицаемого в некоторых кругах) «искусственный интеллект».
Джон Маккарти собственной персоной
Самой ранней версией Lisp принято считать интерпретатор 1958 года для IBM 704. Фактически, это один из старейших актуальных языков программирования наряду с Фортраном.
Первое публичное упоминание о Lisp (версия 1) датируется 1960-м годом. А к 1962-му была готова продвинутая и усовершенствованная версия 1.5. Lisp включал в себя массу инструментов и функций, которые присутствуют в подавляющем большинстве современных языков программирования.
Это был первый язык, в котором была реализована система сборки мусора и автоматическое управление памятью. Он получил огромную популярность и любовь среди программистов, работавших над ИИ. Вот только один из известных примеров: SHRDLU, программа Терри Винограда, которая позволяла обращаться к компьютеру на естественном языке и заставлять его решать простые логические задачи. Была написана на DEC PDP-6 с использованием языков Lisp и Micro Planner.
Пример, иллюстрирующий SHRDLU
Единственной проблемой Lisp была его скорость. Простейшие операции занимали вдвое больше времени, чем в других языках, поскольку переменные проходили двойную проверку: и в процессе выполнения, и на этапе компиляции. Сборщик мусора работал более секунды на тогдашнем IBM 7090, находившемся в распоряжении MIT. Проблема производительности стояла чрезвычайно остро: ИИ-программисты строили системы, взаимодействовавшие с пользователем в реальном времени.
В конце 1970-х было решено построить специальный компьютер для Lisp с учетом всех особенностей языка. У компьютера должно было быть больше памяти и компактный набор инструкций, подходящих для Lisp. Предполагалось, что для проверки типов будет использоваться самостоятельная электрическая цепь, и это многократно ускорит работу кода. Еще одна особенность Lisp-машин состояла в том, что ни о каком разделении процессорного времени и речи быть не могло: амбициозные программы задействовали все ресурсы компьютера без остатка. Каждому пользователю «приписывался» отдельный центральный процессор. Вот как сотрудники Lisp Machine Group описывали перспективы работы с таким компьютером:
Lisp Machine — это персональный компьютер. Это значит, что процессор и основная память не разделяются между пользователями. Система состоит из пула процессоров, каждый из которых имеет собственную основную память и собственный диск. Когда пользователь входит в систему, ему назначается процессор, и он эксклюзивно использует его в течение сеанса. При выходе из системы процессор возвращается в пул и может быть использован следующим человеком. Таким образом, нет конкуренции за память, а страницы, на которые часто ссылается пользователь, остаются в ядре, и накладные расходы значительно уменьшаются.
Разумеется, понятие «персональный компьютер» в отношении Lisp-машин употребляется в несколько ином значении, чем мы привыкли теперь.
Лисп-машина
Промо-фотография терминала
Предполагалось, что пользователи будут работать не непосредственно с компьютером, а со специальными терминалами. Каждый пользователь получит выделенные мощности, а сам компьютер будет находиться в машинном зале, чтобы не докучать всему офису звуками вычислений. Процессоры будут иметь доступ к файловой системе и к периферийным устройствам, таким как принтеры, через высокоскоростную локальную сеть «с полностью распределенным управлением». Так и появился Chaosnet. Его создатели —Томас Найт (биография на русском языке) и Джек Холлоуэй.
Chaosnet одновременно являлся и «железным» стандартом, и программным протоколом. В части оборудования этот стандарт был похож на Ethernet, а программный протокол в конечном итоге и работал по Ethernet. Но в отличие от TCP/IP, предполагалось управление исключительно локальными сетями. Один из сотрудников MIT Artificial Intelligence Lab рассказывал, что при разработке Chaosnet основное внимание было уделено написанию протокола, который в пределах небольшой сети показывал бы лучшие результаты, чем его «конкуренты».
Скорость была крайне важна, поскольку Chaosnet был промежуточным звеном между процессором Lisp и файловой системой. Сетевые задержки сказались бы на скорости выполнения базовых операций. Для обеспечения максимального быстродействия за основу была взята (а в дальнейшем доработана) Network Control Program, применявшаяся тогда в Arpanet. Chaosnet, как и современный TCP/IP, использовал пакетные подтверждения сообщений, что позволило сократить общее количество пересылаемых пакетов на 30-50%.
Chaosnet также мог обойтись без алгоритмов маршрутизации, поскольку большинство хостов в сети Lisp-машин были связаны одним коротким проводом (CATV, коаксиальный кабель). Дэвид Мун, участник Lisp Machine Group писал, что схема маршрутизации Chaosnet «основана на предположении, что сеть достаточно проста и в ней существует всего несколько коротких путей. Сложные схемы здесь не нужны». В результате управляющая программа Chaosnet весила вдвое меньше, чем Network Control Program для Arpanet.
Протокол Chaosnet имел и другие особенности. Так, длина адреса составляла всего 16 бит, что вдвое меньше длины адреса IPv4. Вполне разумный подход, учитывая, что Chaosnet предназначался только для локальных сетей. Первые 8 бит указывали на подсеть, вторые — на конкретный хост.
Также Chaosnet не использовал номера портов. Вместо этого процесс, который «хотел» подключиться к другому процессу на другом компьютере, осуществлял запрос, в котором указывалось «контактное имя» цели. Зачастую — название конкретной службы. Например, один хост мог попытаться подключиться к другому хосту, используя контактное имя TELNET. Это весьма похоже на TCP: например, к порту 80 можно обратиться «по имени» HTTP.
DNS-класс CH, Chaosnet, был добавлен в DNS в 1986 году. Он заменил другой класс, CSNET (Computer Science Network). Теперь уже сложно выяснить, почему именно Chaosnet получил свое место в DNS. Существовали и другие семейства протоколов, которые почему-то не были в неё добавлены. Например, Пол Мокапетрис (Paul Mockapetris), один из главных архитекторов DNS, писал, что изначально предполагалось включить в систему доменных имен класс сетевого протокола Xerox. Но по неизвестным причинам этого не произошло. А Chaosnet, возможно, был добавлен только потому, что большая часть работы над Arpanet и Интернетом производилась в BBN Technologies. Сотрудники этой компании были тесно связаны с MIT и, вероятно, многое слышали о Chaosnet.
Поначалу Lisp-машины имели коммерческий успех и продавались Symbolics и Lisp Machines Inc. Но с течением времени надобность в них отпала. Их вытеснили микрокомпьютеры, которым по силам было работать с Lisp, но уже без специальных схем. Затем на сцену вышел TCP/IP, в котором были исправлены недоработки Arpanet, и Chaosnet потерял актуальность.
Призрак прошлого
К сожалению, информации о Chaosnet сейчас не так уж и много. RFC 675, который, по сути, является первой версией TCP/IP, был опубликован в 1974 году. Chaosnet же появился на год позже. TCP/IP в конце концов завоевал мир, а Chaosnet развития не получил. Есть вероятность, что какие-то практики Chaosnet оказали влияние на разработку TCP/IP, но никаких подтверждающих или опровергающих это фактов нет. Интересный факт: в первоначальной версии Манифеста GNU упоминается поддержка протокола Chaosnet.
Различные имплементации Chaosnet и интересные ссылки:
- Cisco;
- драйвер для Linux;
- короткий материал об использовании «отголосков» Chaosnet для хакерских нужд.
Единственным заметным следом Chaosnet в мировой паутине является класс CH DNS. Это не более, чем призрак альтернативного сетевого протокола в мире победившего TCP/IP. Забавный артефакт цифровой археологии. Но он является «живым» напоминание о том, что интернет не появился в одночасье, а TCP/IP — не единственный способ соединять компьютеры между собой.
А еще это повод задуматься над тем, что «интернет» — это далеко не самое крутое слово, которым можно было окрестить нашу глобальную коммуникационную систему.
===========
Источник:
habr.com
===========
Похожие новости:
- [История IT, Разработка под Linux, Терминология IT] Разработчики ядра Linux планируют заменить часть терминов в коде на нейтральные названия
- [IT-компании, Информационная безопасность, История IT, Терминология IT] Google просит ИБ-сообщество отказаться от терминов Black\White Hat и заменить их на нейтральные
- [IT-компании, История IT, Смартфоны] Apple проводит опрос среди владельцев iPhone по поводу использования штатных адаптеров питания
- [IT-компании, История IT, Компьютерное железо, Процессоры, Старое железо] Жизненный цикл: как Apple отказалась от PowerPC в пользу Intel (перевод)
- [Сетевые технологии, История IT] История интернета, эра фрагментации, часть 4: анархисты (перевод)
- [Звук, Старое железо] Древности: домашний минидиск и баллада о гробиках
- [*nix, C, История IT, Математика] Утерянная диссертация Денниса Ритчи (перевод)
- [История IT, Старое железо] GW-BASIC под лицензией MIT форкнут и доработан до компилируемого состояния, но работает пока не всё
- [IT-компании, История IT, Процессоры, Разработка под iOS] Разработчики получили и начали тестировать первые комплекты Developer Transition Kit с чипом Apple A12Z
- [Биографии гиков, История IT] CP/M: взлет и падение Гэри Килдалла
Теги для поиска: #_istorija_it (История IT), #_staroe_zhelezo (Старое железо), #_chaosnet, #_tcp/ip, #_lisp_mashine, #_lisp (лисп), #_dzhon_makkarti (джон маккарти), #_tomas_najt (томас найт), #_dzhek_hollouej (джек холлоуэй), #_blog_kompanii_itgrad (
Блог компании ИТ-ГРАД
), #_istorija_it (
История IT
), #_staroe_zhelezo (
Старое железо
)
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 22:27
Часовой пояс: UTC + 5
Автор | Сообщение |
---|---|
news_bot ®
Стаж: 6 лет 9 месяцев |
|
Мы решили совершить еще один вояж в прошлое сетевых технологий. На сей раз мы поговорим о Chaosnet, специфическом сетевом протоколе, который использовался в 1970-х годах в Lisp-машинах. Исходным материалом для статьи послужила заметка на TwoBitHistory, которую мы расширили и дополнили собственными находками и иллюстрациями. Если с помощью dig отправить к DNS запрос о каком-то сайте, например, it-grad.ru, мы получим примерно такой ответ: $ dig it-grad.ru
В строке Answer Section содержится информация о записи типа A. Приглядимся к полю «IN». Возможно, кто-то думает, будто «IN» — это такой предлог: it-grad.ru IN (внутри) A и имеет IP-адрес 212.116.122.3. На самом же деле «IN» значит «Internet». Это класс записи. Возникает закономерный вопрос: а какие, собственно, еще варианты здесь могут быть? Как можно получить доступ к хосту, который находится не в Интернете? Может показаться, что IN — это вообще единственное значение, которое имеет смысл в современном мире. К тому же, если «пробить» тот же it-grad.ru и явно указать, что вы хотите получить запись с классом, отличным от IN, DNS-сервер вернет ошибку. Давайте сделаем еще один запрос и посмотрим, к чему приведет явное указание класса. Например, HS (Hesoid). Сервер вернет статус SERVFAIL. $ dig -c HS it-grad.ru
Классы, отличные от IN, практически не используются в современном мире. Но это вовсе не означает, что их нет: например, существуют HS или CH. HS зарезервирован для использования в информационной службе Hesoid, названной в честь древнегреческого поэта. А вот класс CH зарезервирован под нужды героя статьи, Chaosnet. На текущий момент он представляет разве что историческую, мемориальную ценность. Остальные классы DNS Сегодня мир принадлежит TCP/IP. Этот протокол (вместе с UDP) управляет подавляющим числом сетевых подключений. Но, как видите, кое-где еще остались следы другой, давно исчезнувшей системы, и это по-своему замечательно. Что такое Chaosnet? Каким он был и кем использовался? Почему он канул в Лету? Давайте разберемся. Всё началось в MIT Chaosnet был создан сотрудниками лаборатории по изучению искусственного интеллекта MIT в 1970-х. Он был «сопутствующим» продуктом проекта машины, которая могла бы работать на языке программирования Lisp более эффективно, чем компьютеры общего назначения. Lisp — это детище профессора MIT и лауреата премии Тьюринга 1971 года Джона Маккарти. Он является основоположником функционального программирования и автором термина (порицаемого в некоторых кругах) «искусственный интеллект». Джон Маккарти собственной персоной Самой ранней версией Lisp принято считать интерпретатор 1958 года для IBM 704. Фактически, это один из старейших актуальных языков программирования наряду с Фортраном. Первое публичное упоминание о Lisp (версия 1) датируется 1960-м годом. А к 1962-му была готова продвинутая и усовершенствованная версия 1.5. Lisp включал в себя массу инструментов и функций, которые присутствуют в подавляющем большинстве современных языков программирования. Это был первый язык, в котором была реализована система сборки мусора и автоматическое управление памятью. Он получил огромную популярность и любовь среди программистов, работавших над ИИ. Вот только один из известных примеров: SHRDLU, программа Терри Винограда, которая позволяла обращаться к компьютеру на естественном языке и заставлять его решать простые логические задачи. Была написана на DEC PDP-6 с использованием языков Lisp и Micro Planner. Пример, иллюстрирующий SHRDLU Единственной проблемой Lisp была его скорость. Простейшие операции занимали вдвое больше времени, чем в других языках, поскольку переменные проходили двойную проверку: и в процессе выполнения, и на этапе компиляции. Сборщик мусора работал более секунды на тогдашнем IBM 7090, находившемся в распоряжении MIT. Проблема производительности стояла чрезвычайно остро: ИИ-программисты строили системы, взаимодействовавшие с пользователем в реальном времени. В конце 1970-х было решено построить специальный компьютер для Lisp с учетом всех особенностей языка. У компьютера должно было быть больше памяти и компактный набор инструкций, подходящих для Lisp. Предполагалось, что для проверки типов будет использоваться самостоятельная электрическая цепь, и это многократно ускорит работу кода. Еще одна особенность Lisp-машин состояла в том, что ни о каком разделении процессорного времени и речи быть не могло: амбициозные программы задействовали все ресурсы компьютера без остатка. Каждому пользователю «приписывался» отдельный центральный процессор. Вот как сотрудники Lisp Machine Group описывали перспективы работы с таким компьютером: Lisp Machine — это персональный компьютер. Это значит, что процессор и основная память не разделяются между пользователями. Система состоит из пула процессоров, каждый из которых имеет собственную основную память и собственный диск. Когда пользователь входит в систему, ему назначается процессор, и он эксклюзивно использует его в течение сеанса. При выходе из системы процессор возвращается в пул и может быть использован следующим человеком. Таким образом, нет конкуренции за память, а страницы, на которые часто ссылается пользователь, остаются в ядре, и накладные расходы значительно уменьшаются.
Лисп-машина Промо-фотография терминала Предполагалось, что пользователи будут работать не непосредственно с компьютером, а со специальными терминалами. Каждый пользователь получит выделенные мощности, а сам компьютер будет находиться в машинном зале, чтобы не докучать всему офису звуками вычислений. Процессоры будут иметь доступ к файловой системе и к периферийным устройствам, таким как принтеры, через высокоскоростную локальную сеть «с полностью распределенным управлением». Так и появился Chaosnet. Его создатели —Томас Найт (биография на русском языке) и Джек Холлоуэй. Chaosnet одновременно являлся и «железным» стандартом, и программным протоколом. В части оборудования этот стандарт был похож на Ethernet, а программный протокол в конечном итоге и работал по Ethernet. Но в отличие от TCP/IP, предполагалось управление исключительно локальными сетями. Один из сотрудников MIT Artificial Intelligence Lab рассказывал, что при разработке Chaosnet основное внимание было уделено написанию протокола, который в пределах небольшой сети показывал бы лучшие результаты, чем его «конкуренты». Скорость была крайне важна, поскольку Chaosnet был промежуточным звеном между процессором Lisp и файловой системой. Сетевые задержки сказались бы на скорости выполнения базовых операций. Для обеспечения максимального быстродействия за основу была взята (а в дальнейшем доработана) Network Control Program, применявшаяся тогда в Arpanet. Chaosnet, как и современный TCP/IP, использовал пакетные подтверждения сообщений, что позволило сократить общее количество пересылаемых пакетов на 30-50%. Chaosnet также мог обойтись без алгоритмов маршрутизации, поскольку большинство хостов в сети Lisp-машин были связаны одним коротким проводом (CATV, коаксиальный кабель). Дэвид Мун, участник Lisp Machine Group писал, что схема маршрутизации Chaosnet «основана на предположении, что сеть достаточно проста и в ней существует всего несколько коротких путей. Сложные схемы здесь не нужны». В результате управляющая программа Chaosnet весила вдвое меньше, чем Network Control Program для Arpanet. Протокол Chaosnet имел и другие особенности. Так, длина адреса составляла всего 16 бит, что вдвое меньше длины адреса IPv4. Вполне разумный подход, учитывая, что Chaosnet предназначался только для локальных сетей. Первые 8 бит указывали на подсеть, вторые — на конкретный хост. Также Chaosnet не использовал номера портов. Вместо этого процесс, который «хотел» подключиться к другому процессу на другом компьютере, осуществлял запрос, в котором указывалось «контактное имя» цели. Зачастую — название конкретной службы. Например, один хост мог попытаться подключиться к другому хосту, используя контактное имя TELNET. Это весьма похоже на TCP: например, к порту 80 можно обратиться «по имени» HTTP. DNS-класс CH, Chaosnet, был добавлен в DNS в 1986 году. Он заменил другой класс, CSNET (Computer Science Network). Теперь уже сложно выяснить, почему именно Chaosnet получил свое место в DNS. Существовали и другие семейства протоколов, которые почему-то не были в неё добавлены. Например, Пол Мокапетрис (Paul Mockapetris), один из главных архитекторов DNS, писал, что изначально предполагалось включить в систему доменных имен класс сетевого протокола Xerox. Но по неизвестным причинам этого не произошло. А Chaosnet, возможно, был добавлен только потому, что большая часть работы над Arpanet и Интернетом производилась в BBN Technologies. Сотрудники этой компании были тесно связаны с MIT и, вероятно, многое слышали о Chaosnet. Поначалу Lisp-машины имели коммерческий успех и продавались Symbolics и Lisp Machines Inc. Но с течением времени надобность в них отпала. Их вытеснили микрокомпьютеры, которым по силам было работать с Lisp, но уже без специальных схем. Затем на сцену вышел TCP/IP, в котором были исправлены недоработки Arpanet, и Chaosnet потерял актуальность. Призрак прошлого К сожалению, информации о Chaosnet сейчас не так уж и много. RFC 675, который, по сути, является первой версией TCP/IP, был опубликован в 1974 году. Chaosnet же появился на год позже. TCP/IP в конце концов завоевал мир, а Chaosnet развития не получил. Есть вероятность, что какие-то практики Chaosnet оказали влияние на разработку TCP/IP, но никаких подтверждающих или опровергающих это фактов нет. Интересный факт: в первоначальной версии Манифеста GNU упоминается поддержка протокола Chaosnet. Различные имплементации Chaosnet и интересные ссылки:
Единственным заметным следом Chaosnet в мировой паутине является класс CH DNS. Это не более, чем призрак альтернативного сетевого протокола в мире победившего TCP/IP. Забавный артефакт цифровой археологии. Но он является «живым» напоминание о том, что интернет не появился в одночасье, а TCP/IP — не единственный способ соединять компьютеры между собой. А еще это повод задуматься над тем, что «интернет» — это далеко не самое крутое слово, которым можно было окрестить нашу глобальную коммуникационную систему. =========== Источник: habr.com =========== Похожие новости:
Блог компании ИТ-ГРАД ), #_istorija_it ( История IT ), #_staroe_zhelezo ( Старое железо ) |
|
Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете голосовать в опросах
Вы не можете прикреплять файлы к сообщениям
Вы не можете скачивать файлы
Текущее время: 25-Ноя 22:27
Часовой пояс: UTC + 5