ТРИКС (операционная система)
Разработчик | Массачусетского технологического института ( Лаборатория компьютерных наук LCS) |
---|---|
Семейство ОС | Unix-подобный |
Рабочее состояние | Исторический |
Исходная модель | Открытый исходный код |
Первоначальный выпуск | 1986 год |
Доступно в | Английский |
Платформы | НуМашине |
ядра Тип | Монолитное ядро |
По умолчанию пользовательский интерфейс | Интерфейс командной строки |
TRIX — это сетевая исследовательская операционная система, разработанная в конце 1970-х годов в Массачусетского технологического института ( Лаборатории компьютерных наук LCS) профессором Стивом Уордом и его исследовательской группой. Он работал на NuMachine и имел удаленного вызова процедур функцию встроенную в ядро , но в остальном был версию 7 Unix похож на .
Проектирование и реализация
[ редактировать ]При запуске 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 в Массачусетском технологическом институте, а не из-за каких-либо особенностей архитектуры. [ 1 ] Система была спроектирована так, чтобы ее можно было легко переносить. [ 2 ] Он был реализован в основном на C с небольшим количеством ассемблерного кода. Примитив взаимного исключения может быть перенесен на любую архитектуру с помощью атомарной инструкции проверки и установки . [ 1 ]
Попытка использования проектом GNU
[ редактировать ]Ричард Столлман упоминает в Манифесте GNU 1985 года , что «исходное ядро существует» для операционной системы GNU , «но для эмуляции Unix необходимо гораздо больше функций». [ 3 ] Это была отсылка к ядру TRIX, которое авторы TRIX решили распространять как бесплатное программное обеспечение . [ 4 ]
В своей речи в октябре 1986 года Столлман уточнил, что «ядро TRIX работает и имеет некоторую ограниченную степень совместимости с Unix, но ему нужно гораздо больше. В настоящее время оно имеет файловую систему, которая использует на диске ту же структуру, что и древняя система». Файловая система Unix делает это. Это облегчило отладку, потому что они могли настроить файлы с помощью Unix, а затем запустить TRIX, но эта файловая система не имеет никаких функций, которые, по моему мнению, необходимы». [ 5 ] Функции, которые Столлман хотел добавить (управление версиями файлов, восстановление файлов, информация о том, когда, как и где была создана резервная копия файла на ленте, атомарные обновления файлов), обычно не были связаны с Unix.
В декабре 1986 года разработчики использовали ядро TRIX в качестве основы в своей первой попытке создать ядро для GNU. В конце концов они решили, что Трикс непригодна в качестве отправной точки, прежде всего потому, что:
- он работал только на «малоизвестной дорогой коробке за 68000 », [ 4 ] и поэтому потребует портирования на другие архитектуры , и
- было решено, что микроядро Маха является лучшей базовой конструкцией для серверной операционной системы. [ нужна ссылка ] Эта вторая попытка превратилась в GNU Hurd .
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Перейти обратно: а б с д и ж г час я дж к л м н «Многопроцессорная реализация операционной системы TRIX» (PDF) . Проверено 2 июля 2012 г.
- ^ Перейти обратно: а б с д и ж г час я «TRIX: коммуникационно-ориентированная операционная система» (PDF) . Проверено 2 июля 2012 г.
- ^ «Манифест GNU» . Проверено 5 августа 2010 г.
- ^ Перейти обратно: а б Столлман, Ричард М. (январь 1987 г.). «Статус проекта GNU» . Бюллетень GNU . 1 (2). Фонд свободного программного обеспечения . Проверено 12 мая 2018 г.
- ^ «Лекция RMS в КТХ» . 30 октября 1986 г. Проверено 12 мая 2018 г.
Дальнейшее чтение
[ редактировать ]- Уорд, SA TRIX: сетевая операционная система. КОМПКОН, весна 1980 г., стр. 344–349.
Внешние ссылки
[ редактировать ]- Исходный код ядра TRIX (также можно просмотреть в Интернете )
- История Hurd на проекта GNU Project веб-сайте