Тот (операционная система) - Thoth (operating system)

Тот
РазработчикУниверситет Ватерлоо
Написано вЭх, Зед, язык ассемблера
Семейство ОСОСРВ
Рабочее состояниеСнято с производства
изначальный выпускОктябрь 1976 г.; 44 года назад (1976-10)
Маркетинговая цельИсследование
Доступно ванглийский
Метод обновленияПерекомпиляция
ПлатформыHoneywell 6050
Данные General Nova 2
Техасские инструменты TI990 / 10
Ядро типМикроядро
ПреемникПорт, Верекс, Гармония, V

Тот это в реальном времени, передача сообщений Операционная система (ОС) разработана в Университет Ватерлоо в Ватерлоо, Онтарио Канада.

История

Тот был разработан в Университет Ватерлоо в Ватерлоо, Онтарио, Канада. Учебная программа в Ватерлоо включает Операционные системы реального времени курс и связанная с ним «Лаборатория обучения», где студенты должны развивать операционная система реального времени (RTOS) для управления модельным рельсом с несколькими поездами.[1][2][3]

В 1972 г. Язык программирования B, производная от BCPL, был доставлен в Ватерлоо Стивен С. Джонсон находясь в творческом отпуске из Bell Labs.[4] Новый язык, производный от B, названный Эх, был разработан в Ватерлоо. Первоначально Тот был написан на Э с некоторыми язык ассемблера.[5][6]

Первоначальное развитие Тота произошло на Honeywell 6050 компьютер.[7] Впервые он был запущен на Данные General Nova 2 в мае 1976 г. и был следующим портирован к Техасские инструменты TI990 / 10 в августе 1976 г.[7][5]

В октябре 1976 года Университет Ватерлоо опубликовал магистерскую диссертацию Лоуренса С. Мелена под названием «Портативный руководитель в реальном времени, Тот».[8]

Позднее был модернизирован, частично с добавлением типы данных, и переименовал Зед. Затем Тота переписали на Зеде.[9][10][11][12][13]

Одним из первых основных разработчиков Тота был Дэвид Черитон. Черитон продолжил разработку Verex ядро, а V-образная система ОПЕРАЦИОННЫЕ СИСТЕМЫ; оба находились под влиянием Тота. Еще одним ранним разработчиком был Майкл Малкольм, который позже основал Waterloo Microsystems, Network Appliances, Inc., Системы Blue Coat, и Kaliedescape, некоторые из операционных систем которых, как полагают, были созданы или находились под влиянием Тота.

В некоторых статьях ДЕМОС описывается как источник вдохновения для Тота.[14] В качестве известного уровня техники Черитон цитирует Пер Бринч Хансен с RC 4000, затем перечислил Thoth, DEMOS и Accent вместе как более поздние разработки.[15] Среди других факторов, повлиявших на развитие Тота: Мультики, Общие данные ОСРВ, Honeywell GCLS и Unix.[5] Более поздние ссылки ссылаются на Thoth как на оригинальную реализацию его конкретного использования синхронной передачи сообщений и многопроцессорной структуры программы, которые впоследствии были применены в других проектах.[16]:2

Работа над Thoth закончилась примерно в 1982 году.[17]

Функции

Thoth был разработан для достижения четырех целей:[7]

  1. Легко переносится на другое оборудование[3]
  2. Программы работают как набор недорогих, сотрудничающих одновременный процессы с эффективными межпроцессное взаимодействие (IPC)[5]
  3. Подходит для использования в реальном времени в качестве реакции системы на внешние события
  4. Адаптируемый и масштабируемый для широкого круга задач в реальном времени

Тот показывает то же самое абстрактная машина к программное обеспечение, независимо от основного физическая машина.[5][18] Эта абстрактная машина была определена с некоторыми минимальными требованиями, так что выполнение этих требований позволило включить данный компьютер в Тот домен потенциальных целей порта Тота.

Процессы, выполняемые под управлением Thoth, можно сгруппировать в «Команды». Все процессы в команде имеют общее адресное пространство и могут обмениваться данными.[19][7] Это похоже на концепцию «облегченных процессов» или потоков в других системах.[20] Процессы, не входящие в одну команду, обмениваются данными с помощью IPC Тота.

