Акцентное ядро

Ядро операционной системы и предшественник Mach

Accent — это ядро ​​операционной системы , наиболее известное тем, что оно было предшественником ядра Mach . Первоначально разработанное в Университете Карнеги — Меллона (CMU), Accent находилось под влиянием ядра Aleph, разработанного в Университете Рочестера . Accent улучшает Aleph, исправляя несколько проблем и перенацеливая аппаратную поддержку на сети рабочих станций (в частности, Three Rivers PERQ ) вместо мини-компьютеров . Accent был частью проекта SPICE в CMU, который длился с 1981 по 1985 год. Разработка Accent привела непосредственно к появлению Mach, используемого в NeXTSTEP , GNU Hurd и современных операционных системах Apple, включая Mac OS и iOS .

Первоначальный проект Aleph использовал копирование данных, чтобы позволить программам общаться. Приложения могли открывать порты , что позволяло им получать данные, отправленные им другими программами. Идея заключалась в том, чтобы написать несколько серверов , которые будут контролировать ресурсы на машине, передавая данные до тех пор, пока они не достигнут конечного пользователя. В этом отношении он был похож по концепции на Unix , хотя реализация была сильно иной, используя сообщения вместо памяти. Оказалось, что это имеет ряд проблем, в частности, копирование памяти на их Data General Eclipse было очень дорогим.

В 1979 году один из инженеров Aleph, Ричард Рашид , ушел в CMU и начал работу над новой версией Aleph, которая избежала его проблем. В частности, Accent нацелился на рабочие станции с MMU , используя MMU для «копирования» больших блоков памяти с помощью отображения , что создавало видимость того, что память находится в двух разных местах. Только данные, которые были изменены той или иной программой, должны были быть физически скопированы с использованием алгоритма копирования при записи .

Чтобы понять разницу, рассмотрим две взаимодействующие программы, одна из которых передает файл другой. В Aleph данные от поставщика должны были бы копироваться по 2 Кбайт за раз (из-за особенностей Eclipse) в пользовательский процесс. В Accent данные просто «появлялись» в пользовательском процессе за счет нескольких инструкций, отправленных в MMU. Только если пользовательский процесс изменял данные, копировать что-либо требовалось, и даже в этом случае только те части данных, которые действительно изменялись.

Другая проблема в Aleph заключалась в том, что ее порты идентифицировались уникальными идентификаторами, которые назначались последовательно. Программа могла легко "угадать" их, тем самым получая доступ к ресурсам на компьютере, которые ей не были предоставлены. Это делало систему Aleph довольно небезопасной.

Чтобы решить эту проблему, Accent сделал идентификаторы портов внутренними только для ядра. Экземпляры программы, открывающей порты, возвращали разные идентификаторы, хранящиеся в сопоставлении в ядре. Всякий раз, когда сообщение отправлялось ядру для доставки, оно сначала проверяло, имеет ли программа доступ к рассматриваемому порту, сравнивая его с таблицей сопоставления для этой программы. Угадывание номеров портов больше не работало, идентификаторы портов программы не давали никаких подсказок о «реальных» идентификаторах в ядре, и любая попытка поговорить по одному из них, явно не выданных ядром, была ошибкой. Таким образом, порты Accent представляли возможности , предоставляя права на использование ресурсов в результате передачи действительного идентификатора порта. Этот вид системы возможностей, использующий идентификаторы субъекта для возможностей, называется системой C-списка .

Через несколько лет проект Accent стал выглядеть все менее и менее интересным. В начале 1980-х многие считали, что будущий прирост производительности будет достигнут за счет добавления большего количества процессоров к машинам, с чем ядро ​​Accent на самом деле не было в состоянии справиться. Проблема усугублялась тем, что появлялось новое поколение более мощных рабочих станций, а это означало, что Accent, скорее всего, придется переносить на них в любом случае. Аналогично Unix превратился в операционную систему, выбранную для экспериментальной работы, как по проектированию операционной системы, так и в качестве платформы разработки для пользовательских приложений.

Чтобы учесть эти изменения, было решено завершить работу над Accent и начать заново. Новая система будет использовать систему портов Accent в ядре Unix, создавая знаменитое ядро ​​Mach .

Некоторые особенности Accent:

Ссылки


  • Рашид, Ричард Ф.; Джордж Г. Робертсон (декабрь 1981 г.). Акцент: ядро ​​сетевой операционной системы, ориентированной на связь (PDF) . Sosp '81. стр.  64–75 . doi :10.1145/800216.806593. ISBN 9780897910620. S2CID  15890135.
  • Майерс, Брэд А. «Пользовательский интерфейс для Sapphire», Человеческий фактор в вычислительных системах; Обзор видеозаписи SIGCHI '85. Сан-Франциско, Калифорния. 14-18 апреля 1985 г.
Взято с "https://en.wikipedia.org/w/index.php?title=Accent_kernel&oldid=1259244207"