Denali (Операционные Системы)

Материал из Национальной библиотеки им. Н. Э. Баумана
Последнее изменение этой страницы: 17:09, 24 августа 2017.
Denali
Denalios.png
Desktop screenshot
Denali
Разработчик Justin Eldridge, Mikhail Belkin, Yusu Wang
Состояние разработки Current
Исходный код Open source
Дата первого релиза March 2002; 20 years ago (2002-03)
Доступно в English
Платформы IA-32
Официальный веб-сайт denali.cse.ohio-state.edu

Denali - операционная система, являющаяся "IA-32 гипервизором", позволяющая избегать ненадежных услуг, работающих в изолированных областях. Denali использует паравиртуализацию для поддержки гипервизоров высокой производительности, даже на заведомо неконструктивной архитектуре x86. Denali работает под управлением легкой одноразовой версии приложения ОС для Интернета. В более поздней версии, Denali(uDenali) включает поддержку для запуска полноценной ОС.

Cтатическое мультиплексирование сервисов

Преимущества статического мультиплексирования сервисов подкрепляются законом Ципфа, который гласит, что частота события пропорциональна , где - ранг события по сравнению со всеми другими событиями. Многие исследования веб-серверов, документов, кэширующих прокси-сервисы и другин сетевые ресурсы показали популярность, которая происходит благодаря распределения Ципфа. Распределение Ципфа имеет два важных последствия (Рис. 1).

Рис. 1. Закон Ципфа

Во-первых, большинство запросов ведут к небольшому количеству популярных услуг. Во-вторых, большинство сервисов сравительно непопулярны, но часть нетривиальных запросов обращается к этим непопулярным сервисам.

Поддержание легкой защиты доменов

Denali стремится реализовать легкую защиту доменов, что позволяет многие ненадежным сервисам выполнять свои действия внутри сети. В частности защита доменов Denali должна иметь следующие свойства:

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

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

Аргументы в пользу VMM

VMM - это программа, которая виртуализирует все ресурсы физической машины, тем самым определяя и поддерживая выполнение нескольких виртуальных машин. Интерфейс, который экспортирует VMM - это виртуализация аппаратных средств/программного обеспечения, включая ЦП, физическую память и устройства ввода/выводы. VMM обычно выполняется на физическом оборудовании, в частности на нижнем уровне ОС. Внутри каждой виртуальной машины "гость" ОС обладает стандартным набором высокоуровневых абстракций, такие как файлы или сетевые сокеты (Рис.Сравнение VMM и ОС)

Рис.2 Сравнение VMM и ОС

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

Изоляция безопасности

Одной из целей Denali является изоляция ненадежных кодов песочниц, чтобы устранить возможность чтения или изменения состояния других сервисов базовой системы защиты. Требования домена Denali принципиально отличаются от тех, которыми руководствовались при создании обычного рабочего стола или ОС, основанных на разделении времени. В Denali, единица защиты - это сервис, вместо пользователя, и нет надобности в обмене данными между сервисами. VMM хорошо подходят в этот домен, поскольку они непосредственно затрагивают проблемы присущие обычным ОС:

  • Простая политика общего доступа.
    VMMпредлагает простую политику обмена: все данные являются приватными для виртуальной машины, пока она не захочет поделиться ими в сети. Преимущество заключается в том, что такой подход снимает задачу создания политики защиты. Недостатком является повышенная стоимость обмена данными между приложениями. Однако это оправдывается тем, что домены приложения требуют незначительного обмена между приложениями. В отличие от принципала обычной ОС, где пользователи совместно используют данные через защищенные абстракции; это приводит к очень сложной политики доступа( Н-р: "позволить Джиму прочитать файл X" или "разрешить все программам Салли использовать сеть"). Сложность политики растет с количеством принципалов и защищенных абстракций. Даже если ОС является достаточно гибкой, чтобы разрешить всем правилам быть определенными, сложность заключается в том, что трудно проверить как ведет себя определенная политика, в соответствии с намерениями автора или нет.
  • Защита ниже уровня абстракций.
    VMM откладывает реализацию абстракций высокого уровня, таких как, файловые системы и сетевые стеки для гостевого режима ОС. Это значительно упрощает реализацию из VMM( которая имеет плюсы со стороны безопасности), и так же устраняется "слой-ниже-уязвимости" к которым обычно сильно восприимчивы обычные операционные системы. В обычной ОС, политика выражает абстракции высокого уровня, такие как файлы, а не низкого уровня, такие как дисковые блоки. К сожалению, выражая политику защиты с точки зрения абстракций приводит к "нижнему слою", в котором злоумышленник незаконно получает доступ к ресурсам путем туннелирования нижнего уровня абстракций. Например, злоумышленник мог прочитать пустые блоки диска, обойдя файловую систему, монитор ссылок, мог использовать анализатор пакетов, чтобы получить пароль учетной записи локально или принудительно для доступа к защищенным данным в оперативной памяти.
  • Частное пространство имен.
    За исключением сетевых адресов, все имена могут быть открыты с помощью VMM, но недоступны для VM. В результате виртуальная машина не может даже построить имя ресурса, на которое ссылается другая виртуальная машина. Даже если виртуальная машина захвачена злоумышленником, он не может получить доступ к любой другой машине с данными, предполагая, что отображение VMM из виртуального к физическим ресурсам осуществляется правильно. Единственное глобальное пространство имен, где VMM выставляет набор MAC-адресов виртуальной Еthernet подсети. Уязвимость может находится далеко за пределами Denali. Тем не менее, любая подсеть с поддержкой приложений должна быть подготовлена, чтобы обрабатывать вредоносный трафик, который поступает из сети, и, что виртуальной машине, которой нужна полная изоляция, должна отбросить весь сетевой трафик. Для сравнения, ОС, как правило, выставляет несколько глобальных пространств имен ( таких, как набор всех имен файлов), через которые пользователи разделяют данные. Эти глобальные пространства имен можно поставить под угрозу безопасности, если они неправильно или плохо защищены; злоумышленники, например, могут использовать псевдонимы, такие как символические ссылки для получения незаконного доступа к ресурсам. Глобальное пространство имен так же предоставляет неограниченный доступ атакующему, который получил привилегии супервизора.