Межпроцессное взаимодействие в Thoth в основном осуществляется посредством синхронной передачи сообщений.[7] Такой подход значительно упростил организацию очереди сообщений.[21]

Хотя этот термин не был актуален, когда были написаны оригинальные статьи, Тота называли микроядро.[22][20][23]

Синхронное сообщение Тота, передающее IPC, поддается применению модели антропоморфного программирования, основанной на работе Карл Хьюитт с актерская модель, и из Болтовня.[17]

Наследие

Операционная система Thoth послужила основой или вдохновением для нескольких более поздних проектов, некоторые из которых перечислены ниже.

Академический

  • MicroNet распространяет файловый сервер Система в Университете Ватерлоо работала под управлением операционной системы WatSys, которая была похожа на Thoth и Port.[24] WatSys дебютировал в 1981 году.[25]
  • В Национальный исследовательский совет Канады был домом развития Операционная система Harmony, производная от Thoth, ориентированная на управление роботом в реальном времени.[26]
  • Черитон занял позицию в Университет Британской Колумбии, где он участвовал в разработке Verex и Distributed Verex, используя многие идеи, которые он ранее исследовал в Thoth.[12][27]
  • Позже Черитон переехал в Стэндфордский Университет в США, где он разработал V-образная система, который продолжил развитие более ранней работы с Тотом.[15][28][29][30]
  • Архитектура многопроцессорной системы Sylvan включала сопроцессор, который аппаратно реализовал примитивы синхронной передачи сообщений Тота (и расширенное рандеву Ады).[16][31]
  • Thoth и его IPC для передачи сообщений использовались для поддержки многопроцессорной программы рисования, в которой использовалась модель антропоморфного программирования.[32][33]
  • Семантика передачи сообщений Тота была частью экспериментальной версии параллельной обработки система компьютерной алгебры (CAS) Клен.[34]
  • Распределенная среда выполнения процессов и связи (PEACE) была разработана для высокопроизводительных приложений. Газета называет Тота «главной основой» проекта.[35]
  • Руководство Eindhoven Multi-Processor System (EMPS) делает упор на эффективность. Тот послужил источником вдохновения для разработки ядра EMPS.[36]
  • Экспериментальная среда интерфейса человек-компьютер, названная системой Room, была построена в порту Ватерлоо, которая была получена от Тота и использовала свои методы IPC. Документ Room ссылается на более ранние статьи Тота.[37]
  • Веб-сервер Flash, исследовательский проект с акцентом на эффективность и переносимость, как утверждается, напоминает Thoth в своем методе многопроцессного структурирования и концепции взаимодействия команд процессов посредством передачи сообщений.[38]

Коммерческий

  • Гордон Белл и Дэн Додж, разработчики QNX система передачи сообщений в реальном времени, оба работали с Тотом, когда они были студентами в Ватерлоо.[39][40][41][42]
  • AT&T Система 75 Офисная система связи контролировалась Орикс ядро и Pecos набор основных системных процессов, вместе именуемых Орикс / Пекос. В нем использовались идеи Thoth, DEMOS и внутренний проект AT&T.[43]
  • Коммерческий Порт Ватерлоо сетевая операционная система была получена от Тота.[44] Соответствующий язык Zed был обновлен и стал языком ПОРТА для порта Ватерлоо.[45][46]
  • Компания Hayes Microcomputer Products приобрела Waterloo Microsystems, провела ребрендинг и обновила продукт Waterloo Port, чтобы создать LANstep.[47][48]
  • В Ауспекс складская компания произвела Функциональное ядро ​​многопроцессорной обработки (FMK), в котором использовались концепции, впервые разработанные в Тоте.[49] В отличие от V-System и порта Ватерлоо, в FMK не было управления памятью.
  • Ранние версии Network Appliance, Inc. Операционная система устройства хранения описывается как очень похожая на Thoth.[50] ОС NetApp была написана Дэвид Хитц, который ранее был в Auspex.
  • В 1996 году компания, производящая устройства для ускорения веб-приложений CacheFlow, выпустила свой CacheOS, который был основан на Тоте.[51] В 2001 году CacheFlow был переименован. Системы Blue Coat а с добавлением механизма политик CacheOS стала Операционная система Secure Gateway (SGOS).

