Тип работы:
Предмет:
Язык работы:


Развитие подсистемы Linux в ОС Embox для исполнения двоичных файлов

Работа №142802

Тип работы

Магистерская диссертация

Предмет

математика

Объем работы31
Год сдачи2022
Стоимость4600 руб.
ПУБЛИКУЕТСЯ ВПЕРВЫЕ
Просмотрено
26
Не подходит работа?

Узнай цену на написание


Введение 4
1. Постановка задачи 6
2. Обзор существующих решений 7
2.1. Интерфейс прикладного программирования 7
2.2. Эмуляция Linux в ОС FreeBSD 8
2.3. Слой совместимости на основе виртуализации 8
2.4. Windows Subsystem for Linux 9
2.5. Windows Subsystem for Linux 2 10
2.6. Семейство микроядер L4 10
2.7. Библиотека Linux Kernel Library в ОС Embox 11
2.8. Проект SGX-LKL 11
2.9. Анализ и сравнение различных решений 12
3. Архитектура 14
3.1. Библиотека LKL как паравиртуализированное ядро . . . 14
3.2. Обработка системных вызовов Linux 15
3.3. Соответствие потока ОС задаче Linux 16
3.4. Обзор итоговой архитектуры 17
4. Особенности реализации 19
4.1. Модуль подсистемы Linux в ОС Embox 19
4.2. Запуск сторонних исполняемых файлов 19
4.3. Вывод текста из LKL в терминал ОС Embox 20
5. Тестирование и апробация 22
Заключение 27
Список литературы 28

На сегодняшний день в мире существует большое количество опера­ционных систем (сокр. ОС). Различные системы используются в разных областях и устанавливаются на все типы устройств: от простых марш­рутизаторов до высоконагруженных вычислительных машин. Разра­ботка и поддержка ОС — трудоёмкий процесс. Разработчики должны обеспечить систему всеми необходимыми служебными инструментами, драйверами и прикладными программами. Для этого приходится зани­маться либо созданием программного обеспечения с нуля, либо адапта­цией программного обеспечения из других ОС.
Среди множества ОС можно выделить широкораспространённое се­мейство GNU/Linux1, на сегодняшний день включающее в себя более 200 систем [5]. Проект ядра Linux, состоящий более чем из 27 миллионов строк исходного кода и насчитывающий более 20 тысяч разработчиков (данные на 2020 год) [10], является одним из крупнейших программ­ных проектов в мире. Создаваемое для систем GNU/Linux программное обеспечение проверено временем и сообществом пользователей, поэто­му некоторая его часть могла бы использоваться в других ОС, даже узкоспециализированных.
Таким образом, ускорить разработку и упростить использование разных ОС могла бы возможность запуска в их среде исполняемых файлов и библиотек, скомпилированных для систем GNU/Linux — слой двоичной совместимости. Слой двоичной совместимости с GNU/Linux в разном виде реализован в некоторых проектах, таких как система FreeBSD [17][9], семейство ОС Windows [4][2], ряд микроядер L4 [16]. Каждое решение спроектировано и реализовано для конкретной систе­мы, поэтому их сложно или практически невозможно адаптировать для других ОС. Однако, эти решения можно проанализировать, чтобы вы­делить наиболее удачные технические особенности.
Свободная ОС реального времени для встроенных систем Embox [24], история разработки которой берёт начало на математико-механическом факультете Санкт-Петербургского государственного университета, яв­ляется одним из тех проектов, для которых быстрое привнесение про­стого слоя двоичной совместимости с GNU/Linux могло бы облегчить разработку и удобство использования системы. Возникает идея реали­зовать слой двоичной совместимости с GNU/Linux в виде такой подси­стемы для Embox, архитектура которой будет относительно простой и не будет зависеть от особенностей конкретной ОС. Такая архитектура сможет быть использована в реализациях подсистемы для разных ОС, а разработанная для ОС Embox подсистема будет служить основой для прочих реализаций.

Возникли сложности?

Нужна помощь преподавателя?

Помощь в написании работ!


