Введение в Unix


         

Основы операционной системы UNIX

Этот краткий (предположительно, 16 часов, из которых 6 - практические занятия) вводный курс предназначен для ознакомления с архитектурой, особенностями и основными средствами ОС UNIX. При успешном освоении, курс позволит свободно и продуктивно работать в ОС UNIX в качестве пользователя и продолжить изучение администрирования или программирования этой операционной системы.
Изложение ведется, в основном, без привязки к особенностям какой-либо версии UNIX, но при необходимости конкретизации, она делается для систем SVR4, в частности, ОС Solaris 8.
В последней версии (1.2, 11 марта 2004 года) обновлена хронология основных событий в истории ОС UNIX.

Современные версии ОС UNIX
Версии Vn разрабатывались группой Computer Research Group (CRG) в Bell Labs. Поддержкой занималась другая группа, Unix System Group (USG). Разработкой также занималась группа Programmer's WorkBench (PWB), привнесшая систему управления исходным кодом sccs, именованные каналы и ряд других идей. В 1983 году эти группы были объединены в одну, Unix System Development Lab.

Современные версии ОС UNIX
Основные характеристики
Архитектура ОС UNIX
Основные функции ядра
Системные вызовы
Пользовательские процессы и процессы ядра
Обмен данными
Системное программное обеспечение
Основы операционной системы UNIX
Пользователи и группы

Справочные руководства по командам
Создание простых конвейеров. Запуск процесса в приоритетном и фоновом режиме. Динамическое формирование командной строки. Использование цикла for в командном интерпретаторе. Проверка условий в командном интерпретаторе. Создание цикла по счетчику в командном интерпретаторе.

Занятие 3. 2 часа.
Основы операционной системы UNIX
Литература
Основы операционной системы UNIX
История UNIX
Справочные руководства по командам:

Введение в Unix

Ядро - управление основными ресурсами (процессор, оперативная память) и периферийными устройствами обмена и хранения данных (магнитные диски, магнитные ленты, принтеры, терминалы, линии связи и т.д.).
Файловая система (ФС) организует структуры данных на устройствах хранения.
Shell - командный интерпретатор: слушает ваш терминал и транслирует вашу команду в запрос к ядру и ФС.

Главные части UNIX
Мультизадачность: несколько задач, или процессов; в частности, возможны процессы "заднего плана" (back ground); от них не надо ждать ответа, чтобы продолжать что-нибудь делать (на их фоне). Многопользовательская система - это следствие предыдущего свойства

Основные свойства UNIX
Языки программирования в UNIX
Версии UNIX
Начало и конец сеанса работ
Исправление ошибок при наборе текста команды
Некоторые простые команды
Формат команд
Останов выполнения команды
Структура информации о функциях UNIX
Каталоги и файлы

Литература

Операционная система QNX 4.Архитектура системы

Основным назначением любой операционной системы (ОС) является управление ресурсами компьютера. Все процессы в системе: планирование выполнения прикладных программ, запись файлов на диск, пересылка данных по сети и т.д., - должны выполняться как можно более единообразно и бесконфликтно.
Некоторые прикладные системы могут предъявлять повышенные требования к управлению ресурсами и планированию процессов. Например, работа приложений реального времени зависит от того, как операционная система управляет большим количеством событий, возникающих за конечные интервалы времени. Чем больше функций берет на себя ОС, тем более свободно "чувствуют" себя эти приложения при возникновении конфликтных ситуаций.
Для приложений, работающих в режиме реального времени, QNX является идеальной операционной системой. Она удовлетворяет всем основным требованиям, предъявляемым к системам реального времени: в ней реализован многозадачный режим, приоритетно-управляемое планирование и быстрое переключение контекста.

Архитектура ядра системы QNX
Ядро системы QNX
Системные процессы
Системные процессы и процессы пользователя
Драйверы устройств
Связь между процессами
Операционная система с передачей сообщений
QNX как сеть
Однокомпьютерная модель
Гибкая сетевая обработка

Unix - статьи

Демонами в мире Unix традиционно называются процессы, которые не взаимодействуют с пользователем напрямую. У процесса-демона нет управляющего терминала и нет, соответственно, пользовательского интерфейса. Для управления демонами приходится использовать другие программы. Само название «демоны» возникло благодаря тому, что многие процессы этого типа большую часть времени проводят в ожидании какого-то события. Когда это событие наступает, демон активизируется (выпрыгивает, как чертик из табакерки), выполняет свою работу и снова засыпает в ожидании события. Следует отметить, что многие демоны, такие как, например, Web-сервер или сервер баз данных, могут отбирать на себя практически все процессорное время и другие ресурсы системы. Такие демоны гораздо больше работают, чем спят.