Изоляция производительности

Хотя термин "изоляция", как правильно, относится к безопасности, не менее важно обратить внимание на важный аспект - изоляция производительности. Цель Denali - обеспечение равномерного распределения ресурсов, через услуги, даже при наличии вредоносных услуг или слишком большой нагрузки сети. Необходимость поддержки высоуровневых абстракций предотвращает большинство ОС от предоставления высоких показателей изоляции. Абстракции высокого уровня создают точки конкуренции, где приложения конкурируют за ресурсы и синхронизацию. Это приводит к эффекту "перекрестных помех", в котором приложения мешают друг другу в борьбе за ресурсы. Дополнительная проблема, поставленная абстракциями высокого уровня является то, что трудно произвести бухгалтерский учет, так как ресурсы связаны в осуществлении самих абстракций. Например, файл буфера кэша и буфера TCP/IP потребляют ресурсы памяти для любого конкретного применения. Аналогичным образом, обработка сетевых протоколов часто выполняется в контексте запущенного процесса, вместо процесса приема, что может привести к несправедливости и приемник заблокируется. Откладывая реализацию абстракции для гостевой ОС, виртуальные машины не должны страдать от этих недостатков. Виртуальные аппаратные средства в VMM в качестве очередей для ресурсов виртуальных машин получают доступ, что делают возможным осуществить VMM справедливую организацию очередей и планирования. Потому что VMM предоставляет аппаратные ресурсы такого уровня, который меньше неучтенных ресурсов, чем в обычных ОС.

Масштабирование VMM

Цель Denali поддержка большого количества доменов защиты. Службы VMM известны внедрением накладной виртуализации, превышения производительности являются скромными по современным меркам. Вопросы масштаба так же влияют на операционные системы. Паравиртуализация предоставляет виртуальную архитектуру, которая не сильно отличается от физической архитектуры. Различия в архитектура достигаются за счет улучшения масштабируемости или за счет сокращения сложности системы. Изменение архитектуры ломает обратную совместимость с существующим кодом ОС, является основным недостатком. Однако, изменение архитектуры позволяет разрабатывать виртуальную архитектуру совместно с ОС, что дает значительное представление о вопросе масштаба. Основной минус паравиртуализации то, что она размывает грань между VMM и ОС.

Разработка и внедрение

Паравиртуализация в Denali

Архитектура Denali основана на x86; это позволяет большинству виртуальных инструкций выполнять их непосредственно на физическом процессоре. Однако архитектура Denali отличается от основной архитектура x86 в ряде способов, которые улучшают масштабируемость, снижают сложность реализации и повышают производительность. В Denali вводят виртуальные инструкции, которые не имеют аналогов в физической архитектуре; модицифицируют существующие инструкции: невозможно удалить инструкции из физической архитектуры, поэтому классифицируют редко встречающие инструкции, имеющие неопределенную семантику. Denali использует дополнительные виртуальные регистры для передачи данных между VMM. Недостатком паравиртуализации является то, что гостевая система должна знать о существовании API, т.е. специально должна быть настроена под гипервизор.

