Михаил Филиппов

Avatar1

Михаил Филиппов - руководитель проекта Parallels Containers for Windows. Более 15 лет занимается разработкой для ядра ОС Windows; 10 лет экспертизы в реверс-инжиниринге и анализе кода. C 2005 года работает в компании Parallels, где прошел путь от разработчика до руководителя проекта Parallels Container for Windows. Принимал участие в качестве эксперта по ОС Windows в разработке целого ряда продуктов: Parallels Server for Mac, Parallels Workstation Extreme и Parallels Desktop. Закончил Рязанский государственный радиотехнический университет.


Контейнеры для Windows: за 10 лет до Microsoft

Вступление

В начале октября 2014 года Microsoft объявила о партнерстве с Docker [1], в рамках которого будет представлена реализация контейнеров для будущей версии ОС Windows Server. Для поддержки контейнеров Microsoft воспользуется собственной технологией, разработанной в исследовательском проекте Drawbridge [2]. Ключевая особенность технологии заключается в том, что виртуализация аппаратуры (процессора и устройств ввода-вывода) не требуется, а эмулируется исключительно исполняемое окружение ОС Windows.

Контейнеры Parallels

Увеличение мощностей вычислительных систем продолжает подчиняться закону Мура [3], но как эффективно использовать эти системы с минимальными накладными расходами? Одним из возможных решений является применение контейнеров для контроля ресурсов и изоляции приложений, запущенных разными пользователями. Пионером и лидером в продвижении контейнерных технологий является компания Parallels, которая вот уже без малого 10 лет предлагает свою собственную реализацию контейнеров для Windows [4]. Подход, реализованный в Parallels, основан на виртуализации ядра ОС [5], которое после модификаций становится способным запускать произвольное количество пользовательских окружений Windows. Пользовательское окружение размещено на виртуальном диске, содержащем ссылки на файлы ОС Windows и свой собственный системный реестр; с этого же диска запускаются системные файлы ОС Windows, которые формируют окружение для пользователей (в том числе Администратора), приложений и сетевого взаимодействия через виртуальный адаптер. Это то, что мы называем Parallels контейнер для Windows.

А что под капотом?

Контейнеры Parallels для ОС Windows полагаются на модификации в ядре. При разработке контейнеров Parallels центральное место занимают 2 технологии: реверс-инжиниринг [6] и обновление программного кода во время исполнения [7]. Вся технология виртуализации работает в ядре ОС, что позволяет разделять объекты ядра между контейнерами, тем самым изолируя контейнеры друг от друга. Каждый контейнер имеет свой собственный набор процессов, сессий и драйверов, а также реестр и дерево объектов ядра.

Сколько вешать в граммах?

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

Шаблоны

Самый эффективный способ установки приложений внутри контейнеров Parallels – использовать шаблоны приложений. Физически шаблон — это файл, в котором хранится информация, воспроизводящая оригинальное размещение файлов, папок и ключей реестра. Для создания шаблона приложения используется специальный инструмент, который отслеживает все изменения на файловой системе и в реестре, которые вносит установщик приложения. Применение получившегося шаблона приложения к контейнеру - эквивалентно установке этого приложения. Пользователь контейнеров Parallels может самостоятельно создать шаблон из любого приложения, которое можно установить внутрь контейнера.

Файловая система с поддержкой копирования при записи

Контейнеры Parallels делят друг с другом не только ядро, но и все файлы, установленные на хост из дистрибутива OC Windows. Дедупликация данных [8] осуществляется на файловом уровне с помощью шаблонов и специализированной файловой системы с поддержкой копирования-при-записи [9]. Для каждой поддерживаемой версии ОС Windows Parallels выпускает шаблон ОС. Изнутри контейнера обращение к файлам из шаблона ОС выглядит абсолютно прозрачно, создавая целостное представление файловой структуры ОС Windows, состоящее из общих и приватных для контейнера файлов. Поддержка в файловой системе копирования-при-записи позволяет избежать модификации файлов из шаблона ОС, сохраняя изменения только внутри контейнера.

