Microsoft делится подробностями о том, что будет после Windows


В продолжение предыдущей статьи о параллельных вычислениях в Windows 7 и Windows 7 Server предлагаем вашему вниманию новость с подробным анализом информации о Midori, созданной на базе управляемого кода. В чем преимущества и недостатки Midori, куда она нас приведет и как она будет выглядеть? Ответы на эти вопросы мы попытаемся дать в этой новости.

Многие уже слышали о том, что Microsoft развивает компонентную ОС, известную под кодовым именем Midori, архитектура которой была создана с нуля, чтобы решить существующие проблемы, которые простым развитием нынешней технологии не решить. Специалисты нашего издания изучили внутренние документы Microsoft, которые раскрывают детали предполагаемого дизайна Midori, которая является веб-ориентированной ОС.

Midori - ответвление от проекта Microsoft Research под названием Singularity, библиотеки и инструменты которой созданы на полностью управляемом коде. Midori разработана, чтобы запускаться как основная ОС (на x86, x64 и ARM процессорах) в гипервизоре Hyper-V или даже как процесс Windows.

Согласно выпущенному отчету, Эрик Раддер (Eric Rudder), главный вице-президент по технической стратегии Microsoft и бывший представитель технического персонала Билла Гейтса (Bill Gates), занимается развитием данной разработки. Раддер занимает должность главного вице-президента группы Servers and Tools с 2005 года.

"Звучит вполне правдоподобно - до меня доходили слухи, что у Раддера в разработке находится ОС" - заявил Роб Хелм (Rob Helm), директор по исследованиям в Directions on Microsoft. Он признал, что, возможно, проект является чисто исследовательским, но, вероятно, уровнем выше, чем исследования Microsoft Research.

Одна из целей Microsoft - предоставить приложениям Midori возможность сосуществовать и взаимодействовать с существующими приложениями Windows, а также предоставить пути миграции. Midori создается с нуля, чтобы акцентировать внимание на том, как изменилась компьютерная индустрия с тех пор, как инженеры Microsoft впервые разработали Windows: тогда не было Интернета в том смысле, в котором мы привыкли видеть его сегодня, компьютер был единственным устройством у пользователя, а параллелизм был лишь темой для исследований.

Сегодня пользователи используют множество разнообразных устройств, получают и используют ресурсы удаленно, а приложения, которые они сегодня используют, являются смесью локальных и удаленных компонентов и служб. Поэтому Midori будет концентрироваться на параллелизме как локальных, так и удаленных приложений.

Согласно документации, Midori будет создана с использованием только асинхронной архитектуры, которая будет создана для распараллеливания задач и параллельного использования локальных и удаленных ресурсов с моделью распределенных приложений, основанной на компонентах и управляемой данными, а также динамическим управлением питанием и другими ресурсами.

По дизайну Midori относится к параллелизму как к принципу ядра, что даже больше того, чего пытается добиться группа Microsoft Robotics Group, заявил Тренди Тровэр (Tandy Trower), заявил менеджер Microsoft Robotics Group.

Документация Midori предсказывает появление приложений, которые будут работать в разнообразных топологиях: от топологий клиент-сервер и звезда и до p2p-сетей и cloud-центрах обработки данных. Такие топологии представляют из себя разнородные сети, где одинаковые возможности могут быть использованы в разных местах.

Чтобы эффективно распространять приложения между узлами, в Midori будет представлена модель высокоуровневых приложений, которые абстрагируются от деталей физических компьютеров и даже процессоров. Использование данной модели, известной как Asynchronous Promise Architecture, будет возможно как для распределенных, так и локальных параллельных слоев.

Midori будет предоставлять возможность для распределенного параллелизма или cloud-вычислений, то есть когда компоненты приложений существуют в центрах обработки данных. Это потребует проведения работ в трех областях: техники исполнения, стека платформы и программной модели, которая позволит выдержать потери, прерывающиеся соединения и латентность. В таком сценарии службы операционной системы также будут предоставляться приложению силами ОС или будут обнаружены в доверенном распределенном приложении.

Как и в случае с локальным параллелизмом, Midori будет иметь программную модель, стек платформы и техники исполнения, которые призваны помочь разработчикам создавать приложения, которые смогут более безопасно и эффективно использовать большее количество аппаратных потоков, чем реально возможно в данный момент времени. В случае локального параллелизма элементы взаимодействуют между собой с помощью распределяемой памяти, что является серьезной разницей в случае распределенных приложений, заявил в интервью известный инженер Microsoft Джон Манфределли (John Manferdelli).

"Обыкновенные разработчики нуждаются в программной модели и модели приложений, которые способны распределять обработку данных между сильно распараллеленными устройствами. Даже с сегодняшними четырехядерными процессорами Intel вам необходимо иметь в команде специалиста по данным процессорам, чтобы использовать все их преимущества" - заявил аналитик Forrester Research Джеффри Хаммонд (Jeffrey Hammond) в своем электронном письме.


Программирование в Midori
Программная модель Midori будет плотно связана с управлением состоянием, что, как признает в своей документации сама Microsoft, является проблемой Windows, благодаря переходу API, приложений и разработчиков на принудительную модель.

