Автор: Евгений Лебеденко, 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, стараются доказать, что они способны составить конкуренцию архитектуре современных операционных систем и предоставить пользователям надёжную и предсказуемую среду исполнения их программ.
Наборы системной логики для процессоров Intel
Автор: Олег Нечай
Опубликовано 23 июня 2011 года
Новая архитектура потребовала и новой логики, к тому же чипы Sandy Bridge рассчитаны на установку в собственный разъём LGA1155 и несовместимы с сокетами для предыдущего поколения Core на базе микроархитектуры Nehalem.
В настоящее время на рынке представлено семь наборов системной логики для линейки Sandy Bridge: Intel B65 Express, H61 Express, H67 Express, P67 Express, Q65 Express, Q67 Express и Z68 Express. Первыми на рынке появились системные платы на чипсетах H67 и P67, чуть позже были выпущены другие модификации, а самым "молодым" стал флагманский Z68.
С чипсетами Cougar Point первых выпусков (ревизия B2) связана неприятная история: из-за обнаруженного в них дефекта Intel была вынуждена приостановить поставки буквально через месяц после их начала. Дело в том, что в силу конструктивного недостатка со временем в таких чипсетах могли выходить из строя все порты SATA-II, к которым подключаются жёсткие диски, твёрдотельные и оптические накопители. При этом сохранялась работоспособность портов SATA-III, которых в чипсетах шестой серии не более двух. К чести Intel, компания оперативно признала проблему и выпустила модернизированные чипсеты (ревизия B3), свободные от этого дефекта. Тем не менее весьма большие партии плат на основе дефектных H67 и P67 Express успели попасть на рынок, от чего пострадали, прежде всего, энтузиасты, выложившие немалые деньги за "горячую" новинку.
Как и в случае с пятидесятой серией, шестидесятая представляет собой не набор микросхем, а один-единственный чип, выполняющий функцию "южного моста", то есть служащий для подключения разнообразной периферии и носящий официальное название PCH - Platform Controller Hub ("контроллер-коммутатор платформы"). Потребность в "северном мосте" отпала, поскольку контроллеры оперативной памяти и шины PCI Express, а также графическое ядро теперь встраиваются непосредственно в процессор.
Большая часть новых "настольных" чипсетов способна работать с интегрированной в процессор графикой. Они, как и сегодняшние, относятся к серии H - это наборы H61 и H67. Единственный набор логики, игнорирующий встроенное в чип видеоядро, - это P67, рассчитанный исключительно на дискретную графику: одну карту PCI Express x16 или две видеокарты PCI Express х8.
Важное отличие новых наборов микросхем от чипсетов предыдущего поколения состоит в удвоении пропускной способности шины PCI Express 2.0 с 2,5 GT/s (гигатрансферов, то есть миллиардов пересылок в секунду) до 5,0 GT/s. Теперь максимальная скорость одной линии (слот PCI Express x1) может достигать изначально предусмотренных стандартом 500 Мб/с в каждом направлении, в сумме - 1 Гб/с. Это устраняет узкое место при подключении, например, скоростных контроллеров USB 3.0 и SATA-III через слоты PCI Express x1, ощутимое, когда скорость линии в каждом направлении ограничена 250 Мб/с.
Intel Z68 Express
Флагманский чипсет семейства, представленный позже всех остальных - 11 мая 2011 года. Микросхема объединяет в себе возможности всех моделей линейки и обладает двумя уникальными для шестидесятой серии функциями - Intel Smart Response Technology и Lucid Virtu. Чипсет предназначен для использования с процессорами среднего и высшего класса Core i5 и Core i7 для разъёма LGA1155. При этом, по данным Intel, ничто не мешает устанавливать в системные платы на базе Z68 Express и недорогие чипы Core i3, но, исходя из высокой цены подобных плат, вряд ли это будет разумным решением.