Denali (Операционные Системы)
![]() | |
![]() Denali | |
Разработчик | Justin Eldridge, Mikhail Belkin, Yusu Wang |
---|---|
Состояние разработки | Current |
Исходный код | Open source |
Дата первого релиза | March 2002 |
Доступно в | English |
Платформы | IA-32 |
Официальный веб-сайт |
denali |
Denali - операционная система, являющаяся "IA-32 гипервизором", позволяющая избегать ненадежных услуг, работающих в изолированных областях. Denali использует паравиртуализацию для поддержки гипервизоров высокой производительности, даже на заведомо неконструктивной архитектуре x86. Denali работает под управлением легкой одноразовой версии приложения ОС для Интернета. В более поздней версии, Denali(uDenali) включает поддержку для запуска полноценной ОС.
Cтатическое мультиплексирование сервисов
Преимущества статического мультиплексирования сервисов подкрепляются законом Ципфа, который гласит, что частота события пропорциональна , где - ранг события по сравнению со всеми другими событиями. Многие исследования веб-серверов, документов, кэширующих прокси-сервисы и другин сетевые ресурсы показали популярность, которая происходит благодаря распределения Ципфа. Распределение Ципфа имеет два важных последствия (Рис. 1).
Во-первых, большинство запросов ведут к небольшому количеству популярных услуг. Во-вторых, большинство сервисов сравительно непопулярны, но часть нетривиальных запросов обращается к этим непопулярным сервисам.
Поддержание легкой защиты доменов
Denali стремится реализовать легкую защиту доменов, что позволяет многие ненадежным сервисам выполнять свои действия внутри сети. В частности защита доменов Denali должна иметь следующие свойства:
- Надежная изоляция: выполнение произвольного кода в защищенном домене, запрещая выполнение кода в другом домене, как с точки зрения безопасности так и с точки зрения производительности.
- Весы для защиты доменов: в домене приложения выполняется одновременно сотни операций защиты доменов на одном компьютере.
- Быстрая замена: для поддержки рабочий нагрузки, состоящая из большого количества запросов непопулярных сервисов, акт замены в сервисе, который исполнялся долгое время, должен быть быстрым.
Сервисы независимы, поэтому совместное использование нескольких доменов защиты является нечастным. Таким образом, механизм, который обладает тремя свойствами за счет повышения расходов. VMM является одним из механизмов, который обеспечивает достаточную изоляцию для доменов приложений.
Аргументы в пользу VMM
VMM - это программа, которая виртуализирует все ресурсы физической машины, тем самым определяя и поддерживая выполнение нескольких виртуальных машин. Интерфейс, который экспортирует VMM - это виртуализация аппаратных средств/программного обеспечения, включая ЦП, физическую память и устройства ввода/выводы. VMM обычно выполняется на физическом оборудовании, в частности на нижнем уровне ОС. Внутри каждой виртуальной машины "гость" ОС обладает стандартным набором высокоуровневых абстракций, такие как файлы или сетевые сокеты (Рис.Сравнение 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 с помощью бинарного установщика.
- Скачайте и запустите программу установки.
- Нажмите кнопку "Я согласен", чтобы принять лицензионное соглашение.
- Нажмите кнопку "Установить", чтобы установить в папку по умолчанию.
Как правило, Denali устанавливается в C:\ Program Files (x86)\ Denali. Вы можете запустить Denali из меню Пуск.
OS X
Посетите страницу проекта, чтобы скачать последнюю версию Denali.
Рекомендуется устанавливать Denali на Mac OS X путем загрузки .dmg, который можно найти на странице проекта.
- Скачайте и дважды щелкните на denali_x.y.dmg, чтобы смонтировать образ.
- Нажмите и перетащите значок приложения Denali в папку Applications
Linux
Посетите страницу проекта, чтобы скачать последнюю версию Denali.
Рекомендуется устанавливать Denali на Ubuntu или Debian, просто скачав файл .deb на странице проекта, и установить с помощью DPKG -i denali_x.y.deb.
Загрузка из источника
Denali может быть установлена из источника практически на любой современной ОС. Процесс сборки управляется CMake кросс-платформенным мета-компилятором. Инструкции по сборке практически идентичны в различных ОС.
Ссылки
- Denali [Электронный ресурс]: Denali: Lightweight Virtual Machines for Distributed and Networked Applicions / Дата обращения: 15.03.2016. — Режим доступа: http://denali.cs.washington.edu/pubs/distpubs/papers/denali_usenix2002.pdf
- Denali [Электронный ресурс]: Lightweight virtual machines for distributed and networked systems / Дата обращения: 15.03.2016. — Режим доступа: http://denali.cs.washington.edu/
- Cougar Mountain Software [Электронный ресурс]: SYSTEM REQUIREMENTS DENALI / Дата обращения: 15.03.2016. — Режим доступа: https://www.cougarmtn.com/system-requirements-denali/
- Denali Docs [Электронный ресурс]: Denali documentation / Дата обращения: 15.03.2016. — Режим доступа: http://denali.cse.ohio-state.edu/doc/index.html