Цифровой журнал «Компьютерра» № 74 [Журнал «Компьютерра»] (fb2) читать постранично, страница - 3
[Настройки текста] [Cбросить фильтры]
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (28) »
В будущем должен быть создан специальный типизированный ассемблер TAL (Typed Assembly Language), который потребует от каждой программы доказательств её типобезопасности. Читайте далее: Система строгого режима: Microsoft Singularity (часть 2)
К оглавлению (обратно)
Система строгого режима: Microsoft Singularity (часть 2) Евгений Лебеденко, Mobi.ru
Опубликовано 23 июня 2011 годаПродолжение. Первую часть читайте здесь.
Микроядро Singularity и SIP
Singularity — микроядерная система. Весь код небольшого и тщательно проверенного на типобезопасность микроядра в большинстве сво`м написан на языке Sing# — подмножестве языка C#, специально разработанного для этой системы в Microsoft Research. Код ядра не верифицируется перед исполнением, поэтому он называется доверенным (trusted). Вообще-то в ядре есть небольшие фрагменты небезопасного кода, написанные на C++ и ассемблере, но они тщательно изолированы в уровне аппаратных абстракций HAL.Система Singularity — это микроядро, компиляторы MSIL и множество программно изолированных процессов (SIP)
Ядро содержит типичный для микроядра набор менеджеров, управляющих памятью, переключением процессов, вводом-выводом, безопасностью. К доверенному коду относится и run-time среда — компиляторы в MSIL и машинный код. Код всех запускаемых в Singularity прикладных программ, сервисов и драйверов является строго верифицируемым. Любая запускаемая программа или сервис с точки зрения Singularity является SIP — Software Isolated Process (программно изолированный процесс). Благодаря выполненной проверке типобезопасности SIP не нужно держать в «клетке» ограниченного адресного пространства. Он сам гарантирует свою лояльность — то, что будет работать только со строго определёнными объектами и данными, не нарушая целостности системы и других программ. А как же быть с межпроцессным взаимодействием? Без него в многозадачной среде никуда. Для взаимодействия SIP-ов Singularity предлагает очень надёжный механизм каналов, по которым один SIP может передавать другому сообщения и данные. Каналы в Singularity высокоскоростные и неплохо заменяют небезопасный механизм разделения данных в традиционных системах. SIP может общаться и с микроядром через специальный бинарный интерфейс ABI (Application Binary interface), с помощью которого один SIP может контролируемо повлиять на состояние другого SIP.SIP в Singularity самодостаточны. Завершив свою работу, SIP вызывает один из множества наиболее подходящих сборщиков мусора, очищая за собой память так, чтобы не повредить работе остальных SIP и системы. А как же быть с расширяемостью функций запускаемых программ? Здесь идея состоит в том, что расширения для программ тоже реализуются в виде SIPов с типобезопасным кодом. Таким образом, упрощённо архитектура Singularity — это:
- 1
- 2
- 3
- 4
- 5
- . . .
- последняя (28) »
Последние комментарии
57 минут 35 секунд назад
1 день 18 минут назад
1 день 37 минут назад
1 день 45 минут назад
1 день 47 минут назад
1 день 50 минут назад