Кому это нужно?

Продукты хостинга на базе контейнеров Parallels предлагают ведущие мировые провайдеры, такие, как AT&T, 1&1, GoDaddy и HostEurope. Контейнеры Parallels идеально подходят для виртуализации рабочих столов [10], для которых Parallels в партнёрстве с интегратором IBS предлагает сертифицированное ФСТЭК решение [11].

История проекта

Проект стартовал в мае 2002 года и на сегодняшний день пережил 7 публичных релизов, было выпущено без малого 300 обновлений, а кодовая база превысила 1.300.000 SLOCs. Количество контейнеров, созданных с использованием технологий Parallels, превысило 1.000.000 [12]!

Заключение

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

Список литературы

  1. Microsoft, «Партнерство Docker и Microsoft: множество анонсов» [В Интернете]. http://habrahabr.ru/company/microsoft/blog/240575/.
  2. Microsoft Research, «Drawbridge» [В Интернете]. http://research.microsoft.com/en-us/projects/drawbridge/.
  3. Wikipedia, «Moore's law» [В Интернете]. https://en.wikipedia.org/wiki/Moore%27s_law.
  4. Parallels, «Parallels Containers for Windows 6» [В Интернете]. http://sp.parallels.com/products/parallels-containers-windows/.
  5. Parallels, «Operating System Virtualization» [В Интернете]. http://sp.parallels.com/ru/products/pvc/os-virtualization/.
  6. Wikipedia, «Reverse engineering» [В Интернете]. https://en.wikipedia.org/wiki/Reverse_engineering.
  7. Wikipedia, «Dynamic software updating» [В Интернете]. http://en.wikipedia.org/wiki/Dynamic_software_updating.
  8. Wikipedia, «Data deduplication» [В Интернете]. https://en.wikipedia.org/wiki/Data_deduplication.
  9. Wikipedia, «Copy-on-write» [В Интернете]. https://en.wikipedia.org/wiki/Copy-on-write.
  10. Wikipedia, «Desktop virtualization» [В Интернете]. http://en.wikipedia.org/wiki/Desktop_virtualization.
  11. IBS, «Компания IBS сообщает о получении сертификата ФСТЭК России на систему виртуализации рабочих мест Parallels VDI» [В Интернете]. http://www.ibs.ru/media/news/kompaniya-ibs-soobshchaet-o-poluchenii-sertifikata-fstek-rossii-na-sistemu-virtualizatsii-rabochikh-mest-parallels-vdi/.
  12. Parallels, «Parallels объявляет о создании более одного миллиона виртуальных контейнеров» [В Интернете]. http://www.spbit.su/news/n174740/.

