Акцентное ядро
Эта статья включает список литературы , связанную литературу или внешние ссылки , но ее источники остаются неясными, поскольку в ней отсутствуют встроенные цитаты . ( февраль 2018 г. ) |
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 заключалась в том, что его порты идентифицировались по уникальным идентификаторам, которые назначались последовательно. Программе было просто «угадать» их, получив тем самым доступ к ресурсам компьютера, которые ей не были предоставлены. Это сделало систему Алеф довольно небезопасной.
Чтобы решить эту проблему, Accent сделал идентификатор порта внутренним только для ядра. Экземплярам открытия портов программой возвращались разные идентификаторы, хранящиеся в сопоставлении в ядре. Всякий раз, когда сообщение отправлялось ядру для доставки, оно сначала проверяло, имеет ли программа доступ к соответствующему порту, сравнивая его с таблицей сопоставления для этой программы. Угадывание номеров портов больше не работало, идентификаторы портов программы не давали представления о «настоящих» идентификаторах в ядре, и любая попытка поговорить по порту, не предоставленному явно ядром, была ошибкой. Таким образом, порты Accent представляли собой возможности , предоставляющие права на использование ресурсов в результате получения действительного идентификатора порта. Такая система возможностей, использующая специфичные для субъекта идентификаторы возможностей, называется системой C-списков .
Через несколько лет проект Accent стал выглядеть все менее интересным. В начале 1980-х годов многие считали, что будущий прирост производительности будет достигнут за счет добавления к машинам большего количества процессоров , а ядро Accent на самом деле не было способно справиться с этим. Проблема усугублялась появлением нового поколения более мощных рабочих станций, а это означало, что Accent, скорее всего, все равно придется портировать на них. Точно так же Unix превратился в операционную систему, излюбленную для экспериментальных работ, как по проектированию операционных систем, так и в качестве платформы разработки пользовательских приложений.
Чтобы учесть эти изменения, было решено завершить работу над Accent и начать заново. Новая система будет использовать систему портов Accent в ядре Unix, создав знаменитое ядро Mach .
Некоторые особенности Акцента:
- Возможности порта
- с копированием при записи виртуальной памятью Управление
- файлами Распределенное управление
- Распределенное управление процессами
- на основе сообщений Защищенное межпроцессное взаимодействие
- Возможность запуска процессов с различными наборами микрокодированных инструкций.
Ссылки
[ редактировать ]
Внешние ссылки
[ редактировать ]- Рашид, Ричард Ф .; Джордж Г. Робертсон (декабрь 1981 г.). Accent: Ядро сетевой операционной системы, ориентированное на связь (PDF) . Сосп '81. стр. 64–75. дои : 10.1145/800216.806593 . ISBN 9780897910620 . S2CID 15890135 .
- Майерс, Брэд А. . «Пользовательский интерфейс для Sapphire», « Человеческий фактор в вычислительных системах»; Обзор видеокассеты SIGCHI '85. Сан-Франциско, Калифорния. 14-18 апреля 1985 г.