Информатики и радиоэлектроники

Министерство образования Республики Беларусь

 

Учреждение образования

БелорусскиЙ государственный университет

информатики и радиоэлектроники

 

Факультет компьютерных систем и сетей

 

Кафедра информатики

 

Пояснительная записка

к курсовому проекту

на тему

 

СОЗДАНИЕ POSIX-СОВМЕСТИМОЙ ОПЕРАЦИОННОЙ СИСТЕМЫ ДЛЯ ВСТРАИВАЕМЫХ УСТРОЙСТВ

  Студент гр. 052002 Е.В. Паньков Руководитель М.В. Михневич

ВВЕДЕНИЕ

 

В логической структуре типичной вычислительной системы операционная система занимает положение между устройствами с их микроархитектурой, машинным языком и, возможно, собственными(встроенными) микропрограммами — с одной стороны — и прикладными программами с другой. Разработчикам программного обеспечения операционных систем позволяет абстрагироваться от деталей реализации и функционирования устройств, предоставляя минимально необходимый набор функций. В большинстве вычислительных систем операционная система является основной, наиболее важной (а иногда и единственной) частью системного программного обеспечения. С 1990-х годов наиболее распространёнными операционными системами являются системы семейства Microsoft Windows и системы класса UNIX (особенно Linux и Mac OS) [5].

Операционная система, сокр. ОС (англ. operating system, OS) — комплекс управляющих и обрабатывающих программ, которые, с одной стороны, выступают как интерфейс между устройствами вычислительной системы и прикладными программами, а с другой стороны — предназначены для управления устройствами, управления вычислительными процессами, эффективного распределения вычислительных ресурсов между вычислительными процессами и организации надёжных вычислений. Это определение применимо к большинству современных операционных систем общего назначения [5].

 

Основные функции:

1. Выполнение по запросу программ (ввод и вывод данных, запуск и остановка других программ, выделение и освобождение дополнительной памяти и др.).

2. Загрузка программ в оперативную память и их выполнение.

3. Стандартизованный доступ к периферийным устройствам (устройства ввода-вывода).

4. Управление оперативной памятью (распределение между процессами, организация виртуальной памяти).

5. Управление доступом к данным на энергонезависимых носителях (таких как жёсткий диск, оптические диски и др.), организованным в той или иной файловой системе.

6. Обеспечение пользовательского интерфейса.

7. Параллельное или псевдопараллельное выполнение задач (многозадачность).

8. Разграничение доступа различных процессов к ресурсам.

9. Организация надёжных вычислений (невозможности одного вычислительного процесса намеренно или по ошибке повлиять на вычисления в другом процессе), основана на разграничении доступа к ресурсам.

 

ТЕОРЕТИЧЕСКИЕ СВЕДЕНИЯ

В 1950—1960-х годах сформировались и были реализованы основные идеи, определяющие функциональность ОС: пакетный режим, разделение времени и… Необходимость оптимального использования дорогостоящих вычислительных ресурсов… Уже пакетный режим в своём развитом варианте требует разделения процессорного времени между выполнением нескольких…

Классификация

По количеству одновременных пользователей:

Однопользовательские- один пользователь во все время работы ОС

Многопользовательские- переключение между пользователями

 

По выполнению задач

Однозадачные- следующую задачу можно выполнить, лишь полностью остатовив предыдущую

Многозадачные- задачи выполняются попеременно или одновременно, каждой задаче выделяется квант времени процессора, и каждый процессор выполняет отдельную задачу.

 

По структуре ядра:

1. С монолитным ядром

2. С модульным ядром

3. С экзоядром

4. Гибридные

 

ОСРВ (операционные системы реального времени) применяются там, где требуется синхронизация между внешними физическими процессами и программами в ОС. ОСРВ может гарантировать завершение определенных внутренних операций за конкретное время.

 

Распределенные ОС:

РОС управляют несколькими компьютерами одновременно (обычно связанными сетью) так, что они выглядят как одна единая система.

 

Встраиваемые ОС:

Предназначены для использования во встраиваемых системах, таких как бортовые компьютеры автомобилей, бытовая техника, мобильные устройства. Оперируют очень ограниченными ресурсами и имеют компактный дизайн.

 

POSIX (Portable Operating System Interface for Unix — Переносимый интерфейс операционных систем Unix) — набор стандартов, описывающих интерфейсы между операционной системой и прикладной программой. Стандарт создан для обеспечения совместимости различных UNIX-подобных операционных систем и переносимости прикладных программ на уровне исходного кода, но может быть использован и для не-Unix систем. Серия стандартов POSIX была разработана комитетом 1003 IEEE. Международная организация по стандартизации (ISO) совместно c Международной электротехнической комиссией (IEC) приняли данный стандарт (POSIX) под названием ISO/IEC 9945.

 

Стандарт состоит из четырёх основных разделов:

Основные определения (Base definitions) — список основных определений и соглашений, используемых в спецификациях, и список заголовочных файлов языка Си, которые должны быть предоставлены соответствующей стандарту системой.

Оболочка и утилиты (Shell and utilities) — описание утилит и командной оболочки sh, стандарты регулярных выражений.

Системные интерфейсы (System interfaces) — список системных вызовов языка Си.

Обоснование (Rationale) — объяснение принципов, используемых в стандарте [2].

 

 

ОБЗОР СУЩЕСТУЮЩИХ АНАЛОГОВ

Linux

 

 

