Практика работы с QNX

Евгений Видревич, Е. Горошко, Михаил Горчак, Роман Жавнис, Дмитрий Сошин, Олег Цилюрик, А. Чиликин, Д. Алексеев, А.В. Волков



Авторы От составителя (вместо предисловия)

ОПЕРАЦИОННАЯ СИСТЕМА … ИЗНУТРИ

Операционные системы реального времени Введение Определение терминологии Обзор архитектур ОСРВ Функциональные требования к ОСРВ Диспетчеризация потоков Уровни приоритетов Механизмы синхронизации Защита от инверсии приоритетов Временные характеристики ОС Современные ОСРВ VxWorks AE 1.1 Windows CE.NET QNX 6.21 Заключение Литература Инверсия приоритетов и реальное время Системная информация Получение версии операционной системы Получение информации об оперативной памяти Получение идентификатора процесса по его имени Получение информации о подключенных файловых системах Загрузка процессора Что дальше? Использование дополнительных .ELF сегментов в QNX Введение Создание дополнительных сегментов с помощью языковых расширений компилятора GNU C/C++ Как работает команда use при показе помощи Создание сегмента с информацией типа .pinfo Создание сегмента с PhAB ресурсом Использование сегментов для других целей Список рекомендуемой литературы и источников Служба времени Модель временной шкалы QNX Измерение временных характеристик Системное профилирование Источники информации Получение списка файловых дескрипторов процесса Ссылки Получение системной информации стека протоколов TCP/IP в ОС QNX 4.25 Введение Взаимодействие с менеджером TCP/IP в QNX Получение статистики протокола IP Заключение Литература Ресурсы Internet Получение системной информации стека протоколов TCP/IP в ОС QNX6 Введение в библиотеку kvm Получение статистики по протоколам Получение статистики по сетевым интерфейсам Получение таблицы маршрутизации Получение списка активных соединений Заключение Литература ИСПОЛЬЗОВАНИЕ ВОЗМОЖНОСТЕЙ…

А пинги здесь тихие.... Печать в QNX Две подсистемы печати? Прямая печать на /dev/par BSD подсистема Spooler и печать в Photon Совместное использование подсистем печати Печать в сети Сетевой принтер со встроенным принт-сервером Windows- Server QNX в роли сервера печати Источники информации SAMBA в QNX 6.Х (QNX в Windows сети ) Зачем нужна SAMBA в QNX? Установка Конфигурирование Конфигурирование запуска SAMBA средствами суперсервера inetd Сравнение производительности SMB-обмена для QNX- и Win-клиентов ТЕХНИКА ПРОГРАММИРОВАНИЯ

Простой проект: от Makefile до qpr Сборка библиотеки Программа Отладка Запись в CVS Создаем пакет для qnxinstall Драйверы Часть 1. Введение в предмет Часть 2. Пишем драйвер Выбор задачи для эксперимента Подготовка интерфейсной части Написание менеджера ресурса Комментарии к коду менеджера ресурса Часть 3. Использование драйвера (вариации на тему ICQ) Написание клиентской части Комментарии к коду клиента Примечания к исходным кодам Выводы и направления развития Источники информации ПРОГРАММИРОВАНИЕ ДЛЯ GUI

Построение приложений в PhAB Начинаем создание проекта Более тонкие вопросы Общий вид функций callback Как "добраться" к widget из программного кода? Как динамически отобразить widget контейнер на экране? Работа с widget в потоках (thread) Структура файлов проекта Подключение к проекту собственных файлов программного кода Использование библиотек Еще несколько советов Заключение Краткая справка по терминологии, используемой в графической системе Photon OS QNX Использованные источники информации Глобальные "горячие клавиши" и не только... Пробел случая :) Физика элементарных частиц К снаряду... Простой тест Создаем регион Прием событий Использование в приложениях Что можно сделать еще? Литература Перемещение виджетов Где это можно использовать? Литература Построение собственных виджетов на примере "двуручного" слайдера Половина вторая. Построение виджетов Жизненный цикл виджета Процедура построения виджета Две половины. Виджет-слайдер с двумя ручками Описание виджета Функции и методы Ссылка на класс Функция создания класса DoubleSlider Метод установки значений по умолчанию Обработчики событий Установка и чтение ресурсов Добавление виджета в PhAB Напоследок... Литература Визуальные инкапсулированные компоненты Задача Предварительное решение Последующее решение Придаем компоненту некоторый "шарм" Замечания по сборке Рабочий проект Постскриптум Быстрый GUI Заключительные примечания Послесловие ПРОГРАММИРОВАНИЕ В СЕТЯХ

Утилита on Какие возможности дает пользователю утилита on? Ожидание устройства или файла Запуск на другом терминале Запуск с заданным приоритетом Запуск от имени другого пользователя Запуск на удаленном узле QNX сети Заключение Сеть IP - когда писать программы лень Маленькое лирическое отступление Источники информации Сервер TCP/IP… много серверов хороших и разных Постановка задачи Клиент Последовательный ретранслирующий сервер "Классический" параллельный сервер Параллельный сервер с предварительным созданием копий (pre-fork) Использование суперсервера inetd Сервер, создающий поток обслуживания по запросу клиента Сервер с предварительным созданием потоков Сервер с использованием динамического пула потоков Итоги Симметричный кластер Общие соображения Общее описание проекта Целевая задача Организация кластера Кластер и живучесть системы Как это выглядит Резюме в заключение Использованные источники информации Приложение A. Полный исходный код симметричного кластера