Программа

  • 9.30 - 10.00. Регистрация
  • 10.00. - 11.45. Открытие конференции, анонсы проектов
    avatar
    Директор ИСП РАН
    Иванников В. П.
    avatar
    Министр связи и массовых коммуникаций РФ
    Никифоров Н. А.
    Краткие сообщения о текущих проектах
    avatar
    Линейка операционных систем ROSA
    Владимир Рубанов
    В докладе будут рассмотрены вопросы создания отечественных программных продуктов на основе компонентов с открытым кодом как эффективного механизма импортозамещения, позволяющего строить технологически независимые системы гораздо быстрее, чем при разработке "с нуля". Такой подход позволяет в "мирное время" пользоваться постоянно возникающими новыми достижениями мирового прогресса, одновременно сохраняя контроль над полным результатом. Будут рассмотрены необходимые условия, ресурсы и технологические процессы, которые должен обеспечивать локальный производитель/крупный пользователь для обеспечения достаточной независимости, позволяющей локально развивать, исправлять и поддерживать продукты даже в гипотетических условиях полной международной изоляции. Подробнее
    avatar
    Операционные системы, применяемые в изделиях ОАО “РПКБ”
    Илья Мезенцев
    Разработанная ОАО «РПКБ» ОС РВ RelMK 32 используется в настоящее время более чем в 10 модификациях БЦВМ и других бортовых систем в составе бортового радиоэлектронного оборудования летательных аппаратов. Развитие средств вычислительной техники и увеличение номенклатуры применяемых микропроцессоров ставит перед ОАО «РПКБ» задачу стандартизации программного обеспечения, в том числе и ОС РВ. В докладе рассматриваются пути решения этой задачи и трудности, которые возникли перед ОАО «РПКБ».Подробнее
    avatar
    ОС Embox: решение для встроенных систем
    Антон Бондарев
    В докладе будет раскрыты аспекты разработки встроенного ПО на примере ОС реального времени Embox, разрабатываемого на математико-механическом факультете СПбГУ. Embox — открытая операционная система реального времени, поддерживает шесть процессорных архитектур (x86, ARM, MIPS, Microblaze, SPARC, PPC), сетевой стек, несколько файловых систем(FAT, ext2/3/4, jffs2, nfs), несколько языков программирования (java, python, lua, lisp, C/C++) и применяется в различного рода встроенных и телекоммуникационных устройствах, например, маршрутизаторах, потоковых шифраторах, контроллерах управления светодиодами. Доклад основан на проблемах, с которыми приходилось сталкиваться участникам проекта Embox, поскольку проект существует уже пять лет, и он использовался в различных областях, спектр вопросов довольно широкий.Подробнее
    avatar
    Свободная реализация ARINC-653-совместимой ОС реального времени
    Алексей Хорошилов
    avatar
    Проект ALT Linux
    Алексей Новодворский
    Проекту ALT Linux в начале будущего года исполняется 14 лет. В сообщении будет рассказано про инфраструктуру проекта, принципы организации и разработки, основные продукты,перспективы. Особо обсуждаются дистрибьюция решений, поддержка аппаратных платформ, задачи разработки клиентских ОС и решений масштаба предприятия.Подробнее
  • 11.45-12.15. Кофе-брейк
  • 12.15-14.15. Промышленные операционные системы
    avatar
    Операционная система реального времени Багет 3.0
    Александр Годунов
    Операционная система реального времени Багет 3.0 предназначена для разработки систем жесткого реального времени. ОС РВ Багет 3.0 является развитием ОС РВ Багет 2.0, которая используется с 2000 г. в более чем 100 организациях. Багет 3.0 также как ОС РВ Багет 2.0 предоставляет пользователю интерфейс, базирующийся на широко распространённом в настоящее время стандарте POSIX 1003.1. Кроме того Багет 3.0 поддерживает более современную спецификацию ARINC 653, разработанную специально для систем реального времени.Подробнее
    avatar
    Контейнеры для Windows: за 10 лет до Microsoft
    Михаил Филиппов
    В начале октября 2014 года Microsoft объявила о партнерстве с Docker, в рамках которого будет представлена реализация контейнеров для будущей версии ОС Windows Server, ожидаемая в 3 квартале 2015 года. Для поддержки контейнеров Microsoft воспользуется собственной технологией, разработанной в исследовательском проекте Drawbridge. Технология виртуализации Drawbridge похожа на технологию, применяемую в проекте Wine, позволяющем запускать приложения Windows на компьютерах с UNIX-подобными операционными системами. Ключевая особенность обеих технологий заключается в том, что виртуализация аппаратуры (процессора, памяти, устройств ввода-вывода) не требуется, а эмулируется исключительно исполняемая среда ОС Windows. Преимущество такого подхода - в относительно небольших затратах на виртуализацию и возможность реализовать контейнеры исключительно в пользовательском режиме исполнения ОС. К недостаткам можно отнести трудности в обеспечении совместимости приложений, ведь для этого необходимо эмулировать весь Windows API, который на данный момент насчитывает тысячи вызовов. Проблемы, решением которых могли бы стать контейнеры, появились не сегодня, да и собственно сами контейнеры в ОС на базе ядра Linux успешно используются уже многие годы. Пионером и лидером в продвижении контейнерных технологий является компания Parallels, которая, помимо продуктов для Linux, вот уже без малого 10 лет предлагает свою собственную реализацию контейнеров для Windows. Подход, реализованный в Parallels, основан на виртуализации ядра ОС, которое может запускать произвольное количество пользовательских сред Windows, доступных по сети и по протоколу RDP. Это и есть Parallels-контейнеры для Windows.Подробнее
    avatar avatar
    Операционная система Эльбрус и микропроцессоры серии Эльбрус в бортовых системах реального времени. Технические подробности, возможности и перспективы развития.
    Константин Трушкин и Евгений Кравцунов
    В докладе речь пойдет о возможности применения микропроцессоров Эльбрус в бортовых системах и исследованиях особенностей реализации ОС реального времени, проведенных в этом направлении в компании МЦСТ.
    Будет рассказано о линейке процессоров Эльбрус, их архитектуре и характеристиках.
    Приводятся результаты измерений производительности на универсальных бенчмарках, полученные для микропроцессоров "Эльбрус-2С+". Обсуждается поддержка управления энергопотреблением и проблемы реализации операционной системы реального времени на архитектуре с относительно большим характерным временем входа в прерывание.
    Также речь пойдёт о технологии защищённых вычислений, предоставляющей уникальные возможности по обеспечению информационной безопасности. Доклад также описывает варианты использования защищенного режима на уровне операционной системы.Подробнее

    Операционная система Эльбрус и микропроцессоры серии Эльбрус в бортовых системах реального времени

    ОC РВ Эльбрус в бортовых системах реального времени

  • 14.15 - 15.15. Перерыв на обед
  • 15.15-16.45. Инструментарий и экспериментальные операционные системы
    avatar
    Верификация операционных систем в ИСП РАН
    Алексей Хорошилов
    В докладе будет представлен опыт ИСП РАН по разработке и применению различных методов верификации операционных систем. В число рассматриваемых входят следующие направления: - статическая верификация модулей ядра ОС Linux - дедуктивная верификация компонентов ядра ОС Linux: - систематическое тестирование устойчивости к сбоям ядра ОС; - функциональное тестирование на основе моделей; - статические и динамические методы поиска гонок в ядре; - статические и динамические методы верификации стабильности; программного интерфейса ОС; - оценка накладных расходов ОС.Подробнее
    avatar
    Операционная система Phantom OS
    Дмитрий Завалишин
    ОС Фантом — операционная система с открытым исходным кодом, разрабатываемя компанией Digital Zone. Система базируется на концепции неизбывной (persistent) виртуальной памяти, ориентирована на управляемый (managed) код и нацелена на применение в носимых и встроенных компьютерах. ОС Фантом не опирается на классические концепции Unix-подобных систем. В отличие от их концепции «всё есть файл», Фантом базируется на принципе «всё есть объект». Основные отличительные черты операционной системы Фантом. Управляемый код, защита памяти на уровне объекта (а не процесса). Отсутствие арифметики указателей в управляемом коде. Глобальное адресное пространство, весьма эффективные и дешёвые IPC. Персистентность - прикладной код «не видит» перезагрузок ОС и может жить вечно, отсюда отсутствие потребности в понятии «файл» - любая переменная или структура данных может храниться вечно и при этом быть доступна напрямую по указателю. В настоящий момент система существует в виде альфа-версии для процессора ia32. В работе — перенос на процессор ARM и начат перенос на MIPS и amd64.Подробнее
  • 16.45-17.15. Кофе-брейк
  • 17.15-19.00. Общая дискуссия, закрытие конференции

Организаторы

Партнёры

Информационные партнеры

Информация

Уважаемые коллеги! Для прохода в здание ИСП РАН просим принести документ, удостоверяющий личность.