целостности системы и других программ. А как же быть с межпроцессным взаимодействием? Без него в многозадачной среде никуда. Для взаимодействия 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, родились не на пустом месте. На её архитектуру оказали влияние проекты таких микроядерных архитектур, как L4, Exokernel и SPIN. Однако большинство из них (кроме разве что SPIN, использующей язык Modula-3) создано на основе небезопасного кода и применяют традиционную для современных систем технологию разделения адресных пространств процессов.
Идея проверки кода на типобезопасность, реализованная в Singularity, перекликается с подобными подходами в таких проектах, как JX, JavaOS, KaffeOS (язык Java), Inferno (язык Limbo) и RMoX (язык occam-pi).
Итак, Microsoft Singularity — один из множества проектов, разрабатывающих архитектуру надёжной и безопасной операционной системы или среды исполнения, надстраиваемой над существующими системами, на основе изоляции процессов путём проверки их кода на типобезопасность. Благодаря активному развитию безопасных языков программирования и высокопроизводительных исполняющих сред этот, поначалу чисто теоретический, подход становится всё ближе к реальным коммерческим реализациям. Проекты, подобные Singularity, стараются доказать, что они способны составить конкуренцию архитектуре современных операционных систем и предоставить пользователям надёжную и предсказуемую среду исполнения их программ.
Терралаб
Путеводитель по новым мобильным процессорам
Как и год назад, большую часть рынка мобильных центральных процессоров занимает корпорация Intel с семейством чипов Core i3/i5/i7. Однако в современных ноутбуках под этим брендом скрываются уже совсем другие чипы: в начале 2011 года они были переведены на новую микроархитектуру Sandy Bridge. Кроме того, совсем недавно AMD представила принципиально новые гибридные чипы A-Series со встроенным графическим ядром, способным конкурировать с дискретным видео. В технологическом плане ситуация на рынке заметно изменилась, так что давайте поближе присмотримся к новым мобильным решениям.