Approaches to the Fragmentation of a Paravirtualization System
-
Upload
iosif-itkin -
Category
Science
-
view
98 -
download
1
description
Transcript of Approaches to the Fragmentation of a Paravirtualization System
![Page 1: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/1.jpg)
Подходы к фрагментации системы паравиртуализации
Василий Сартаков,Николай Голиков ksys labs
{sartakov,golikov}@ksyslabs.org
Tmpa’14, 14.11.2014 Кострома
![Page 2: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/2.jpg)
Agenda • Введение • Previous works • Концептуальный подход • Дизайн L4Linux • Фрагментация • Текущий статус
![Page 3: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/3.jpg)
Code reuse • Не смотря на активные исследовательские работы в области операционных систем новые разработки крайне редко доходят до реального использования
• Реальность рынка программных продуктов такова, что продукты не совместимые с уже существующими или требующие значительных затрат по адаптации существующего ПО так и остаются экспериментальными разработками
• Пример: • Доминирование идеологии everything is file • Доминирование POSIX • В то время как давно уже существует идеология Everything is an Object
![Page 4: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/4.jpg)
Виртуализация • Виртуализация является решением • Виртуализируется все: • API, ABI, POSIX…
• Механизм паравиртуализации
![Page 5: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/5.jpg)
L4Linux
• Перенос ядра Linux в пользовательское пространство • Запуск двоичных программ Linux в окружении микрядра
![Page 6: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/6.jpg)
Защищенность L4Linux
Сартаков В. A., Тарасиков А. С. Защита микроядерного окружения L4Re от атак на стек // Безопасность информационных технологий. 2014. Т. 4. • Память под L4Linux выделяется одним регионом
(dataspace) • Невозможно применить ни ASLR, ни стек
протекцию • Синтетические тесты на проникновение выявили
уязвимость к атакам на стек
![Page 7: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/7.jpg)
Иными словами
• Необходимо разделение на компоненты (фрагментация)
• С последующим выстраиванием связей
![Page 8: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/8.jpg)
Agenda • Введение • Previous works • Концептуальный подход • Дизайн L4Linux • Фрагментация • Текущий статус
![Page 9: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/9.jpg)
Device-‐Driver-‐Environment Kit
• DDE kit – слой сопряжения на уровне исходного кода • Weisbach Hannes. DDEKit Approach for Linux User Space Drivers. 2011.
![Page 10: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/10.jpg)
Barelfish
Source: h�p://www.barrelfish.org/barrelfish_sosp09.pdf
• Решает проблему масштабирования. (проблемы блокировок, memory management)
• Нет коммуникации между ядрами на низком уровне • Каждое ядро имеет свою копию ОС и общается асинхронно, как элементы
в распределенной системе.
![Page 11: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/11.jpg)
seL4, NewtOS, L4::Reap
• Keep net working -‐ on a dependable and fast networking stack / Tomas Hruby, Dirk Vogt, Herbert Bos [и др.] // In Dependable Systems and Networks. IEEE, 2012. С. 1–12.
• Klein Gerwin, Derrin Philip, Elphinstone Kevin. Experience report: seL4: formally verifying a high-‐performance microkernel // ACM Sigplan No�ces / ACM. Т. 44. 2009. С. 91–96.
• The mul�kernel: a new OS architecture for scalable mul�core systems / Andrew Baumann, Paul Barham, Pierre-‐Evariste Dagand [и др.] // Proceedings of the ACM SIGOPS 22nd symposium on Opera�ng systems principles / ACM. 2009. С. 29–44
• Сартаков Василий, Тарасиков Александр. Анализ производительно-‐ сти сетевои подсистемы микроядерного окружения Genode // Tools & Methods of Program Analysis. 2013.
![Page 12: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/12.jpg)
Agenda • Введение • Previous works • Концептуальный подход • Дизайн L4Linux • Фрагментация • Текущий статус
![Page 13: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/13.jpg)
Концептуальный подход • Избыточная фрагментация
Разделение на компоненты плюс дублирование • Рекомпозиция системы
Группировка компонент на вычислительных ядрах
• Одно ядро ОС • Минимизация межядерных коммуникаций • Сборка на ядре минимального набора компонент L4Linux для поддержки работы конкретной программы
![Page 14: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/14.jpg)
Agenda • Введение • Previous works • Концептуальный подход • Дизайн L4Linux • Фрагментация • Текущий статус
![Page 15: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/15.jpg)
Дизайн L4Linux • L4Linux как часть окружения • Доступ драйверов к устройствам • Запуск программ
![Page 16: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/16.jpg)
Доступ к устройствам • Отображение физической памяти устройств в виртуальное адресное пространство L4Linux
• L4Linux может запросить у окружения и процесса Init прерывание. Для этого в контексте исполнения создается специализированный поток регистрируемый в системе как обработчик прерывания. Доставка прерывания осуществляется через доставку сообщения с разблокировкой потока прерывания
![Page 17: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/17.jpg)
Запуск программ • Программы L4Linux являются программами окружения L4
• Все системные вызовы программы обрабатываются как page fault. Каждой программе назначается ядро L4Linux в качестве обработчика page faults.
![Page 18: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/18.jpg)
Agenda • Введение • Previous works • Концептуальный подход • Дизайн L4Linux • Фрагментация • Текущий статус
![Page 19: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/19.jpg)
Previous • Извлечение подсистем : • Dde_linux • Dde_ipxe • Dde_oss • Rump kernel
…Используются через слои сопряжения
![Page 20: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/20.jpg)
Обобщенный подход
• Выбирается изолированная подсистема ядра Linux • Анализируется API подсистемы и зависимости в заголовочных файлах и других подсистемах
• Зависимые заголовочные файлы вместе с исходным кодом извлекаются исходного кода ядра Linux
• API подсистемы накладывается на механизм сообщений микроядерного окружения.
В нашем случае – необходима реализация интерфейса взаимодействия другими компонентами L4Linux.
![Page 21: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/21.jpg)
Подход::минимальный сборка
• Вместо извлечения подсистем и создания слоя сопряжения для работы подсистемы в окружении микроядра, мы извлекаем минимальный набор компонент L4Linux необходимых для работы конкретной программы, разбиваем их по адресным пространствам и группируем вместе с программой на одном ядре
• Минимальный набор подсистем фрагментированного L4Linux: • загрузчик процессов • диспетчер системных вызовов • обработчик page fault
![Page 22: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/22.jpg)
Agenda • Введение • Previous works • Концептуальный подход • Дизайн L4Linux • Фрагментация • Текущий статус
![Page 23: Approaches to the Fragmentation of a Paravirtualization System](https://reader033.fdocuments.in/reader033/viewer/2022042715/5594a74e1a28ab4c348b4668/html5/thumbnails/23.jpg)
Текущий статус • Ручное разделение L4Linux на компоненты • Извлечение криптографической подсистемы, блочного ввода-‐вывода, сетевого стека и драйверов для proof of concept