С Microsoft случилась Midori

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

Нечто принципиально новое


Основное отличие Midori от систем-предшественниц в том, что она станет интернеториентированной операционной системой, которая сделает программы полностью независимыми от аппаратной составляющей ПО. Проще говоря, Midori будет "заточена" под работу с удаленными приложениями. Понятно, что такой подход полностью избавит пользователей от проблем совместимости программ и операционной системы. Кстати, первое упоминание о Midori зафиксировано в декабре 2007-го во время презентации, посвященной надежности программного обеспечения (Software Reliability Research). Тогда сотрудник Microsoft Research Шаз Квадиир демонстрировал инструмент для отладки приложений CHESS, очень схожий по архитектуре с описанием Midori OS. (Слово Midori по-японски означает "зеленый" — намек на то, что разработка находится в самом начале пути.)

В основе Midori будет асинхронная архитектура и технология виртуализации Microsoft Hyper-V, а сама ОС будет построена на управляемом коде с микроядром, то есть на базе операционной системы Singularity. Напомню, что ОС Singularity была официально представлена в марте текущего года, хотя разрабатывалась уже несколько лет. Приоритетом при ее проектировании была стабильность и изоляция ресурсов программ друг от друга. Впрочем, о Singularity я подробно расскажу ниже, а пока обобщим сведения о Midori. Как утверждают специалисты web-ресурса Software Development Times (SD Times), в Midori будет применена асинхронная связка стандартных приложений для локального использования на ПК и удаленных "интернет-сервисов как приложений" (SaaS). Microsoft вообще в последнее время делает заметный крен в сторону интернет-приложений. По официальной версии, это "результат пересмотра отношения разработчиков к современным средствам коммуникации и конкуренции между операционными системами". На самом же деле Microsoft просто стремится захватить кусочек рынка, на котором сейчас успешно зарабатывает Google.

ОС послезавтрашнего дня

По планам руководства Microsoft, Midori предстоит в свое время придти на смену разрабатываемой сейчас Windows 7. Midori будет работать как на привычном компьютерном оборудовании (x86, x64, ARM-архитектуре), так и на гипервизорах Windows Hyper-V и даже в качестве стандартной службы Windows. Особый упор на виртуализацию разработчики Microsoft делают, стараясь создать отказоустойчивую систему, в которой будут решены сегодняшние проблемы с работой приложений, безопасностью и скоростью работы. В новой системе будет применен иной, чем в Windows, подход к контролю за взаимодействием процессов: каждый запущенный компонент будет строго отделен друг от друга во избежание фатальных сбоев. В Midori за это будут отвечать специальные свободные от неразделяемых ресурсов объектноориентированные API. Приложения будут запускаться как на удаленных дата-центрах с доступом к ним через интернет, так и на самом локальном компьютере. Это позволит Microsoft сохранить обратную совместимость существующего ПО с новыми разработками, а попутно — и укрепить свои позиции в сегменте тонких клиентов. Во внутренней структуре Microsoft проект Midori возглавляет Эрик Раддер, старший вице-президент отдела технологической стратегии. Сам он не комментирует слухи о сроках появления новой системы. Зато более открыто высказывается Роб Хелм, начальник центра разработок Microsoft: "Это вполне возможно. … Проект пока считается экспериментальным, но в любом случае это серьезный шаг вперед для компании".

Эксперты связывают большие надежды с внедрением этой системы прежде всего на мобильных устройствах благодаря встроенному механизму контроля энергопотребления. Модульность Midori также позволит разрабатывать ПО, независимое от технических характеристик аппаратной платформы. Например, для тонких клиентов станут актуальными заложенные в Midori принципы "облачных вычислений" (cloud-computing) и хранения данных в интернете. В этом случае на компьютер не нужно будет устанавливать много специализированного ПО — необходимые сервисы уже будут существовать в сети.

Предтеча: Singularity

Singularity — это название исследовательского проекта по разработке операционной системы, а впоследствии — и самой ОС, практически целиком созданной на основе платформы .NET. Ее особенность в том, что, во-первых, она практически исключает возникновение ошибок типа "переполнение буфера" (так как память для всех процессов включая драйверы распределяется автоматически). Во-вторых, все процессы в этой ОС являются программно изолированными.