Другими целями являются устранение динамической загрузки и внутрипроцессных расширений; разработка модели отказов основывается на надежных транзакциях, так что система понимает какой именно процесс перегружен каскадным падением, и как заново запустить расчеты; а также будет иметь стандартный способ взаимодействия с латентностью, асинхронным поведением и отменой в стеке.

Хаммонд заявляет, что ликвидация динамической загрузки и внутрипроцессных расширений внушает беспокойство. "Смею предположить, что ликвидация динамической загрузки не помешает исполнению динамического языка в виртуализированных интерпретаторах. Microsoft, добавил Хаммонд, должна "чётко дать понять, что ограничение динамизма на уровне ОС не повлияет на динамизм на программном уровне".

Программная модель Midori будет особенно полезна для сервисно-ориентированных архитектур, что позволит реализовать разложение приложений на службы, которые могут быть распределены между разными ярусами.

Хаммонд заявил, что перенос SOA в рабочий цикл имеет смысл, так как это позволит избавиться от определенной промежуточной сложности. "Почему среднестатистический разработчик не должен начать думать в рамках простых асинхронных служб? В конце концов, именно этот путь миграции мы наблюдаем в Интернете" - заявил Хаммонд.

Учитывая возможную связь со сложной программной инициативой Microsoft Oslo, то данная программная модель будет зависеть от метаданных, цель которой состоит в более надежном управлении приложениями.

"Это позволит легко переориентировать современные инструменты разработки, тогда как большая часть сложностей будет спрятана от использующего данный инструмент разработчика. Мы считаем, что декларативное программирование заменит императивное программирование на уровне ОС" - заявил Хаммонд. Он отметил, что если Microsoft будет держать Oslo на первом месте, то у компании дела будут идти намного легче, когда начнется переход на приложения Midori или гибридные приложения.

Документация Midori показывает, что предложенная ОС будет иметь неблокируемую объектно-ориентированную структуру API. Это будет основой постоянства объекта после того, как он будет создан.

На презентационном уровне Microsoft делает очень четкую разницу с существующей моделью Windows GUI, в которой приложения должны обновлять свое окно только в одном потоке, а связанные с этим проблемы влияют на стабильность ОС и усложняют написание мультипотоковых приложений.

Документация Midori показывает, что в компании еще не решили, какие абстракции пользовательского интерфейса могут быть использованы в случае, когда приложение запущено с разных источников, или как скомбинировать лучшие качества насыщенных веб-приложений (от англ. rich client applications) и просто веб-приложений.

"Многие из этих проблем были решены, по крайней мере, частично, благодаря идеям передачи пакетов с их промежуточной буферизацией и синхронизацией сообщений. Google Gears, Adobe AIR и даже мобильные ОС, поддерживающие такие технологии, как SMS, могут обрабатывать случайные соединения. Почему данная функциональность не может быть встроена в коммутационные протоколы ядра ОС, а особенно если они асинхронны по умолчанию?" - задается вопросом Хаммонд.

Приложения для Midori должны будут создаваться на языках семейства .NET, которые будут компилироваться во внутренний код процессора с помощью компилятора Bartok и системы поддержки исполнения программ, которая в данный момент существует как проект Microsoft Search. Компилятор Bartok может проверять соответствия типов кодов машинных программ в поисках ошибок программирования благодаря тому, что он использует промежуточный тип языка программирования, заявляет компания.

Цель Microsoft - вынудить разработчиков создавать приложения, которые будут иметь правильную структуру, а это обещает поднять общую безопасность ОС. Использование языков семейства .NET в Midori позволит создать новую и более безопасную модель программирования с высокоуровневым обоснованием, предсказывает Ларри О`Браен (Larry O’Brien), независимый аналитик и консультант, автор колонки Windows & .NET Watch в SD Times.

Еще одним преимуществом использования языков .NET является перераспределение нагрузок. "Совсем маленький компилятор или среда исполнения смогут переместить расчеты на графический процессор или распределить их между ядрами" - объясняет О`Браен.

Однако О`Браен предсказывает, что некоторая часть бремени по реализации данной работы может лечь на плечи разработчиков. В документации Midori слегка двусмысленно сказано, что ожидается, что приложения будут "содержать достаточно скрытого параллелизма". Реакцией О`Браен на эту фразу был вопрос "В мире, где законы Мура не влияют на скорость обработки индивидуальных компонентов, непонятно откуда берутся такие предположения и на чем они основаны".

Дизайн Midori будет включать в себя абстракции безопасного типа, основанные на языках .NET, заявлено в документации, чтобы предоставить системе бинарный интерфейс, который позволит убрать существующий разрыв между операционной системой и средой исполнения виртуальной машины.

Набор абстракций будет включать в себя целый класс ошибок программирования, которые будут являться результатом неправильной арифметики с адресными указателями, что позволит изменять границы между привилегированным и непривилегированным кодом, а также предоставлять анализ и контрольно-измерительные возможности для универсальных приложений, заявляет Microsoft.