В рамках данной работы были достигнуты следующие результаты.
• Проведён анализ существующих в разных ОС реализаций слоя двоичной совместимости с GNU/Linux. Выделены два подхода: эмуляция и паравиртуализация. Сделан выбор в пользу метода паравиртуализации ядра Linux.
• Разработана архитектура подсистемы двоичной совместимости с GNU/Linux, которая может быть реализована в ряде разных ОС. Это достигается за счёт использования библиотеки LKL в качестве паравиртуализированного ядра.
• На основе разработанной архитектуры реализована и настроена подсистема для ОС Embox.
• Проведена апробация созданной подсистемы. В Embox запущены демонстрационные приложения linux_cat и linux_ls. Продемон­стрирована работа с файловой системой procfs.
Логичным продолжением данной работы будет являться исследо­вание возможности поддержки слоем совместимости разделяемых биб­лиотек и запуска двоичных файлов, скомпонованных динамически. В частности, поддержка библиотеки GLIBC (как разделяемой) сильно увеличит область применимости предлагаемого слоя двоичной совме­стимости.


[1] A C library for embedded Linux [Электронный ресурс].— URL: https://uclibc.org/about.html (дата обращения: 16.05.2022).
[2] Craig Loewen. Announcing WSL 2 [Электронный ресурс]: ста­тья.— URL: https://devblogs.microsoft.com/commandline/ announcing-wsl-2/ (дата обращения: 16.05.2022).
[3] Craig Loewen. A Deep Dive Into How WSL Allows
Windows to Access Linux Files [Электронный ресурс]: ста­тья.— URL: https://devblogs.microsoft.com/commandline/ a-deep-dive-into-how-wsl/ (дата обращения: 16.05.2022).
[4] Deepu Thomas. Windows Subsystem for Linux Overview [Электрон­ный ресурс]: статья.— URL: https://docs.microsoft.com/en-gb/ archive/blogs/wsl/windows-subsystem-for-linux-overview (дата обращения: 16.05.2022).
[5] DistroWatch.com [Электронный ресурс]: база дистрибутивов GNU/Linux. URL: https://distrowatch.com/search.php? ostype=Linux&category=All&status=Active#simple (дата обраще­ния: 16.05.2022).
[6] FAQ’s about Windows Subsystem for Linux [Электронный ресурс]: справочное руководство.— URL: https://docs.microsoft.com/ en-us/windows/wsl/faq (дата обращения: 16.05.2022).
[7] Frequently Asked Questions about the GNU C Library
[Электронный ресурс]: справочное руководство.— URL: https://sourceware.org/glibc/wiki/FAQ#Even_statically_ linked_programs_need_some_shared_libraries_which_is_not_ acceptable_for_me. What_can_I_do.3F (дата обращения:
16.05.2022).
[8] L4Re - Overview [Электронный ресурс]. — URL: https://l4re.org/ overview.html (дата обращения: 16.05.2022).
[9] Linux® emulation in FreeBSD [Электронный ресурс]: справоч­ное руководство. — URL: https://docs.freebsd.org/en/articles/ linux-emulation/ (дата обращения: 16.05.2022).
[10] Michael Larabel. The Linux Kernel Enters 2020 At 27.8 Million Lines In Git But With Less Developers For 2019 [Электронный ресурс]: статья.— URL: https://www.phoronix.com/scan.php?page=news_ item&px=Linux-Git-Stats-EOY2019 (дата обращения: 16.05.2022).
[11] POSIX (The GNU C Library) [Электронный ресурс]: справочное ру­ководство. — URL: https://www.gnu.org/software/libc/manual/ html_node/POSIX.html (дата обращения: 16.05.2022).
[12] Purdila O., Grijincu L.A., Tapus N. LKL: The Linux kernel library.— 2010.
[13] Raghu Bharadwaj. Mastering Linux Kernel Development.— Birmingham : Packt Publishing, 2017. — ISBN: 9781785883057.
[14] A Robust and Flexible Operating System Compatibility Architecture / T. Saeki, Y. Nishiwaki, T. Shinagawa, S. Honiden. — 2020.
[15] SGX-LKL: Securing the Host OS Interface for Trusted Execution / C. Priebe, D. Muthukumaran, J. Lind и др.— 2019....27


Работу высылаем на протяжении 30 минут после оплаты.



Подобные работы


©2025 Cервис помощи студентам в выполнении работ