Паравиртуализация для обеспечения масшабируемости

Простой барьер для масштабирования до 100 виртуальных машин является то, что ОС должна выполнить цикл ожидания, когда она не выполняет никакой работы. В системе VMMэти циклы снижают производительности системы. Denali вводит "неактивную" инструкцию, которая позволяет виртуальным машинами получить контроль над процессором. После отсылки к данной инструкции виртуальным машина остается свободной до нового обращения к инструкции. Вызвав эти команды, виртуальная машина способствует более высокой загрузки процессора и увеличивает собственную эффективность, так как больше не нужно запускать циклы. Второе препятствие масштабируемости связано с виртуальным прерыванием диспетчеризации, когда случается физическое прерывание, VMM вызывает виртуальное прерывание в соответствии с виртуальной машиной. По мере того, как количество виртуальных машин растет, становится маловероятно, что случится физическое прерывание, предназначенное для запущенной в данный момент виртуальной машины; обработки физических прерываний предназначены для неактивной виртуальной машины. В Denali виртуальное прерывание подразумевает, что что-то недавно случилось, возможно, когда подменили контекст. Этот семантический сдвиг особенно полезен в реализации виртуальных таймеров.

Паравиртуализация для простоты

Аппаратные средства архитектуры являются сложными. Репликация физических машин требует VMM подражать многим конструкциям: инструкциям привилегированной машины, виртуальной памяти, BIOS и устройствам ввода/вывода. Тем не менее, в некоторых из этих функций нет необходимости для домена приложения. Паравиртуализация дает возможность удалять или модифицировать эти функции, что значительно упрощает VMM. Примером архитектурной сложности является наличие невиртуализируемых инструкций в x86. Эти инструкции ведут себя по-разному в пользовательском режиме и режиме ядра; потому что виртуальная машина выполняет команды с физическим процессором в пользовательском режиме, это нарушает обратную совместимость с унаследованным кодом. В результате, x86 VMM, такие как VMWare и Plex86 требуют сложного двоичного переписывания и методов защиты виртуальной памяти, чтобы предотвратить от непреднамеренного выполнения инструкций.

Более радикальным архитектурным упрощением в Denali то, что он не выставляет виртуальные аппаратные машины. Виртуальные машины Denali не используют одиночные адресные пространства, подразумевая использование библиотек ОС, схожих с тем, что и в Экзоядре. Это изменение считается оправданным, поскольку цель Denali - небольшие приложения, которые не требуют внутреннего механизма защиты. Если требуется защита нескольких доменов без приложения, то могут использоваться техника языка ( как в Pilot).

В виртуальной архитектуре Denali устранены другие компоненты x86, а так же BIOS в первую очередь используется для начальной загрузки обычной ОС и определяет специфические параметры для конкретной системы. В Denali заменена функциональность BIOS начальной загрузки, просто имея VMM в образе памяти. Системные параметры, такие как скорость процессора и размер физической( виртуальной) памяти доступен только для чтения в виртуальных регистрах.

Последний набор архитектурных упрощений относится к устройствам ввода/вывода. Denali экспортирует небольшое количество общих устройств, а не большое количество разных найденных устройств, как в большинстве систем. Дополнительно, Denali не требует инициализации во время запуска, что упрощает гостевой доступ устройств ОС и сокращает время загрузки ОС.

Системные требования

Denali поддерживает несколько конфигураций систем.

  • Автономная
  • Peer to peer конфигурацию
  • Двухуровневая
  • Трехуровневая

Автотомная конфигурация

Приведенная ниже таблица отражает минимальные требования системы и требования к операционной платформе для Denali на одном компьютере. Установка должна осуществляться на основной жесткий диск.

Автономная конфигурация Процессор RAM Место на диске
Клиент, Сервер и SQL сервер 3 ГГц или лучший эквивалент 4 ГБ 60 ГБ
Операционная система и видео инструкции
Клиент Клиент, Сервер, SQL сервер Сервер Монитор
Windows Vista, Windows 7 и выше Windows Vista
Windows 7
Windows 8
Windows 8.1
Windows 10
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
1600*900 или выше

Примечания: Операционная система должна иметь самые последние пакеты обновления от Microsoft. Denali работает с 32-х или 64-х битной ОС.

Peer to Peer конфигурация

Приведенная ниже таблица отражает минимальные требования для установки Denali на несколько компьютеров с использованием peer to peer.

