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


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

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

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

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

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

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