Не еще одна полностью эвристическая операционная система - Not Another Completely Heuristic Operating System

Начос
РазработчикКалифорнийский университет в Беркли
(Томас Андерсон, Уэйн А. Кристофер, Стивен Дж. Проктер)
Написано вC ++
Рабочее состояниеСнято с производства
изначальный выпуск1992; 28 лет назад (1992)
Последний релиз3.4
Последний предварительный просмотр4.0 / 1996; 24 года назад (1996)
ПлатформыАрхитектура MIPS
Ядро типМонолитный
ЛицензияРаспространение программного обеспечения Беркли
Официальный веб-сайтwww.cs.washington.edu/ дома/Том/ начос/

Не еще одна полностью эвристическая операционная система, или же Начос, является учебным программным обеспечением для преподавания курсов по операционным системам для студентов и, возможно, для выпускников. Он был разработан в Калифорнийский университет в Беркли, разработан Томасом Андерсоном и используется во многих школах по всему миру.

Первоначально написано на C ++ за MIPS, Nachos работает как пользовательский процесс в операционной системе хоста. Симулятор MIPS выполняет код для любых пользовательских программ, работающих поверх операционной системы Nachos. Порты кода Nachos существуют для различных архитектур.

Помимо кода Начос, система Начос предоставляет ряд назначений. Цель Nachos - познакомить студентов с концепциями проектирования и реализации операционных систем, требуя от них реализации значительных частей функциональности в системе Nachos.

В случае Nachos симулятор операционной системы просто означает, что вы можете запускать ОС (гостевую ОС) поверх другой (ОС хоста), аналогично Bochs /VMware. Имеется эмуляция для:

  • ЦП (ЦП MIPS)
  • Жесткий диск
  • Контроллер прерываний, таймер и прочее. другие компоненты

которые там для запуска Начо[1] пользовательские приложения. Это означает, что вы можете писать программы для Nachos, скомпилировать их с помощью настоящего компилятора (старый компилятор gcc[2] который создает код для MIPS) и запускает их. Вместо этого ядро ​​Nachos компилируется на платформу ОС хоста и, таким образом, изначально работает на ЦП ОС.

Nachos версии 3.4 уже много лет является стабильной и широко используемой версией Nachos. Начос версии 4.0 существовал как бета примерно с 1996 года.

Выполнение

В Nachos есть различные модули, реализующие функции базовой операционной системы. Функции оболочки для различных системных вызовов ядра ОС обычно реализуются аналогично Системные вызовы UNIX.[3] Различные части ОС создаются как объекты с использованием собственного кода. Например, класс Машинаиспользуется как мастер-класс моделируемой машины.[4] Он содержит различные объекты, такие как Файловая система, Процессор, Таймери т. д., которые предназначены для моделирования различных аппаратных аспектов.

Основные компоненты

NachOS Machine - Nachos имитирует машину, которая примерно соответствует архитектуре MIPS. У машины есть регистры, память и процессор. Машина Nachos / MIPS реализуется объектом Machine, экземпляр которого создается при запуске Nachos. Он содержит такие методы, как Run, ReadRegister, WriteRegister и т. Д. Он также определяет объект прерывания для обработки прерываний. В нем также реализованы таймер и статистика.

NachOS Threads - В NachOS определен класс потока. У потока есть связанное с ним состояние, которое может быть готово, запущено, заблокировано или только что создано. Объект потока имеет различные методы, такие как PutThreadToSleep, YieldCPU, ThreadFork, ThreadStackAllocate и т. Д. Каждый поток выполняется в виртуальном адресном пространстве.

Пользовательские программы NachOS - Nachos запускает пользовательские программы в собственном частном адресном пространстве. Nachos может запускать любой двоичный файл MIPS, предполагая, что он ограничивается только выполнением системных вызовов, которые понимает Nachos. В Unix файлы «a.out» хранятся в формате «coff». Начос требует, чтобы исполняемые файлы были в более простом формате «Noff». Чтобы преобразовать двоичные файлы одного формата в другой, используйте программу coff2noff.

[5]

Преемники

Поскольку Nachos не находился в активной разработке в течение нескольких лет и обладает рядом признанных недостатков (особенно в отношении переносимости: Nachos полагается на ассемблерный код MIPS и требует переноса для работы на x86 архитектура), были инициированы проекты-преемники. В 2004 г. Стэндфордский Университет созданный Pintos, система, вдохновленная начос, написанная на C и предназначен для работы на реальных x86 аппаратное обеспечение. В 2000 году Дэн Хеттена из Калифорнийского университета в Беркли портировал Начос в Ява как Nachos 5.0j, с целью сделать Nachos более портативным, более доступным для студентов и менее подверженным незначительным ошибкам в коде студентов, которые в более ранних версиях часто преобладали во время разработки студенческих проектов. Еще одна версия на основе Java была создана профессором Питером Друшелем в Университет Райса. Позже он был адаптирован профессором Юджином Старком в Университет Стоуни-Брук в 2003 г. и применялась в Операционная система курс. В Технологический университет Граца (Австрия) была внедрена система SWEB («Schon wieder ein Betriebssystem»), которая используется для обучения принципам работы операционной системы.

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

  1. ^ "Путеводитель по Начос, Университет Питтсбурга". Получено 2014-02-17.
  2. ^ «Компиляция программ C и C ++, Висконсинский университет». Получено 2014-02-17.
  3. ^ «Руководство для начинающих по начос, уровень 2: системные вызовы и исключения, Университет Линчёпинга». Получено 2014-09-09.
  4. ^ "Машинный класс в документации Nachos, Калифорнийский университет в Беркли". Получено 2014-09-09.
  5. ^ «Дорожная карта через NachOS, Университет Дьюка». Получено 2015-05-05.

внешняя ссылка