Для студентов КГТУ по предмету ДругиеПортирование ОСРВ Embox на открытую архитектуру RISC-VПортирование ОСРВ Embox на открытую архитектуру RISC-V
2024-07-262024-07-26СтудИзба
Курсовая работа: Портирование ОСРВ Embox на открытую архитектуру RISC-V
Описание
Оглавление
Введение.................................................................................................... 4
1. Постановка задачи................................................................................ 6
2. Обзор...................................................................................................... 7
2.1 Процессорная архитектура RISC-V....................................................................................... 7
2.2 Операционная система Embox............................................................................................... 9
2.3 Структурная схема Embox................................................................................................... 10
2.4 Используемые технологии................................................................................................... 11
3. Реализация........................................................................................... 12
3.1 Карта памяти........................................................................................................................ 12
3.2 Стартовый код...................................................................................................................... 13
3.3 Отладочный вывод............................................................................................................... 14
3.4 Функции setjmp и longjmp................................................................................................... 15
3.5 Базовая подсистема прерываний........................................................................................ 16
3.5.1 Обработчик прерываний............................................................................................... 16
3.5.2 Драйвер контроллера прерываний............................................................................... 18
3.6 Таймер................................................................................................................................... 19
3.7 Переключение контекста..................................................................................................... 20
3.8 Функция vfork....................................................................................................................... 22
3.9 Драйвер устройства сетевого контроллера......................................................................... 22
4. Тестирование....................................................................................... 25
Заключение.............................................................................................. 26
Список литературы................................................................................. 27
3
Введение
В 80-е годы программное обеспечение (далее по тексту — ПО) с закрытым исходным кодом, распространявшееся на платных условиях, стало очень популярным. Это было связано, в основном, с принятием поправок к закону об авторском праве в США в 1974 году [1], закрепляющих за разработчиком права на интеллектуальную собственность, поставив производителей ПО в один ряд с изобретателями. Это позволило компаниям получать прибыль за разработанные ими программные продукты. Однако в скором времени стало очевидно, что такой подход имеет некоторые недостатки. Закрытость исходных кодов не позволяет пользователям оценить безопасность ПО, а также дополнить его своей функциональностью.
Вследствие указанных недостатков стал набирать популярность альтернативный подход к созданию программных продуктов, при котором сообщество программистов на распределенной основе создают ПО с открытым исходным кодом (Open-Source Software, OSS). Это позволяет снизить стоимость разработки, быстро устранять возникающие ошибки и проверять алгоритм работы ПО, что в целом повышает безопасность использования продукта. Вместе с тем появляется возможность добавления своих решений в исходные коды OSS программ [2].
Принцип открытости исходных кодов оказался применим не только к ПО. Последнее время набирает популярность принцип открытости исходных кодов аппаратного обеспечения (Open-Source Hardware, OSH [3]). До конца 90х годов все процессорные архитектуры были закрытыми. В большинстве случаев производители аппаратного обеспечения не раскрывали детали реализации. Сопроводительная документация к аппаратному обеспечению содержала только минимальную информацию, необходимую для разработки ПО. Данный подход имеет ряд недостатков. Закрытость исходных кодов, прежде всего, не позволяет узнать какие в действительности операции исполняются на процессоре. Например, на конференции Black Hat была опубликована статья, в которой было показано, что процессоры на базе архитектуры x86 исполняют недокументированные инструкции [4]. Также при таком подходе сообщество не может проверить архитектуру процессора на ошибки. Например, с 1995 года [5] многие процессоры компании Intel подвержены уязвимости Meltdown [6]. Это значительно снижает безопасность использования таких процессоров. К тому же, закрытые процессорные ар
Введение.................................................................................................... 4
1. Постановка задачи................................................................................ 6
2. Обзор...................................................................................................... 7
2.1 Процессорная архитектура RISC-V....................................................................................... 7
2.2 Операционная система Embox............................................................................................... 9
2.3 Структурная схема Embox................................................................................................... 10
2.4 Используемые технологии................................................................................................... 11
3. Реализация........................................................................................... 12
3.1 Карта памяти........................................................................................................................ 12
3.2 Стартовый код...................................................................................................................... 13
3.3 Отладочный вывод............................................................................................................... 14
3.4 Функции setjmp и longjmp................................................................................................... 15
3.5 Базовая подсистема прерываний........................................................................................ 16
3.5.1 Обработчик прерываний............................................................................................... 16
3.5.2 Драйвер контроллера прерываний............................................................................... 18
3.6 Таймер................................................................................................................................... 19
3.7 Переключение контекста..................................................................................................... 20
3.8 Функция vfork....................................................................................................................... 22
3.9 Драйвер устройства сетевого контроллера......................................................................... 22
4. Тестирование....................................................................................... 25
Заключение.............................................................................................. 26
Список литературы................................................................................. 27
3
Введение
В 80-е годы программное обеспечение (далее по тексту — ПО) с закрытым исходным кодом, распространявшееся на платных условиях, стало очень популярным. Это было связано, в основном, с принятием поправок к закону об авторском праве в США в 1974 году [1], закрепляющих за разработчиком права на интеллектуальную собственность, поставив производителей ПО в один ряд с изобретателями. Это позволило компаниям получать прибыль за разработанные ими программные продукты. Однако в скором времени стало очевидно, что такой подход имеет некоторые недостатки. Закрытость исходных кодов не позволяет пользователям оценить безопасность ПО, а также дополнить его своей функциональностью.
Вследствие указанных недостатков стал набирать популярность альтернативный подход к созданию программных продуктов, при котором сообщество программистов на распределенной основе создают ПО с открытым исходным кодом (Open-Source Software, OSS). Это позволяет снизить стоимость разработки, быстро устранять возникающие ошибки и проверять алгоритм работы ПО, что в целом повышает безопасность использования продукта. Вместе с тем появляется возможность добавления своих решений в исходные коды OSS программ [2].
Принцип открытости исходных кодов оказался применим не только к ПО. Последнее время набирает популярность принцип открытости исходных кодов аппаратного обеспечения (Open-Source Hardware, OSH [3]). До конца 90х годов все процессорные архитектуры были закрытыми. В большинстве случаев производители аппаратного обеспечения не раскрывали детали реализации. Сопроводительная документация к аппаратному обеспечению содержала только минимальную информацию, необходимую для разработки ПО. Данный подход имеет ряд недостатков. Закрытость исходных кодов, прежде всего, не позволяет узнать какие в действительности операции исполняются на процессоре. Например, на конференции Black Hat была опубликована статья, в которой было показано, что процессоры на базе архитектуры x86 исполняют недокументированные инструкции [4]. Также при таком подходе сообщество не может проверить архитектуру процессора на ошибки. Например, с 1995 года [5] многие процессоры компании Intel подвержены уязвимости Meltdown [6]. Это значительно снижает безопасность использования таких процессоров. К тому же, закрытые процессорные ар
Характеристики курсовой работы
Список файлов
Портирование ОСРВ Embox на открытую архитектуру RISC-V.doc