Система строгого режима: Microsoft Singularity (часть 2) Евгений Лебеденко, Mobi.ru
Система строгого режима: 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 — это: микроядро, написанное на доверенном коде, трансляторы кода MSIL и компиляторы JIT (NGen), также состоящие из доверенного кода, множество SIP на основе верифицированного кода, работающие в едином адресном пространстве, каналы, связывающие SIPы, и интерфейс ABI, связывающий SIP с ядром.
В зависимости от потребностей в процессорном времени конкретного SIP, диспетчер задач Singularity предоставляет один из пяти имеющихся в его распоряжении алгоритмов планирования.
Данные SIPов хранит SIP специального типа — файловая система Boxwood, в которой файлы представлены бинарными деревьями (B-tree).
Неопределённость, связанная с установкой многочисленных объектов программы в разных частях системы, присущая традиционным операционным системам, в Singularity устраняется за счёт использования программой манифеста — метаданных, чётко описывающих её в терминах ресурсов и зависимостей между ними. На основе манифеста загрузчик программы может оценить и выявить конфликты, которые могут возникнуть при установке программы, и, при необходимости, прервать установку.
Разработчики Singularity предоставляют прикладным программистам и драйверописателям Singularity RDK, обеспечивающий среду создания и обкатки своих программ, совместимых с Singularity. Программы можно писать на массе совместимых c CLS языков, для которых Singularity поддерживает компиляторы MSIL. К ним относятся C#, F#, Perl и даже COBOL.
Очевидно, что число компиляторов MSIL для разных языков будет увеличиваться с развитием Singularity. А это означает привлечение к системе множества разработчиков. На данный момент пользовательский интерфейс Singularity весьма аскетичен и ограничивается командной строкой.
Интерфейс Singularity на данный момент весьма аскетичен. Но все необходимые для работы команды присутствуют. Тем не менее проект носит исследовательский характер, и ни о каком коммерческом его применении речи пока не идёт. Создатели Singularity сейчас стараются доказать, что надёжность и безопасность придуманного ими подхода выше, чем у традиционных операционных систем, а производительность не хуже, чем у них.
Побратимы Singularity
Архитектурные решения, реализованные в Singularity, родились не на пустом месте. На её архитектуру оказали влияние проекты таких микроядерных архитектур, как L4, Exokernel и SPIN. Однако большинство из них (кроме разве что SPIN, использующей язык Modula-3) создано на основе небезопасного кода и применяют традиционную для современных систем технологию разделения адресных пространств процессов.
Идея проверки кода на типобезопасность, реализованная в Singularity, перекликается с подобными подходами в таких проектах, как JX, JavaOS, KaffeOS (язык Java), Inferno (язык Limbo) и RMoX (язык occam-pi).
Итак, Microsoft Singularity — один из множества проектов, разрабатывающих архитектуру надёжной и безопасной операционной системы или среды исполнения, надстраиваемой над существующими системами, на основе изоляции процессов путём проверки их кода на типобезопасность. Благодаря активному развитию безопасных языков программирования и высокопроизводительных исполняющих сред этот, поначалу чисто теоретический, подход становится всё ближе к реальным коммерческим реализациям. Проекты, подобные Singularity, стараются доказать, что они способны составить конкуренцию архитектуре современных операционных систем и предоставить пользователям надёжную и предсказуемую среду исполнения их программ.
К оглавлению
Более 800 000 книг и аудиокниг! 📚
Получи 2 месяца Литрес Подписки в подарок и наслаждайся неограниченным чтением
ПОЛУЧИТЬ ПОДАРОКЧитайте также
Система строгого режима: Qubes OS Опубликовано 29 июня 2011 года
Система строгого режима: Qubes OS Опубликовано 29 июня 2011 года Известная пословица гласит о благих намерениях, которыми облицована дорога в Пекло. Однако мало кто задумывается о философском инвертировании этого изречения. Частенько чрезвычайно адские штучки
Blue Waters: петафлопсовая матрёшка Евгений Лебеденко, Mobi.ru
Blue Waters: петафлопсовая матрёшка Евгений Лебеденко, Mobi.ru Опубликовано 09 августа 2011 года Суперкомпьютеры в мире вычислительных систем сродни олигархам в человеческом обществе. Вот вроде бы такие же люди, та же анатомия и физиология, ан нет — попасть в
Система PASS: софт для шаттла Евгений Лебеденко, Mobi.ru
Система PASS: софт для шаттла Евгений Лебеденко, Mobi.ru Опубликовано 02 августа 2011 года Если отладка — процесс удаления ошибок, то программирование должно быть процессом их внесения. Э. Дейкстра Порой, после очередного зависания
Стрелы времени: история хронометрирования Евгений Лебеденко, Mobi.ru
Стрелы времени: история хронометрирования Евгений Лебеденко, Mobi.ru Опубликовано 10 января 2012 года Время. Удивительно многогранная категория, нашедшая свое место и у физиков (мера движения материи, координата четырёхмерного пространства-времени), и у
Удивительные трубки мира Евгений Лебеденко, Mobi.ru
Удивительные трубки мира Евгений Лебеденко, Mobi.ru Опубликовано 16 ноября 2011 года Люди не часто интересуются историей создания тех вещей, которыми пользуются каждый день, поэтому интересные, а порой просто поразительные открытия по большей части
"Электроника МК-85": подковать калькулятор Евгений Лебеденко, Mobi.ru
"Электроника МК-85": подковать калькулятор Евгений Лебеденко, Mobi.ru Опубликовано 17 августа 2011 года "Сюда пришли люди, которым было приятнее быть друг с другом,чем порознь, которые терпеть не могли всякого рода воскресений, потомучто в
Система строгого режима: Microsoft Singularity (часть 1) Евгений Лебеденко, Mobi.ru
Система строгого режима: Microsoft Singularity (часть 1) Евгений Лебеденко, Mobi.ru Опубликовано 21 июня 2011 года В большинстве своём современные информационные системы не очень надёжны в эксплуатации, и корень этой проблемы скрывается в самой их архитектуре. Да,
Калькулятор Mathatron: первый программируемый Евгений Лебеденко, Mobi.ru
Калькулятор Mathatron: первый программируемый Евгений Лебеденко, Mobi.ru Опубликовано 13 декабря 2011 года Порой история становления технологии напоминает спринтерский забег. В краткий промежуток времени суммируются повышенный пользовательский интерес,
Две памяти инженера Бобека Евгений Лебеденко, Mobi.ru
Две памяти инженера Бобека Евгений Лебеденко, Mobi.ru Опубликовано 13 июля 2011 года Зачастую незримый вершитель судеб во вселенной информационных технологий, отобрав шанс у одной из них, возвращает его спустя какое-то время. Мол, ну что же, тогда я был не
Две памяти инженера Бобека (часть 2) Евгений Лебеденко, Mobi.ru
Две памяти инженера Бобека (часть 2) Евгений Лебеденко, Mobi.ru Опубликовано 14 июля 2011 года Это продолжение статьи. Начало читайте здесь. Bubble memory. Укрощение строптивого... магнитного поля Неудачи с твистор памятью не сломили исследовательский
In/Out-сайдеры: кто не с нами? Евгений Лебеденко, Mobi.ru
In/Out-сайдеры: кто не с нами? Евгений Лебеденко, Mobi.ru Опубликовано 09 июня 2011 года Демонстрируя новинки, компании так и норовят покрепче прижать своих врагов. Если смотреть презентации по отдельности, то волей-неволей проникаешься аргументацией
Tertium datur: другие компьютеры Евгений Лебеденко, Mobi.ru
Tertium datur: другие компьютеры Евгений Лебеденко, Mobi.ru Опубликовано 29 декабря 2011 года "Наука умеет много гитик". Это карточное высказывание как нельзя лучше подходит к истории разработки троичных компьютеров «Сетунь». Хотя бы потому, что, создавая их,
Microsoft Bob: рабочий стол образца 1995-го Евгений Лебеденко, Mobi
Microsoft Bob: рабочий стол образца 1995-го Евгений Лебеденко, Mobi Опубликовано 01 февраля 2011 года Знаете ли вы, как зовут пса породы золотистый ретривер, который появляется, когда вы выбираете функцию поиска в Windows XP? Нет? Знакомьтесь: Ровер — заслуженный ветеран компании Microsoft. Этот
Предварительный обзор ОС Android 3.0 Honeycomb Евгений Лебеденко, Mobi
Предварительный обзор ОС Android 3.0 Honeycomb Евгений Лебеденко, Mobi Опубликовано 09 февраля 2011 годаСпустя год после выхода легендарной системы iOS 3.2, на которой заработал самый популярный планшет в мире, другой лидер рынка мобильных платформ, компания Google, пробует повторить успех
Как появилась первая игровая приставка Евгений Лебеденко, Mobi
Как появилась первая игровая приставка Евгений Лебеденко, Mobi Опубликовано 15 марта 2011 годаНынешняя битва Xbox 360, Wii и Playstation 3 — далеко не первый виток в длительной и напряжённой «гонке вооружений» индустрии компьютерных игр. Началась она ещё в семидесятые годы прошлого
Telautograph: месть Cерого кардинала Евгений Лебеденко, Mobi.ru
Telautograph: месть Cерого кардинала Евгений Лебеденко, Mobi.ru Опубликовано 03 апреля 2012 года Летним вечером 1884 года известный вашингтонский юрист Бойд Крамрайн встречался в своём доме с одноклассником по бриджпортской высшей школе Генри Беннетом.