- •Введение
- •1. Основные понятия системного программного обеспечения
- •1.1. Понятия прикладного и системного программного обеспечения
- •1.2. Состав системного программного обеспечения
- •2. Состав и архитектура операционных систем
- •2.1. Состав операционных систем
- •2.2. Архитектура ос
- •3. Управление памятью
- •3.1. Функции ос по управлению памятью
- •3.2. Классификация методов распределения памяти
- •3.3. Распределение памяти без использования внешней памяти
- •3.4. Методы структуризации виртуальной памяти
- •4. Процессы и потоки
- •4.1. Концепция процессов и потоков
- •4.2. Многозадачность. Формы программной работы
- •4.3. Подсистема управления процессами и потоками
- •4.4. Создание процессов
- •4.5. Потоки и их модели
- •5. Планирование и синхронизация процессов и потоков
- •5.1. Виды планирования
- •5.2. Алгоритмы планирования потоков
- •5.3. Алгоритмы приоритетного планирования
- •5.4. Взаимоисключения
- •5.5. Семафоры
- •5.6. Тупики
- •6. Файловые системы
- •6.1. Цели и задачи файловой системы
- •6.2. Организация файлов и доступ к ним
- •6.3. Логическая организация файла
- •6.4. Каталоговые системы
- •6.5. Основные возможности файловой системы ntfs
- •6.6. Структура тома с файловой системой ntfs
- •6.7. Возможности ntfs по ограничению доступа к файлам и каталогам
- •7. Построение операционных систем
- •7.1. Принципы построения операционных систем
- •7.2. Построение интерфейсов операционных систем
- •7.3. Интерфейс прикладного программирования
- •7.4. Классификация системных вызовов
- •7.5. Интерфейс пользователя
- •8. Семейство операционных систем unix
- •8.1. Основные понятия системы unix
- •8.2. Операционная система Linux
- •Заключение
- •Библиографический список
- •Оглавление
8.2. Операционная система Linux
Linux – это свободно распространяемая версия UNIX, которая первоначально была разработана Линусом Торвальдсом (Linus Torvalds) в университете Хельсинки (Финляндия) в 1991 году. Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей, которая была разработана Ричардом Столманом, основателем Фонда бесплатно распространяемых программ Free Software Foundation.
Linux был создан с помощью многих UNIX-программистов и энтузиастов из Интернета. К данному проекту добровольно подключились те, кто имеет достаточно навыков и способностей развивать систему.
В настоящее время существует свыше 50 коммерческих компаний, которые сами разрабатывают и продают свои пакеты Linux, что несколько размывает границу между коммерческим и бесплатным программным обеспечением.
Linux – это полноценная многозадачная многопользовательская операционная система (точно так же, как и все другие версии UNIX). Это означает, что одновременно много пользователей могут работать на одной машине, одновременно выполняя много программ. Linux достаточно хорошо совместим с рядом стандартов для UNIX (насколько можно говорить о стандартизации UNIX) на уровне исходных текстов. Все исходные тексты для Linux, включая ядро, драйверы устройств, библиотеки, пользовательские программы и инструментальные средства распространяются свободно.
Linux поддерживает различные типы файловых систем для хранения данных. Некоторые файловые системы, такие как файловая система ext2fs, были созданы специально для Linux.
Выполняемые программы используют динамически связываемые библиотеки, то есть выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске. Это позволяет выполняемым файлам занимать меньше места на диске, особенно тем, которые многократно используют библиотечные функции. Есть также статические связываемые библиотеки для тех, кто желает пользоваться отладкой на уровне объектных кодов или иметь «полные» выполняемые программы, которые не нуждаются в разделяемых библиотеках. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечные модули своими собственными.
Заключение
Учебное пособие рассматривает основы построения операционных систем и связанного с ними программного обеспечения, принципы управления системными ресурсами такими, как память, процессы, потоки, файлы и каталоги.
Освоение базовых принципов построения операционных систем и управления их ресурсами позволит разрабатывать сравнительно сложные системные программные приложения.
Особое внимание в пособии уделено вопросам управления процессами и потоками с целью синхронизации и организации их взаимодействия.
В пособии также рассматриваются принципы разработки операционных систем и основы построения интерфейсов прикладного программирования.
Современные технологии создания системного программного обеспечения основаны на разработке программных приложений, реализующих пользовательский интерфейс взаимодействия с ресурсами вычислительной системы. Особенности построения типичных системных программных приложений также нашли свое отражение в учебном пособии.
Таким образом, учебное пособие содержит описание основных технологий системного программного обеспечения, применяемых при разработке современных приложений.