Рисунок 1 – интерфейс ОС Linux

 

Плюсы:

- Бесплатная

- Огромный выбор приложений

- Богатые возможности системного программирования

- Хорошо спроектированная структура

Минусы:

- Относительно большой размер базовой установленной системы

 

QNX

 

Рисунок 2 – интерфейс ОС QNX

 

Плюсы:

- ОС реального времени

- Микроядро

- Высокая скорость работы

Минусы:

- Платная для коммерческого использования

 

 

Windows CE

 

 

Рисунок 3 – интерфейс ОС Windows CE

 

Плюсы:

- Поддержка реального времени

- Низкое потребление памяти (работает на 32 кб RAM)

- Доступ к Win32 API при программировании

 

Минусы:

- Платная

ПОСТАНОВКА ЗАДАЧИ

Требуется разработать 64-битную операционную систему (OC) с поддержкой подмножества стандарта POSIX.1-2004 (IEEE Std 1003.1).

ОС должна выполняться на PC с архитектурой х86-64, дисковыми накопителями PATA и VESA-совместимыми графическими адаптерами с поддержкой VESA BIOS Extensions (VBE) – на виртуальных машины Bochs и VirtualBox.

Со стороны разработчика ПО

1. Возможность разработки и сборки ПО для разрабатываемой ОС при помощи GNU GCC, и GNU Binutils; должна быть предоставлена стандартная библиотека С, реализующая требуемое подмножество системных функций POSIX.1.

2. Возможность запуска скомпилированного ПО в формате ELF64 на разрабатываемой ОС.

 

Со стороны пользователя

ОС должна предоставлять пользовательский интерфейс в виде POSIX XCU совместимой командной оболочки текстового режима.

 

Функции ядра ОС

XBD 4.5 – File Hierarchy - ОС должна реализовывать иерархическую файловую систему (ФС) с возможностью соединения нескольких ФС путем точек… XBD 4.6 – Filenames XBD 4.11 - Pathname Resolution

Поддержка оборудования

Поддержка чтения и записи файловой системы FAT32, расположенной на первом разделе накопителя, подключенного через канал ATA Primary Master. Поддержка ввода символов с клавиатуры Поддержка вывода текстовой информации на монитор через VESA-совместимый графический адаптер с поддержкой расширенных…

Комплект поставки

ОС должна включать в себя оболочку командной строки и набор утилит, аналогичных GNU Coreutils, совместимых со стандартном IEEE 1003.1 XCU.

 


ПРОЕКТИРОВАНИЕ

Объекты ядра

Объект ожидания — объект, описывающий причину «засыпания» потока и логику его «просыпания». Поддерживается вечное ожидание, ожидание таймаута,… Процесс— объединяет в себе несколько потоков, набор открытых файлов,… Адресное пространство— соответствие между страницами виртуальной памяти и фреймами физической памяти. Одна и та же…

Службы ядра

Аллокатор фреймов — управляет распределением фреймов физической памяти. Используется bitmap-аллокатор. Менеджер процессов — планирует выполнение задач, а также управляет жизненным… Загрузчик ELF — выполняет разбор ELF64-файлов и загрузку кода и данных из них в память процесса.

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

Настраивается полноценная страничная адресация (ядро в первых 16 Мб и куча ядра в верхней половине виртуальной памяти). Инициализируется эмулятор…  

Взаимодействие ядра и ПО

Номера и сигнатуры, а также соглашения о вызове соответствуют таковым в 64-битных ядрах Linux, за счет чего достигается бинарная совместимость с… Список реализованных системных вызовов: 0x00 sys_read — чтение файла

ИНТЕРФЕЙС ПОЛЬЗОВАТЕЛЯ

    Рисунок 4 — пример сессии

ЗАКЛЮЧЕНИЕ

В процессе выполнения курсового проекта были изучены и проанализированы принципы построения современных операционных систем. Изучены особенности… В итоге было создана операционная система, демонстрирующая основные принципы…  

ПРИЛОЖЕНИЕ А

Диаграммы

    Рисунок 7 – диаграмма классов файловой системы

ПРИЛОЖЕНИЕ Б

Расширенное техническое задание

Конечный продукт: 64-битная операционная система (OC) с поддержкой подмножества стандарта POSIX.1-2004 (IEEE Std 1003.1).

Предполагаемые среды выполнения: PC с архитектурой х86-64, дисковыми накопителями PATA и VESA-совместимыми графическими адаптерами с поддержкой VESA BIOS Extensions (VBE) – виртуальные машины Bochs и VirtualBox.

Необходимая функциональность

1. Возможность разработки и сборки ПО для разрабатываемой ОС при помощи GNU GCC, и GNU Binutils; должна быть предоставлена стандартная библиотека С,… 2. Возможность запуска скомпилированного ПО в формате ELF64 на разрабатываемой… Функции ядра ОС

ПРИЛОЖЕНИЕ В

Использованные сокращения

- ФС – файловая система - POSIX - Portable Operating System Interface - IEEE - Institute of Electrical and Electronics Engineers

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

[1] Intel 64 and IA-32 Architectures Software Developer's Manual Volume 3A; System Programming Guide [2] Tanenbaum A., Modern Operating Systems. 3rd ed. / Tanenbaum A. - Prentice… [3] Tanenbaum A., Woodhull A., Modern Operating Systems. 3rd ed. / Tanenbaum A., Woodhull A. - Prentice Hall, 2006 —…