Использование набора абстракций, заявляет Хаммонд, "отражает реалии нынешнего программирования: основная масса профессиональных разработчиков, особенно в области IT и интернета, не используют низкоуровневые конструкции. Если вы не являетесь разработчиком игр, независимым разработчиком ПО, или системным программистом, то реальной нужды в расчетах с указателем нет".

Хаммонд считает, что для Microsoft было бы выгодно создать модель программирования, которую бы могли понять простые смертные, примерно как в первые дни существования Win32, когда на свет появился Visual Basic.

Даже несмотря на то, что безопасность памяти и типов глубоко интегрирована в дизайн Midori, Microsoft все еще предстоит определить, насколько глубоко в ядро сможет внедряться среда исполнения Bartok, или, как возможный альтернативный вариант, может быть, позволит некоторым неуправляемым процессам полагаться на аппаратные адресные пространства Midori.

Компания также признала, что безопасность потоков остается труднодостижимой вещью, и занимается изучением транзакционной памяти как возможным вариантом. О`Браен, однако, отмечает, что в данной программной модели есть большая неуверенность. "С одной стороны фраза "большие возможности для поддержания постоянства", если говорить формально, имеет достаточно большое влияние, но, дальше по тексту мы видим, что "безопасность потоков остается труднодостижимой", и подробный список вещей, которые могут привести к решению данной проблемы" - заявил Хаммонд.

Обратная совместимость со старыми приложениями и аппаратным обеспечением также была серьезно обдумана. Несколько компонентов Midori могут работать в Windows уже сегодня.


Фундаментальные основы
Для Midori в Microsoft планируют (в отличие от Windows), использовать компонентизацию с самого начала, чтобы достичь большей производительности и безопасности. Midori будет иметь очень серьезную изоляцию границ и принудительные связи между компонентами, чтобы гарантировать, что обслуживание одного компонента не станет причиной сбоя другого.

На самом базовом уровне Midori имеет два отдельных слоя ядра: микроядро, содержащее неуправляемый код, который контролирует аппаратное обеспечение и абстрактное окружение, и высокоуровневое сервисное ядро на основе управляемого кода, которое предоставляет всю функциональность операционной системы.

ОС будет иметь один планировщик рабочей среды для всех типов устройств, известный внутри компании как Resource Management Infrastructure (RMI). RMI будет иметь возможности по расчету ресурсов, квот и управлению; ресурсы, мониторинг которых будет проводиться, включают в себя полосу пропусканию IO, память, питание и время отклика.

Microsoft считает, что планирование на основе мощности будет особенно полезно для мобильных устройств. Эта идея подразумевает создание многослойной, тонкой платформы для такого рода устройств, но пока неясно, насколько далеко компания может пойти с единой базой кода.

Экосистема устройств является крупной дискуссией на тему того, какой вариант Microsoft может выбрать для реализации хранения информации, возможно, вынеся данную функциональность за пределы ОС, и переместит в распределенные службы, при этом части службы будут запускаться на самом устройстве.

"В случае такого сценария Midori не является заменой Windows, а представляет собой хаб для нового типа распределенной системы, которая будет соединяться с Windows до тех пор, пока она не станет лишним компонентом".

Хаммонд предполагает, что в течение нескольких следующих лет будет выпущено множество мобильных устройств, построенных на схожем аппаратном обеспечении, но с разными мощностями и в разных форм-факторах.

Microsoft также рисует в своем сознании возможности для cloud-хранения данных, которые включают в себя соответствие, компрессию, постоянную репликацию, расчеты, близкие к данным, шифрование, индексацию и поиск, а также само хранение данных. Midori призвана обеспечить репликацию сложных данных.

Планирование как процесс, который позволяет множеству процессов работать в процессоре одновременно, будет является частью Midori на уровне пользовательских приложений, причем как для настольных, так и для распределенных cloud-приложений. Распределенное планирование в Midori сможет поддерживать миграцию активной задачи, которую выполняют нынешние гипервизоры.

Необходимо отметить, что Midori будет предоставлять сторонним приложениям способы интеграции программного обеспечения, которое могло бы асинхронно обновлять таблицы планирования. Основной целью является позволить разработчикам создавать веб-подобные приложения для совместной работы, такие как активные документы, которые безопасно и надежно работают на уровне ОС. Квоты ресурсов будут использоваться для предотвращения таких атак, как отказ в обслуживании (DoS).

"Это вторая попытка изменения реализации схемы планирования ОС, которую я вижу за последние несколько месяцев. Стив Джобс (Steve Jobs) на Apple Worldwide Developers Conference, прошедшей 9 июня, говорил о том, что в Snow Leopard будет новая рабочая среда планирования, которая сможет использовать преимущества многоядерных систем и облегчит разработчикам приложений для OS X процесс разработки. Кажется, что компания пытается достичь примерно тех же целей, а потом реализовать их в новом уровне гибкости планировщика" - заявил Хаммонд.

Для разработки Midori нет никаких временных рамок, которая, как заявил технический специалист Microsoft Бартон Смит (Burton Smith), является исследовательским проектом. Представитель компании также добавил, что пока Midori является одним из многих проектов Microsoft Research.