Рекомендации

  1. ^ "CS 452 Программирование в реальном времени". Университет Ватерлоо, Школа компьютерных наук Черитон.
  2. ^ «CS 452/652 - Программирование в реальном времени». Университет Ватерлоо, Computing Science Computing Facility.
  3. ^ а б Малькольм, Майкл (24 марта 2009 г.). «24 марта 2009 г .: серия выступлений Deloitte». Университет Ватерлоо, Институт компьютерных исследований.
  4. ^ Ричи, Деннис М. (Апрель 1993 г.). Развитие языка C (PDF). Ассоциация вычислительной техники.
  5. ^ а б c d е Черитон, Дэвид Р .; Малькольм, Майкл А .; Melen, Lawrence S .; Сагер, Гэри Р. (март 1978 г.). «Thoth, портативная операционная система реального времени (пересмотренная)» (PDF). Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  6. ^ Брага, Рейнальдо С.С. (ноябрь 1976 г.). "Эх Справочное руководство" (PDF). Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  7. ^ а б c d е Черитон, Дэвид Р .; Малькольм, Майкл А .; Melen, Lawrence S .; Сагер, Гэри Р. (февраль 1979 г.). «Тот, портативная операционная система реального времени» (PDF). Коммуникации ACM. 22 (2): 105–115. Дои:10.1145/359060.359074. S2CID  14350500.
  8. ^ Мелен, Лоуренс С. (октябрь 1976 г.). «Портативный исполнительный директор в реальном времени, Тот». Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  9. ^ Лев, Джон (октябрь 1993 г.). «Письмо из Нью-Джерси - январь 1979 года». Информационный бюллетень австралийской группы пользователей Unix. Vol. 14 нет. 5. The AUUG Inc., стр. 48–51.
  10. ^ "База данных языков программирования: Z". эпокальк. 2012.
  11. ^ Бонковски, Г. Берт; Джентльмен, В. Морвен; Малькольм, Майкл А. (май 1979 г.). "Перенос компилятора Zed" (PDF). Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  12. ^ а б Локхарт, Томас Уэйн (ноябрь 1979 г.). «Дизайн проверяемого ядра операционной системы». Университет Британской Колумбии. Цитировать журнал требует | журнал = (помощь)
  13. ^ Киннерсли, Билл (23 января 1995 г.). "Список языков: версия 2.4". ckw.phys.ncku.edu.tw.
  14. ^ Хатчинсон, Норман А. (1987). "Изумруд: объектно-ориентированный язык для распределенного программирования" (PDF). Вашингтонский университет. Цитировать журнал требует | журнал = (помощь)
  15. ^ а б Черитон, Дэвид Р. (март 1988 г.). «Распределенная система V» (PDF). Коммуникации ACM. 31 (3): 314–333. Дои:10.1145/42392.42400. S2CID  7523994.
  16. ^ а б Бурковски, Forbes J .; Clarke, Charles L.A .; Коуэн, С. Криспин; Vreugdenhil, G.J. (февраль 1995 г.). «Оценка производительности многопроцессорной архитектуры Sylvan». Университет Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  17. ^ а б Бут, Келлог С .; Шеффер, Джонатан; Джентльмен, В. Морвен (февраль 1984 г.). «Антропоморфное программирование» (PDF). Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  18. ^ Чабб, Люси (1987). «Многопроцессорная операционная система для 16-битных микрокомпьютеров». Университет продаж Нового Юга, Школа электротехники и компьютерных наук. Цитировать журнал требует | журнал = (помощь)
  19. ^ Комер, Дуглас Э .; Мансон, Стивен Б. (1988). «Эффективное межпроцессное взаимодействие с использованием общей памяти». Департамент компьютерных наук Университета Пердью. Цитировать журнал требует | журнал = (помощь)
  20. ^ а б О'Салливан, Брайан (13 августа 1996 г.). «Ответы на часто задаваемые вопросы для comp.os.research: Часть 1 из 3 - 2.2.3. История веток». Университет в Олбани, факультет компьютерных наук.
  21. ^ Fleisch, Brett D .; Co, Марк Аллан А. (апрель 1997 г.). «Микроядро рабочего места и ОС: пример». Департамент компьютерных наук Калифорнийского университета. CiteSeerX  10.1.1.46.7315. Цитировать журнал требует | журнал = (помощь)
  22. ^ Аппаву, Джонатан. «Обзор исследований по оптимизации многопроцессорных операционных систем» (PDF). Факультет компьютерных наук Бостонского университета. Цитировать журнал требует | журнал = (помощь)
  23. ^ Депутович, Александр (2011). «Другой мир - дает приложениям шанс пережить сбои ядра ОС» (PDF). Выпускник факультета компьютерных наук Университета Торонто. Цитировать журнал требует | журнал = (помощь)
  24. ^ Cowan, D. D .; Boswell, F.D .; Гроув, Т. Р. (декабрь 1984 г.). «Распределенный файловый сервер для сети персонального компьютера» (PDF). Департамент компьютерных систем Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  25. ^ Фонды, Уэс Грэм (5 августа 1983 г.). "Хронология: 1980-е: Десятилетие расширения - 1981". Университет Ватерлоо - Школа компьютерных наук Черитон.
  26. ^ Tanner, P.P .; Бакстон, В. (1985). Некоторые проблемы в разработке будущей системы управления пользовательским интерфейсом (UIMS). Системы управления пользовательским интерфейсом. Берлин. С. 67–79.
  27. ^ Бойл, Патрик Дэвид (июнь 1982). «Дизайн распределенного ядра для многопроцессорной системы». Университет Британской Колумбии, факультет компьютерных наук. Цитировать журнал требует | журнал = (помощь)
  28. ^ Теванян младший, Авадис; Рашид, Ричард Ф .; Голуб, Давид Б .; Блэк, Дэвид Л .; Купер, Эрик; Янг, Майкл В. (август 1987 г.). «Потоки Маха и ядро ​​Unix: битва за контроль». Департамент компьютерных наук Университета Карнеги-Меллона. Цитировать журнал требует | журнал = (помощь)
  29. ^ Чакраборти, Пинаки (2010). «Операционные системы для исследовательских целей - широкий обзор» (PDF). GESJ: Компьютерные науки и телекоммуникации (3): 147–160. ISSN  1512-1232.
  30. ^ Бин Шафаат, Ахмед; Сюй, Шусян (26 декабря 2017 г.). «Сравнительное исследование технологий, разработанных с точки зрения распределенных операционных систем» (PDF). Журналы AMSE: Публикация AMSE IIETA: Серия 2017: Advances B. 60 (3): 613–629.
  31. ^ Бурковски, Ф. Дж .; Cormack, G.V .; Dyment, J.D .; Пахл, Дж. К. (28 февраля 1987 г.). «Архитектура на основе сообщений для высокого параллелизма». В Хите, Майкл Т. (ред.). Мультипроцессоры Hypercube 1986. Общество промышленной и прикладной математики, США, стр. 27–37. ISBN  978-0898712094.
  32. ^ Бич, Ричард Дж .; Битти, Джон С .; Бут, Келлог С .; Plebon, Darlene A .; Фиуме, Юджин Л. (июль 1982 г.). «Послание - это среда: многопроцессное структурирование интерактивной программы рисования». Компьютерная графика. Vol. 16 нет. 3. Ассоциация вычислительной техники. С. 277–287. Дои:10.1145/965145.801292.
  33. ^ Plebon, Darlene A .; Бут, Келлог С. (1982). «Интерактивная система создания изображений» (PDF). Университет Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  34. ^ Ватт, Стивен Майкл (1985). «Ограниченный параллелизм в компьютерной алгебре» (PDF). Университет Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  35. ^ Шредер, В. «Распределенная среда выполнения процессов и связи для высокопроизводительных прикладных систем» (PDF). Technische Universität Berlin. Цитировать журнал требует | журнал = (помощь)
  36. ^ ван Дейк, Г. Дж. У. (1 января 1993 г.). «Конструкция многопроцессорного исполнительного устройства EMPS для распределенных вычислений» (PDF). Technische Universiteit Eindhoven. Цитировать журнал требует | журнал = (помощь)
  37. ^ Чан, Патрик П. (июль 1984 г.). «Рекомендации по изучению дизайна пользовательского интерфейса: модель комнаты» (PDF). Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)
  38. ^ Pai, Vivek S .; Друщель, Питер; Зваенепол, Вилли. «Flash: эффективный и портативный веб-сервер» (PDF). Департамент компьютерных наук Университета Райса. Цитировать журнал требует | журнал = (помощь)
  39. ^ «Встроенные приложения - технологии для реального мира». Проект InfraNET. 29 мая 1998 г.
  40. ^ Моррис, Джеймс Б. (февраль – апрель 1983 г.). «Мощные инструменты QNX». Журнал ПК. С. 269–297.
  41. ^ Адвани, Пракаш (14 июня 2001 г.). "Разговор с Полем Леру". FreeOS.com.
  42. ^ Оберле, Бонни (30 октября 1998 г.). "В ответ на услугу". Отпечаток. Impring Publications, Ватерлоо. п. 7.
  43. ^ Сагер, Гэри Р .; Мелбер, Джон А .; Фонг, Кеннет Т. (январь 1985 г.). «Система 75: Операционная система Oryx / Pecos». Технический журнал AT&T. Vol. 64 нет. 1. С. 251–268. Дои:10.1002 / j.1538-7305.1985.tb00431.x.
  44. ^ Коппенс, J.A.W.M (август 1988 г.). «Информационная безопасность в локальных сетях, особенно в порту Ватерлоо» (PDF). Technische Universiteit Eindhoven. Цитировать журнал требует | журнал = (помощь)
  45. ^ «Порт - (компьютерный язык)». Интернет-историческая энциклопедия языков программирования.
  46. ^ «Порт». Компьютерный словарь информационных технологий.
  47. ^ Ригни, Стив (апрель 1992 г.). "Основы LAN. Часть 2 - LANstep". Журнал ПК. п. 316.
  48. ^ Нанн, Том (24 августа 1994). «Хейс пытается разгрузить научно-исследовательский центр Китченер-Ватерлоо». Газета. Монреаль, Канада.
  49. ^ Хитц, Дэвид; Харрис, Гай; Лау, Джеймс К .; Шварц, Аллан М. (январь 1990 г.). «Использование Unix как одного из компонентов облегченного распределенного ядра для многопроцессорных файловых серверов» (PDF). Прорицание. Цитировать журнал требует | журнал = (помощь)
  50. ^ Копп, Карло (июнь 1997 г.). "Смелые маленькие тостеры?". Отраслевые публикации доктора Карло Коппса.
  51. ^ Джериан, Чарльз П. «Домашняя страница Чака - я работал в CacheFlow Inc». jerian.tripod.com.

