Создание POSIX-совместимой операционной системы для встраиваемых устройств - Курсовая работа

бесплатно 0
4.5 136
Изучение принципов построения современных операционных систем. Создание операционной системы, демонстрирующей основные принципы POSIX, и позволяющей запускать пользовательское программное обеспечение, имеющей совместимость на уровне исходного кода.


Аннотация к работе
Пояснительная записка к курсовому проектуВ логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными (встроенными) микропрограммами - с одной стороны - и прикладными программами с другой. Разработчикам программного обеспечения операционных систем позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций. В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. ОС (англ. operating system, OS) - комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны - предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надежных вычислений. Выполнение по запросу программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).В 1950-1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и многозадачность, разделение полномочий, реальный масштаб времени, файловые структуры и файловые системы Пакетный режим предполагает наличие очереди программ на исполнение, причем система может обеспечивать загрузку программы с внешних носителей данных в оперативную память, не дожидаясь завершения исполнения предыдущей программы, что позволяет избежать простоя процессора. Поскольку скорость клавиатурного ввода (и даже чтения с экрана) данных оператором много ниже, чем скорость обработки этих данных компьютером, использование компьютера в "монопольном" режиме (с одним оператором) могло привести к простою дорогостоящих вычислительных ресурсов. Распространение многопользовательских систем потребовало решения задачи разделения полномочий, позволяющей избежать возможности изменения исполняемой программы или данных одной программы в памяти компьютера другой программой (намеренно или по ошибке), а также изменения самой системы прикладной программой. Реализация разделения полномочий в операционных системах была поддержана разработчиками процессоров, предложивших архитектуры с двумя режимами работы процессора - "реальным" (в котором исполняемой программе доступно все адресное пространство компьютера) и "защищенным" (в котором доступность адресного пространства ограничена диапазоном, выделенном при запуске программы на исполнение).Рисунок 1 - интерфейс ОС Linux Плюсы: - Бесплатная Минусы: - Относительно большой размер базовой установленной системы Рисунок 2 - интерфейс ОС QNX Плюсы: - ОС реального времениТребуется разработать 64-битную операционную систему (OC) с поддержкой подмножества стандарта POSIX.1-2004 (IEEE Std 1003.1). ОС должна выполняться на PC с архитектурой х86-64, дисковыми накопителями PATA и VESA-совместимыми графическими адаптерами с поддержкой VESA BIOS Extensions (VBE) - на виртуальных машины Bochs и VIRTUALBOX. Возможность разработки и сборки ПО для разрабатываемой ОС при помощи GNU GCC, и GNU Binutils; должна быть предоставлена стандартная библиотека С, реализующая требуемое подмножество системных функций POSIX.1. XBD 4.1 - Concurrent Execution - ОС должна поддерживать одновременное выполнение нескольких процессов, запускаемых пользователем либо системой XBD 10.1 - Directory Structure and Files - ОС должна предоставлять запущенным программам доступ к файловой системе, включая специальные устройства POSIX (block devices) и терминалы (character devices; режим доступа к терминалу - неканонический).В каждый момент времени активен один поток, остальные - хранят свое последнее состояние и ожидают в очереди планировщика. Каждый поток обладает отдельным стеком, адресным пространством и ссылкой на текущий объект ожидания. Объект ожидания - объект, описывающий причину "засыпания" потока и логику его "просыпания". Поддерживается вечное ожидание, ожидание таймаута, ожидание данных в потоке, ожидание окончания порожденного подпроцесса. операционный программный posix кодАллокатор кучи ядра - управляет распределением памяти в куче (heap) ядра, выделяя и освобождая память по запросу других сервисов. Аллокатор фреймов - управляет распределением фреймов физической памяти.Ядро ОС загружается загрузчиком GRUB с диска и размещается в первых 16 Мб памяти, начиная с адреса 0х100000 (1 Мб). 32-битный загрузочный код ядра сохраняет векторы прерываний реального режима, настраивает страничную адресацию первых 8 Мб и переводит процессор в 64-битный режим. Настраивается полноценная страничная адресация (ядро в первых 16 Мб и куча ядра в верхней половине виртуальной памяти).

План
Содержание

Введение

1. Теоретические сведения

2. Обзор существующих аналогов

3. Постановка задачи

4. Проектирование

4.1 Объекты ядра

4.2 Службы ядра

4.3 Процесс загрузки

4.4 Взаимодействие ядра и программного обеспечения

5. Интерфейс пользователя

Заключение

Список использованных материалов

Приложения
Заказать написание новой работы



Дисциплины научных работ



Хотите, перезвоним вам?