Перед разработчиками Singularity не ставилась задача сделать полноценную ОС — к примеру, они не разрабатывали GUI. Но требовалось обеспечить высокую производительность, единое адресное пространство, статическую верификацию типов и гибкое управление правами доступа. Однако главным новшеством Singularity было микроядро. В микроядерном дизайне такие подсистемы, как файловая система или сетевые драйверы, работают подобно обычным программам вне самого ядра (которое функционирует в специальном режиме процессора). Ядро отвечает лишь за создание процессов/потоков, пересылку сообщений между ними и ряд других мелких операций. Обычно трудно сказать, является ли какая-либо ОС сугубо микроядерной или монолитной. Например, в Linux графическая подсистема работает в отдельном процессе (X Server), а в Windows так было лишь несколько версий назад, в 90-х. Разработчики Singularity полностью отказались от аппаратной защиты памяти: все работает в режиме ядра и в едином адресном пространстве. Более того, "процессов" в их традиционном понимании в Singularity нет. Программы в Singularity изолированы друг от друга — но изоляция делается целиком и полностью программно, с помощью теории типов. Дело в том, что в Singularity программы написаны на потомке языка C#, названном Sing#. Основной "строительный блок" Singularity — это SIP — software isolated process ("программно изолированный процесс"). Singularity опирается на идею процесса как чего-то, что обладает собственными ресурсами, своим адресным пространством и независимо отправляется на исполнение — и все это обеспечивается только математическими механизмами. SIP более изолирован, чем в некоторых других решениях (вроде KaffeOS), в которых весь код загружается в единую среду исполнения, и объекты могут быть разделены между разными программами. В Singularity "ядро" — это программный компонент, который связывает SIP'ы вместе, управляет памятью, загружает новые SIP'ы и выполняет некоторые другие задачи. Логически оно также включает в себя доверенные/небезопасные части системы, написанные на C++ или ассемблере. Некоторые из них привязываются к SIP (сборщики мусора), но, поскольку они считаются безопасными, то могут считаться частью ядра. SIP'ы обращаются к ядру, просто делая обычный вызов функции. Программа в Singularity описывается манифестом. Манифест — это XML-файл, описывающий SIP'ы, из которых состоит программа, и их соединения. Манифест практически полностью генерируется автоматически из метаданных в коде. Запуская программу, пользователь фактически вызывает манифест. BIOS компьютера при использовании Singularity вызывается только на этапе загрузки в 16-разрядном реальном режиме работы процессора. После перехода в 32-разрядный режим BIOS больше никогда не вызывается — вместо него используются драйверы, написанные на Sing#. Стоит еще заметить, что Singularity отлично работает с многоядерными системами. В настоящее время она поддерживает 16-ядерные процессоры, а также вычислительные возможности графических карт. Бесплатный инструментарий для разработки приложений под ОС Singularity, ориентированный в первую очередь на ученых, как и исходный код самой системы, выложены на сайте Microsoft Codeplex для всех желающих использовать их в исследовательских целях.

Экстремальный cloud computing

Midori, как предполагается, будет брать требуемые для работы приложений вычислительные мощности в сети, делая концепцию cloud computing доступной потребителям на уровне операционной системы. Напомню, что, согласно классической концепции cloud computing, приложение может использовать ресурсы множества других узлов сети, причем нагрузка между ними распределяется автоматически. К примеру, программа может как бы "арендовать" процессорные ресурсы и дисковое пространство нескольких сотен компьютеров. В результате даже самые сложные вычислительные задачи могут выполняться очень быстро и эффективно — весь вопрос в пропускной способности сетей. Но и это далеко не все, что задумано. Работа с Midori — это работа со сложной многоуровневой сетью, в которой могут быть установлены компьютеры с самыми разными конфигурациями и операционными системами. При этом программа даже не будет знать, какие физические устройства установлены в компьютерах, с которыми ей приходится иметь дело. Сами приложения в большинстве своем будут находиться на отдельных серверах, к которым и предстоит подключаться конечным пользователям. Получается, что Midori — не просто замена Windows. В будущем ПК и серверы, на которых еще будет установлена Windows, станут частью сети Midori и будут ею до тех пор, пока не устареют окончательно, и их не спишут. Вполне логично, что потом их заменят на узлы с клиентской частью Midori.

Резюме

Несомненно, Midori — это перспектива "средней удаленности". На смену актуальной сейчас Vista придет уже заявленная Windows 7, так что созерцать "окошки" на своих ПК нам придется еще долго. В конце концов, нынешней архитектуре операционных систем уже 40 лет, но она далеко еще не исчерпала свой потенциал. А ведь Midori придется конкурировать с продвинутыми Linux-системами, новым поколением ОС Solaris, да и вообще на *nix-"грядке" еще много всего интересного может вырасти…

Денис Лавникевич


Компьютерная газета. Статья была опубликована в номере 32 за 2008 год в рубрике ос

©1997-2024 Компьютерная газета