Peer to Peer Процессор RAM Место на диске
Клиент 3 ГГц или лучший эквивалент 4 ГБ 10 ГБ
Клиент w/Crystal Reports Standard 3 ГГц или лучший эквивалент 4 ГБ 15 ГБ
Сервер w/SQL сервер 3 ГГц или лучший эквивалент 4 ГБ 60 ГБ
Операционная система и видео инструкции
Клиент Клиент, Сервер, SQL сервер Сервер Монитор
Windows Vista, Windows 7 и выше Windows Vista
Windows 7
Windows 8
Windows 8.1
Windows 10
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
1600*900 или выше

Двухуровневая конфигурация

Приведенная ниже таблица отражает минимальные требования для установки Denali в многопользовательском режиме.

Два уровня Процессор RAM Место на диске
Клиент 3 ГГц или лучший эквивалент 4 ГБ 10 ГБ
Клиент w/Crystal Reports Standard 3 ГГц или лучший эквивалент 4 ГБ 15 ГБ
Сервер w/SQL сервер 3 ГГц или лучший эквивалент 4 ГБ 60 ГБ
Операционная система и видео инструкции
Клиент Клиент, Сервер, SQL сервер Сервер Монитор
Windows Vista, Windows 7 и выше Windows Vista
Windows 7
Windows 8
Windows 8.1
Windows 10
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
1600*900 или выше

Трехуровневая конфигурация

Приведенная ниже таблица отражает минимальные требования для установки Denali в многопользовательском режиме.

Три уровня Процессор RAM Место на диске
Клиент 3 ГГц или лучший эквивалент 4 ГБ 10 ГБ
Клиент w/Crystal Reports Standard 3 ГГц или лучший эквивалент 4 ГБ 15 ГБ
Business Application Server 3 ГГц или лучший эквивалент 5 ГБ
Data Server w/SQL сервер 3 ГГц или лучший эквивалент 4 ГБ 60 ГБ

Операционная система и видео инструкции
Клиент Клиент, Сервер, SQL сервер Сервер Монитор
Windows Vista, Windows 7 и выше Windows Vista
Windows 7
Windows 8
Windows 8.1
Windows 10
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
Windows Server 2008
Windows Server 2008 R2
Windows Server 2012
Windows Server 2012 R2
1600*900 или выше

Установка

Denali доступен в виде бинарного пакета на Windows, Debian/ Ubuntu Linux и Mac OS X. Он также может быть собран из исходных кодов на любой платформе, поддерживающей Qt 4 или VTK 5 или более новую версию.

Windows

Посетите страницу проекта, чтобы скачать последнюю версию Denali.
Рекомендуется устанавливать Denali на Windows с помощью бинарного установщика.

  1. Скачайте и запустите программу установки.
  2. Нажмите кнопку "Я согласен", чтобы принять лицензионное соглашение.
  3. Нажмите кнопку "Установить", чтобы установить в папку по умолчанию.

Как правило, Denali устанавливается в C:\ Program Files (x86)\ Denali. Вы можете запустить Denali из меню Пуск.

OS X

Посетите страницу проекта, чтобы скачать последнюю версию Denali.
Рекомендуется устанавливать Denali на Mac OS X путем загрузки .dmg, который можно найти на странице проекта.

  1. Скачайте и дважды щелкните на denali_x.y.dmg, чтобы смонтировать образ.
  2. Нажмите и перетащите значок приложения Denali в папку Applications

Linux

Посетите страницу проекта, чтобы скачать последнюю версию Denali.
Рекомендуется устанавливать Denali на Ubuntu или Debian, просто скачав файл .deb на странице проекта, и установить с помощью DPKG -i denali_x.y.deb.

Загрузка из источника

Denali может быть установлена из источника практически на любой современной ОС. Процесс сборки управляется CMake кросс-платформенным мета-компилятором. Инструкции по сборке практически идентичны в различных ОС.

Ссылки

  1. Denali [Электронный ресурс]: Denali: Lightweight Virtual Machines for Distributed and Networked Applicions / Дата обращения: 15.03.2016. — Режим доступа: http://denali.cs.washington.edu/pubs/distpubs/papers/denali_usenix2002.pdf
  2. Denali [Электронный ресурс]: Lightweight virtual machines for distributed and networked systems / Дата обращения: 15.03.2016. — Режим доступа: http://denali.cs.washington.edu/
  3. Cougar Mountain Software [Электронный ресурс]: SYSTEM REQUIREMENTS DENALI / Дата обращения: 15.03.2016. — Режим доступа: https://www.cougarmtn.com/system-requirements-denali/
  4. Denali Docs [Электронный ресурс]: Denali documentation / Дата обращения: 15.03.2016. — Режим доступа: http://denali.cse.ohio-state.edu/doc/index.html