ТРИКС (операционная система)

Операционная система
ТРИКС
РазработчикЛаборатория компьютерных наук Массачусетского технологического института ( LCS)
Семейство ОСUnix-подобный
Рабочее состояниеИсторический
Исходная модельС открытым исходным кодом
Первоначальный выпуск1986 ; 39 лет назад ( 1986 )
Доступно вАнглийский
ПлатформыNuMachine
Тип ядраМонолитное ядро

Пользовательский интерфейс по умолчанию
Интерфейс командной строки

TRIX — это сетевая исследовательская операционная система, разработанная в конце 1970-х годов в Лаборатории компьютерных наук (LCS) Массачусетского технологического института профессором Стивом Уордом и его исследовательской группой. Она работала на NuMachine и имела встроенную в ядро ​​функциональность удаленного вызова процедур , но в остальном была аналогом Unix версии 7 .

Проектирование и реализация

При запуске NuMachine загружал одну и ту же программу на каждый ЦП в системе, передавая каждому экземпляру числовой идентификатор ЦП, на котором он работал. TRIX полагался на эту конструкцию, чтобы первый ЦП настраивал глобальные структуры данных, а затем устанавливал флаг, сигнализирующий о завершении инициализации. [1] После этого каждый экземпляр ядра мог получить доступ к глобальным данным. [1] Система также поддерживала данные, частные для каждого ЦП. [1] Доступ к файловой системе предоставлялся программой в пространстве пользователя . [1] [2]

Ядро поддерживало неименованные потоки, работающие в доменах. [1] Домен был эквивалентом процесса Unix без указателя стека [2] (каждый поток в домене имел указатель стека [2] ). Поток мог менять домены, [1] и системный планировщик перемещал потоки между ЦП, чтобы все процессоры были заняты. [1] Потоки имели доступ к одному виду примитива взаимного исключения и одному из семи приоритетов. [1] Планировщик был разработан, чтобы избежать инверсии приоритетов . [1] Программы пользовательского пространства могли создавать потоки через spawnсистемный вызов. [1]

Сборщик мусора будет периодически выявлять и освобождать неиспользуемые домены. [1]

Модель общей памяти, используемая для координации работы между различными ЦП, вызывала конфликты на шине памяти и, как известно, была источником неэффективности. [1] [2] Разработчики знали о конструкциях, которые могли бы смягчить конфликт. [2] Действительно, первоначальный дизайн TRIX использовал неблокируемый механизм передачи сообщений, [2] но «было обнаружено, что эта реализация имеет недостатки, которые часто упускаются из виду в литературе», [2] включая низкую производительность. [2]

Хотя операционная система TRIX была впервые реализована на NuMachine, это было связано с доступностью NuMachine в MIT, а не с какими-либо особенностями архитектуры. [1] Система была разработана так, чтобы ее можно было легко переносить. [2] Она была реализована в основном на языке C с небольшим количеством ассемблерного кода. Примитив взаимного исключения мог быть перенесен на любую архитектуру с помощью атомарного теста и инструкции set . [1]

Попытка использования проектом GNU

Ричард Столлман упоминает в Манифесте GNU 1985 года , что «начальное ядро ​​существует» для операционной системы GNU , «но для эмуляции Unix требуется гораздо больше функций». [3] Это была ссылка на ядро ​​TRIX, которое авторы TRIX решили распространять как свободное программное обеспечение . [4]

В своей речи в октябре 1986 года Столлман пояснил, что «ядро TRIX работает и имеет определенную ограниченную совместимость с Unix, но ему нужно гораздо больше. В настоящее время у него есть файловая система, которая использует ту же структуру на диске, что и древняя файловая система Unix. Это упростило отладку, потому что они могли настроить файлы с помощью Unix, а затем запустить TRIX, но эта файловая система не имеет ни одной из функций, которые, по моему мнению, необходимы». [5] Функции, которые Столлман хотел добавить (управление версиями файлов, восстановление удалений, информация о том, когда, как и где файл был скопирован на ленту, атомарные обновления файлов), в целом не ассоциировались с Unix.

В декабре 1986 года разработчики использовали ядро ​​TRIX в качестве основы в своей первой попытке создать ядро ​​для GNU. В конце концов они решили, что Trix непригоден в качестве отправной точки, в первую очередь потому, что:

  • он работал только на «малоизвестном, дорогом компьютере 68000 » [4] и, следовательно, требовал переноса на другие архитектуры , и
  • было решено, что микроядро Mach является лучшей базовой конструкцией для серверной операционной системы. [ необходима ссылка ] Эта вторая попытка переросла в GNU Hurd .

Смотрите также

Ссылки

  1. ^ abcdefghijklmn "Многопроцессорная реализация операционной системы TRIX" (PDF) . Получено 2012-07-02 .
  2. ^ abcdefghi "TRIX: операционная система, ориентированная на коммуникации" (PDF) . Получено 2012-07-02 .
  3. ^ "Манифест GNU" . Получено 2010-08-05 .
  4. ^ ab Stallman, Richard M. (январь 1987). "Состояние проекта GNU". Бюллетень GNU . 1 (2). Free Software Foundation . Получено 12 мая 2018 г.
  5. ^ "Лекция RMS в KTH". 1986-10-30 . Получено 2018-05-12 .

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

  • Уорд, С. А. TRIX: сетевая операционная система. COMPCON, весна 1980 г., стр. 344–349.
  • Исходный код ядра TRIX (также можно просмотреть онлайн)
  • История Hurd на веб-сайте проекта GNU
Взято с "https://en.wikipedia.org/w/index.php?title=TRIX_(операционная_система)&oldid=1212627775"