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


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

Работа №126379

Тип работы

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

Предмет

информационные системы

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

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


Введение 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.
...


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



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


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