Демоны
Область применения демонов – создание таких приложений, которые могут, и должны, выполняться без участия пользователя. Обычно это разного рода серверы. Тем не менее, демоны задействуют многие важные элементы системы и понимание принципов работы демонов способствует пониманию принципов работы Unix/Linux в целом (помимо прочего, добрый демон поможет нам изучить некоторые особенности применения сигналов, с которыми мы ранее не сталкивались).

Демоны
Демоны - 2
Демоны - 3
Демоны - 4
Демоны - 5
Демоны - 6

Linux API – Введение в межпроцессное взаимодействие
Наличие в Unix-системах простых и эффективных средств взаимодействия между процессами оказало программирование в Unix не менее важное влияние, чем представление объектов системы в виде файлов. Благодаря межпроцессному взаимодействию (Inter-Process Communication, IPC) разработчик (и пользователь) может разбить решение сложной задачи на несколько простых операций, каждая из которых доверяется отдельной небольшой программе.

Неименованные каналы
Неименованные каналы - 2
Неименованные каналы - 3
Неименованные каналы - 4
Неименованные каналы - 5
Неименованные каналы - 6

Linux API – работаем с файловой системой
Управление хранением данных на диске – одна из самых важных задач любой ОС, настолько важных, что система DOS так и называлась – дисковая операционная система. Вероятно, читатель этой статьи, желающий стать Linux- программистом, уже знает, как устроена файловая система Linux с точки зрения пользователя. Мы рассмотрим эту систему с точки зрения программиста. Один из основополагающих принципов Unix/Linux – everything is a file – в вольном переводе означает: «файлы - наше все».

Управление файлами устройств
Управление файлами устройств - 2
Управление файлами устройств - 3
Файловая система /proc
Два способа прочесть содержимое директории
Разреженные файлы
Блокировка областей файла
Литература:

Процессы и потоки
Понятие процесса играет ключевую роль в современных ОС. Существует много определений процессов, я воспользуюсь простым определением, данным в [] – процесс, это выполняющийся экземпляр программы. Хотя это определение, в общем, «работает», оно не совсем подходит к многопоточным программам Linux, о которых мы поговорим в следующей статье. Важный аспект процессов с точки зрения ОС – неделимость процесса относительно выделения ресурсов.

Процессы и потоки
Процессы и потоки - 2
Процессы и потоки - 3
Процессы и потоки - 4
Процессы и потоки - 5
Процессы и потоки - 6

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

Сигналы
Сигналы - 2
Сигналы - 3
Сигналы - 4
Сигналы - 5
Список реентерабельных функций

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

Сокеты в файловом пространстве имен
Сокеты в файловом пространстве имен - 2
Парные сокеты
Сетевые сокеты
Сетевые сокеты - 2
Сетевые сокеты - 3
Сетевые сокеты - 4
Литература:

Объекты SVID IPC
Интерфейсы трех механизмов SVID IPC подобны. Для того, чтобы разные процессы могли получить доступ к одному объекту системы, они должны «договориться» об идентификации этого объекта. Роль идентификатора для всех объектов System V IPC выполняет ключ - уникальное число-идентификатор объекта. Для того, чтобы использовать один и тот же объект, программы должны использовать один и тот же ключ.

Объекты SVID IPC
Объекты SVID IPC - 2
Объекты SVID IPC - 3
Разделяемая память
Разделяемая память - 2
Разделяемая память - 3
Семафоры
Семафоры - 2

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

Потоки
Потоки и процессы
Потоки и процессы - 2
Потоки и процессы - 3
Потоки и процессы - 4
Потоки и процессы - 5
Досрочное завершение потока
Досрочное завершение потока - 2

Средства синхронизации потоков
Изучая взаимодействие между процессами, мы много внимания уделили средствам синхронизации процессов. У потоков тоже есть свои специальные средства синхронизации. Вернемся к первому примеру из предыдущей статьи, - программе threads. Напомню, что в том примере мы создавали два потока, используя одну и ту же функцию потока. В процессе создания каждого потока этой функции передавалось целочисленное значение (номер потока).

Средства синхронизации потоков
Средства синхронизации потоков - 2
Атрибуты потоков
Литература:

Самоучитель по Flash MX
Организация и ведение библиотек электрорадиоэлементов в P-CAD 2002
Объектно-ориентированное программирование в ограничениях
Форекс
Язык программирования Форт
Делаем из цветной картинки черно-белую
Основы фотографии
Иллюстрированный самоучитель по Photoshop 7
Введение в цифровую фотографию
Photoshop for WEB
Теория и практика фотографии
Самоучитель по Adobe Photoshop 5.5
Самоучитель по цифровой фотографии
Фостер Алан Дин - Что Натворил Ву-Линг
Базы данных. Создание форм и отчетов
Microsoft FoxPro. Краткое руководство по управлению для Windows
Базы данных - MySQL - статьи
Базы данных. Вводный курс
Три манифеста баз данных ретроспектива и перспективы