дальнейшее чтение

  • Малькольм, Майкл А .; Стаффорд, Гэри Дж. (Сентябрь 1977 г.). "Набор для написания ассемблера Тота" (PDF). Департамент компьютерных наук Университета Ватерлоо. Цитировать журнал требует | журнал = (помощь)* Cheriton, D. R .; Мерфи, В. (сентябрь 1979 г.). "Руководство системного программиста Verex". Университет Британской Колумбии. Цитировать журнал требует | журнал = (помощь)
  • Черитон, Дэвид Р. (1979). «Разработка проверяемой операционной системы». Цитировать журнал требует | журнал = (помощь)
  • Черитон, Д. Р. (сентябрь 1980 г.). "Ядро Verex". Университет Британской Колумбии. Цитировать журнал требует | журнал = (помощь)
  • Черитон, Д. Р. (ноябрь 1981 г.). «Дизайн распределенного ядра». Материалы Национальной конференции ACM.
  • Уоллис, Питер Дж. Л. (1982). Портативное программирование. Макмиллан. ISBN  0333310365.
  • Черитон, Дэвид Р. (1982). Система Thoth: многопроцессное структурирование и переносимость. Северная Голландия. ISBN  0-444-00701-6.
  • Малькольм, Майкл Александр; Даймент, Дуг (декабрь 1983). «Опыт проектирования пользовательского интерфейса порта Ватерлоо». SIGSMALL '83: Материалы симпозиума ACM SIGSMALL 1983 года по персональным и малым компьютерам: 168–175. Дои:10.1145/800219.806664. ISBN  0897911237. S2CID  14736242.