Операционная система ЗОСРВ «Нейтрино»
Руководство пользователя
Знакомство с ЗОСРВ «Нейтрино»
Отличия ЗОСРВ «Нейтрино» от других операционных систем
ОС UNIX
ОС Microsoft Windows
Ограничения
В чем уникальность ЗОСРВ «Нейтрино»?
Менеджеры ресурсов (администраторы ресурсов)
Инструкция по установке
Дистрибутивный диск
Создание установочного (инсталляционного) ISO
Автоматизированная установка
Первичная настройка
Решение проблем с загрузкой
Проблемы с загрузкой в UEFI-системах
Создание инсталляционной USB-флэш (для x86 систем)
Создание загрузочной USB-флэш
С таблицей разделов MBR для BIOS-систем
С таблицей разделов GPT для UEFI-систем
Приложение: Выбор загрузочного устройства в ПНС
Начало работы
Вход в систему, выход из нее и завершение работы
root или не root?
Вход в систему
Автоматический вход в систему
Пример файла профиля .profile
Выход из системы
Завершение работы и перезагрузка системы
Управление учетными записями пользователей
Для чего служат учетные записи пользователей?
База данных учетных записей
Управление собственной учетной записью
Управление другими учетными записями
Добавление пользователей
Редактирование пользователей
Удаление учетных записей
Определение групп
Добавление новой группы
Изменение существующей группы
Устранение неполадок
Управление запуском ЗОСРВ «Нейтрино»
Что происходит при загрузке?
Загрузка образа ЗОСРВ «Нейтрино»
Работа с таблицей разделов файловой системы
Таблица разделов MBR
Таблица разделов GPT
Работа с разделами файловой системы
Файловая система Power-Safe
Файловая система QNX4
Программа diskboot
.diskroot
/etc/system/sysinit
Распознавание устройств
Каталог oem
Файл overrides
Специфичные для системы программы распознавания
Файл /etc/rc.d/rc.sysinit
Файл rc.local
Утилита tinit
Обновление драйверов диска
Устранение неполадок
Подключение оборудования
Общие сведения
Устройства PCI/AGP
Устройства CD-ROM и DVD
Дисководы для гибких дисков
Жесткие диски
Устройства EIDE
Устройства для шины SCSI
Устройства типа SCSI RAID
Устройства типа LS-120
Устройства типа ORB
Диски типов Zip и Jaz
Виртуальные диски (диски в оперативной памяти)
Устройства ввода
Мыши и клавиатуры
Сенсорные экраны (touchscreen)
Звуковые карты
Устройства на шине ISA
Устройства на шине PCI
Устройства USB
Принтеры
Мыши и клавиатуры
Сенсорные экраны (touchscreen)
Запоминающие устройства
Символьные устройства
Обычные последовательные адаптеры
Многопортовые последовательные адаптеры
Параллельные порты
Терминалы
Атрибуты ввода/вывода
Сетевые адаптеры
Идентификация сетевого адаптера
Запуск драйвера
Проверка правильности взаимодействия драйвера и оборудования
Модемы
Внутренние модемы
Модемы на шине PCI
Внешние модемы
Кабельные модемы / ISDN
Тестирование модемов
Устранение неисправностей модемов
Видеокарты
Изменение видеорежимов в оболочке Photon
Ручная настройка видеокарты
Настройка нескольких дисплеев
Расширенные параметры
Системные требования и лимиты
Понятие системных лимитов
Конфигурационные лимиты
Общесистемные требования и лимиты
Файловые дескрипторы
Примитивы для синхронизации
Лимиты для протокола TCP/IP
Очереди сообщений
Разделяемая память
Ограничения, связанные с платформой
Лимиты файловых систем
Запрос лимитов файловой системы
Файловая система QNX4 (fs-qnx4.so)
Файловая система Power-Safe (fs-qnx6.so)
Файловая система Ext2 (fs-ext2.so)
Файловая система DOS FAT12/16/32 (fs-dos.so)
Файловая система CD-ROM ISO 9660 (fs-cd.so)
Файловая система NFS2 и NFS3 (fs-nfs2, fs-nfs3)
Файловая система CIFS (fs-cifs)
Встраиваемая файловая система
Встраиваемая транзакционная файловая система Embedded Transaction filesystem (ETFS, fs-etfs-ram)
Файловая система UDF (fs-udf.so)
Apple Macintosh HFS и HFS Plus (fs-mac.so)
Файловая система Windows NT (fs-nt.so)
Интерфейсы пользователя (UI) и окружение
Командная строка
Командная строка или графический интерфейс?
Обработка команды
Драйверы символьных устройств
Командный интерпретатор
Утилиты
Основные команды
ЗОСРВ «Нейтрино» для пользователей MS-DOS
Устранение неполадок
Настройка параметров окружения и оболочки
Что происходит при входе в систему?
Настройка домашнего каталога
Настройка командного интерпретатора
Пример файла .kshrc
Переменные окружения
Конфигурационные строки
Задание часового пояса
Настройка оконного окружения Photon
Типы терминалов
Устранение неполадок
Написание сценариев командного интерпретатора
Что такое сценарий?
Доступные командные интерпретаторы
Пример сценария командного интерпретатора Korn
Эффективность
Рекомендации разработчикам сценариев
Редакторы
Выбор редактора
Поддерживаемые редакторы
Редактор по умолчанию
Графическое оконное окружение Photon microGUI
Обзор графической оболочки Photon
Настройка системной панели
Настройка меню Launch
Настройка меню Desktop
Настройка внешнего вида окна
Автоматический запуск приложений
Конфигурационные инструменты
Просмотр файлов с помощью администратора файлов
Обозреватель справки
Просмотр Web-страниц
Соединение с другими системами
Комбинации клавиш быстрого запуска
Переменные окружения графической оболочки Photon
Устранение неполадок
Графическое оконное окружение Screen
Удалённый рабочий стол с помощью VNC
Запуск VNC-сервера в графическом окружении Photon
Запуск VNC-сервера в графическом окружении Photon через inetd
Запуск VNC-сервера в графическом окружении Screen
Запуск VNC-сервера в графическом окружении GF
Подключение к удалённому рабочему столу с помощью встроенного VNC-клиента
Подключение к удалённому рабочему столу из Linux
Использование виртуальных устройств ввода
Запуск драйвера виртуального ввода
Работа с виртуальными устройствами ввода
Модуль виртуальной клавиатуры
Модуль виртуального тачпада
Устранение неполадок
Настройка и управление
Загрузочные образы
Файл построения образа ФС
Общие сведения
Атрибуты
Основные атрибуты
Специальные
Файловые системы ifs (загрузочный образ)
Файловые системы ffs2 / ffs3
Файловые системы etfs
Файловые системы qnx6fs
Файловые системы ffs2 / ffs3 / etfs
Файловые системы etfs / qnx6fs
Примеры файлов построения
Пример монтирования целевой ФС по протоколу NFS
Файл построения с использованием diskboot
Файл построения без использования diskboot
Файл построения для UEFI-систем
Файл построения для APIC-систем с автоматическим входом в консольном режиме
Аутентификация для протокола PPP с CHAP между двумя узлами с ЗОСРВ «Нейтрино»
Повторяемость сборки загрузочного образа
Переменные окружения
PINFO_DATE
SOURCE_DATE_EPOCH
Файл построения и опции утилиты mkifs
UID и GID файлов
Опция ''n(n)''
Прочие причины
Профилирование процедуры запуска системы (boot sequence)
Профилирование образов с diskboot
Профилирование образов, не использующих diskboot
Анализ результатов профилирования с помощью утилит bootlog и sloginfo
Автоматизация сценария построения загрузки системы (ключ -b)
Адаптивное квотирование (распределение) ресурсов
Что такое адаптивное партиционирование?
Партиции и адаптивное партиционирование
Требования к системе и пользователям
Планировщик потоков
Управление ресурсами с помощью планировщика потоков
Быстрый старт: планировщик потоков адаптивного партиционирования
Особенности реализации планировщика потоков адаптивного партиционирования
Введение
Учет процессорного времени
Распределение процессорного времени между партициями
Неполная нагрузка
Свободное время
Полная нагрузка
Краткое описание режимов планирования
Наследование партиций
Партиции для серверных потоков и процессов
Критически важные потоки
Банкротство
Планировщик потоков адаптивного партиционирования и другие
Меры предосторожности при использовании FIFO-планирования
Использование партиционирования в многоядерных системах
Партиции и привязка потоков к процессорным ядрам
Настройка и применение планировщика потоков адаптивного партиционирования
Сборка образа
Создание партиций планировщика
Создание партиции в загрузочном образе
Создание партиции в командной строке
Создание партиции в программе
Запуск процесса в партиции
Запуск процесса в загрузочном образе
Запуск процесса в командной строке
Запуск процесса в программе
Просмотр информации об использовании партиций
Аспекты применения адаптивного планировщика потоков
Определение количества партиций и их содержимого
Выбор бюджета времени CPU для каждой партиции
Назначение нулевых бюджетов
Назначение бюджетов для менеджеров ресурсов
Выбор размера окна
Точность балансировки бюджетов
Сравнение задержек с планированием по приоритетам
Практические ограничения
Неконтролируемые взаимодействия между партициями планировщика
Безопасность партиций
Управление безопасностью планировщика потоков
Безопасность критически важных потоков
Тестирование и отладка
Трассировочные события инструментированного ядра
Использование других методов
Аварийный доступ к системе
Приложение: ответы на вопросы об адаптивном планировании потоков
Принципы планирования
Микроучет
Окно усреднения
Алгоритм планирования
Накладные расходы
Критически важные потоки и банкротство
Наследование
Бюджеты
Помещение потока в партицию
Системные аспекты ЗОСРВ «Нейтрино»
Глоссарий (адаптивное квотирование)
Файлы и каталоги
Файлом является все
Типы файлов
Имена файлов и путевые имена
Абсолютные и относительные путевые имена
Каталоги ''точка'' и ''две точки''
Примечание о команде cd
Отсутствие буквенных обозначений для дисков
Путевые имена, начинающиеся с точки
Расширения
Отображение пространства путевых имен
Правила образования имен файлов
Где все хранится?
/
/bin
/boot
/dev
/etc
/fs
/home
/lib
/proc
/root
/sbin
/tmp
/usr
/var
Владение файлами и права доступа
Команды setuid и setgid
Sticky-бит
Принятые по умолчанию права доступа к файлу
Расширения файловых имен
Устранение неполадок
Точная настройка системы
Получение информации о статусе системы
Улучшение производительности
Уменьшение времени начальной загрузки
Файловые системы и драйверы блочного ввода/вывода
Производительность и отказоустойчивость
Обновление метаданных
Пропускная способность
Конфигурация
Влияние значения параметра commit при блочных операциях ввода/вывода
Размер буфера ввода/вывода
Двойная буферизация
Сравнение функций, использующих файловый дескриптор и stdio
Предварительное задание размера файла
Точная настройка USB устройств хранения данных
Планирование периодической фоновой работы с помощью cron и crontab
Носители информации и файловые системы
Работа с файловыми системами
Общие сведения
Настройка, запуск и остановка блочной файловой системы
Монтирование и демонтирование файловых систем
Файловая система образа
Файловая система в ОЗУ: каталог /dev/shmem
Файловая система QNX4
Файловая система Power-Safe
Файловая система DOS
Файловая система для устройств CD-ROM
Файловая система Linux Ext2
Файловые системы флэш-памяти
Файловая система CIFS
Файловая система NFS
Файловая система UDF
Файловые системы HFS и HFS Plus
Файловая система NTFS
Файловая система с распаковкой сжатых данных ''на лету''
Устранение неполадок
Резервное копирование и восстановление данных
Общие сведения
Стратегии резервного копирования
Выбор носителя и места размещения копируемых данных
Выбор формата резервного копирования
Управление резервным копированием
Архивация данных
Создание архива
Извлечение файлов из архива
Компрессия архива
Декомпрессия архива
Выбор средства для хранения
Сменные носители
Резервное копирование физических жестких дисков
Образы типа Ghost
Резервное копирование на удаленную систему
Удаленные файловые системы
Другие способы создания удаленных резервных копий
Дисковая структура файловой системы QNX4
Компоненты раздела
Каталоги
Ссылки
Блоки экстентов
Файлы
Утилиты для обслуживания файлов
Утилита fdisk
Утилита dinit
Утилита chkfsys
Утилита dcheck
Утилита zap
Утилита spatch
Восстановление дисков и файлов
Использование утилиты chkfsys для файловой системы QNX4
Восстановление при наличии поврежденного блока в середине файла
Что делать, если система больше не загружается?
Если утилита mount завершается с ошибкой
Если диск не восстанавливается
Если файловая система не повреждена
USB устройства
USB-стек и общие принципы его работы
Подключение носителей информации (USB Mass Storage)
Форматирование носителей информации (USB Mass Storage)
NVMe устройства
Обзор NVMe и общие принципы его работы
Подключение носителей информации
Форматирование носителей информации
Сеть и сетевые сервисы
Сетевой стек и протоколы TCP/IP
Обзор протоколов TCP/IP
Клиенты и серверы
Хосты и шлюзы
Серверы имен
Маршрутизация
Программные компоненты сети TCP/IP
Запуск интернет-серверов
Запуск нескольких экземпляров стека TCP/IP
Динамически назначаемые параметры TCP/IP
Перенаправление (forwarding) IP пакетов между сетевыми интерфейсами
Использование протокола PPPoE
Установка сеанса PPPoE
Запуск соединения ''точка-точка'' через сеанс PPPoE
Использование протокола DHCP
Использование протокола AutoIP
Устранение неполадок
Работают ли менеджер io-pkt-* и драйверы?
Какова информация о серверах имен?
Как имена хостов связаны с IP-адресами?
Как получить сведения о состоянии сети?
Как убедиться в том, что локальный хост подключен к другим хостам?
Как отобразить информацию о контроллере интерфейса?
Прозрачная распределенная сеть Qnet
Что такое Qnet?
Когда использовать протокол Qnet?
Правила именования узлов
Программные компоненты сети Qnet
Запуск Qnet
Создание файла useqnet
Запуск сетевого администратора, протоколов и драйверов
Инкапсуляция Qnet в IP
Просмотр сетевого окружения
Заполнение каталога /net
Устранение неполадок
Работает ли протокол Qnet?
Работают ли процесс io-pkt-* и драйверы?
Работает ли сетевая плата?
Как получить диагностическую информацию?
Уникально ли имя хоста?
Находятся ли узлы в одном и том же домене?
Настройка Ethernet соединений
Ручная настройка соединения (в том числе из загрузочного образа)
Настройка с использованием netmanager
Настройка Wi-Fi соединений
Поддержка Wi-Fi 802.11 a/b/g
Слой 802.11 в NetBSD
Управление устройствами
Узлы
Поддержка кодирования информации
Использование Wi-Fi в стеке io-pkt
Подключение к беспроводной сети
Беспроводная сеть без кодирования информации
Беспроводная сеть с аутентификацией и кодированием по протоколу WEP (Wired Equivalent Privacy)
Аутентификация и кодирование с помощью протокола WPA/WPA2
История создания протокола WPA
Утилиты для работы с протоколом WPA
Подключение с помощью WPA или WPA2
Персональная (personal-level) и корпоративная (enterprise-level) аутентификация
Управление подключениями к беспроводным сетям с помощью демона wpa_supplicant
Использование точки беспроводного доступа (Wireless Access Point, WAP)
Создание точки беспроводного доступа
Работа в режиме шлюза
Работа в режиме моста
Точка доступа с протоколом WEP
Точка доступа с протоколом WPA
Настройка TCP/IP в беспроводной сети
Клиент в инфраструктурном и специальном режимах
Сервер DHCP в точке беспроводного доступа, работающей в режиме шлюза
Запуск сервера DHCP на шлюзе
Конфигурационный файл сервера DHCP
Запуск ретранслятора DHCP на шлюзе
Настройка точки доступа в качестве маршрутизатора
Настройка агрегированного канала
Описание технологии
Создание и удаление агрегированного канала
Настройка агрегированного канала
Настройка сетевого моста
Описание технологии
Настройка сетевого моста
Пакетная фильтрация (pf)
Формирование белого списка IP-адресов (на получение и отправку пакетов)
Отключение пакетного фильтра
Настройка DNS сервера
Описание технологии
Настройка DNS-сервера
Отправка запроса для проверки работы DNS-сервера
Настройка FTP сервера
Запуск сервера
Настройка доступа для пользователей
Настройка TELNET сервера
Запуск сервера
Настройка доступа для пользователей
Настройка SSH сервера
Запуск сервера
Настройка доступа по ключам (без ввода пароля)
Устранение неполадок
Настройка NFS сервера
Настройка конфигурационных файлов
Запуск сервера
Подключение к серверу
Подключение к серверу из Linux
Подключение к серверу из ЗОСРВ «Нейтрино»
Настройка защищённого соединения с помощью ipsec-tools
Описание технологии
Настройка защищённого соединения внутри локальной сети
Настройка встраиваемого Web-сервера
Где следует размещать файлы?
Запуск Web-сервера slinger
Динамический HTML
Метод CGI
Метод SSI
Метод с использованием сервера данных
Меры обеспечения безопасности
Примеры
Звуковые устройства
Запуск аудио драйвера
Запуск аудио драйвера с не поддерживаемым HDA-устройством
Подключение звуковой карты с USB интерфейсом
Проверка работоспособности
Запись звука
Воспроизведение
Подсистема поддержки открытых драйверов (LXDev)
Поддержка драйверов с кодовой базой Linux
Общее описание менеджера io-lxdev
Настройка менеджера io-lxdev
Мониторинг аномальной активности
Вступление
Пример использования amon в консольном интерфейсе
Пример использования amon в графическом интерфейсе
Печать
Обзор систем печати
Печать с помощью утилиты lpr
Интерфейс пользователя
Каталоги спулинга
Управление доступом
Менеджер сети
Параметры принтера: файл /etc/printcap
Примеры содержимого файла /etc/printcap
Удаленная печать на принтере, находящемся в другой сети
Удаленная печать на TCP/IP-принтере с использованием утилиты lpr
Печать с помощью утилиты spooler
Настройка spooler
Печать с использованием USB принтера
Удаленная печать по протоколу Qnet
Удаленная печать по протоколу TCP/IP
Конфигурационные файлы для утилиты spooler
Использование утилиты lpr
Использование программного обеспечения NCFTP
Использование программного обеспечения SAMBA
Устранение неполадок
Сообщения об ошибках в программах семейства lpr
Устранение неисправностей при удаленной печати
Обеспечение безопасности системы
Общие вопросы безопасности ОС
Удаленные и локальные атаки
Эффективность атак
Вирусы
Общие вопросы безопасности для ЗОСРВ «Нейтрино»
Безопасность в ЗОСРВ «Нейтрино»
Передача сообщений
Сервис pdebug
Сервис qconn
Qnet
IPSec
Настройка межсетевого экрана
Системная архитектура
Обзор архитектуры операционной системы
Назначение и ключевые технологии
Масштабируемая архитектура и встраиваемые системы
Важность поддержки стандартов группы IEEE 1003.1
Микроядерная архитектура
Операционная система как кооперация процессов
Детализация сервисов ядра
Системные процессы операционной системы
Межпроцессное взаимодействие
Распределение вычислений по сети
Микроядро и системная библиотека
Микроядро: реализация и сервисы
Общие сведения
Сервисы ядра
Потоки и процессы
Атрибуты потоков
Жизненный цикл потока
Планирование потоков
Выполнение планирования
Приоритеты потоков
Алгоритмы планирования
Алгоритм планирования FIFO
Циклический алгоритм планирования (Round-Robin)
Спорадический алгоритм планирования
Управление приоритетами и алгоритмами планирования
Проблемы межзадачного взаимодействия
Алгоритмические проблемы потоков
Примитивы синхронизации
Блокировки взаимного исключения (мьютексы)
Наследование приоритетов
Условные переменные
Барьеры
Ждущие блокировки
Блокировки по чтению/записи
Семафоры
FIFO-планирование
Синхронизация с помощью механизма обмена сообщениями
Синхронизация с помощью атомарных операций
Реализация служб синхронизации
Службы управления часами и таймерами
Корректировка времени
Таймеры и таймауты
Обработка прерываний
Задержка обработки прерывания
Задержка планирования
Вложенные прерывания
Способы работы с прерываниями
Микроядро: менеджер процессов
Введение
Управление процессами
Способы создания процессов
Функция posix_spawn()
Функция spawn()
Функция fork()
Функция vfork()
Функции exec*()
Порядок загрузки процесса
Управление памятью
MMU — блок управления памятью
Защита памяти в режиме исполнения
Программные сторожевые таймеры
Модель полной защиты памяти
Изменяемый размер страницы
Блокирование памяти
Дефрагментация физической памяти
Автоматическая маркировка памяти, как неперемещаемой
Управление пространством имен
Префикс как сфера ответственности
Разрешение имен (префиксов)
Порядок обхода точек монтирования
Точки монтирования одиночных устройств
Точки монтирования объединенных файловых систем
Польза совмещения точек монтирования
Системный каталог /proc/mount
Символьные префиксы
Особое именование устройств
Относительные префиксы
Особенности использования команды cd
Локальное пространство имен менеджера ресурсов
Блоки управления открытым контекстом (OCB)
Микроядро: инструментальная версия
Общие сведения
Обзор диагностического инструментария
Контроль событий
Режимы генерации событий
Циклический буфер
Интерпретация данных
Трассировка собственного кода
Микроядро: многопроцессорные конфигурации
Общие сведения
Асимметричная многопроцессорность (ASMP)
Симметричная многопроцессорность (SMP)
Особенности реализации микроядра
Загрузка SMP системы с архитектурой x86
Загрузка SMP системы с отличной архитектурой
Принцип работы SMP-версии микроядра
Особенности планирования потоков
Блокировки ядра
Межпроцессорные прерывания (IPI)
Критические секции кода
SMP-системы с ограниченной миграцией
Выбор между ASMP и SMP
Межпроцессное взаимодействие (IPC)
Синхронный и асинхронный обмен сообщениями
Что выбрать: MsgReply() или MsgError()?
Копирование данных при передаче сообщений
Простые сообщения
Каналы и соединения
Импульсы (асинхронные сообщения)
Наследование приоритетов
Программные интерфейсы механизмов обмена сообщениями
Обмен сообщениями без взаимных блокировок
События
Уведомления ввода/вывода
Сигналы
Специальные сигналы
Перечень поддерживаемых сигналов
POSIX-очереди (очереди сообщений)
Назначение очередей сообщений
Низкоуровневая реализация очередей
API управления очередями сообщений
Разделяемая память
Обмен сообщениями как способ синхронизации доступа
Создание объектов разделяемой памяти
Отображение разделяемой памяти в адресное пространство
Инициализация выделенной памяти
Типизированная память
Особенности реализации
Разметка объектов типизированной памяти
Именование объектов типизированной памяти
Представление объектов в пространстве имен
Типизированная память и флаги mmap()
Права доступа к объектам
Установка размера объекта и его смещения
Взаимодействие с другими POSIX API
Практические примеры
Выделение непрерывных блоков системной памяти
Выделение пакетной памяти
Создание региона, безопасного для DMA-операций
Неименованные (pipe) и именованные (FIFO) каналы
Неименованные каналы (pipe)
Именованные каналы (FIFO)
Менеджеры ресурсов
Введение
Что такое менеджер ресурсов (администратор ресурсов)?
Назначение менеджера ресурсов
Типы менеджеров ресурсов
Менеджеры устройств
Менеджеры файловых систем
Взаимодействие через стандартные IPC
Архитектура менеджеров ресурсов
Типы сообщений
Разделяемая библиотека менеджера ресурсов
Автоматический вызов стандартных обработчиков сообщений
Функции open(), dup() и close()
Многопоточная обработка
Функции диспетчера
Составные сообщения
Второй уровень стандартной обработки сообщений
Адаптивное квотирование ресурсов
Что такое партиции?
Адаптивные партиции
Преимущества адаптивного квотирования ресурсов
Проектирование производительности продукта
Контроль над сложностью проекта
Обеспечение безопасности
Отладка
Адаптивный планировщик потоков
Динамический загрузчик программ
Разделяемые объекты
Статически линкуемые библиотеки
Динамически линкуемые библиотеки
Добавление кода в процессе работы программы
Способы использования разделяемых объектов
ELF — формат исполняемых файлов
ELF файл без COFF
От программы к процессу
Динамический загрузчик
Загрузка разделяемой библиотеки в процессе исполнения
Разрешение имен идентификаторов
Обеспечение высокой готовности системы
Термин ''высокая готовность''
Обеспечение высокой готовности средствами ОС
Интегрированные свойства высокой готовности
Специализированные модули
Клиентская библиотека
Пример сценария восстановления доступа
Мендежер высокой готовности (HAM)
HAM и его дублер (Guardian)
Иерархия HAM
Сущности (entities)
Условия (conditions)
Действия (actions)
Альтернативные действия (alternate actions)
Публикация автономно выявленных условий
Изменения состояния
Другие условия
Подписка на автономно опубликованные условия
Триггер по изменению состояния
Триггер по определенному опубликованному условию
HAM как файловая система
Многоэтапное восстановление
Программные интерфейсы HAM
Мониторинг состояния системы
Обзор программного комплекса мониторинга аномальной активности
Предисловие
Ключевые особенности
Архитектура
Состав комплекса
Подключаемые модули (операторы данных)
Оператор данных kernel (модуль amon-operator-kernel.so)
Разработка собственных операторов данных
Сценарий использования
Дисковая подсистема
Файловые системы
Введение
Файловые системы и разрешение имен
Классы файловых систем
Файловые системы как разделяемые библиотеки
Модули стандартного досупа (cam-*.so)
Модуль блочного ввода-вывода (io-blk.so)
Встроенный RAM-диск
Дисковые разделы
Буферный кеш
Ограничения файловых систем
Файловая система загрузочного образа
Файловая система в ОЗУ
Файловая система ETFS
Структура транзакции
Типы устройств хранения данных
Обеспечение отказоустойчивости
Выравнивание динамического износа (dynamic wear-leveling)
Выравнивание статического износа (static wear-leveling)
Выявление ошибок по CRC-коду
Исправление ошибок по ECC-коду
Мониторинг деградаций операций чтения с автоматическим обновлением
Откат транзакций
Атомарные операции с файлами
Автоматическая дефрагментация файлов
Файловая система QNX4
Файловая система Power-Safe
Проблемы дисковых файловыми системами
Файловая система copy-on-write (COW)
Производительность
Файловая система DOS
Поддержка версий файловой системы
Текстовые файлы формата DOS
Отображение имен файлов DOS
Обработка файловых имен
Международные кодировки для имен файлов
Метки томов DOS
Сопоставление прав доступа между DOS и POSIX
Идентификация владельца файла
Файловая система CD-ROM
Файловая система FFS3
Организация поддержки
Возможности
Утилиты
Системные вызовы
Файловая система NFS
Файловая система CIFS
Файловая система Ext2
Файловая система UDF (Universal Disk Format)
Файловые системы HFS и HFS Plus
Файловая система NTFS
Виртуальные файловые системы
Сетевая подсистема
Архитектура сетевой подсистемы
Менеджер сетевой подсистемы (io-pkt-*)
Модель многопоточности стека
Приоритеты потоков
Модули сетевых протоколов
Драйверные модули
Загрузка и выгрузка драйверов
Встроенная распределенная сеть Qnet
Вступление
Распределенное разрешение имен
Файловый дескриптор (идентификатор соединения)
Реализация операции open()
Служба глобальных имен (GNS)
Именование сетевых ресурсов
Качество обслуживания (QoS) и резервированные соединения
Политики качества обслуживания
Балансировка нагрузки (loadbalance)
Предпочтительный канал (preferred)
Эксклюзивный канал (exclusive)
Выбор политики качества обслуживания
Символьные ссылки
Примеры
Локальные сети
Удаленные сети
Сетевой стек TCP/IP
Введение
Конфигурации стека
Структура сетевого TCP/IP стека
API BSD-сокетов
Функции работы с базами данных
Множественные стеки протоколов
IP-фильтрация и преобразование сетевых адресов (NAT)
Протокол сетевого времени (NTP)
Динамическое конфигурирование узлов
Модуль AutoIP
Протокол PPPoE
Скрипт /etc/autoconnect
Минималистичный встраиваемый web-сервер
Поддержка CGI
Поддержка SSI
Подсистемы ввода-вывода
Символьный ввод/вывод
Введение
Взаимодействие библиотекой с драйверами
Управление устройствами
Режимы ввода
Производительность подсистемы
Консольные устройства
Эмуляция терминала
Последовательные устройства
Параллельные устройства
Псевдотерминальные устройства (pty)
PPS
Устойчивость
Поведение при запуске
Поведение при завершении
Объекты PPS
Файлы объектов
Извещения об изменениях
Опции и квалификаторы
Публикация
Несколько издателей
Подписка
Режимы подписки
Подписка на несколько объектов
Группы извещений
Описание базовых компонентов целевой системы
Графические приложения
amongui
Драйверы
Дисковая подсистема
Блочные устройства
devb-adpu320
devb-aha8
devb-ahci
devb-btmm
devb-eide, devb-eide-vm8
devb-fdc
devb-loopback
devb-mmcsd
devb-mvSata
devb-ncr8
devb-nvme
devb-ram
devb-sdmmc
devb-umass
io-blk.so
Драйверы NOR флеш-памяти
devf-generic
devf-ram
Драйверы файловых систем
fs-cd.so
fs-cifs
fs-dos.so
fs-etfs-ram
fs-ext2.so
fs-mac.so
fs-nfs2
fs-nfs3
fs-nt.so
fs-qnx4.so
fs-qnx6.so
fs-udf.so
Драйверы доступа
cam-cdrom.so
cam-disk.so
cam-optical.so
Сетевая подсистема
devn-asix.so
devn-crys8900.so, devn-crys8900-mx31ads.so, devn-crys8900-s3c2400.so, devn-crys8900-wakuwaku3.so
devn-dm9102.so
devn-el509.so
devn-fd.so
devn-micrel8841.so
devn-ne2000.so, devn-ne2000-401.so, devn-ne2000-403.so, devn-ne2000-800.so, devn-ne2000-opah.so
devnp-asix.so
devnp-ath2.so
devnp-ath.so
devnp-axe.so
devnp-bce.so
devnp-bcm1250.so
devnp-bge.so
devn-pcnet.so
devnp-e1000.so
devnp-e100.so
devn-pegasus.so
devnp-eth2500.so
devnp-fxp.so
devnp-i80579.so
devnp-i82544.so
devnp-igc.so
devnp-ixgbe.so
devnp-lan7430.so
devnp-l_e1000.so
devnp-mpc85xx.so
devnp-mpcsec.so
devnp-msk.so
devnp-ncm.so
devnp-pcn.so
devnp-ral.so
devnp-rtk.so
devnp-rtl8169.so
devnp-rum.so
devnp-run.so
devnp-shim.so
devnp-speedo.so
devnp-topcliff.so
devnp-ural.so
devnp-wi.so
devnp-wm.so
devnp-wpi.so
devn-rtl8150.so
devn-rtl.so, devn-rtl-filt.so
devn-smc9000.so
devn-tigon3.so
devn-tulip.so
devn-via-rhine.so
devn-vortex.so
lsm-autoip.so
lsm-nlf.so
lsm-nraw.so
lsm-pf-v4.so, lsm-pf-v6.so
lsm-qnet.so
Аудио подсистема
deva-ctrl-4dwave.so
deva-ctrl-audiopci.so
deva-ctrl-cmi8x38.so
deva-ctrl-cs4281.so
deva-ctrl-ess1938.so
deva-ctrl-geode.so
deva-ctrl-i8x0.so
deva-ctrl-intel_hda.so
deva-ctrl-nmg6.so
deva-ctrl-sb.so
deva-ctrl-usb.so
deva-ctrl-via686.so
deva-ctrl-vortex.so
deva-ctrl-ymfds1.so
deva-mixer-ac97.so
deva-mixer-ak4531.so
deva-mixer-hda.so
deva-util-restore.so
USB стек
devu-ehci-fsl.so
devu-ehci-mx28.so
devu-ehci.so
devu-kbd
devu-mg-dm816x.so
devu-mouse
devu-ohci.so
devu-prn
devu-uhci.so
devu-xhci.so
devu-xhci-xzynq.so
Подсистема ввода-вывода
Последовательные устройства
Опции io-char
devc-con
devc-con-hid
devc-par
devc-pty
devc-ser8250
devc-ser8250-dw
devc-serexar
devc-serlzilog
devc-serpci
devc-serusb
devc-serzscc
HID-совместимые устройства
devh-cypress5.so
devh-egalax.so
devh-microtouch.so
devh-ps2ser.so
devh-touchintl.so
devh-usb.so
Драйверы ввода Photon
devi-dyna
devi-elo
devi-hid
devi-hirun
devi-microtouch
devi-screen
devi-semtech
devi-virtual
Драйверы I2C
i2c-baytrail
i2c-kpi
Драйверы SPI
spi-kpi.so
Драйверы GPIO
gpio-e2c3
Драйверы управления общими элементами платформ
devp-imx8m.so
devp-rk3568.so
devp-sunxi.so
Модули доверенной загрузки
devt-tvrc
Конфигурационные файлы
/etc/appfilter.conf
/etc/autoconnect
/etc/bootptab
/etc/dhcpd.conf
/etc/exports
/etc/fstab
/etc/ftpchroot
/etc/ftpd.conf
/etc/ftpusers
/etc/gateways
/etc/hosts
/etc/inetd.conf
/etc/ksz/phksz_access
/etc/moduli
/etc/named.conf
/etc/net.cfg
/etc/networks
/etc/nsswitch.conf
/etc/pcnfsd.conf
/etc/pf.conf
Порядок операторов
Макросы
Таблицы
Опции
Нормализация трафика
Формирование очередей
Трансляция
Фильтрация пакетов
Параметры
Маршрутизация
Опции пула
Проверка с запоминанием состояния
Модуляция состояния
Прокси SYN
Опции отслеживания с запоминанием состояния
Получение отпечатка операционной системы
Блокирование имитируемого трафика
Обработка фрагментов
Закладки
Примеры трансляции
Примеры фильтров
Грамматика
/etc/printcap
/etc/protocols
/etc/racoon.conf
/etc/resolv.conf
/etc/rndc.conf
/etc/rpc
/etc/rtadvd.conf
/etc/services
/etc/slog/*.fmt
/etc/snmp.conf
/etc/snmpd.conf
/etc/ssh/sshd_config
/etc/syslog.conf
/etc/system/config/lxdev.conf
snmptrapd.conf
~/.ssh/ssh_config, /etc/ssh/ssh_config
/usr/share/misc/magic
/var/state/dhcp/dhcpd.leases
Модули начальной загрузки
ipl-uefi
startup-*
Универсальные опции библиотеки libstartup
CPU-специфичные опции библиотеки libstartup
ARM-специфичные опции
PowerPC-специфичные опции
x86-специфичные опции
E2K-специфичные опции
Опции конкретных startup-* модулей
x86/startup-bios
x86/startup-bios-nmi
x86/startup-apic
x86/startup-uefi
e2k/startup-elbrus
Приложения Photon
H
helpviewer
I
input-cfg
M
mixer
P
ped
pfm
phcalc
phfind
phgrafx
phlip
phlocale
phlogin2
phmenu
phshutdown
phtvrc
phview
phvkbd
phvnc
phvncserver
phvncviewer
preview
prjobs
pterm
ptermcs
pv
pwmopts
S
savercfg
snapshot
Сервисы
amon
bkgdmgr
bootpd
dhcpd
diskboot
ds
dumper
enum-devices
Обзор
Правила сопоставления
Конфигурационные файлы
Старшинство конфигурационных файлов
Содержимое конфигурационных файлов
Ключевое слово ''start''
Ключевое слово ''requires''
Ключевое слово ''driver''
Ключевое слово ''mount''
Ключевое слово ''enumerator''
Ключевое слово ''set''
Ключевое слово ''append''
Ключевое слово ''uniq''
Ключевое слово ''waitfor''
Ключевое слово ''echo''
Ключевое слово ''tag''
Ключевое слово ''config''
Ключевое слово ''use''
Макросы
Протокол перечислителя шины
ftpd
gns
ham
inetd
inflator
io-audio
io-graphics
io-hid
io-lxdev
io-pkt-*
io-usb
lpd
mcd
Обзор утилиты mcd
Правила MCD
Сервер MCD
Последовательность операций
Конфигурирование MCD
Описания объектов
Правила медийного контента
Использование MCD в качестве программы автоматического монтирования файловой системы
Интерфейс менеджера ресурсов mcd
Шаблоны вызова
Уведомление о подключении и извлечении
Определение медийного контента
API-интерфейс клиента
Дополнительная информация
Обнаружение других видов системных носителей
Обнаружение устройств USB и iPod
Сопоставление с шаблоном и учет регистра
Сопоставление с единственным правилом
Обнаружение компакт-дисков с данными, не являющимися медийным контентом
Устройство смены компакт-дисков под управлением внешнего микропрограммного обеспечения
Использование MCD в качестве перечислителя разделов
mq
mqueue
mrouted
named
netmanager
nfsd
ntpd
pci-acpi
pci-bios
pci-bios-v2
pci-lioh
pdebug
pf
pflogd
phditto
phfont
fontdir – каталог известных шрифтов
fontext – правила расширения для обработки отсутствующих символов
fontmap – правила подстановки шрифтов
fontopts – опции командной строки
Photon
phrelay
pipe
platform-control
pppd
pppoed
pps
procnto, procnto-*
pwm
qconn
qdb
racoon
random
route6d
routed
rtadvd
rtsold
rwhod
sftp-server
shelf
slinger
slogger
snmpd
snmptrapd
spooler
sshd
syslogd
telnetd
tftpd
tinit
tracelogger
Утилиты
0
3proxy
A
alf_http.so
amonctl
amon-operator-kernel.so
aps
arp
arpaname
asa
B
basename
bc
bdftophf2
bootlog
brconfig
btime
bunzip2
bzip2
C
calib
cat
cfgopen
chat
chattr
chgrp
chkdosfs
chkfsys
chkqnx6fs
chmod
chown
cksum
clear
cmp
comm
confstr
console_loadfont
coreinfo
cp
cpio
cron
crontab
csplit
cut
D
date
dcheck
dd
ddns-confgen
delv
devname
df
dhcp.client
dhcprelay
diff
diff3
dig
dirname
dloader
dnssec-cds
dnssec-dsfromkey
dnssec-importkey
dnssec-keyfromlabel
dnssec-keygen
dnssec-revoke
dnssec-settime
dnssec-signzone
dnssec-verify
dnstap-read
du
E
echo
egrep
elvis
Визуальный режим
Режим ввода
Операторы
Особые случаи
Именованные буферы
Команды перемещения
Перемещение курсора
Выделение
Теги
Вставка текста
Режим ввода
Удаление, копирование, вставка
Фильтры
Сдвиг текста
Прочие команды
Поиск
Глобальные команды и команды подстановки
Отмена и возвращение
Команды управления экраном
Запись файлов
Правка других файлов
Чтение данных из файла
Выход из утилиты elvis
Переключение на командный интерпретатор
Макросы
Сокращения
Опции
Команды группы ex
encode_keychange
enum-usb
Обзор
Информация об устройстве USB
Поведение при перечислении одного устройства USB
Конфигурационный файл enum-usb
Опция ''Device'' – определение конфигурации устройств
Опция ''Ignore'' – игнорирование устройства USB
Опция ''Config'' – конфигурация устройства USB
Опция ''Set'' – специальный тег, добавляемый в отчеты
Пользовательский тег ''user_spec_id''
Пользовательский тег ''inc_user_spec_id''
Использование enum-devices вместе с enum-usb
env
errno (утилита)
esh
Команда . (точка)
Команда alias
Команда cd
Команда emount
Команда ewaitfor
Команда exec
Команда exit
Команда export
Команда kill
Команда reopen
Команда set
Команда unset
etfsctl
expand
expr
F
false
fdformat
fdisk
fesh
Команда ecp
Команда edf
Команда eecho
Команда els
Команда emkdir
Команда epwd
Команда erm
Команда ermdir
fgrep
file
find
flashctl
fmt
fold
fontinfo
fpemu.so
fstat
fsysinfo
ftp
fullpath
fuser
G
gawk
gdisk
getconf
getty
grep
gunzip
gzip
H
hamctrl
hd
head
hidview
hogs
host
hostapd
hostname
I
id
ifconfig
if_up
ifwatchd
infocmp
inputtrap
J
join
K
kill
ksh
Запуск командного интерпретатора
Синтаксис команд
Составные команды
Экранирование специальных символов
Псевдонимы
Подстановка
Параметры
Замена тильды
Раскрытие фигурных скобок (чередование)
Шаблоны имен файлов
Перенаправление ввода/вывода
Арифметические выражения
Сопроцессы
Функции
Режим POSIX
Выполнение команд и встроенные команды
Встроенная команда . (точка)
Встроенная команда : (пусто)
Встроенная команда alias
Встроенная команда bg
Встроенная команда bind
Встроенная команда break
Встроенная команда builtin
Встроенная команда cd
Встроенная команда command
Встроенная команда continue
Встроенная команда echo
Встроенная команда eval
Встроенная команда exec
Встроенная команда exit
Встроенная команда export
Встроенная команда false
Встроенная команда fc
Встроенная команда fg
Встроенная команда getopts
Встроенная команда hash
Встроенная команда jobs
Встроенная команда kill
Встроенная команда let
Встроенная команда print
Встроенная команда pwd
Встроенная команда read
Встроенная команда readonly
Встроенная команда return
Встроенная команда set
Встроенная команда shift
Встроенная команда test или [
Встроенная команда times
Встроенная команда trap
Встроенная команда true
Встроенная команда typeset
Встроенная команда ulimit
Встроенная команда umask
Встроенная команда unalias
Встроенная команда unset
Встроенная команда wait
Встроенная команда whence
Управление заданиями
Интерактивная правка строк ввода emacs
L
ldd
less
link
ln
logger
login
logout
lpr
lprc
lprq
lprrm
ls
M
mdig
mesg
mkdir
mkdosfs
mkfifo
mkfontdir
mkqnx6fs
more
mount
mv
N
ifmcstat
named-checkconf
named-checkzone
named-compilezone
named-journalprint
named-nzd2nzf
named-rrchecker
nano
ncdu
ndp
net-snmp-create-v3-user
netstat
newgrp
nice
nicinfo
nohup
nsec3hash
nslookup
nsupdate
ntpdate
ntpdc
ntpq
ntptrace
O
od
omshell
on
openssl
P
passwd, passwd-ksz, passwd-std
paste
patch
pathchk
pax
pci
pcnfsd
pfctl
ph
phin
phs-to-bjc
phs-to-bmp
phs-to-escp2
phs-to-pcl
phs-to-phs
phs-to-ps
pidin
ping
ping6
plainrsa-gen
pppoectl
pr
printf
ps
pwd
pwgen
Q
qcp
qdbc
qtalk
R
racoonctl
renice
rm
rmdir
rndc
rndc-confgen
route
rpcbind, portmap
rpcinfo
rtc
rtquery
ruptime
rwho
S
scp
script
sed
seedres
setconf
setkey
sftp
sh
showmem
showmount
shutdown
slay
sleep
sloginfo
snmpbulkget
snmpbulkwalk
snmpdelta
snmpdf
snmpget
snmpgetnext
snmpinform
snmpnetstat
snmppcap
snmpping
snmpps, snmptop
snmpset
snmpstatus
snmptable
snmptest
snmptranslate
snmptrap
snmpusm
snmpvacm
snmpwalk
sockstat
sort
spatch
split
ssh
ssh-add
ssh-agent
ssh-keygen
ssh-keyscan
ssh-keysign
stty
su
sync
sysctl
T
tail
tar
tcpdump
tee
telnet
textto
tftp
tic
time
top
touch
tr
traceroute
traceroute6
true
tsig-keygen
tsort
tty
U
uesh
Команда cd
Команда emount
Команда ewaitfor
Команда exec
Команда exit
Команда export
umask
umount
uname
unexpand
uniq
unlink
unzip, zipinfo
uptime
usb
use
uud
uudecode
uue
uuencode
V
vi
view
W
waitfor
wc
which
who
wpa_cli
wpa_passphrase
wpa_supplicant
X
xargs
Z
zap
zcat
zip
Средства защиты информации (СЗИ)
auditlogger2-ksz
auditnotifier-ksz
audittool-ksz
checkksz, check_ksz, cksum_ksz
fs-qnx4-ksz.so
fs-qnx6-ksz.so
kszconfig
login-ksz
logout-ksz
lsm-nlf-ksz.so
lsm-pf-v4-ksz.so, lsm-pf-v6-ksz.so
lsm-qnet-ksz.so
pfauditnotifier-ksz
pfauditprinter-ksz
pfctl-ksz
pflogd-ksz
phksz
phlogin2-ksz
phshutdown-ksz
printmark-ksz
spooler-ksz
test_ksz_cleandisk
test_ksz_cleanram
test_ksz_daccess
test_ksz_isomod
test_ksz_maccess
test_ksz_tcpip
Руководство разработчика
Основные принципы системной разработки
Запуск системы, быстрая активация устройств
Построение встраиваемых систем
Статьи руководства
Введение в построение встраиваемых систем
Введение
Роль начального загрузчика (IPL)
IPL для горячего и холодного запуска
Роль модуля startup
Функции модуля startup
Копирование и распаковка образа
Настройка оборудования
Определение конфигурации системы
Настройка callout-ов
Запуск операционной системы
Библиотека libstartup
Роль ЗОСРВ «Нейтрино»
Аппаратные компоненты встраиваемой системы
Поддержка процессорных архитектур
Источник инициализации и конфигурации
Выбор файловой системы
Система без дополнительных запоминающих устройств
Дополнительные запоминающие read-only устройства
Дополнительные непостоянные запоминающие read/write устройства
Дополнительные постоянные запоминающие read/write устройства
Накопители флеш-памяти и их файловые системы
Ротация накопителей и файловых систем
Сетевые накопители и их файловые системы
Устройства ввода/вывода
Символьные устройства ввода/вывода
Специализированные/нестандартные устройства
Начало работы
Разработка оборудования
Модификация программного обеспечения
Модификация исходного кода
Работа с пакетами поддержки плат (ППМ, BSP)
Знакомство с пакетом поддержки платы
Использование пакета поддержки платы в командной строке
Структура пакета поддержки платы
Подкаталог prebuilt
Подкаталог install
Подкаталог src
Сборка исходного кода в командной строке
Поддержка дополнительных устройств
Передача образа ОС на плату
Передача образа ОС
Работа с файловой системой флеш-памяти
Неструктурированные (raw) разделы
Разделы файловой системы флеш-памяти
Исходный код файловой системы флеш-памяти
Как создать раздел?
Тестирование ЗОСРВ «Нейтрино» на плате
Дальнейшие действия
Соглашение об именах файлов
Создание загрузочного образа
Типы образов
Что такое образ ОС
Образ ОС как файловая система
Настройка образа ОС
Простой файл построения загрузочного образа
Встроенные файлы
Файл начальной загрузки (.bootstrap)
Сжатие образа
Файл сценария
Атрибуты ограниченной многопроцессорной обработки
Файл сценария на целевой системе
Списки файлов образа
Включение файлов из различных каталогов
Изменение пути поиска
Явное указание путевого имени
Создание встроенного файла
Указание владельца файла и прав доступа к нему
Включение множества файлов в образ
Генерация образа
Отображение списка содержимого образа
Создание образа файловой системы флеш-памяти
Использование утилиты mkefs
Файл построения загрузочного образа для утилиты mkefs
Размер блока
Свободные блоки
Сжатие файлов
Уровень абстракции
Два размера
Правила сжатия
Исключение
Встраивание образа
Объединение файлов образов с помощью утилиты mkimage
Преобразование образов с помощью утилиты mkrec
Передача образа во флеш-память
Конфигурирование системы
Активизация устройства вывода
Простой пример для настольной системы
Запуск драйверов/файловых систем
Драйверы устройств хранения
Файловые системы флеш-памяти
Сетевые драйверы
Сетевые файловые системы
Запуск приложений
Отладка встраиваемой системы
Агент отладки программ pdebug
Аппаратные JTAG-отладчики
Генерация отладочных символов для IPL и startup
Генерация отладочных символов для IPL
Генерация отладочных символов для startup
Руководство по разработке начального загрузчика (IPL)
Начальный загрузчик (IPL)
Функции начального загрузчика
Образ в линейной памяти
Образ на устройстве с переключением банков
Процессоры и конфигурации
Загрузка с устройства с переключением банков
Загрузка с устройства с линейной памятью
«Горячий» и «холодный» запуск
IPL для горячего запуска
IPL для холодного запуска
Загрузка образа
Линейное устройство
Устройство с переключением банков
ПЗУ
Загрузка по сети
Использование сервера BOOTP
Последовательный порт
Стандартный диск
Другие методы загрузки
Передача управления программе запуска (startup)
Модификация IPL
Инициализация оборудования
Загрузка образа в оперативную память
Структура загрузочного заголовка
Взаимосвязь между полями struct startup_header
Линейный загрузочный образ, выполняемый по месту хранения (XIP) в ПЗУ
Сжатый линейный загрузочный образ в ПЗУ
Образ в ПЗУ, не выполняемый по месту хранения (non-XIP)
Загрузка образа с диска или по сети (x86 BIOS)
Загрузка сжатого образа с диска / по сети
Структура начального загрузчика
Структура дерева каталогов с исходным кодом
Структура кода IPL
Пример
Разработка нового IPL
Руководство по разработке модуля startup
Введение
Инициализация оборудования
Инициализация системной страницы
Инициализация callout-ов
Файлы модуля startup
Структура модуля startup
Создание нового модуля startup
Структура системной страницы
Деревья адресных пространств
HW-теги и сведения об аппаратной платформе
Теги
Элементы
Деревья устройств
Создание раздела
Другие функции
Параметры по умолчанию
Предопределенные элементы и теги
Элемент ''Group''
Элемент ''Bus''
Элемент ''Device''
Теги ''location'', ''irq'', ''diskgeometry'' и ''pad''
Информация о процессорах
Информация о векторах прерываний
Сведения о callout-ах
Отладочный интерфейс
Интерфейс часов/таймеров
Интерфейс контроллера прерываний
Интерфейс контроллера кеш-памяти
Callout перезагрузки системы
Callout управления питанием
Библиотека libstartup
Сохранение отладочного вывода в системном журнале
Написание собственных callout-ов ядра
Готовые функции
Почему callout-ы написаны на ассемблере?
Начало разработки
Корректировка кода callout
Выделение памяти для чтения/записи данных
Исключение, которое подтверждает правило
Поддержка процессоров с архитектурой PPC
Добавление нового процессора в библиотеку libstartup
Рекомендации по проектированию
Введение
Перед проектированием системы
Скорость процессора
Требования к памяти
Устройства периферии
Отладка
Обновление в процессе эксплуатации
Прочие аспекты проектирования
Файловая система флеш-памяти/EPROM
Местоположение начального загрузчика (IPL)
Графические платы
Шлюз A20
Внешняя шина ISA
Шина PCI
Внешние тактовые генераторы
Контроллеры прерываний
Последовательные и параллельные порты
Параллельный порт
Немаскируемые прерывания
Рекомендации и антирекомендации
Рекомендации
Антирекомендации
Примеры компоновки загрузочных образов
Введение
Общие примеры
Разделяемые библиотеки (.so)
Многократное выполнение программ
Несколько консолей
Запуск других программ на консолях
Перенаправление
/tmp
Готовый пример — минимальная конфигурация
Готовый пример — файловая система флеш-памяти
Готовый пример — дисковая файловая система
Готовый пример — TCP/IP с сетевой файловой системой
Примечания для конкретных процессоров
Указание процессора
Примеры
Указание программы запуска (startup)
Указание последовательного порта
API библиотек libipl и libstartup
enable_cache()
image_download_8250()
image_scan()
image_scan_ext()
image_setup()
image_setup_ext()
image_start()
image_start_ext()
int15_copy()
print_byte()
print_char()
print_long()
print_sl()
print_string()
print_var()
print_word()
protected_mode()
uart32_hex16()
uart32_hex32()
uart32_hex8()
uart32_init()
uart32_put()
uart32_string()
uart_hex16()
uart_hex32()
uart_hex8()
uart_init()
uart_put()
uart_string()
add_cache()
add_callout()
add_callout_array()
add_interrupt()
add_interrupt_array()
add_ram()
add_string()
add_typed_string()
alloc_qtime()
alloc_ram()
alloc_slog_buffer()
as_add(), as_add64()
as_add_containing()
as_default()
as_find()
as_find_containing()
as_info2off()
as_off2info()
as_set_checker()
as_set_priority()
avoid_ram()
calc_time_t()
calloc_ram()
callout_io_map(), callout_io_map32(), callout_io_map64(), callout_io_map_indirect()
callout_memory_map(), callout_memory_map32(), callout_memory_map64(), callout_memory_map_indirect()
callout_register_data()
chip_access()
chip_done()
chip_read8(), chip_read16(), chip_read32(), chip_read64()
chip_write8(), chip_write16(), chip_write32(), chip_write64()
copy_memory()
del_typed_string()
find_startup_info()
find_typed_string()
handle_common_option()
hwi_add_device()
hwi_add_inputclk()
hwi_add_irq()
hwi_add_location()
hwi_add_nicaddr()
hwi_add_rtc()
hwi_alloc_item()
hwi_alloc_tag()
hwi_find_as()
init_asinfo()
init_cacheattr()
init_cpuinfo()
init_hwinfo()
init_intrinfo()
init_mmu()
init_pminfo()
init_qtime()
init_qtime_sa1100()
init_raminfo()
init_slog()
init_smp()
init_syspage_memory()
init_system_private()
jtag_reserve_memory()
kprintf()
openbios_init_raminfo()
print_syspage()
put_slog()
rtc_time()
startup_io_map()
startup_io_unmap()
startup_memory_map()
startup_memory_unmap()
struct callout_rtn
struct startup_header
struct startup_info_box
struct startup_info_disk
struct startup_info_hdr
struct startup_info_mem, struct startup_info_mem_extended
struct startup_info_skip
struct startup_info_time
struct startup_intrinfo
uncompress()
Быстрая активация устройств
Общие сведения
Быстрая активация устройств с помощью минидрайверов
Знакомство с минидрайвером
Архитектура минидрайвера
Принципы работы минидрайвера
Плавная передача управления
Выполнение нескольких функций-обработчиков
Написание минидрайвера
Аппаратная платформа
Временные требования
Хранение данных
Инициализация оборудования
Доступ к оборудованию
Передача управления полноценному драйверу
Пример минидрайвера
Функция-обработчик минидрайвера
Добавление минидрайвера в систему
Сборка программы запуска
Тестовое приложение mini-peeker.c
Передача управления от минидрайвера полноценному драйверу
Особенности реализации минидрайвера
Изменение программы запуска с кодом минидрайвера
Создайте загрузочный образ с собственным минидрайвером
Отладка минидрайвера
Отображение информации о состоянии минидрайвера (после загрузки ядра)
Передача управления полнофункциональному драйверу
Примеры драйверов для быстрой активации устройств
Минидрайвер для платы FreeScale Media5200b
Функция-обработчик минидрайвера
Добавление минидрайвера в систему
Сборка программы запуска
Тестирование минидрайвера
Временные характеристики работы драйвера
Минидрайвер для платы Renesas Biscayne
Функция-обработчик минидрайвера
Добавление минидрайвера в систему
Сборка программы запуска
Тестирование минидрайвера
Временные характеристики работы драйвера
Минидрайвер OMAP
Добавление минидрайвера в систему
Сборка программы запуска
Тестирование минидрайвера
Временные характеристики работы драйвера
Взаимодействие с оборудованием в минидрайвере
API минидрайверов
mdriver_add()
mdriver_max
struct mdriver_entry
Программные интерфейсы микроядра
Особенности многопроцессорных окружений
Что такое многопроцессорная обработка?
Введение в многопроцессорную обработку
Настройка образа ОС
Запуск симметричной многопроцессорной обработки
Ограничение использования вычислительных ресурсов в SMP системе
Разработка многоядерных систем
Создание образа многоядерной системы
Влияние многоядерной архитектуры на выполнение программ
Программно-аппаратная совместимость в одноядерных и многоядерных системах
Привязка потоков (thread affinity)
Объекты синхронизации в многоядерных системах
FIFO планирование в многоядерных системах
Прерывания в многоядерных системах
Атомарные операции в многоядерных системах
Адаптивное квотирование ресурсов
Особенности разработки программ для многоядерных систем
Использование объектов, которые предназначены для многоядерных сред
Реальный параллелизм потоков
Декомпозиция задач
Системная трассировка и анализ
Общие сведения
Что такое инструменты системного анализа?
Возможности инструментов системного анализа
Состав инструментов системного анализа
Диагностическая версия микроядра
Управление буфером ядра
Сервис сбора данных (tracelogger)
Интерпретация данных (traceprinter)
События ядра в системной трассе
Источники событий
Генерация событий: типичный сценарий
Пример многопоточной программы
Время переключения контекста потока
Перезапуск потоков
Простые и составные события
Краткий (fast) и подробный (wide) режимы
Классы и события
Класс событий связи: _NTO_TRACE_COMM
Класс событий управления: _NTO_TRACE_CONTROL
Класс событий обработки прерываний: _NTO_TRACE_INTENTER, _NTO_TRACE_INTEXIT, _NTO_TRACE_INT_HANDLER_ENTER и _NTO_TRACE_INT_HANDLER_EXIT
Класс событий вызовов ядра: _NTO_TRACE_KERCALLENTER, _NTO_TRACE_KERCALLEXIT и _NTO_TRACE_KERCALLINT
Класс событий процессов: _NTO_TRACE_PROCESS
Класс системных событий: _NTO_TRACE_SYSTEM
Класс событий потоков: _NTO_TRACE_THREAD
Пользовательский класс: _NTO_TRACE_USER
Класс событий виртуальных потоков: _NTO_TRACE_VTHREAD
Трассировочный буфер ядра
Диагностическое (инструментальное) ядро и управление буфером ядра
Характеристики трассировочного буфера
Кольцевые связанные списки
Размер связанного списка
Полный буфер и высокий уровень заполнения
Переполнение буфера
Сбор трассировочных данных
Обзор
Управление трассировкой с помощью утилиты tracelogger
Управление трассировочными буферами
Режимы работы утилиты tracelogger
Выбор между кратким и подробным режимами
Фильтрация событий
Передача трассировочных данных
Управление трассировкой с помощью функции TraceEvent()
Управление трассировочными буферами
Режимы работы
Фильтрация событий
Выбор между кратким и подробным режимами
Вставка трассировочных событий
Трасировка в момент падения ядра
Фильтрация событий
Обзор
Фильтр со статическими правилами
Фильтр с динамическими правилами
Настройка фильтра с динамическими правилами
Обработчик событий
Удаление обработчиков событий
Фильтр постобработки
Интерпретация трассировочных данных
Обзор
Использование утилиты traceprinter и интерпретация вывода
Создание собственного анализатора
Библиотека traceparser
Простые и составные события
Структура traceevent_t
Наложение событий
Отметки времени
Практические руководства по трассировке
Обзор
Заголовочный файл common.h
Сбор всех событий всех классов
Сбор всех событий одного класса
Сбор пяти событий четырех классов
Сбор вызовов ядра
Простой пример обработки событий
Вставка простого пользовательского события
Перечень поддерживаемых событий системной трассы
Интерпретация таблицы
Таблица событий
События вызовов ядра
События обработки прерываний
События управления
События процессов
События потоков
События виртуальных потоков
События связи
Системные события
Виртуальная файловая система менеджера процессов (/proc)
Установка соединения
Чтение и модификация адресных пространств процессов
Управление процессами и потоками
Команды devctl(), поддерживаемые виртуальной файловой системой
DCMD_PROC_ADD_MEMPARTID
DCMD_PROC_BREAK
DCMD_PROC_CHANNELS
DCMD_PROC_CHG_MEMPARTID
DCMD_PROC_CLEAR_FLAG
DCMD_PROC_CURTHREAD
DCMD_PROC_DEL_MEMPARTID
DCMD_PROC_EVENT
DCMD_PROC_FREEZETHREAD
DCMD_PROC_GETALTREG
DCMD_PROC_GET_BREAKLIST
DCMD_PROC_GETFPREG
DCMD_PROC_GETGREG
DCMD_PROC_GET_MEMPART_LIST
DCMD_PROC_GETREGSET
DCMD_PROC_INFO
DCMD_PROC_IRQS
DCMD_PROC_MAPDEBUG
DCMD_PROC_MAPDEBUG_BASE
DCMD_PROC_MAPINFO
DCMD_PROC_PAGEDATA
DCMD_PROC_PTINFO
DCMD_PROC_RUN
DCMD_PROC_SETALTREG
DCMD_PROC_SET_FLAG
DCMD_PROC_SETFPREG
DCMD_PROC_SETGREG
DCMD_PROC_SETREGSET
DCMD_PROC_SIGNAL
DCMD_PROC_STATUS
DCMD_PROC_STOP
DCMD_PROC_SYSINFO
DCMD_PROC_THAWTHREAD
DCMD_PROC_THREADCTL
DCMD_PROC_TIDSTATUS
DCMD_PROC_TIMERS
DCMD_PROC_WAITSTOP
struct _debug_break, debug_break_t, procfs_break
struct _debug_channel, debug_channel_t, procfs_channel
struct _debug_irq, debug_irq_t, procfs_irq
struct _debug_process_info, debug_process_t, procfs_info
struct _debug_run, debug_run_t, procfs_run
struct _debug_thread_info, debug_thread_t, procfs_status
struct _debug_timer, debug_timer_t, procfs_timer
struct _procfs_debug_info, procfs_debuginfo
struct _procfs_map_info, procfs_mapinfo
struct _procfs_regset, procfs_regset
struct _procfs_signal, procfs_signal
struct _procfs_threadctl, procfs_threadctl
Дампы ядра и их анализ
Содержимое дампа ядра
Postmortem трассировка ядра
Обработчики прерываний
Критические потоки реального времени
Назначение и особенности
Синтетический пример
Ограничения и управление рисками
Сценарии использования
Глобальные критические секции
Системообразующие потоки особой важности
Потоки «последней надежды»
Безопасные ISR с уменьшенным временем отклика
Отладка обработчиков прерываний
Сложность отладки ISR
Отладка вне ядерного контекста
Системная трассировка
Вывод данных в отладочную консоль
Разработка менеджеров ресурсов
Общие для всех менеджеров DEVCTL-команды
DCMD_ALL_FADVISE
DCMD_ALL_GETFLAGS
DCMD_ALL_GETMOUNTFLAGS
DCMD_ALL_GETOWN
DCMD_ALL_SETFLAGS
DCMD_ALL_SETOWN
struct _fadvise
DEVCTL-команды менеджеров очередей
DCMD_MISC_MQGETATTR
DCMD_MISC_MQSETATTR
DCMD_MISC_MQSETCLOSEMSG
Разработка драйверов и драйверные библиотеки
Драйверные библиотеки
Библиотека разработки HID-драйверов
Общие сведения
Обзор HID-драйверов
Общая структура подсистемы ввода
Внутреннее устройство HID-драйвера
Компоненты HID-драйвера
Общий принцип работы HID-драйвера
Способы компоновки драйверов
Разработка HID-драйвера
Создание модуля драйвера
Инициализация модуля драйвера: io_hid_dll_entry_t :: init()
Денициализация модуля драйвера: io_hid_dll_entry_t :: shutdown()
Создание интерфейса драйвера
io_hid_registrant_funcs_t :: client_attach()
io_hid_registrant_funcs_t :: client_detach()
io_hid_registrant_funcs_t :: rbuffer_alloc()
io_hid_registrant_funcs_t :: rbuffer_free()
io_hid_registrant_funcs_t :: report_read()
io_hid_registrant_funcs_t :: report_write()
io_hid_registrant_funcs_t :: get_idle()
io_hid_registrant_funcs_t :: set_idle()
io_hid_registrant_funcs_t :: get_protocol()
io_hid_registrant_funcs_t :: set_protocol()
io_hid_registrant_funcs_t :: string()
io_hid_registrant_funcs_t :: indexed_string()
io_hid_registrant_funcs_t :: reset()
io_hid_registrant_funcs_t :: reserved()
Дескриптор модуля драйвера
io_hid_dll_entry_t :: init()
io_hid_dll_entry_t :: shutdown()
struct hidd_device_ident, hidd_device_ident_t
struct _io_hid_dll_entry, io_hid_dll_entry_t
struct _io_hid_registrant, io_hid_registrant_t
struct _io_hid_self, io_hid_self_t
Интерфейсы модуля драйвера
io_hid_registrant_funcs_t :: client_attach()
io_hid_registrant_funcs_t :: client_detach()
io_hid_registrant_funcs_t :: get_idle()
io_hid_registrant_funcs_t :: get_protocol()
io_hid_registrant_funcs_t :: indexed_string()
io_hid_registrant_funcs_t :: rbuffer_alloc()
io_hid_registrant_funcs_t :: rbuffer_free()
io_hid_registrant_funcs_t :: report_read()
io_hid_registrant_funcs_t :: report_write()
io_hid_registrant_funcs_t :: reserved()
io_hid_registrant_funcs_t :: reset()
io_hid_registrant_funcs_t :: set_idle()
io_hid_registrant_funcs_t :: set_protocol()
io_hid_registrant_funcs_t :: string()
struct _io_hid_registrant_funcs, io_hid_registrant_funcs_t
Библиотека разработки I²C драйверов (libi2c-master)
Общие сведения
Обзор библиотеки I²C
Общие сведения I²C
Аппаратный интерфейс
Программный интерфейс
Интерфейс совместно используемой библиотеки
Интерфейс менеджера ресурсов
Разработка менеджера ресурсов
API
i2c_addr_t
i2c_driver_info_t
i2c_libversion_t
i2c_master_funcs_t
i2c_master_funcs_t :: abort()
i2c_master_funcs_t :: ctl()
i2c_master_funcs_t :: driver_info()
i2c_master_funcs_t :: fini()
i2c_master_funcs_t :: init()
i2c_master_funcs_t :: recv()
i2c_master_funcs_t :: send()
i2c_master_funcs_t :: set_bus_speed()
i2c_master_funcs_t :: set_slave_addr()
i2c_master_funcs_t :: version_info()
i2c_master_getfuncs()
i2c_masterhdr_t
i2c_recv_t
i2c_sendrecv_t
i2c_send_t
DEVCTL-команды
DCMD_I2C_DRIVER_INFO
DCMD_I2C_LOCK
DCMD_I2C_MASTER_RECV
DCMD_I2C_MASTER_SEND
DCMD_I2C_RECV
DCMD_I2C_SEND
DCMD_I2C_SENDRECV
DCMD_I2C_SET_BUS_SPEED
DCMD_I2C_SET_SLAVE_ADDR
DCMD_I2C_UNLOCK
Библиотека разработки SPI драйверов (libspi-master)
Интерфейс драйвера
spi_cfg_t
spi_devinfo_t
spi_dma_paddr_t
spi_drvinfo_t
spi_funcs_t
spi_funcs_t :: devinfo()
spi_funcs_t :: dma_xfer()
spi_funcs_t :: drvinfo()
spi_funcs_t :: fini()
spi_funcs_t :: init()
spi_funcs_t :: setcfg()
spi_funcs_t :: xfer()
API библиотеки
spi_close()
spi_cmdread()
spi_dma_xchange()
spi_getdevinfo()
spi_getdrvinfo()
spi_open()
spi_read()
spi_setcfg()
spi_write()
spi_xchange()
Библиотека разработки драйверов USB-устройств (libusbdi)
Статьи и обзоры
Обзор стека и библиотеки USB
О чем это руководство
Предположения
Стек USB и драйверная библиотека
Типы USB хост-контроллеров (HCI)
Буферы данных
Энумератор устройств USB
Принципы работы драйвера устройства USB
USB утилиты
API
Функции установления соединения
usbd_attach()
usbd_configuration_descriptor_t
usbd_connect()
usbd_connect_parm_t
usbd_detach()
usbd_device_ident_t
usbd_device_instance_t
usbd_disconnect()
usbd_funcs_t
Функции управления памятью
usbd_alloc()
usbd_alloc_urb()
usbd_free()
usbd_free_urb()
usbd_mphys()
Функции ввода-вывода
usbd_descriptor()
usbd_feature()
usbd_io()
usbd_setup_bulk()
usbd_setup_control()
usbd_setup_interrupt()
usbd_setup_isochronous()
usbd_setup_vendor()
usbd_status()
Функции управления каналами
usbd_abort_pipe()
usbd_close_pipe()
usbd_open_pipe()
usbd_pipe_device()
usbd_pipe_endpoint()
usbd_reset_pipe()
Функции управления конфигурациями и интерфейсами
usbd_select_config()
usbd_select_interface()
Другие функции
usbd_args_lookup()
usbd_bus_topology_t
usbd_configuration_descriptor()
usbd_device_descriptor()
usbd_device_descriptor_t
usbd_device_extra()
usbd_device_lookup()
usbd_endpoint_descriptor()
usbd_endpoint_descriptor_t
usbd_get_frame()
usbd_hcd_ext_info(), usbd_hcd_info()
usbd_hcd_info_t
usbd_hub_descriptor()
usbd_hub_descriptor_t
usbd_interface_descriptor()
usbd_interface_descriptor_t
usbd_languages_descriptor()
usbd_parse_descriptors()
usbd_port_attachment_t
usbd_reset_device()
usbd_string()
usbd_string_descriptor_t
usbd_topology(), usbd_topology_ext()
usbd_urb_status()
Библиотека разработки драйверов ввода (libinput)
Статьи и обзоры
Обзор драйверов ввода
Внутреннее устройство драйвера ввода
Виды шин событий
Способы компоновки модулей
Внешние интерфейсы
Разработка драйвера ввода
Создание модуля ввода
Форматы данных
Клавиатуры
Устройства с абсолютными координатами
Формат файла калибровки
Устройства с относительными координатами
Функции-обработчики драйвера
Обязательные обработчики
Комбинированные модули устройств и протоколов
Многопоточность
Интерфейсы модуля ввода
input_module_t :: devctrl()
input_module_t :: init()
input_module_t :: input()
input_module_t :: output()
input_module_t :: parm()
input_module_t :: pulse()
input_module_t :: reset()
input_module_t :: shutdown()
API библиотеки libinput
begin()
buff_append()
buff_create()
buff_delete()
buff_flush()
buff_getc()
buff_putc()
buff_waiting()
clk_get()
devi_enqueue_packet()
devi_register_interrupt()
devi_register_pulse()
devi_register_timer()
devi_request_iorange()
struct _input_module, input_module_t
Библиотека разработки драйверов подсистемы управления общими элементами платформ
Общие сведения
Обзор подсистемы управления общими элементами платформ
Общая структура подсистемы
Внутреннее устройство подсистемы управления общими элементами платформ
Разработка драйверов управления общими элементами платформ
Определение интерфейса драйвера
plat_ctrl_funcs_t :: init()
plat_ctrl_funcs_t :: fini()
plat_ctrl_funcs_t :: drvinfo()
plat_ctrl_funcs_t :: set_pd()
plat_ctrl_funcs_t :: set_reset()
plat_ctrl_funcs_t :: set_clk()
plat_ctrl_funcs_t :: get_clk()
Клиентские API
plat_ctrl_clk_disable()
plat_ctrl_clk_enable()
plat_ctrl_clk_get_rate()
plat_ctrl_clk_set_parent()
plat_ctrl_clk_set_rate()
plat_ctrl_close()
plat_ctrl_getdrvinfo()
plat_ctrl_open()
plat_ctrl_pd_attach()
plat_ctrl_pd_deattach()
plat_ctrl_pll_get_rate()
plat_ctrl_pll_set_rate()
plat_ctrl_reset_assert()
plat_ctrl_reset_deassert()
Драйверные API
plat_ctrl_clk_cfg_t
plat_ctrl_drvinfo_t
plat_ctrl_funcs_t
plat_ctrl_funcs_t :: drvinfo()
plat_ctrl_funcs_t :: fini()
plat_ctrl_funcs_t :: get_clk()
plat_ctrl_funcs_t :: init()
plat_ctrl_funcs_t :: set_clk()
plat_ctrl_funcs_t :: set_pd()
plat_ctrl_funcs_t :: set_reset()
plat_ctrl_pd_cfg_t
plat_ctrl_reset_cfg_t
Библиотека разработки драйверов символьных устройств (libio-char)
Общие сведения
Архитектура драйверов символьного ввода вывода
Обзор
Текущая архитектура
Взаимодействие библиотеки io-char и драйвера
Обзор примера драйвера последовательного порта
Исходный код
Функции и типы данных
create_device()
DEV_8250
enable_device()
options()
query_default_device()
ser_intr()
ser_stty()
set_port()
sys_ttyinit()
tto()
Библиотека libio-char.a
dev_lock()
dev_unlock()
iochar_regdrv_power()
iochar_send_event()
kick()
timer_queue()
timer_remove()
ttc()
tti()
tti2()
tto_checkclients()
tto_getchar()
TTYCTRL
TTYDEV
TTYINIT
TTYINITPOWER
TTYPOWER
TTYPSTORE
TTYWAIT
tx_inject()
wait_add()
wait_remove_rcvid()
Библиотеки разработки драйверов NOR флеш-памяти (libfs-flash3 и libmtd-flash)
Статьи и обзоры
Разработка драйвера флеш-памяти
Введение
Структура драйвера
Слои dispatch*(), resmgr*() и iofunc*()
Файловая система флеш-памяти
Службы сокетов
Службы флеш-памяти
Функция сканирования
Разработка собственного драйвера файловой системы флеш-памяти
Дерево исходного кода
Makefile
Сборка драйвера
Функция main()
Интерфейс служб сокетов
Анализ параметров
Интерфейс служб флеш-памяти
Выбор подходящих реализаций callback-функций библиотеки libmtd-flash.a
Шаг 1: исключение необычных конфигураций
Шаг 2: изучение доступных материалов
Шаг 3: выбор подходящих callback-функций
Пример драйвера (devf-ram)
main()
f3s_ram_open()
f3s_ram_page()
Библиотечные API
f3s_*_close()
f3s_*_ident()
f3s_init()
f3s_*_open()
f3s_*_page()
f3s_*_reset()
f3s_socket_option()
f3s_socket_syspage()
f3s_start()
f3s_*_status()
f3s_*_v2erase()
f3s_*_v2islock()
f3s_*_v2lock()
f3s_*_v2read()
f3s_*_v2resume()
f3s_*_v2suspend()
f3s_*_v2sync()
f3s_*_v2unlock()
f3s_*_v2unlockall()
f3s_*_v2write()
struct f3s_flash_s, struct f3s_flash_v2_s, f3s_flash_t, f3s_flash_v2_t
struct f3s_service_s, f3s_service_t
struct f3s_socket_s, f3s_socket_t
Библиотеки разработки сетевых драйверов (devnp-*)
Статьи и обзоры
Обзор архитектуры сетевого драйвера devnp
Общая структура сетевой подсистемы
Общая структура драйвера devnp
Принцип работы сетевого драйвера
Разработка сетевых драйверов devnp для сетевого менеджера io-pkt-*
Инициализация
Структура сетевого устройства
Точка входа
Реализация device_entry()
Описание dev_attach()
Реализация device_parse_options()
Присоединение устройства device_attach()
Заполнение структур
Маппирование и PCI-attach
Очередь событий
BSD MII media
Подключение и настройка PHY
Завершающий этап device_attach()
Включение устройства device_init()
Включение MAC уровня и RX/TX FIFO
Инициализация колец дескрипторов
Включение callout'ов
Инициализация обработчиков прерываний
Установка флагов, указывающих, что интерфейс готов к приёму/передаче.
IOCTL вызовы device_ioctl()
Реализация device_ioctl()
Отправка фрейма device_start()
Проверки для отправки фрейма
Реализация отправки
Реализация паддинга фрейма
Реализация дефрагментации цепочки mbuf'ов
Примечания по разработке и тестирования отправки фреймов
Получение фрейма. Обработчик прерывания RX.
Реализация обработчика прерывания.
Отключение устройства device_stop()
Реализация остановки устройства
Отсоединение устройства от стека device_detach()
Реализация отсоединения устройства
API MDI
MDI_AutoNegotiate()
MDI_DeIsolatePhy()
MDI_DeRegister()
MDI_DisableMonitor()
MDI_EnableMonitor()
MDI_FindPhy()
MDI_GetActiveMedia()
MDI_GetAdvert()
MDI_GetLinkStatus()
MDI_GetPartnerAdvert()
MDI_InitPhy()
MDI_IsolatePhy()
MDI_MonitorPhy()
MDI_Register_Extended()
MDI_ResetPhy()
MDI_SetSpeedDuplex()
MDI_SyncPhy()
API NIC
nic_config_t
nic_ethernet_stats_t
nic_parse_options()
nic_stats_t
Драйверные API
drvr_mphys()
struct cfattach :: ca_attach()
struct cfattach :: ca_detach()
struct ifnet :: if_init()
struct ifnet :: if_ioctl()
struct ifnet :: if_start()
struct ifnet :: if_stop()
struct _iopkt_drvr_entry :: drvr_init()
Интерфейсы различных подсистем
Монитор аномальной активности (amon)
Общие сведения
Разработка операторов данных
Назначение оператора данных
Из чего состоит оператор данных
Пример оператора данных
Использование API сервиса amon
Получение сведений об общем состоянии amon
Работа с объектами
Работа с оповещениями
Управление режимами работы amon
Дообучение на данных аномалий
DEVCTL-команды сервиса amon
AlertData
AmonLearnAlert
AmonModeControl
AmonObjectDeviationInfo
AmonObjectQuery
ConfigData
DCMD_AMON_GET_ALERT_INFO
DCMD_AMON_GET_ALERT_LIST
DCMD_AMON_GET_CONFIG
DCMD_AMON_GET_OBJECT_INFO
DCMD_AMON_GET_OBJECT_LIST
DCMD_AMON_GET_SUMMARY
DCMD_AMON_LEARN_ALERT
DCMD_AMON_SET_MODE
ObjectData
OutputDataSummary
Менеджер высокой готовности (HAM)
Общие сведения
Вступление
Проблемы обеспечения высокой готовности
Программная платформа для разработки систем высокой готовности
Глоссарий менеджера высокой готовности
Подход к обеспечению высокой готовности
Решение в виде ''перезагрузки'' системы
Традиционная архитектура ОСРВ
Гибкий модульный подход
Отказоустойчивость на уровне операционной системы
Состав менеджера высокой готовности
Использование менеджера высокой готовности
Общие сведения
Иерархическая структура менеджера высокой готовности
Объекты
Условия
Действия
Реакции на ошибки выполнения действий
Поэтапное восстановление
Состояние менеджера высокой готовности
Пример файловой системы /proc/ham
API менеджера высокой готовности
Функции подключения/отключения
Функции присоединения/отсоединения
Функции для работы с объектами
Функции для работы с условиями
Типы условий
Флаги условий
Функции для работы с действиями
Функции для работы с дескрипторами
Пример клиента
Запуск и остановка менеджера высокой готовности
Остановка менеджера высокой готовности
Функции управления
Управление детализацией информации
Публикация условий, самостоятельно обнаруживаемых компонентами
Публикация изменений состояния
Публикация других условий
Подписка на условия, самостоятельно публикуемые компонентами
Реагирование на изменения состояния
Реагирование на конкретные опубликованные условия
Использование клиентской библиотеки восстановления
Общие сведения
Функции семейства MsgSend()
Другие функции-обертки и вспомогательные функции
Функции управления отказоустойчивыми подключениями
Обертки для функций ввода/вывода
Вспомогательные функции
Простой пример
Пример восстановления состояния
Примеры использования HAM
Обычный перезапуск
Многоэтапный перезапуск
Уведомление о завершении объекта или наступлении условия
Механизм контрольных сигналов (определение доступности объектов)
Отправка контрольных сигналов в процессе
Блокировка процесса
Отправка контрольных сигналов в потоке 2
HAM API
ham_action_control()
ham_action_execute()
ham_action_fail_execute()
ham_action_fail_log()
ham_action_fail_notify_pulse(), ham_action_fail_notify_pulse_node()
ham_action_fail_notify_signal(), ham_action_fail_notify_signal_node()
ham_action_fail_waitfor()
ham_action_handle_free()
ham_action_handle(), ham_action_handle_node()
ham_action_heartbeat_healthy()
ham_action_log()
ham_action_notify_pulse(), ham_action_notify_pulse_node()
ham_action_notify_signal(), ham_action_notify_signal_node()
ham_action_remove()
ham_action_restart()
ham_action_waitfor()
ham_attach(), ham_attach_node()
ham_attach_self()
ham_condition()
ham_condition_control()
ham_condition_handle_free()
ham_condition_handle(), ham_condition_handle_node()
ham_condition_raise()
ham_condition_remove()
ham_condition_state()
ham_connect(), ham_connect_nd(), ham_connect_node()
ham_detach()
ham_detach_name(), ham_detach_name_node()
ham_detach_self()
ham_disconnect(), ham_disconnect_nd(), ham_disconnect_node()
ham_entity_condition_raise()
ham_entity_condition_state()
ham_entity_control()
ham_entity(), ham_entity_node()
ham_entity_handle_free()
ham_entity_handle(), ham_entity_handle_node()
ham_heartbeat()
ham_stop(), ham_stop_nd(), ham_stop_node()
ham_verbose()
API клиентской библиотеки восстановления
ha_attach()
ha_close()
ha_ConnectAttach(), ha_ConnectAttach_r()
ha_ConnectDetach(), ha_ConnectDetach_r()
ha_connection_ctrl()
ha_creat(), ha_creat64()
ha_detach()
ha_dup()
ha_fclose()
ha_fopen()
ha_open(), ha_open64()
ha_ReConnectAttach()
ha_reopen()
Устойчивая служба публикации/подписки (PPS)
Общие сведения
Служба PPS
Объекты и их атрибуты
Файлы объектов
Размеры объектов и каталогов
Специальные объекты
Синтаксис объекта
Объекты в списке файлов файловой системы
Уведомление об изменении объекта
Реагирование на удаление объекта
Атрибуты
Сохранение данных в ПЗУ
Постоянное хранилище
Ограничения файловой системы постоянного хранилища
Сохранение объектов
Загрузка объектов
Публикация
Создание, изменение и удаление объектов и атрибутов
Несколько издателей
Подписка
Блокирующие и неблокирующие операции чтения
Настройка блокирующих операций чтения
Сброс флага O_NONBLOCK
Использование функции io_notify()
Прием уведомления о готовности данных в открытом файле
Режимы подписки
Полный режим
Дельта-режим
Очереди в дельта-режиме
Изменение нескольких атрибутов
Серверные объекты
Подписка на несколько объектов
Подписка на все объекты каталога
Группы уведомлений
Создание группы уведомлений
Использование групп уведомлений
Уведомление о закрытии файлового дескриптора объекта
Параметры и спецификаторы
Параметры открытия путевых имен
Параметр critical
Дублирование критических файловых дескрипторов
Критические файловые дескрипторы
Серверные файловые дескрипторы
Спецификаторы объектов и атрибутов
Задание спецификаторов
Спецификатор непостоянного объекта/атрибута
Спецификатор элемента
Добавление и удаление элементов множества
Некорректный синтаксис элемента
Примеры
Пример 1: Дублирование элементов
Пример 2: Нулевые элементы
Пример 3: Удаление элемента
API
pps_attrib_flags_t
pps_attrib_t
pps_options_t
ppsparse()
pps_status_t
Сетевая подсистема
Общие сведения
Сетевые драйверы, их типы, разработка и отладка
Типы сетевых драйверов
Различия между портированными из NetBSD драйверами и современными драйверами
Различия между legacy драйверами и другими
Загрузка и выгрузка драйвера
Отладка драйвера
Проблемы с совместно используемыми (разделяемыми) прерываниями
Создание нового драйвера
Отладка драйвера с использованием gdb
Дамп отладочной информации для 802.11-драйверов
Jumbo-фреймы и аппаратное вычисление контрольных сумм
Заполнение пакетов Ethernet
Поддержка функции Transmit Segmentation Offload (TSO)
Фильтрация пакетов
Фильтры пакетов
Интерфейс фильтра пакетов (Packet Filter, PF)
Модуль фильтров пакетов (pf): брандмауэры и NAT
Фильтр пакетов Беркли (Berkeley Packet Filter, BPF)
Защита протокола IP и аппаратное кодирование
Примеры настройки соединения IPsec
Инструменты для работы с IPsec
Поддержка OpenSSL
Аппаратное ускорение кодирования
Поддерживаемые механизмы аппаратного кодирования
DEVCTL-команды сетевой подсистемы (IP протокол)
DCMD_IP_FDINFO
DCMD_IP_GDESTADDR
DCMD_IP_GSRCADDR
DCMD_IP_LISTEN
DCMD_IP_SDESTADDR
DCMD_IP_SHUTDOWN
DCMD_IP_SSRCADDR
Дисковая подсистема
DEVCTL-команды блочной подсистемы
DCMD_BLK_FORCE_RELEARN, DCMD_FSYS_FORCE_RELEARN
DCMD_BLK_PART_DESCRIPTION
DCMD_BLK_PARTENTRY
struct partition_description
struct partition_entry, partition_entry_t
DEVCTL-команды файловых систем
DCMD_FSYS_DIRECT_IO
DCMD_FSYS_FILE_FLAGS
DCMD_FSYS_LABEL
DCMD_FSYS_MAP_OFFSET
DCMD_FSYS_MOUNTED_AT, DCMD_FSYS_MOUNTED_BY, DCMD_FSYS_MOUNTED_ON
DCMD_FSYS_OPTIONS
DCMD_FSYS_PREGROW_FILE
DCMD_FSYS_STATISTICS, DCMD_FSYS_STATISTICS_CLR
DCMD_FSYS_STATVFS
struct fs_directio
struct fs_fileflags
struct fs_stats
union fs_blkmap
Программные интерфейсы общего назначения
Системные библиотеки
Общие сведения
Безопасность использования функций
Контекст исполнения функций
Системные библиотеки
Библиотека asyncmsg
Статьи и обзоры
Общие сведения
Обзор
Примеры
Пример 1: Отправка одного сообщения
Пример 2: Отправка нескольких сообщений одновременно
Пример 3: Очистка
Пример 4: Настройка события, запускающего копирование
Пример 5: Использование времени как триггера
Пример 6: Клиентские и серверные процессы
API
asyncmsg_channel_create()
asyncmsg_channel_destroy()
asyncmsg_connect_attach()
asyncmsg_connect_attr()
asyncmsg_connect_detach()
_asyncmsg_connection_attr
asyncmsg_flush()
asyncmsg_free()
asyncmsg_get()
asyncmsg_malloc()
asyncmsg_put(), asyncmsg_putv()
struct _asyncmsg_get_header
Библиотека backtrace
Статьи и обзоры
Общие сведения
Обзор
API
Примеры
Пример 1: Получение и печать содержимого отображенной памяти
Пример 2: Обратная трассировка потока в другом процессе
Пример 3: Обратная трассировка другого потока в том же процессе
Пример 4: Обратная трассировка текущего потока
Пример 5: Выполнение обратной трассировки с BT_SELF в обработчике сигнала
Пример 6: Обратная трассировка нескольких потоков
API
bt_get_backtrace()
bt_init_accessor()
bt_load_memmap()
bt_release_accessor()
bt_set_flags()
bt_sprnf_addrs()
bt_sprn_memmap()
bt_translate_addrs()
bt_unload_memmap()
Библиотека bessel
j0(), j0f()
j1(), j1f()
jn(), jnf()
y0(), y0f()
y1(), y1f()
yn(), ynf()
Библиотека bprofiler
bprofile_enum()
bprofile_init()
bprofile_mount()
bprofile_time()
bprofile_umount()
Библиотека cache
cache_fini()
CACHE_FLUSH()
cache_init()
CACHE_INVAL()
struct cache_ctrl
Библиотека ds
ds_clear()
ds_create()
ds_deregister()
ds_flags()
ds_get()
ds_register()
ds_set()
Библиотека ipsec
ipsec_dump_policy()
ipsec_get_policylen()
ipsec_set_policy()
ipsec_strerror()
Библиотека shutdown
shutdown_system()
shutdown_classify()
shutdown_display()
shutdown_done()
shutdown_error()
shutdown_process()
shutdown_progress()
shutdown_prompt()
Библиотека socks
Статьи и обзоры
Обзор библиотеки проксирования
О SOCKS
Как настроить клиент для использования SOCKS
Как использовать SOCKS
API
Raccept()
Rbind()
Rconnect()
Rgetsockname()
Rlisten()
Rrcmd()
Rselect()
SOCKSinit()
Библиотека traceparser
traceparser()
traceparser_cs()
traceparser_cs_range()
traceparser_debug()
traceparser_destroy()
traceparser_get_info()
traceparser_init()
библиотека хэширования
API
crypt()
crypt_des()
encrypt()
setkey()
Математическая библиотека
A
acos(), acosf(), acosl()
acosh(), acoshf(), acoshl()
asin(), asinf(), asinl()
asinh(), asinhf(), asinhl()
atan2(), atan2f()
atan(), atanf(), atanl()
atanh(), atanhf(), atanhl()
C
cabs(), cabsf()
cbrt(), cbrtf()
ceil(), ceilf()
copysign(), copysignf()
cos(), cosf(), cosl()
cosh(), coshf(), coshl()
E
erfc(), erfcf(), erfcl()
erf(), erff()
exp(), expf(), expl()
expm1(), expm1f()
F
fabs(), fabsf()
floor(), floorf()
fmod(), fmodf(), fmodl()
fp_exception_mask()
fp_exception_value()
fp_precision()
fp_rounding()
fp_setenv()
frexp(), frexpf()
G
gamma(), gamma_r(), gammaf(), gammaf_r()
H
hypot(), hypotf()
I
ilogb(), ilogbf()
isfinite()
isinf()
isnan()
L
ldexp(), ldexpf(), ldexpl()
lgamma(), lgamma_r(), lgammaf(), lgammaf_r()
log10(), log10f(), log10l()
log1p(), log1pf(), log1pl()
logb(), logbf()
log(), logf(), logl()
M
modf(), modff()
N
nextafter(), nextafterf()
P
pow(), powf(), powl()
R
remainder(), remainderf(), remainderl()
rint(), rintf(), rintl()
S
scalb()
scalbn(), scalbnf()
sinh(), sinhf(), sinhl()
sin(), sinf(), sinl()
sqrt(), sqrtf(), sqrtl()
T
tanh(), tanhf(), tanhl()
tan(), tanf(), tanl()
Сетевая библиотека
A
accept()
struct addrinfo
B
bind()
bindresvport()
C
connect()
D
dn_comp()
dn_expand()
E
endhostent()
endnetent()
endprotoent()
endservent()
F
freeaddrinfo()
freeifaddrs()
G
gai_strerror()
getaddrinfo()
getdomainname()
gethostbyaddr()
gethostbyaddr_r()
gethostbyname(), gethostbyname2()
gethostbyname_r()
gethostent()
gethostent_r()
getifaddrs()
getnameinfo()
getnetbyaddr()
getnetbyname()
getnetent()
getpeername()
getprotobyname()
getprotobynumber()
getprotoent()
getservbyname()
getservbyport()
getservent()
getsockname()
getsockopt()
Группа опций IPPROTO_IP
IP_HDRINCL
IP_TOS
Группа опций SOL_SOCKET
SO_BINDTODEVICE
SO_BROADCAST
SO_DEBUG
SO_DONTROUTE
SO_ERROR
SO_KEEPALIVE
SO_LINGER
SO_OOBINLINE
SO_RCVBUF и SO_SNDBUF
SO_RCVLOWAT
SO_RCVTIMEO
SO_REUSEADDR
SO_REUSEPORT
SO_SNDLOWAT
SO_SNDTIMEO
SO_TIMESTAMP
SO_TYPE
SO_USELOOPBACK
Группа опций IPPROTO_TCP
TCP_KEEPALIVE
TCP_NODELAY
H
h_errno
herror()
hstrerror()
struct hostent
I
ICMP
ICMP6
if_freenameindex()
if_indextoname()
if_nameindex()
if_nametoindex()
INET6
inet6_option_alloc()
inet6_option_append()
inet6_option_find()
inet6_option_init()
inet6_option_next()
inet6_option_space()
inet6_rthdr_add()
inet6_rthdr_getaddr()
inet6_rthdr_getflags()
inet6_rthdr_init()
inet6_rthdr_lasthop()
inet6_rthdr_reverse()
inet6_rthdr_segments()
inet6_rthdr_space()
inet_addr()
inet_aton()
inet_lnaof()
inet_makeaddr()
inet_net_ntop()
inet_netof()
inet_net_pton()
inet_network()
inet_ntoa()
inet_ntoa_r()
IP
IP6
IPsec
iruserok(), iruserok_sa()
struct ifaddrs
struct if_nameindex
L
listen()
N
nbaconnect()
nbaconnect_result()
netent
P
struct protoent
R
rcmd(), rcmd_af()
recv()
recvfrom()
recvmsg()
res_init()
res_mkquery()
res_query()
res_querydomain()
res_search()
res_send()
ROUTE
rresvport(), rresvport_af()
ruserok()
S
send()
sendmsg()
sendto()
setdomainname()
sethostent()
setnetent()
setprotoent()
setservent()
setsockopt()
shutdown()
sockatmark()
socket()
socketpair()
struct servent
sysctl()
T
TCP
U
UDP
UNIX
Системная библиотека
A
abort()
abs()
access()
aio_cancel()
aio_error()
aio_fsync()
aio_read()
aio_return()
aio_suspend()
aio_write()
alarm()
alloca()
alphasort()
_amblksiz
_argc
_argv
asctime(), asctime_r()
asprintf(), vasprintf()
assert()
atexit()
atof()
atoh()
atoi()
atol(), atoll()
atomic_add()
atomic_add_value()
atomic_clr()
atomic_clr_value()
atomic_set()
atomic_set_value()
atomic_sub()
atomic_sub_value()
atomic_toggle()
atomic_toggle_value()
_auxv
struct aarch64_syspage_entry
struct aiocb
struct arm_syspage_entry
struct asinfo_entry
B
basename()
bcmp()
bcopy()
brk()
bsearch()
_btext
btowc()
bzero()
C
calloc()
cfgetispeed()
cfgetospeed()
cfgopen()
cfmakeraw()
cfree()
cfsetispeed()
cfsetospeed()
ChannelCreate(), ChannelCreate_r()
_NTO_CHF_COID_DISCONNECT
_NTO_CHF_DISCONNECT
_NTO_CHF_FIXED_PRIORITY
_NTO_CHF_NET_MSG
_NTO_CHF_REPLY_LEN
_NTO_CHF_SENDER_LEN
_NTO_CHF_THREAD_DEATH
_NTO_CHF_UNBLOCK
ChannelDestroy(), ChannelDestroy_r()
chdir()
chmod()
chown()
chroot()
chsize()
clearenv()
clearerr()
clock()
ClockAdjust(), ClockAdjust_r()
ClockCycles()
clock_getcpuclockid()
clock_getres()
clock_gettime()
ClockId(), ClockId_r()
clock_nanosleep()
ClockPeriod(), ClockPeriod_r()
clock_settime()
clock_t
ClockTime(), ClockTime_r()
close()
closedir()
closelog()
_cmdfd()
_cmdname()
confstr()
ConnectAttach(), ConnectAttach_r()
ConnectClientInfo(), ConnectClientInfo_r()
ConnectDetach(), ConnectDetach_r()
ConnectFlags(), ConnectFlags_r()
ConnectServerInfo(), ConnectServerInfo_r()
creat(), creat64()
ctermid()
ctime(), ctime_r()
struct cacheattr_entry
struct callout_entry
struct _client_info
struct _clockadjust
struct _clockperiod
struct cpuinfo_entry
struct _cred_info
D
daemon()
daylight
DebugBreak()
DebugKDBreak()
DebugKDOutput()
delay()
devctl()
difftime()
dircntl()
dirfd()
dirname()
dispatch_block()
dispatch_context_alloc()
dispatch_context_free()
dispatch_create()
dispatch_create_channel()
dispatch_destroy()
dispatch_handler()
dispatch_timeout()
dispatch_unblock()
div()
div_t, ldiv_t, lldiv_t
dladdr()
dlclose()
dlerror()
Dl_info
dlopen()
dlsym()
drand48()
dup()
dup2()
struct direct
struct dirent
E
eaccess()
_edata
_end
endfsent()
endgrent()
ENDIAN_BE16()
ENDIAN_BE32()
ENDIAN_BE64()
ENDIAN_LE16()
ENDIAN_LE32()
ENDIAN_LE64()
ENDIAN_RET16()
ENDIAN_RET32()
ENDIAN_RET64()
ENDIAN_SWAP16()
ENDIAN_SWAP32()
ENDIAN_SWAP64()
endpwent()
endspent()
endutent()
environ
eof()
erand48()
err(), errx()
errno
_etext
execl()
execle()
execlp()
execlpe()
execv()
execve()
execvp()
execvpe()
_exit()
exit()
struct e2k_syspage_entry
F
fcfgopen()
fchdir()
fchmod()
fchown()
fclose()
fcloseall()
fcntl()
fdatasync()
fdopen()
feof()
ferror()
fflush()
ffs()
ffsl()
ffsll()
fgetc()
fgetchar()
fgetgrent()
fgetpos()
fgetpwent()
fgets()
fgetspent()
fgetwc()
fgetws()
fileno()
flink()
flock()
flockfile()
fls()
flsl()
flsll()
flushall()
fnmatch()
fopen(), fopen64()
fork()
forkpty()
fpathconf()
fprintf()
fputc()
fputchar()
fputs()
fputwc()
fputws()
fread()
free()
freopen(), freopen64()
fscanf()
fseek(), fseeko(), fseeko64()
fsetpos()
fstat(), fstat64()
fstatvfs(), fstatvfs64()
fsync()
ftell(), ftello(), ftello64()
ftime()
ftruncate(), ftruncate64()
ftrylockfile()
ftw(), ftw64()
funlockfile()
futime()
fwide()
fwprintf()
fwrite()
fwscanf()
struct _fdinfo
struct flock, flock_t
struct fstab
struct FTW
G
getc()
getchar()
getchar_unlocked()
getc_unlocked()
getcwd()
getdtablesize()
getegid()
getenv()
geteuid()
getfsent()
getfsfile()
getfsspec()
getgid()
getgrent()
getgrgid()
getgrgid_r()
getgrnam()
getgrnam_r()
getgrouplist()
getgroups()
gethostname()
GETIOVBASE()
GETIOVLEN()
getitimer()
getlogin()
getlogin_r()
getopt()
getopt_long(), getopt_long_only()
getpagesize()
getpagesizes(), getpagesizes64()
getpass()
getpeereid()
getpgid()
getpgrp()
getpid()
getppid()
getprio()
getpwent()
getpwent_r()
getpwnam()
getpwnam_r()
getpwuid()
getpwuid_r()
getrlimit(), getrlimit64()
getrusage()
gets()
getsid()
getspent(), getspent_r()
getspnam(), getspnam_r()
getsubopt()
gettimeofday()
getuid()
getutent()
getutid()
getutline()
getw()
getwc()
getwchar()
getwd()
glob()
globfree()
glob_t
gmtime()
gmtime_r()
struct group
H
hcreate*(), hdestroy*(), hsearch*()
htonl()
htons()
hwi_find_item()
hwi_find_tag()
hwi_off2tag()
hwi_tag2off()
struct hwi_bus
struct hwi_device
struct hwi_diskgeometry
struct hwi_group
struct hwi_irq
struct hwi_item
struct hwi_location
struct hwinfo_entry
struct hwi_pad
struct hwi_prefix
I
in16(), inbe16(), inle16()
in16s()
in32(), inbe32(), inle32()
in32s()
in64()
in64s()
in8()
in8s()
index()
inet_ntop()
inet_pton()
initgroups()
initstate()
input_line()
insque(), remque()
InterruptAttachEvent(), InterruptAttachEvent_r()
_NTO_INTR_FLAGS_END
_NTO_INTR_FLAGS_PROCESS
_NTO_INTR_FLAGS_TRK_MSK
InterruptAttach(), InterruptAttach_r()
_NTO_INTR_FLAGS_END
_NTO_INTR_FLAGS_PROCESS
_NTO_INTR_FLAGS_TRK_MSK
InterruptDetach(), InterruptDetach_r()
InterruptDisable()
InterruptEnable()
InterruptHookIdle()
InterruptHookTrace()
InterruptLock()
InterruptMask()
InterruptUnlock()
InterruptUnmask()
InterruptWait(), InterruptWait_r()
intr_capture()
intr_lock()
intr_release()
intr_timed_wait()
intr_unlock()
_intr_v86()
io_chmod_t
io_chown_t
io_close_t
ioctl(), ioctl_socket()
io_devctl_t
iofdinfo()
io_fdinfo_t
iofunc_attr_init()
iofunc_attr_lock()
iofunc_attr_t
iofunc_attr_trylock()
iofunc_attr_unlock()
iofunc_check_access()
iofunc_chmod()
iofunc_chmod_default()
iofunc_chown()
iofunc_chown_default()
iofunc_client_info()
iofunc_close_dup()
iofunc_close_dup_default()
iofunc_close_ocb()
iofunc_close_ocb_default()
iofunc_devctl()
iofunc_devctl_default()
iofunc_fdinfo()
iofunc_fdinfo_default()
iofunc_func_init()
iofunc_link()
iofunc_lock()
iofunc_lock_calloc()
iofunc_lock_default()
iofunc_lock_free()
iofunc_lock_ocb_default()
iofunc_lseek()
iofunc_lseek_default()
iofunc_mknod()
iofunc_mmap()
iofunc_mmap_default()
iofunc_notify()
iofunc_notify_event_t
iofunc_notify_remove()
iofunc_notify_t
iofunc_notify_trigger()
iofunc_ocb_attach()
iofunc_ocb_calloc()
iofunc_ocb_detach()
iofunc_ocb_free()
iofunc_ocb_t
iofunc_open()
iofunc_open_default()
iofunc_openfd()
iofunc_openfd_default()
iofunc_pathconf()
iofunc_pathconf_default()
iofunc_read_default()
iofunc_readlink()
iofunc_read_verify()
iofunc_rename()
iofunc_space_verify()
iofunc_stat()
iofunc_stat_default()
iofunc_sync()
iofunc_sync_default()
iofunc_sync_verify()
iofunc_time_update()
iofunc_unblock()
iofunc_unblock_default()
iofunc_unlink()
iofunc_unlock_ocb_default()
iofunc_utime()
iofunc_utime_default()
iofunc_write_default()
iofunc_write_verify()
io_link_extra_t
io_link_t
io_lseek_t
io_mknod_t
io_mmap_t
ionotify()
io_notify_t
io_openfd_t
io_open_t
io_pathconf_t
io_readlink_t
io_read_t
io_rename_extra_t
io_rename_t
io_space_t
io_stat_t
io_sync_t
io_unlink_t
io_utime_t
io_write_t
isalnum()
isalpha()
isascii()
isatty()
iscntrl()
isdigit()
isfdtype()
isgraph()
islower()
isprint()
ispunct()
isspace()
isupper()
iswalnum()
iswalpha()
iswcntrl()
iswctype()
iswdigit()
iswgraph()
iswlower()
iswprint()
iswpunct()
iswspace()
iswupper()
iswxdigit()
isxdigit()
itoa()
struct inheritance
struct intrinfo_entry
struct _io_connect
struct _io_connect_ftype_reply
struct _io_connect_link_reply
struct iovec, iov_t
struct _itimer
struct itimerspec
struct itimerval
J
jrand48()
K
kill()
killpg()
kprintf(), kprintf_setup(), ksnprintf(), ksprintf(), kvprintf(), kvsnprintf(), kcallout_putchar()
L
labs()
lchown()
lcong48()
ldiv()
link()
lio_listio()
llabs()
localeconv()
localtime()
localtime_r()
lockf()
login_tty()
longjmp()
lrand48()
lsearch(), lfind()
lseek(), lseek64()
lstat(), lstat64()
ltoa(), lltoa()
ltrunc()
struct lconv
M
main()
mallinfo()
malloc()
mallopt()
max()
mblen()
mbrlen()
mbrtowc()
mbsinit()
mbsrtowcs()
mbstowcs()
mbtowc()
mcheck()
memalign()
memccpy()
memchr()
memcmp()
memcpy()
memcpyv()
memicmp()
memmove()
mem_offset64_peer()
mem_offset(), mem_offset64()
memset()
message_attach()
message_attr_t
message_connect()
message_context_t
message_detach()
min()
mkdir()
mkfifo()
mknod()
mktemp(), mkdtemp(), mkstemp()
mktime()
mlock()
mlockall()
mmap64_peer()
mmap_device_io()
mmap_device_memory()
mmap(), mmap64()
modem_open()
modem_read()
modem_script()
modem_write()
mount()
mount_parse_generic_args()
mprobe()
mprotect()
mq_close()
mq_getattr()
mq_notify()
mq_open()
mq_receive()
mq_send()
mq_setattr()
mq_timedreceive(), mq_timedreceive_monotonic()
mq_timedsend(), mq_timedsend_monotonic()
mq_unlink()
mrand48()
MsgCurrent(), MsgCurrent_r()
MsgDeliverEvent(), MsgDeliverEvent_r()
MsgError(), MsgError_r()
MsgInfo(), MsgInfo_r()
MsgKeyData(), MsgKeyData_r()
MsgRead(), MsgRead_r()
MsgReadv(), MsgReadv_r()
MsgReceive(), MsgReceive_r()
MsgReceivePulse(), MsgReceivePulse_r()
MsgReceivePulsev(), MsgReceivePulsev_r()
MsgReceivev(), MsgReceivev_r()
MsgReply(), MsgReply_r()
MsgReplyv(), MsgReplyv_r()
MsgSend(), MsgSend_r()
MsgSendnc(), MsgSendnc_r()
MsgSendPulse(), MsgSendPulse_r()
MsgSendPulsePtr(), MsgSendPulsePtr_r()
MsgSendsv(), MsgSendsv_r()
MsgSendsvnc(), MsgSendsvnc_r()
MsgSendv(), MsgSendv_r()
MsgSendvnc(), MsgSendvnc_r()
MsgSendvs(), MsgSendvs_r()
MsgSendvsnc(), MsgSendvsnc_r()
MsgVerifyEvent(), MsgVerifyEvent_r()
MsgWrite(), MsgWrite_r()
MsgWritev(), MsgWritev_r()
msync()
munlock()
munlockall()
munmap()
munmap_device_io()
munmap_device_memory()
munmap_flags()
munmap_flags_peer()
munmap_peer()
struct mallinfo
struct mips_syspage_entry
struct modem_script
struct mq_attr
struct _msg_info
N
name_attach()
name_attach_t
name_close()
name_detach()
name_open()
nanosleep()
nanospin()
nanospin_calibrate()
nanospin_count()
nanospin_ns()
nanospin_ns_to_count()
nap()
napms()
ND_NODE_CMP()
netmgr_ndtostr()
netmgr_remote_nd()
netmgr_strtond()
nftw(), nftw64()
nice()
nrand48()
nsec2timespec()
ntohl()
ntohs()
O
offsetof()
opendir()
openfd()
openlog()
open(), open64()
openpty()
out16(), outbe16(), outle16()
out16s()
out32(), outbe32(), outle32()
out32s()
out64()
out64s()
out8()
out8s()
struct option
P
pathconf()
pathfind(), pathfind_r()
pathmgr_symlink()
pathmgr_unlink()
pause()
pci_attach()
pci_attach_device()
pci_detach()
pci_detach_device()
pci_find_class()
pci_find_device()
pci_irq_routing_options()
pci_map_irq()
pci_present()
pci_read_config()
pci_read_config16()
pci_read_config32()
pci_read_config8()
pci_rescan_bus()
pci_write_config()
pci_write_config16()
pci_write_config32()
pci_write_config8()
pclose()
perror()
pipe()
poll()
popen()
posix_fadvise(), posix_fadvise64()
posix_memalign()
posix_mem_offset(), posix_mem_offset64()
posix_spawn()
posix_spawnattr_addpartid()
posix_spawnattr_addpartition()
posix_spawnattr_destroy()
posix_spawnattr_getcred()
posix_spawnattr_getflags()
posix_spawnattr_getnode()
posix_spawnattr_getpartid()
posix_spawnattr_getpgroup()
posix_spawnattr_getrunmask()
posix_spawnattr_getschedparam()
posix_spawnattr_getschedpolicy()
posix_spawnattr_getsigdefault()
posix_spawnattr_getsigignore()
posix_spawnattr_getsigmask()
posix_spawnattr_getstackmax()
posix_spawnattr_getxflags()
posix_spawnattr_init()
posix_spawnattr_setcred()
posix_spawnattr_setflags()
posix_spawnattr_setnode()
posix_spawnattr_setpgroup()
posix_spawnattr_setrunmask()
posix_spawnattr_setschedparam()
posix_spawnattr_setschedpolicy()
posix_spawnattr_setsigdefault()
posix_spawnattr_setsigignore()
posix_spawnattr_setsigmask()
posix_spawnattr_setstackmax()
posix_spawnattr_setxflags()
posix_spawn_file_actions_addclose()
posix_spawn_file_actions_adddup2()
posix_spawn_file_actions_addopen()
posix_spawn_file_actions_destroy()
posix_spawn_file_actions_init()
posix_spawnp()
posix_typed_mem_get_info()
posix_typed_mem_open()
pread(), pread64()
printf()
print_syspage_sections(), print_syspage_enable(), print_syspage_setup()
procmgr_daemon()
procmgr_event_notify()
procmgr_event_trigger()
procmgr_guardian()
procmgr_session()
__progname
pthread_abort()
pthread_atfork()
pthread_attr_destroy()
pthread_attr_getdetachstate()
pthread_attr_getguardsize()
pthread_attr_getinheritsched()
pthread_attr_getschedparam()
pthread_attr_getschedpolicy()
pthread_attr_getscope()
pthread_attr_getstackaddr()
pthread_attr_getstacklazy()
pthread_attr_getstackprealloc()
pthread_attr_getstacksize()
pthread_attr_init()
pthread_attr_setdetachstate()
pthread_attr_setguardsize()
pthread_attr_setinheritsched()
pthread_attr_setschedparam()
pthread_attr_setschedpolicy()
pthread_attr_setscope()
pthread_attr_setstackaddr()
pthread_attr_setstacklazy()
pthread_attr_setstackprealloc()
pthread_attr_setstacksize()
pthread_barrierattr_destroy()
pthread_barrierattr_getpshared()
pthread_barrierattr_init()
pthread_barrierattr_setpshared()
pthread_barrier_destroy()
pthread_barrier_init()
pthread_barrier_wait()
pthread_cancel()
pthread_cleanup_pop()
pthread_cleanup_push()
pthread_condattr_destroy()
pthread_condattr_getclock()
pthread_condattr_getpshared()
pthread_condattr_init()
pthread_condattr_setclock()
pthread_condattr_setpshared()
pthread_cond_broadcast()
pthread_cond_destroy()
pthread_cond_init()
pthread_cond_signal()
pthread_cond_timedwait()
pthread_cond_wait()
pthread_cond_wait_interruptible()
pthread_create()
pthread_detach()
pthread_equal()
pthread_exit()
pthread_getconcurrency()
pthread_getcpuclockid()
pthread_getname_np()
pthread_getschedparam()
pthread_getspecific()
pthread_join()
pthread_key_create()
pthread_key_delete()
pthread_kill()
pthread_mutexattr_destroy()
pthread_mutexattr_getprioceiling()
pthread_mutexattr_getprotocol()
pthread_mutexattr_getpshared()
pthread_mutexattr_getrecursive()
pthread_mutexattr_gettype()
pthread_mutexattr_getwakeup_np()
pthread_mutexattr_init()
pthread_mutexattr_setprioceiling()
pthread_mutexattr_setprotocol()
pthread_mutexattr_setpshared()
pthread_mutexattr_setrecursive()
pthread_mutexattr_settype()
pthread_mutexattr_setwakeup_np()
pthread_mutex_destroy()
pthread_mutex_getprioceiling()
pthread_mutex_init()
pthread_mutex_lock()
pthread_mutex_setprioceiling()
pthread_mutex_timedlock(), pthread_mutex_timedlock_monotonic()
pthread_mutex_trylock()
pthread_mutex_unlock()
pthread_mutex_wakeup_np()
pthread_once()
pthread_rwlockattr_destroy()
pthread_rwlockattr_getpshared()
pthread_rwlockattr_init()
pthread_rwlockattr_setpshared()
pthread_rwlock_destroy()
pthread_rwlock_init()
pthread_rwlock_rdlock()
pthread_rwlock_timedrdlock()
pthread_rwlock_timedwrlock()
pthread_rwlock_tryrdlock()
pthread_rwlock_trywrlock()
pthread_rwlock_unlock()
pthread_rwlock_wrlock()
pthread_self()
pthread_setcancelstate()
pthread_setcanceltype()
pthread_setconcurrency()
pthread_setname_np()
pthread_setschedparam()
pthread_setschedprio()
pthread_setspecific()
pthread_sigmask()
pthread_sleepon_broadcast()
pthread_sleepon_lock()
pthread_sleepon_signal()
pthread_sleepon_timedwait()
pthread_sleepon_unlock()
pthread_sleepon_wait()
pthread_spin_destroy()
pthread_spin_init()
pthread_spin_lock()
pthread_spin_trylock()
pthread_spin_unlock()
pthread_testcancel()
pthread_timedjoin(), pthread_timedjoin_monotonic()
pulse_attach()
pulse_detach()
putc()
putchar()
putchar_unlocked()
putc_unlocked()
putenv()
puts()
putspent()
pututline()
putw()
putwc()
putwchar()
pwrite(), pwrite64()
struct passwd
struct pci_dev_info
struct pminfo_entry
struct pollfd
struct ppc_kerinfo_entry
struct ppc_syspage_entry
struct _pulse
struct _pulse32
struct _pulse64
Q
qsort()
struct qtime_entry
R
raise()
rand()
random()
rand_r()
rdchk()
read()
readblock()
readcond()
readdir()
readdir_r()
readlink()
readv()
realloc()
reallocarr()
realpath()
re_comp()
re_exec()
regcomp()
regerror()
regexec()
regfree()
regmatch_t
remove()
rename()
resmgr_attach()
resmgr_attr_t
resmgr_block()
resmgr_connect_funcs_t
resmgr_context_alloc()
resmgr_context_free()
resmgr_context_t
resmgr_detach()
resmgr_devino()
resmgr_handle_grow()
resmgr_handler()
resmgr_handle_tune()
resmgr_iofuncs()
resmgr_io_funcs_t
resmgr_msg_again()
resmgr_msgread()
resmgr_msgreadv()
resmgr_msgreply()
resmgr_msgreplyv()
resmgr_msgwrite()
resmgr_msgwritev()
_RESMGR_NPARTS()
resmgr_ocb()
resmgr_open_bind()
resmgr_pathname()
_RESMGR_PTR()
_RESMGR_STATUS()
resmgr_unbind()
rewind()
rewinddir()
rindex()
rlim_t
rmdir()
rsrc_alloc_t
rsrcdbmgr_attach()
rsrcdbmgr_create()
rsrcdbmgr_destroy()
rsrcdbmgr_detach()
rsrcdbmgr_devno_attach()
rsrcdbmgr_devno_detach()
rsrcdbmgr_query_name()
rsrc_request_t
struct rlimit
struct rusage
S
sbrk()
_scalloc()
scandir()
scanf()
sched_aps_clear_crit_parms
sched_aps_create_parms
sched_aps_events_parm
sched_aps_info
sched_aps_join_parms
sched_aps_lookup_parms
sched_aps_mark_crit_parms
sched_aps_modify_parms
sched_aps_overall_stats
sched_aps_parms
sched_aps_partition_info
sched_aps_partition_stats
sched_aps_query_process_parms
sched_aps_query_thread_parms
sched_aps_security_parms
SchedCtl(), SchedCtl_r()
SCHED_APS_QUERY_PARMS
SCHED_APS_SET_PARMS
SCHED_APS_CREATE_PARTITION
SCHED_APS_QUERY_PARTITION
SCHED_APS_LOOKUP
SCHED_APS_JOIN_PARTITION
SCHED_APS_MODIFY_PARTITION
SCHED_APS_PARTITION_STATS
SCHED_APS_OVERALL_STATS
SCHED_APS_MARK_CRITICAL
SCHED_APS_CLEAR_CRITICAL
SCHED_APS_QUERY_THREAD
SCHED_APS_ATTACH_EVENTS
SCHED_APS_ADD_SECURITY
SCHED_APS_QUERY_PROCESS
sched_getparam()
sched_get_priority_adjust()
sched_get_priority_max()
sched_get_priority_min()
SchedGet(), SchedGet_r()
sched_getscheduler()
SchedInfo(), SchedInfo_r()
sched_rr_get_interval()
sched_setparam()
SchedSet(), SchedSet_r()
sched_setscheduler()
sched_yield()
SchedYield(), SchedYield_r()
searchenv()
seed48()
seekdir()
select()
select_attach()
select_attr_t
select_detach()
select_query()
sem_close()
sem_destroy()
sem_getvalue()
sem_init()
sem_open()
sem_post()
sem_timedwait(), sem_timedwait_monotonic()
sem_trywait()
sem_unlink()
sem_wait()
setbuf()
setbuffer()
setegid()
setenv()
seteuid()
setfsent()
setgid()
setgrent()
setgroups()
sethostname()
SETIOV()
setitimer()
setjmp()
setlinebuf()
setlocale()
setlogmask()
setpgid()
setpgrp()
setprio()
setpwent()
setregid()
setreuid()
setrlimit(), setrlimit64()
setsid()
setspent()
setstate()
settimeofday()
setuid()
setutent()
setvbuf()
_sfree()
shm_ctl()
shm_ctl_special()
ARM-специфичные флаги
PPC-специфичные флаги
shm_open()
shm_unlink()
sigaction()
sigaddset()
sigblock()
sigdelset()
sigemptyset()
sigfillset()
siginfo_t
sigismember()
siglongjmp()
sigmask()
signal()
SignalAction(), SignalAction_r()
SignalKill(), SignalKill_r()
SignalProcmask(), SignalProcmask_r()
SignalSuspend(), SignalSuspend_r()
SignalWaitinfo(), SignalWaitinfo_r()
sigpause()
sigpending()
sigprocmask()
sigqueue()
sigsetjmp()
sigsetmask()
sigsuspend()
sigtimedwait()
sigunblock()
sigwait()
sigwaitinfo()
sleep()
_sleepon_broadcast()
_sleepon_destroy()
_sleepon_init()
_sleepon_lock()
_sleepon_signal()
_sleepon_unlock()
_sleepon_wait()
slogb()
slogf()
slogi()
_smalloc()
snprintf()
sopen()
sopenfd()
spawn()
spawnl()
spawnle()
spawnlp()
spawnlpe()
spawnp()
spawnv()
spawnve()
spawnvp()
spawnvpe()
sprintf()
srand()
srand48()
srandom()
_srealloc()
sscanf()
__stackavail()
stat_optimize(), lstat_optimize()
stat(), stat64()
statvfs(), statvfs64()
stderr
stdin
stdout
straddstr()
strcasecmp()
strcat()
strchr()
strcmp()
strcmpi()
strcoll()
strcpy()
strcspn()
strdup()
strerror()
strerror_r()
strftime()
stricmp()
strlcat(), strlcpy()
strlen()
strlwr()
strncasecmp()
strncat()
strncmp()
strncpy()
strnicmp()
strnlen()
strnset()
strpbrk()
strptime()
strrchr()
strrev()
strsep()
strset()
strsignal()
strspn()
strstr()
strtod(), strtof(), strtold()
strtoimax(), strtoumax()
strtok()
strtok_r()
strtol(), strtoll()
strtoul(), strtoull()
struct _sched_info
struct sched_param
struct _server_info
struct sigaction
struct sigevent
struct smp_entry
struct sparc_syspage_entry
struct spwd
struct stat
struct statvfs
struct syspage_entry
struct system_private_entry
strupr()
strxfrm()
suseconds_t
swab()
swprintf()
swscanf()
symlink()
sync()
sync_attr_t
SyncCondvarSignal(), SyncCondvarSignal_r()
SyncCondvarWait(), SyncCondvarWait_r()
SyncCtl(), SyncCtl_r()
SyncDestroy(), SyncDestroy_r()
SyncMutexEvent(), SyncMutexEvent_r()
SyncMutexLock(), SyncMutexLock_r()
SyncMutexRevive(), SyncMutexRevive_r()
SyncMutexUnlock(), SyncMutexUnlock_r()
SyncSemPost(), SyncSemPost_r()
SyncSemWait(), SyncSemWait_r()
sync_t
SyncTypeCreate(), SyncTypeCreate_r()
sysconf()
syslog()
sysmgr_reboot()
SYSPAGE_CPU_ENTRY()
SYSPAGE_ENTRY()
_syspage_ptr
system()
union sigval
union __sigval32
union __sigval64
T
struct termios
struct _thread_attr
struct _thread_local_storage
struct _thread_name
struct _thread_runmask
struct timeb
struct _timer_info
struct timespec
struct timeval
struct tm
struct tms
tcdrain()
tcdropline()
tcflow()
tcflush()
tcgetattr()
tcgetpgrp()
tcgetsid()
tcgetsize()
tcinject()
tcischars()
tcsendbreak()
tcsetattr()
tcsetpgrp()
tcsetsid()
tcsetsize()
telldir()
tell(), tell64()
tempnam()
ThreadCancel(), ThreadCancel_r()
ThreadCreate(), ThreadCreate_r()
ThreadCtl(), ThreadCtl_r()
_NTO_TCTL_ALIGN_FAULT
_NTO_TCTL_IO, _NTO_TCTL_IO_PRIV
_NTO_TCTL_NAME
_NTO_TCTL_ONE_THREAD_CONT
_NTO_TCTL_ONE_THREAD_HOLD
_NTO_TCTL_RUNMASK
_NTO_TCTL_RUNMASK_GET_AND_SET
_NTO_TCTL_RUNMASK_GET_AND_SET_INHERIT
_NTO_TCTL_THREADS_CONT
_NTO_TCTL_THREADS_HOLD
_NTO_TCTL_ISR_LEVEL_GET
_NTO_TCTL_ISR_LEVEL_SET
ThreadDestroy(), ThreadDestroy_r()
ThreadDetach(), ThreadDetach_r()
ThreadJoin(), ThreadJoin_r()
thread_pool_attr_t
thread_pool_control()
thread_pool_create()
thread_pool_destroy()
thread_pool_limits()
thread_pool_start()
time()
TimerAlarm(), TimerAlarm_r()
timer_create()
TimerCreate(), TimerCreate_r()
timer_delete()
TimerDestroy(), TimerDestroy_r()
timer_getexpstatus()
timer_getoverrun()
timer_gettime()
TimerInfo(), TimerInfo_r()
timer_settime()
TimerSettime(), TimerSettime_r()
timer_timeout(), timer_timeout_r()
TimerTimeout(), TimerTimeout_r()
times()
timespec2nsec()
time_t
timezone
__tls()
tmpfile(), tmpfile64()
tmpnam()
tolower()
toupper()
towctrans()
towlower()
towupper()
TraceEvent()
Контроль буферов и исполнения
Настройка быстрого/широкого режимов
Настройка фильтра статических правил
Настройка фильтра динамических правил
Пользовательские события трассировки
trace_func_enter()
trace_func_exit()
trace_here()
trace_logb()
trace_logbc()
trace_logf()
trace_logi()
trace_nlogf()
trace_vnlogf()
truncate()
tsearch(), tfind(), tdelete(), twalk()
ttyname()
ttyname_r()
tzname
tzset()
U
struct utimbuf
struct utmp
struct utsname
ualarm()
ultoa(), ulltoa()
umask()
umount()
UNALIGNED_PUT16()
UNALIGNED_PUT32()
UNALIGNED_PUT64()
UNALIGNED_RET16()
UNALIGNED_RET32()
UNALIGNED_RET64()
uname()
ungetc()
ungetwc()
unlink()
unsetenv()
usleep()
utime()
utimes()
utmpname()
utoa()
V
va_arg()
va_copy()
va_end()
valloc()
va_start()
verr(), verrx()
vfork()
vfprintf()
vfscanf()
vfwprintf()
vfwscanf()
vprintf()
vscanf()
vslogf()
vsnprintf()
vsprintf()
vsscanf()
vswprintf()
vswscanf()
vsyslog()
vwarn(), vwarnx()
vwprintf()
vwscanf()
W
wait()
wait3()
wait4()
waitid()
__waitid_net()
waitpid()
warn(), warnx()
wcrtomb()
wcscat()
wcschr()
wcscmp()
wcscoll()
wcscpy()
wcscspn()
wcsftime()
wcslen()
wcsncat()
wcsncmp()
wcsncpy()
wcspbrk()
wcsrchr()
wcsrtombs()
wcsspn()
wcsstr()
wcstod(), wcstof(), wcstold()
wcstoimax(), wcstoumax()
wcstok()
wcstol(), wcstoll()
wcstombs()
wcstoul(), wcstoull()
wcsxfrm()
wctob()
wctomb()
wctrans()
wctype()
wmemchr()
wmemcmp()
wmemcpy()
wmemmove()
wmemset()
wordexp()
wordexp_t
wordfree()
wprintf()
write()
writeblock()
writev()
wscanf()
X
struct x86_syspage_entry
Прикладные библиотеки и технологии
Библиотека менеджера QDB
Статьи и обзоры
Введение
Проект sqlite и библиотека libsqlite3
Запуск менеджера QDB
Каталог базы данных
Файлы схем
Запуск сервера QDB
Файловая система временного хранилища
Автоматическое присоединение баз данных
Неправильно
Правильно
Проверка целостности базы данных
Проверка операторов SQL
Конфигурационный файл
Совместное использование подключений клиентами
Общий доступ к кешу
Преимущества общего доступа к кешу
Восстановление базы данных
Интервал активного ожидания
Работа с поврежденными базами данных
Пример сценария
Команды сопровождения базы данных
Администрирование QDB
Резервное копирование и восстановление баз данных
Пример работы с QDB
Подключение к базе данных
Выполнение SQL оператора
Получение результата запроса
Использование результата
Отключение от сервера
Пример
Типы данных QDB
Классы данных
Рекомендуемые типы данных столбцов
Определение рекомендуемого типа данных столбца
Пример рекомендуемых типов
Выражения сравнения
Пример сравнения
Операторы
Сортировка, группировка и составные операторы SELECT
Другие режимы применения рекомендуемых типов данных
Пользовательский порядок сортировки
Назначение порядка сортировки с помощью SQL
Порядки сортировки: пример
Инструкции виртуальной машины QDB
Просмотр программ, генерируемых QDB
Инструкции
Создание пользовательских функций
User scalar/aggregate functions
User collation routines
Example
sqlite C/C++ API
sqlite3_result_*
sqlite3_value_*
sqlite3_user_data
Справочник по клиентскому API менеджера QDB
qdb_backup()
qdb_binding_t
qdb_bkcancel()
qdb_cell()
qdb_cell_length()
qdb_cell_type()
qdb_collation()
qdb_column_index()
qdb_column_name()
qdb_columns()
qdb_connect()
qdb_data_source()
qdb_disconnect()
qdb_freeresult()
qdb_getdbsize()
qdb_geterrmsg()
qdb_getoption()
qdb_getresult()
qdb_gettransstate()
qdb_last_insert_rowid()
qdb_mprintf()
qdb_parameters()
qdb_printmsg()
qdb_query()
qdb_rowchanges()
qdb_rows()
qdb_setbusytimeout()
qdb_setoption()
qdb_snprintf()
qdb_statement()
qdb_stmt_exec()
qdb_stmt_free()
qdb_stmt_init()
qdb_vacuum()
qdb_vmprintf()
struct qdb_collation
struct qdb_function
Справочник по командам SQL, поддерживаемым менеджером QDB
Идентификаторы строк (ROWID) и автоматическое инкрементирование
Комментарии
Выражения в SQL запросах
Формат
Описание
Литеральные значения
Параметры
LIKE
GLOB
Имена столбцов
Оператор SELECT
CAST
Функции
Основные функции
Агрегирующие функции
Ключевые слова, поддерживаемые QDB
SQL: ALTER TABLE
SQL: ANALYZE
SQL: ATTACH DATABASE
SQL: CREATE INDEX
SQL: CREATE TABLE
SQL: CREATE TRIGGER
SQL: CREATE VIEW
SQL: DELETE
SQL: DETACH DATABASE
SQL: DROP INDEX
SQL: DROP TABLE
SQL: DROP TRIGGER
SQL: DROP VIEW
SQL: EXPLAIN
SQL: INSERT
SQL: ON CONFLICT
SQL: PRAGMA
SQL: REINDEX
SQL: REPLACE
SQL: SELECT
SQL: TRANSACTION
SQL: UPDATE
SQL: VACUUM
Библиотека эмуляции терминала
API терминала
terminal_attr_t
terminal_callbacks_t
terminal_init_t
terminal_window_setting_t
term_create()
term_encoding_to_wchar()
term_free()
term_get_char()
term_get_charset()
term_get_client()
term_get_cursor()
term_get_string()
term_put(), term_puts(), term_putc()
term_reset()
term_resize()
term_set_callbacks()
term_set_charset()
term_set_client()
term_set_cursor()
term_set_scrollback()
term_wchar_to_encoding()
API кодировок терминала
terminal_charset_t
term_charset_load()
term_charset_to_wchar()
term_wchar_to_charset()
Пользовательские графические интерфейсы
Доступные технологии
Оконное окружение Photon
Общие сведения
Оконное окружение Photon microGUI
Микроядерный подход в оконном окружении
Трехмерное пространство событий
Регионы
События
Взаимодействие с графической подсистемой
Поддержка шрифтов
Unicode и поддержка мультиязычности
Поддержка анимации
Поддержка печати
Оконный менеджер
Резюме
API оконного окружения Photon
Px*
PxLoadImageStream()
Обзор библиотеки виджетов
Базовые виджеты
PtLabel — метки
PtButton — классические кнопки
PtText, PtMultiText — поля ввода текста
PtToggleButton — кнопки-переключатели
PtArc, PtRect, PtLine, ... — геометрические фигуры
PtScrollbar — области прокрутки
PtSeparator — разделители
PtSlider — бегунки
PtLabel, PtButton — изображения
PtProgress — индикаторы прогресса
PtNumericInteger, PtNumericFloat — числовые счетчики
Контейнеры
PtWindow — окна
PtGroup — группы
PtPanelGroup — группы панелей
PtScrollContainer — окна просмотра
PtBkgd — фоны
Дополнительные виджеты
PtMenu, PtMenuBar, PtMenuButton — меню
PtToolbar, PtToolbarGroup — панели инструментов
PtList — списки
PtComboBox — выпадающие списки
PtTree — древовидные списки
PtTty, PtTerminal — терминалы
PtDivider — разделители
PtTrend, PtMTrend — графики
PtColorSel, PtColorPanel, ... — инструменты для выбора цвета
Диалоговые функции
PtFileSelection() — диалоговое окно выбора файла
PtFontSelection() — модальное диалоговое окно выбора шрифта
PtPrintSelection() — модальное диалоговое окно выбора опций печати
PtAlert() — отображает сообщение и запрашивает ответное действие от пользователя
PtNotice() — отображает сообщение и запрашивает подтверждение от пользователя
PtPrompt() — отображает сообщение и запрашивает текстовый ввод от пользователя
Разработка GUI для Qt приложений с использованием web-технологий (библиотека facefull)
Введение
Шаг 1. Создание главного окна Qt с виджетом QWebView
Шаг 2. Инициализация bridge
Шаг 3. Реализация UI
Описание HTML страницы
Описание стилей
Описание основного JS скрипта
Использование QRC для сборки ресурсов
Взаимодействие с UI через bridge
Заключение
Библиотека μGUI
Обзор библиотеки μGUI
Поддержка 2D акселерации
Поддержка Graphics Framework
Создание окна
Устройства ввода
Цветовая модель
Шрифты
μGUI API
Базовые функции
UG_ConsolePutString()
UG_ConsoleSetArea()
UG_ConsoleSetBackcolor()
UG_ConsoleSetForecolor()
UG_DrawArc()
UG_DrawCircle()
UG_DrawFrame()
UG_DrawLine()
UG_DrawMesh()
UG_DrawPixel()
UG_DrawRoundFrame()
UG_FillCircle()
UG_FillFrame()
UG_FillRoundFrame()
UG_FillScreen()
UG_FontDelete()
UG_FontLoadBitmap()
UG_FontSelect()
UG_FontSetHSpace()
UG_FontSetVSpace()
UG_GetXDim()
UG_GetYDim()
UG_Init()
UG_PutChar()
UG_PutString()
UG_SelectGUI()
UG_SetBackcolor()
UG_SetForecolor()
UG_Update()
Интеграция с Graphics Framework
ugf_create_context()
ugf_devi_connect_mouse()
ugf_flush_graphics()
ugf_process_events()
ugf_set_default_palette()
ugf_set_palette()
ugf_set_palette_color()
Оконный виджет (изображение)
UG_ImageCreate()
UG_ImageDelete()
UG_ImageHide()
UG_ImageSetBMP()
UG_ImageShow()
Оконный виджет (кнопка)
UG_ButtonCreate()
UG_ButtonDelete()
UG_ButtonGetAlternateBackColor()
UG_ButtonGetAlternateForeColor()
UG_ButtonGetBackColor()
UG_ButtonGetFont()
UG_ButtonGetForeColor()
UG_ButtonGetStyle()
UG_ButtonGetText()
UG_ButtonHide()
UG_ButtonSetAlternateBackColor()
UG_ButtonSetAlternateForeColor()
UG_ButtonSetBackColor()
UG_ButtonSetFont()
UG_ButtonSetForeColor()
UG_ButtonSetStyle()
UG_ButtonSetText()
UG_ButtonShow()
Оконный виджет (текстовое поле)
UG_TextboxCreate()
UG_TextboxDelete()
UG_TextboxGetAlignment()
UG_TextboxGetBackColor()
UG_TextboxGetFont()
UG_TextboxGetForeColor()
UG_TextboxGetHSpace()
UG_TextboxGetText()
UG_TextboxGetVSpace()
UG_TextboxHide()
UG_TextboxSetAlignment()
UG_TextboxSetBackColor()
UG_TextboxSetFont()
UG_TextboxSetForeColor()
UG_TextboxSetHSpace()
UG_TextboxSetText()
UG_TextboxSetVSpace()
UG_TextboxShow()
Оконный виджет (флаг)
UG_CheckboxCreate()
UG_CheckboxDelete()
UG_CheckboxGetAlignment()
UG_CheckboxGetAlternateBackColor()
UG_CheckboxGetAlternateForeColor()
UG_CheckboxGetBackColor()
UG_CheckboxGetChecked()
UG_CheckboxGetFont()
UG_CheckboxGetForeColor()
UG_CheckboxGetHSpace()
UG_CheckboxGetStyle()
UG_CheckboxGetText()
UG_CheckboxGetVSpace()
UG_CheckboxHide()
UG_CheckboxSetAlignment()
UG_CheckboxSetAlternateBackColor()
UG_CheckboxSetAlternateForeColor()
UG_CheckboxSetBackColor()
UG_CheckboxSetChecked()
UG_CheckboxSetFont()
UG_CheckboxSetForeColor()
UG_CheckboxSetHSpace()
UG_CheckboxSetStyle()
UG_CheckboxSetText()
UG_CheckboxSetVSpace()
UG_CheckboxShow()
Особенности 2D акселерации
UG_DriverDisable()
UG_DriverEnable()
UG_DriverRegister()
UG_DriverSetContext()
Управление окнами
UG_WindowAlert()
UG_WindowCreate()
UG_WindowDelete()
UG_WindowGetArea()
UG_WindowGetBackColor()
UG_WindowGetForeColor()
UG_WindowGetInnerHeight()
UG_WindowGetInnerWidth()
UG_WindowGetOuterHeight()
UG_WindowGetOuterWidth()
UG_WindowGetStyle()
UG_WindowGetTitleColor()
UG_WindowGetTitleHeight()
UG_WindowGetTitleInactiveColor()
UG_WindowGetTitleInactiveTextColor()
UG_WindowGetTitleText()
UG_WindowGetTitleTextAlignment()
UG_WindowGetTitleTextColor()
UG_WindowGetTitleTextFont()
UG_WindowGetTitleTextHSpace()
UG_WindowGetTitleTextVSpace()
UG_WindowGetXEnd()
UG_WindowGetXStart()
UG_WindowGetYEnd()
UG_WindowGetYStart()
UG_WindowHide()
UG_WindowResize()
UG_WindowSetBackColor()
UG_WindowSetForeColor()
UG_WindowSetStyle()
UG_WindowSetTitleColor()
UG_WindowSetTitleHeight()
UG_WindowSetTitleInactiveColor()
UG_WindowSetTitleInactiveTextColor()
UG_WindowSetTitleText()
UG_WindowSetTitleTextAlignment()
UG_WindowSetTitleTextColor()
UG_WindowSetTitleTextFont()
UG_WindowSetTitleTextHSpace()
UG_WindowSetTitleTextVSpace()
UG_WindowSetXEnd()
UG_WindowSetXStart()
UG_WindowSetYEnd()
UG_WindowSetYStart()
UG_WindowShow()
Словарь терминов
Пакеты поддержки модулей для ЗОСРВ «Нейтрино»
AArch64 (ARM64)
BSP для Xilinx Zynq UltraScale+ MPSoC
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа по сети
Загрузка образа с SD карты памяти
Результат загрузки образа
Сохранение варианта загрузки по-умолчанию
Описание компонентов
Список компонентов, входящих в состав ППМ
startup-xzynq-zcu102
devc-serxzynq
devf-qspi-xzynq-zcu102
i2c-xzynq
pci-xzynq
rtc-zynqmp.so
spi-xzynq-zcu102.so
devnp-xzynq-ultrascale.so
getmac-i2c-zcu102
clock-xzynq
clockctl
fpga-xzynq
fpgactl
ocm-xzynq
pmu-xzynq
pmuctl
wdtkick
remoteproc-xzynq
remoteprocctl
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер типа Cortex-A53
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка переключения режимов и дуплекса контроллера Ethernet
Проверка драйвера контроллера USB 3.0 Host c USB HID устройствами
Измерении скорости работы драйвера контроллера USB Host c USB mass storage устройствами
Проверка драйвера контроллера QSPI
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера I2C
Проверка менеджера RTC
Проверка блока Watchdog
Проверка драйвера контроллера SATA
Проверка PCI сервера для контроллера PCIe в режиме Host
Проверка драйвера контроллера таймеров (Clock)
Проверка драйвера контроллера накристальной памяти (OCM)
Проверка блока управления загрузкой ПО FPGA
Проверка блока управления платформой PMU
Проверка драйвера DisplayPort
Проверка менеджера ядер RPU (R5)
Известные особенности
Журнал изменений BSP для Xilinx Zynq UltraScale+ MPSoC
BSP для микропроцессоров NXP серии i.MX8M
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа по сети
Загрузка образа с SD карты памяти
Результат загрузки образа
Сохранение варианта загрузки по-умолчанию
Описание компонентов
Список компонентов, входящих в состав ППМ
startup-imx8mm
startup-imx8mp
dev-can-mx35
devc-sermx1
devnp-mx6x.so
i2c-mx35
pci-imx
spi-mx51ecspi.so
gpio-imx8m
wdtkick-imx
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка переключения режимов и дуплекса контроллера Ethernet
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера I2C
Проверка драйвера контроллера SPI
Проверка драйвера контроллера CAN
Проверка блока Watchdog
Проверка драйвера контроллера PCI
Проверка драйвера контроллера GPIO
Известные особенности
Журнал изменений BSP для семейства микропроцессоров NXP серии i.MX8M под ЗОСРВ «Нейтрино»
BSP для устройств на основе процессора Rockchip RK3568
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа с SD карты памяти
Результат загрузки образа
Описание компонентов
Список компонентов, входящих в состав ППМ
startup-rockchip-rk3568
dev-can-rk3568
devnp-rockchip.so
gpio-rk3568
wdtkick-rk3568
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера SD/MMC
Проверка сетевого драйвера
Проверка драйвера контроллера GPIO
Проверка драйвера контроллера CAN
Проверка подсистемы USB
Известные особенности
Журнал изменений BSP для семейства микропроцессоров Rockchip серии RK3568 под ЗОСРВ «Нейтрино»
ARMv7
BSP для OrangePi PC Allwinner H3
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Получение архива ППМ
Настройка SSH
Сборка загрузочного образа
Загрузка образа ОС
Подготовка SD карты
Загрузка образа с SD карты
Загрузка образа по сети
Результат загрузки образа
Сохранение варианта загрузки по умолчанию
Запуск тестового проекта
Подключение к инструментальной системе по протоколу SSH
Создание и запуск тестового проекта
Описание компонентов
Список компонентов, входящих в состав ППМ
startup-orangepi
devnp-sun8i.so
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка функционирования подсистемы управления общими элементами платформ
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер типа Cortex-A7
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка драйвера контроллера USB
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера HDMI
Проверка драйвера контроллера GPU
Известные особенности
Журнал изменений ППМ для OrangePi PC Allwinner H3
BSP для TI Sitara серии AM335x
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа по сети
Загрузка образа с SD карты памяти
Результат загрузки образа
Сохранение варианта загрузки по-умолчанию
Описание компонентов
Список компонентов, входящих в состав ППМ
dev-can-am335x
devc-seromap
devnp-am335x.so
i2c-omap35xx
spi-am335x.so
wdtkick-am335x
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка переключения режимов и дуплекса контроллера Ethernet
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера USB
Проверка драйвера контроллера I2C
Проверка драйвера контроллера SPI
Проверка блока Watchdog
Известные особенности
Журнал изменений BSP для семейства микропроцессоров Sitara серии AM335x под ЗОСРВ «Нейтрино»
BSP для устройств на базе процессора Элвис 1892ВМ14Я
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа с SD карты памяти
Результат загрузки образа
Описание компонентов
Список компонентов, входящих в состав ППМ
devu-dwcotg.so
etfs-mcom
i2c-dw
devnp-1892vm14-gemac.so
vm14-swic-test
wdtkick-1892vm14
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера USB
Проверка драйвера контроллера I2C
Проверка драйвера контроллера HDMI
Известные особенности
Журнал изменений BSP для семейства микропроцессоровElvees серии 1892vm14 под ЗОСРВ «Нейтрино»
PowerPC
BSP для устройств на базе семейства микропроцессоров NXP серии P
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа по сети
Загрузка образа с SD карты памяти
Результат загрузки образа
Сохранение варианта загрузки по-умолчанию
Описание компонентов
startup-p3041
startup-p5040
devb-fslSata
devb-mmcsd-fsl
devf-spi-s25
etfs-fsl-lp
i2c-fsl
pci-fsl
rtc-fsl
spi-ppc_espi.so
devnp-dpaa-fsl-p3041.so
devnp-dpaa-fsl-p5040.so
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка функционирования контроллера DDR памяти
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверка работы ЗОСРВ на ЦП в режиме симметричной мультипроцессорности (SMP) с поддержкой всех CPU ядер
Проверки интерфейсов
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка переключения режимов и дуплекса контроллера Ethernet
Проверка драйвера контроллера USB c USB HID устройствами
Измерении скорости работы драйвера контроллера USB Host c USB mass storage устройствами
Проверка драйвера контроллера SD/MMC
Проверка драйвера контроллера I2C
Проверка драйвера контроллера SPI
Проверка драйвера контроллера SATA
Проверка драйвера контроллера NAND flash
Проверка драйвера контроллера SPI flash
Проверка PCI сервера для контроллера PCIe в режиме Host
Известные особенности
Журнал изменений BSP для семейства микропроцессоров NXP серии P под ЗОСРВ «Нейтрино»
MIPS
BSP для устройств на базе процессора НИИСИ РАН 1890ВМ8Я
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа по сети
Результат загрузки образа
Описание компонентов
Список компонентов, входящих в состав ППМ
devn-cprio64.so
devn-rionet64.so
fs-etfs-mitxc1vm8
i2c-komdiv
pci-mitxc1vm8
devnp-srisa.so
gpio-komdiv
wdtkick-1890vm8
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка вывода системного времени
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка функционирования контроллера DDR памяти
Проверка функционирования таймера
Проверка вывода информации о запущенных процессах
Проверка функционирования контроллера прерываний
Проверка вывода системной таблицы
Проверка питания микропроцессора для ПМ
Проверки интерфейсов
Проверка функционирования драйвера последовательной консоли через интерфейс RS-232
Проверка работы контроллеров интерфейсов Ethernet
Проверка работы драйвера контроллера USB
Проверка работы драйвера контроллера SATA
Проверка драйвера контроллера интерфейса разовых входных-выходных команд через линии GPIO
Проверка драйвера контроллера I2C
Проверка работы драйвера контроллера шины PCI
Проверка блока Watchdog
Известные особенности
Журнал изменений BSP для семейства микропроцессоров KOMDIV-64 серии 1890vm8
BSP для устройств на базе процессора Элвис 1892ВМ206
Основные термины и сокращения
Общие сведения
Состав и структура
Установка и настройка
Загрузка образа ОС
Загрузка образа c помощью mjtagserver и mdb
Результат загрузки образа
Описание компонентов
Список компонентов, входящих в состав ППМ
ipl-mct06em
startup-mct06em
devnp-nvcom.so
gpio-vm206
mfbsp-test
mkio-test
Библиотека для работы с контроллером MFBSP микропроцессора 1892ВМ206
Драйверные API
mfbsp_device_t
mfbsp_dinit()
mfbsp_i2s_receiver_configure()
mfbsp_i2s_transmitter_configure()
mfbsp_init()
mfbsp_receive()
mfbsp_spi_duplex_configure()
mfbsp_spi_receiver_configure()
mfbsp_spi_transmitter_configure()
mfbsp_transmit()
Библиотека для работы с контроллером МКИО микропроцессора 1892ВМ206
Драйверные API
mkio_device_t
mkio_dump_buffer()
mkio_dump_regs()
mkio_gen_kk_passport()
mkio_get_oy_ati()
mkio_init()
mkio_make_comand_word()
mkio_mon_enable()
mkio_power_on()
mkio_reset()
mkio_setup_kk()
mkio_setup_ou()
mkio_start_transfer()
mkio_wait_cmd_done()
mkio_write_kk_task()
Список стандартных компонентов, используемых в ППМ
Проверка функционирования
Базовые проверки функционирования ОС
Проверка запуска на ПМ ядра ЗОСРВ в составе загружаемого образа
Проверка запуска компонентов
Проверка функционирования контроллера прерываний
Проверка функционирования таймера
Проверки интерфейсов
Проверка драйвера контроллера flash
Проверка драйвера контроллера UART
Проверка драйвера контроллера Gigabit Ethernet
Проверка драйвера контроллера GPIO
Проверка драйвера контроллера МКИО
Проверка драйвера контроллера MFBSP
Известные особенности
Журнал изменений BSP для MCT-06EM-6U 1892ВМ206
Графическая подсистема ЗОСРВ «Нейтрино»
Руководство пользователя
Настройка графической подсистемы
Особенности архитектуры
Конфигурация графической подсистемы
Настройка контроллера дисплея
Настройка мультидисплейных конфигураций
Выбор 3D стека и драйверного обеспечения сервиса композиции
Настройка сервиса поддержки драйверов Linux (io-lxdev)
Настройка менеджера композиции (io-composer)
Адресная настройка драйверного обеспечения
Настройка оконного менеджера и модулей ввода
Типичные проблемы
Композитная оконная подсистема и менеджер окон
Настройка менеджера композиции
Настройка оконного менеджера
Настройка внешнего вида окна
Устройства ввода
Калибровка touchscreen-устройств
Объединение устройств ввода
Запрет дисплеев для устройств ввода
Примеры настройки различных конфигураций
Настройка курсоров
GPGPU технологии
OpenCL
Загрузчик OCL ICD
Переменные окружения
Графические процессоры AMD Radeon
Графические процессоры Intel
Intel Gen 7 GPU Cores (IvyBridge, ValleyView, Haswell)
Графические процессоры Vivante
Настройка стиля рамок окон
Общие сведения и настройка
Установка стиля Photon
Установка стиля Screen
Руководство разработчика
Оконная подсистема Screen
Обзор оконной подсистемы Screen
Традиционное и композитное оконные окружения
Композиция
Потоки ввода
Взаимодействие с приложениями
Обзор Screen API
Приложения и демонстрации
Общие принципы композиции
Работа с контекстами
Виды контекстов
Создание контекста
Установка параметров контекста
Работа с pixmap-ами
Параметры pixmap-ов
Пиксельные форматы
Создание pixmap-ов
Работа с окнами
Виды окон
Параметры окон
Пиксельные форматы
Родительские отношения и позиционирование
Создание окон
Создание дочерних окон
Работа с событиями
Справочник по Screen API
Типы функций
Списки функций
Список функций по типам
Программные интерфейсы (API)
screen_area_t
screen_blit_t
screen_cursor_type_t
screen_flush_t
screen_format_t
screen_mouse_button_t
screen_property_t
screen_quality_t
screen_rect_t
screen_stylus_button_t
screen_touch_t
screen_transparency_t
screen_usage_t
screen_window_flags_t
Контексты
Типы данных и константы
screen_context_type_t
screen_context_t
Функции
screen_create_context()
screen_destroy_context()
screen_flush_context()
screen_get_context_property_iv()
screen_get_context_property_pv()
Буферы
Типы данных и константы
screen_buffer_t
Функции
screen_blit()
screen_create_buffer()
screen_destroy_buffer()
screen_fill()
screen_flush_blits()
screen_get_buffer_property_iv()
screen_get_buffer_property_llv()
screen_get_buffer_property_pv()
screen_set_buffer_property_iv()
screen_set_buffer_property_llv()
screen_set_buffer_property_pv()
Окна
Типы данных и константы
screen_window_type_t
screen_window_t
Функции
screen_create_window()
screen_create_window_buffers()
screen_create_window_type()
screen_destroy_window()
screen_destroy_window_buffers()
screen_get_window_property_cv()
screen_get_window_property_iv()
screen_get_window_property_pv()
screen_get_windows_list()
screen_invalidate_window()
screen_post_window()
screen_set_window_property_cv()
screen_set_window_property_iv()
screen_set_window_property_pv()
Pixmap
Типы данных и константы
screen_pixmap_t
Функции
screen_create_pixmap()
screen_create_pixmap_buffer()
screen_destroy_pixmap()
screen_destroy_pixmap_buffer()
screen_get_pixmap_property_iv()
screen_get_pixmap_property_pv()
screen_set_pixmap_property_iv()
screen_set_pixmap_property_pv()
Группы
Типы данных и константы
screen_group_t
Функции
screen_create_group()
screen_create_window_group()
screen_destroy_group()
screen_join_window_group()
События
Типы данных и константы
screen_event_type_t
screen_event_t
Функции
screen_create_event()
screen_destroy_event()
screen_get_event()
screen_get_event_property_iv()
screen_get_event_property_pv()
screen_send_event()
screen_set_event_property_iv()
screen_set_event_property_pv()
Дисплеи
Типы данных и константы
screen_display_t
Функции
screen_get_display_property_cv()
screen_get_display_property_iv()
screen_get_display_property_pv()
screen_read_display()
screen_set_display_property_iv()
screen_set_display_property_pv()
Разработка OpenGL приложений
Проект Mesa — стек 3D технологий
Особенности реализации
Настройка и зависимости
Поддержка драйверов
Переменные окружения (общие переменные Mesa)
Переменные окружения (интерфейс GF3D)
Переменные окружения (EGL)
Переменные окружения (общие опции драйверов Gallium)
Переменные окружения (опции драйвера llvmpipe)
Переменные окружения (опции драйвера softpipe)
Дополнительные материалы
Библиотека GF3D
GF3D API
gf3d_bind_tex_image()
gf3d_choose_config()
gf3d_create_context()
gf3d_create_gf_drawable()
gf3d_destroy_context()
gf3d_destroy_drawable()
gf3d_get_config_attrib()
gf3d_get_configs()
gf3d_get_current_context()
gf3d_get_current_target()
gf3d_get_proc_address()
gf3d_make_current()
gf3d_query_drawable()
gf3d_query_renderer_integer()
gf3d_query_renderer_string()
gf3d_release_tex_image()
gf3d_swap_buffers()
FreeGLUT — OpenGL Utility Toolkit
Особенности реализации
Настройка и зависимости
Переменные окружения
Дополнительные материалы
GLVND — универсальный OpenGL загрузчик
Архитектура библиотеки
Условия работоспособности библиотеки
Дополнителные переменные окружения
Библиотека Graphics Framework
Введение
Обзор
Компоненты
Основы рисования
Настройка GF
Присоединение к графическому устройству и дисплею
Присоединение аппаратных слоев дисплея
Создание поверхности и назначение ее слою
Создание контекста рисования (рендеринга)
Система координат Graphics Framework
Рисование прямоугольников
Рисование линий и полигонов
Битовые карты
Блиттинг
Многопоточные приложения
Отладка
Слои, поверхности и контексты
Слои
Видимость
Яркость, контраст, насыщенность и оттенок
Окна обзора
Альфа- и хрома- смешивание
Поверхности
Контексты
Альфа-смешивание
Хрома ключ
Цвета рисования и фона
Атрибуты линий
Обрезка изображения
Растровые операции (ROP)
Сглаживание
Матрицы трансформации и смещение
GF API
Инициализация
gf_dev_attach()
gf_dev_attach_ex()
gf_dev_detach()
gf_dev_get_driver_name()
gf_dev_get_error()
gf_dev_get_meminfo()
gf_dev_register_thread()
Контексты
gf_context_create()
gf_context_disable_alpha()
gf_context_disable_antialias()
gf_context_disable_chroma()
gf_context_disable_clipping()
gf_context_disable_linedash()
gf_context_disable_pattern()
gf_context_disable_planemask()
gf_context_disable_transform()
gf_context_disable_translation()
gf_context_free()
gf_context_init()
gf_context_set_alpha()
gf_context_set_antialias()
gf_context_set_bgcolor()
gf_context_set_bgcolor_native()
gf_context_set_capstyle()
gf_context_set_chroma()
gf_context_set_clipping()
gf_context_set_fgcolor()
gf_context_set_fgcolor_native()
gf_context_set_filter()
gf_context_set_hw_polygon()
gf_context_set_linedash()
gf_context_set_linejoin()
gf_context_set_pattern()
gf_context_set_penwidth()
gf_context_set_planemask()
gf_context_set_polyfill()
gf_context_set_rop()
gf_context_set_transform()
gf_context_set_translation()
Поверхности (работа с памятью)
gf_context_get_surface()
gf_context_set_surface()
gf_context_unset_surface()
gf_layer_set_surfaces()
gf_surface_attach()
gf_surface_attach_by_sid()
gf_surface_create()
gf_surface_create_layer()
gf_surface_free()
gf_surface_get_dev()
gf_surface_get_info()
gf_surface_get_source()
gf_surface_get_source_size()
gf_surface_reattach()
gf_surface_sidlist()
Дисплеи
gf_display_attach()
gf_display_detach()
gf_display_query()
gf_display_query_mode()
gf_display_set_dpms()
gf_display_set_external_chroma()
gf_display_set_layer_order()
gf_display_set_mode()
gf_display_snapshot()
gf_display_wait_vsync()
Слои
gf_layer_attach()
gf_layer_choose_format()
gf_layer_detach()
gf_layer_disable()
gf_layer_enable()
gf_layer_query()
gf_layer_query_state()
gf_layer_set_blending()
gf_layer_set_brightness()
gf_layer_set_chroma()
gf_layer_set_contrast()
gf_layer_set_dst_viewport()
gf_layer_set_edge()
gf_layer_set_filter()
gf_layer_set_hue()
gf_layer_set_outputs()
gf_layer_set_saturation()
gf_layer_set_src_viewport()
gf_layer_update()
gf_layer_update_multi()
2D рендеринг
gf_draw_begin()
gf_draw_bitmap()
gf_draw_blit1()
gf_draw_blit2()
gf_draw_blitscaled()
gf_draw_cubic_bezier()
gf_draw_end()
gf_draw_finish()
gf_draw_flush()
gf_draw_image()
gf_draw_poly_fill()
gf_draw_polyline()
gf_draw_rect()
gf_draw_span()
gf_draw_spanlist()
gf_draw_wu_line()
gf_quad_to_cubic()
Курсоры
gf_cursor_disable()
gf_cursor_enable()
gf_cursor_set()
gf_cursor_set_pos()
I2C (считается устаревшим)
gf_i2c_read()
gf_i2c_write()
gf_i2c_writeread()
Структуры и типы
gf_alpha_t
gf_chroma_t
gf_color_t
gf_cursor_t
gf_dev_info_t
gf_display_info_t
gf_fixed_t
gf_format_t
gf_layer_info_t
gf_layer_state_t
gf_mem_info_t
gf_modeinfo_t
gf_palette_t
gf_point_t
gf_sidlist_t
gf_surface_info_t
Библиотека Image
Общие сведения
Подключение библиотеки
Загрузка изображения
Связывание изображения с GF
Вывод изображения в поверхность
Освобождение ресурсов
Image API
Функции
img_cfg_read()
img_codec_get_criteria()
img_codec_list()
img_codec_list_byext()
img_codec_list_bymime()
img_convert_data()
img_convert_getfunc()
img_copy_getfunc()
img_crop()
img_decode_begin()
img_decode_finish()
img_decode_frame()
img_decode_validate()
img_dtransform()
img_dtransform_apply()
img_dtransform_create()
img_dtransform_free()
img_encode_begin()
img_encode_finish()
img_encode_frame()
img_expand_getfunc()
IMG_FMT_BPL()
IMG_FMT_BPP()
img_lib_attach()
img_lib_detach()
img_load()
img_load_file()
img_load_resize_file()
img_resize_fs()
img_rotate_ortho()
img_write()
img_write_file()
io_close()
io_open()
Структуры и типы
img_decode_callouts_t
img_decode_choose_format_f *choose_format_f
img_decode_setup_f *setup_f
img_decode_abort_f *abort_f
img_decode_scanline_f *scanline_f
img_decode_set_palette_f *set_palette_f
img_decode_set_transparency_f *set_transparency_f
img_decode_frame_f *frame_f
img_decode_set_value_f *set_value_f
data
img_encode_callouts_t
img_encode_choose_format_f *choose_format_f
img_encode_setup_f *setup_f
img_encode_abort_f *abort_f
img_encode_scanline_f* scanline_f
img_encode_set_palette_f *get_palette_f
img_encode_set_transparency_f *get_transparency_f
img_encode_frame_f *frame_f
data
img_format_t
img_t
Разработка графических драйверов и драйверные библиотеки
Драйверные библиотеки
Библиотека disputil
API библиотеки disputil
Общие типы данных
struct disp_vm_pool, pool_handle_t
Виртуальный менеджмент памяти (VMM)
disp_vm_alloc_surface()
disp_vm_attach_surface()
disp_vm_create_pool()
disp_vm_destroy_pool()
disp_vm_free_surface()
disp_vm_mem_avail()
Операции с физической памятью
disp_getmem()
Остальные интерфейсы
disp_devctl_external()
Описание компонентов подсистемы
Справочник по утилитам
Информационные утилиты
Утилиты, использующие стандартные интерфейсы
clinfo
display-screenshot
gf3d-info
Утилиты, использующие API окружения Screen
screen-egl-configs
Сервисные утилиты
Общие системные утилиты
ddc
dispconf
display-info
gf-calib
gfvncserver
modeline-converter
screen-config
show_vesa
surface-info
surface-screenshot
umc
GPU-специфичные утилиты
intel_bios_dumper
intel_detect_config
intel_gtt
intel_vbt_decode
vivante_profile_parser
Тестовые утилиты
Утилиты, использующие стандартные интерфейсы
gf-animation
gf-bench-blit
gf-dev-test
gf-layer-test
gf-pal-test
gf-scale
gf-vsync
Утилиты, использующие API окружения Screen
screen-blank
screen-gl1-gears
screen-gles2-gears
screen-gles2-glmark2
sdl-gl2-glmark2
Модули графической подсистемы
Модули
devg-screen.so
io-display
screen-winmgr
Конфигурационные файлы
cursors.conf
display.conf
graphics.conf
screen.conf
Модульные драйвера графической подсистемы
Контроллер дисплея
devg-dc35.so
devg-imx6x.so
devg-mga2.so
2D акселерация
screen-mga2.so
screen-vivante.so
3D акселерация
Screen/vivante
Модули подсистемы LXDev
LXDev модули графических контроллеров
devl-mali-mcom02.so
devl-mali-sun8iw7.so
LXDev модули управления тактовыми генераторами
devl-mcom02-gpuclk.so
Конфигурационные файлы драйверов
dc35.conf
imx6x.conf
mga2.conf
Классические драйвера
Графические драйверы
devg-chips.so
devg-flat.so
devg-glfb.so
devg-haswell.so
devg-i830-multidisplay.so
devg-i830.so
devg-intelhd.so
devg-lx800.so
devg-matroxg.so
devg-mgam83.so
devg-omapl1xx.so
devg-p1022.so
devg-radeonhd.so
devg-radeon.so
devg-ruby.so
devg-skylake.so
devg-sm750.so
devg-smi7xx.so
devg-stats.so
devg-sunxi.so
devg-svga.so
devg-valleyview.so
devg-vesabios.so
devg-vmware.so
devg-vpoutfb.so
devg-zynqmp.so
Конфигурационные файлы
broxton.conf
cherryview.conf
chips.conf
flat.conf
geode.conf
haswell.conf
i830.conf
intelhd.conf
mgam83.conf
omapl1xx.conf
p1022.conf
radeon.conf
radeonhd.conf
skylake.conf
sm750.conf
smi7xx.conf
sunxi.conf
valleyview.conf
vpoutfb.conf
zynqmp-dp.conf
Загрузчики драйверов
Загрузчик GLVND
Загрузчик OCL ICD
Конфигурационные файлы
/etc/OpenCL/vendors/mesa.icd
/etc/OpenCL/vendors/viv.icd
Внешний вид графического интерфейса
Плагины стилей Photon
wframe_dyn.so
wframe_frameless.so
wframe_updated2.so
wframe_updated.so
Файлы стилей
/usr/share/styles/*.wstyle
Конфигурационные файлы
photon.toml
screen.toml
Мультимедийный стек ЗОСРВ «Нейтрино»
Мультимедийные библиотеки
Прикладные библиотеки
Библиотека libasound
Статьи и обзоры
Обзор библиотеки libasound
Архитектура аудио стека
Аритектура аудио стека (SA, Sound Architecture)
Аудио устройства
Контролирующее устройство
Микшер
PCM-устройство (Pulse Code Modulation)
Форматы данных PCM
Машина состояний PCM
Программное микширование PCM-данных
Плагины конвертирования данных
Архитектура микшера
Открытие устройства микшера
Контроль групп микшера
Наилучшая группа микшера, относительно субканала PCM
Поиск групп микшера
Уведомления о событиях микшера
Закрытие устройства микшера
Воспроизведение и захват аудио данных
Обслуживание PCM устройств
Открытие устройства
Конфигурирование устройства
Контроль конвертирования голосов в потоке
Подготовка субканалов
Закрытие субканалов
Воспроизведение аудио данных
Состояния воспроизведения
Отправка данных в субканал
Действия при остановке воспроизведения в субканале
Остановка воспроизведения
Синхронизация с субканалом
Захват аудио данных
Выбор источника данных для захвата
Состояния захвата
Получение данных из субканала
Действия при остановке захвата в субканале
Остановка захвата
Синхронизация с субканалом
Словарь терминов (libasound API)
Пример: воспроизведение (wave.c)
Пример: звукозапись (waverec.c)
Пример: работа с микшером (mixer_ctl.c)
API
snd_card_get_longname()
snd_card_get_name()
snd_card_name()
snd_cards()
snd_cards_list()
snd_ctl_callbacks_t
snd_ctl_close()
snd_ctl_file_descriptor()
snd_ctl_hw_info()
snd_ctl_hw_info_t
snd_ctl_mixer_switch_list()
snd_ctl_mixer_switch_read()
snd_ctl_mixer_switch_write()
snd_ctl_open()
snd_ctl_pcm_channel_info()
snd_ctl_pcm_info()
snd_ctl_read()
snd_mixer_callbacks_t
snd_mixer_close()
snd_mixer_eid_t
snd_mixer_element_read()
snd_mixer_elements()
snd_mixer_elements_t
snd_mixer_element_t
snd_mixer_element_write()
snd_mixer_file_descriptor()
snd_mixer_filter_t
snd_mixer_get_bit()
snd_mixer_get_filter()
snd_mixer_gid_t
snd_mixer_group_read()
snd_mixer_groups()
snd_mixer_groups_t
snd_mixer_group_t
snd_mixer_group_write()
snd_mixer_info()
snd_mixer_info_t
snd_mixer_open()
snd_mixer_open_name()
snd_mixer_read()
snd_mixer_routes()
snd_mixer_routes_t
snd_mixer_set_bit()
snd_mixer_set_filter()
snd_mixer_sort_eid_table()
snd_mixer_sort_gid_table()
snd_mixer_weight_entry_t
snd_pcm_build_linear_format()
snd_pcm_capture_flush()
snd_pcm_capture_prepare()
snd_pcm_channel_flush()
snd_pcm_channel_info()
snd_pcm_channel_info_t
snd_pcm_channel_params()
snd_pcm_channel_params_t
snd_pcm_channel_prepare()
snd_pcm_channel_setup()
snd_pcm_channel_setup_t
snd_pcm_channel_status()
snd_pcm_channel_status_t
snd_pcm_close()
snd_pcm_file_descriptor()
snd_pcm_find()
snd_pcm_format_big_endian()
snd_pcm_format_linear()
snd_pcm_format_little_endian()
snd_pcm_format_signed()
snd_pcm_format_size()
snd_pcm_format_t
snd_pcm_format_unsigned()
snd_pcm_format_width()
snd_pcm_get_format_name()
snd_pcm_info()
snd_pcm_info_t
snd_pcm_nonblock_mode()
snd_pcm_open()
snd_pcm_open_name()
snd_pcm_open_preferred()
snd_pcm_playback_drain()
snd_pcm_playback_flush()
snd_pcm_playback_prepare()
snd_pcm_plugin_flush()
snd_pcm_plugin_get_voice_conversion()
snd_pcm_plugin_info()
snd_pcm_plugin_params()
snd_pcm_plugin_playback_drain()
snd_pcm_plugin_prepare()
snd_pcm_plugin_read()
snd_pcm_plugin_set_disable()
snd_pcm_plugin_set_src_mode()
snd_pcm_plugin_setup()
snd_pcm_plugin_set_voice_conversion()
snd_pcm_plugin_src_max_frag()
snd_pcm_plugin_status()
snd_pcm_plugin_update_src()
snd_pcm_plugin_write()
snd_pcm_read()
snd_pcm_voice_conversion_t
snd_pcm_write()
snd_strerror()
snd_switch_t
Драйверные библиотеки
Библиотека libado
Статьи и обзоры
Обзор библиотеки libado
Поддерживаемые функции
Допущения
Обработка аудио данных в формате PCM
Что такое устройство PCM?
Создание PCM устройства
Функция ado_pcm_create()
Как работает поток PCM?
Обработка аналоговых данных
Разработка аналогового микшера
Элементы и маршруты
Группы
Разработка кода микшера
Использование стандартной библиотеки микшера
Инициализация
Тестирование
Основные виды кодеков
Audio Codec 97 (AC97)
AK4531
Оценка сложности разработки драйвера
Разработка драйвера
Обзор аудио стека
Разработка драйвера
Внутренние (private) типы данных
Пользовательские типы данных
ctrl_init()
ctrl_destroy()
Отладка драйвера
Словарь терминов (libado API)
Пример: микшер
API
ado_attach_interrupt()
ado_calloc()
ado_card_set_longname()
ado_card_set_shortname()
ado_debug()
ado_device_mmap()
ado_device_munmap()
ado_error()
ado_free()
ado_malloc()
ado_memory_dump()
ado_mixer_capture_group_create()
ado_mixer_create()
ado_mixer_dll()
ado_mixer_element_accu1()
ado_mixer_element_accu2()
ado_mixer_element_accu3()
ado_mixer_element_io()
ado_mixer_element_mux1()
ado_mixer_element_mux2()
ado_mixer_element_notify()
ado_mixer_element_pcm1()
ado_mixer_element_pcm2()
ado_mixer_element_route_add()
ado_mixer_element_sw1()
ado_mixer_element_sw2()
ado_mixer_element_sw3()
ado_mixer_element_vol_range_max()
ado_mixer_element_vol_range_min()
ado_mixer_element_volume1()
ado_mixer_find_element()
ado_mixer_find_group()
ado_mixer_get_context()
ado_mixer_get_element_instance_data()
ado_mixer_lock()
ado_mixer_playback_group_create()
ado_mixer_set_destroy_func()
ado_mixer_set_name()
ado_mixer_set_reset_func()
ado_mixer_switch_new()
ado_mixer_unlock()
ado_mutex_destroy()
ado_mutex_init()
ado_mutex_lock()
ado_mutex_unlock()
ado_pci_device()
ado_pci_release()
ado_pcm_cap_t
ado_pcm_chn_mixer()
ado_pcm_config_t
ado_pcm_create()
ado_pcm_dma_int_size()
ado_pcm_format_bit_width()
ado_pcm_hw_t
AcquireCallback
ReleaseCallback
PrepareCallback
TriggerCallback
PositionCallback
ReconstituteCallback
CapabilitiesCallback
ado_pcm_subchn_caps()
ado_pcm_subchn_is_channel()
ado_pcm_subchn_mixer()
ado_pcm_subchn_mixer_config_t
ado_pcm_subchn_mixer_create()
ado_pcm_subchn_mixer_destroy()
ado_pcm_sw_mix()
ado_realloc()
ado_rwlock_destroy()
ado_rwlock_init()
ado_rwlock_rdlock()
ado_rwlock_unlock()
ado_rwlock_wrlock()
ado_shm_alloc()
ado_shm_free()
ado_shm_mmap()
ado_strdup()
dma_interrupt()
snd_mixer_voice_t
struct ado_pci
Мультимедийные утилиты и приложения
gst-screencast
gst-screencast-client
player
Фреймворк Qt для ЗОСРВ «Нейтрино»
Руководство разработчика
Плагин интеграции платформы Photon
Инструментальные средства ЗОСРВ «Нейтрино»
Комплект разработчика для ЗОСРВ «Нейтрино»
О Комплекте разработчика
Общие сведения
Правила использования
Дополнительная информация
Новые функции и возможности КР редакции 2024
Известные особенности
Использование нескольких версий КР на инструментальной системе
Список терминов
Интегрированная среда разработки Qt Creator (редакция КПДА)
О Среде разработки
Основные возможности
Отличия редакции КПДА
Начало работы
Введение
Запуск среды разработки
Общая информация
Создание нового проекта
Редактирование исходного кода
Сборка (компиляция) проекта
Настройка конфигурации целевой системы
Требования к целевой системе
Создание нового профиля конфигурации
Добавление профиля в конфигурацию Комплекта
Запуск проекта
Отладка проекта
Изменение параметров сборки проекта
Вопросы
Импорт существующих проектов
Введение
Подготовка проекта
Сборка проекта
Отладка проекта
Дополнительная настройка
Вопросы и ответы
Известные особенности
Инструмент передачи файлов
Об Инструменте передачи файлов
Введение
Основные возможности
Запуск
Начало работы
Основной экран
Типовые операции
Экран выбора каталога
Экран Внимание
Сообщения об ошибках
Экран настройки
Словарь терминов
Техническая поддержка
TraceKev - инструмент просмотра и анализа системных событий
Руководство пользователя
О TraceKev
Основные возможности
Перспективы развития
Начало работы
Введение
Запуск инструмента
Общая информация
Краткое руководство пользователя
Прежде чем начать
Открытие / создание проекта
Изучение инструментов
Как использовать инструменты?
Пользовательский интерфейс
Экран приветствия
Основной экран
Формат отображения времени
Создание нового проекта
Создание нового проекта в приветственном окне
Создание нового проекта в уже открытом проекте
Расположение проекта
Импортирование настроек
Открытие, переоткрытие и закрытие проектов
Открытие проектов в приветственном окне
Открытие проектов в основном экране
Закрытие проектов
Открытие больших файлов
Работа с проектом
Заголовок файла трассы
Таймлайн
Таблица событий
Синтаксис выражений
Поиск
Фильтры
Фильтр событий
Фильтр источников
Горячие клавиши
Настройка программы
Переход в настройки в приветственном окне
Переход в настройки в основном экране приложения
Окно настроек
Опции при запуске
Техническая поддержка
Инструменты отладки
Библиотека отладки операций выделения динамической памяти Debug Malloc Library
Cтатьи и обзоры
Введение
Основные шаги для использования библиотеки
Создание псевдонима.
Проверка корректности псевдонима.
Включение заголовочного файла.
Активация отладочных функций.
Запуск программы.
Анализ результатов.
Основные принципы работы библиотеки
Принцип работы библиотеки dmalloc.
Выполнение проверок при выделении памяти и их настройка.
Настройка проверки кучи.
Настройка проверки с конкретного места в программе.
Дополнительная информация.
Описание внутренних кодов ошибок
Получение описания кода ошибки с помощью утилиты dmalloc
Описание внутренних кодов ошибок
Применение GDB
Специфичные для Нейтрино расширения
Краткая инструкция по запуску отладчика
Команды GDB
Синтаксис команд
Подсказки для команд
Получение справки
Запуск программ под управлением отладчика
Компиляция для отладки
Задание целевой платформы
Запуск вашей программы
Аргументы вашей программы
Среда окружения вашей программы
Ввод и вывод вашей программы
Отладка уже запущенного процесса
Уничтожение отлаживаемого процесса
Отладка программ с несколькими потоками
Отладка программ с дочерними процессами
Остановка и продолжение исполнения
Точки останова, точки наблюдения и исключения
Установка точек останова
Установка точек наблюдения
Точки останова и исключения
Удаление точек останова
Отключение точек останова
Условия останова
Список команд точки останова
Меню точки останова
Продолжение и выполнение по шагам
Сигналы
Остановка и запуск многопоточных программ
Проверка стека
Кадры стека
Цепочки вызовов
Выбор кадра
Информация о кадре
MIPS-машины и стек функции
Проверка файлов с исходными текстами
Вывод строк исходного текста
Поиск в исходных файлах
Определение каталогов с исходными файлами
Исходный текст и машинный код
Разделяемые библиотеки
Проверка данных
Выражения
Переменные программы
Искусственные массивы
Форматы вывода
Проверка памяти
Автоматическое отображение
Параметры вывода
История значений
Вспомогательные переменные
Регистры
Аппаратные средства поддержки вычислений с плавающей точкой
Проверка символьной таблицы
Изменение исполнения
Присваивание значений пеpеменным
Продолжение исполнения с другого адреса
Подача сигнала вашей программе
Возврат из функции
Вызов функций программы
Внесение изменений в программу
Статический анализ
Использование статического анализатора cppcheck
Основные отличия от стандартной версии cppcheck
Использование рекурсивной сборочной подсистемы
Приоритет конфигурационных файлов
Создание пользовательских правил
Сборочное окружение
Приоритет переменных окружения
Прочие переменные окружения
Рекурсивная сборочная подсистема ЗОСРВ ''Нейтрино''
Общее описание
Структура и основные компоненты
Описание переменных
Поддержка внешних сборочных систем
Поддержка сборочной системы GNU Autotools
Поддержка сборочной системы CMake
Поддержка сборочной системы Meson
Поддержка сборочной системы qmake
Общие переменные и функции
Подключаемые модули
Подключаемые модули qtargets.mk
cppcheck.mk - статический анализ исходного кода
postinstall.mk - отложенная пост-обработка проектов
Подключаемые модули qconfig.mk
bsp_buildtargets.mk - поддержка Make Targets в QNX Momentics IDE 7.0
Выбор драйвера компиляции
Другие возможности
Поддержка варианта сборки проектов с покрытием кода
Параллельная сборка
Механизм OVERRIDE
Прочие замечания и рекомендации
Примеры использования
Версионирование
Системные макроопределения
Перечень основных системных макроопределений
Значения макроопределений _KPDA_VERSION и _KPDA_VERSION_STRING для различных редакций ЗОСРВ ''Нейтрино''
Справочник по утилитам
A
addr2line
addvariant
ar
as
B
bindres
bison
C
c++filt
cpp
cppcheck
D
deflate
delvariant
dinit
dmalloc
dumpefs
dumpifs
E
elfedit
F
flex
G
g++
gcc
gcov
gcov-dump
gcov-tool
gdb
gprof
K
kcc
ksh (инструментальная версия)
L
lcc
ld
ldrel
libtool
libtoolize
M
m4
make
mkasmoff
mkefs
mketfs
mkifs
mkimage
mkinstallcd.sh
mkkbd
mkqnx6fsimg2
mkrec
mkxfs
N
nm
O
objcopy
objdump
Q
qcc
R
ranlib
readelf
run_qtcreator.sh
S
sendnto
size
strings
strip
switch_devtools
T
traceprinter
U
usemsg
use (инструментальная версия)
Справочник по утилитам Python
0
2to3
E
easy_install-3.9
P
pydoc3
python-setup-crossenv.sh
Тематические статьи
Кросс-компиляция расширений Python
Описание технологии
Требования и ограничения
Порядок действий (автоматизированный режим
Дополнительная информация
Пакетный менеджер Комплекта разработчика
Общая информация
Интерфейс
Утилиты
Основные команды
Примеры вызова команд
Опрос конфигурации менеджера пакетов
Вывод списка установленных пакетов
Вывод списка файлов пакета
Вывод дополнительой информации о пакете
Проверка принадлежности файла
Проверка целостности пакета
Поиск по содержимому пакетов
Сценарии использования
Построение образа виртуальной машины
Подготовка корневого каталога
Создание образа диска
Создание загрузочного образа
Создание раздела диска
Запись образа на диск
Создание виртуальных машин
Создание образа диска QEMU (qcow2)
Создание виртуального жесткого диска VMware (VMDK)
Создание файла конфигурации VMware (VMX)
Удаление артефактов сборки
Способы переключения между версиями компиляторa
Выбор локальной версии компилятора (per-project)
Через переменную GCC_VERSION
Через переменные CC и CXX
Выбор глобальной версии компилятора
Хронология изменений ЗОСРВ «Нейтрино»
Общие сведения
Основные нововведения актуальной версии
Известные особенности, требующие внимания
Известные особенности релиза
Журнал изменений
ЗОСРВ «Нейтрино» редакции 2024
GF
Добавлено
ipl-uefi
Общие изменения
libc
Добавлено
Устарели
mktemp(), mkdtemp(), mkstemp()
mmap(), mmap64()
shm_ctl()
struct inheritance
struct pci_dev_info
ThreadCtl(), ThreadCtl_r()
libdisputil
Добавлено
disp_getmem()
Общие изменения
libstartup
Добавлено
Mesa (Стек 3D технологий)
Общие изменения
Photon
Добавлено
phfont
Photon
ptermcs
pwm
procnto
procnto, procnto-*
Общие изменения
Перечень поддерживаемых событий системной трассы
Qt4
Общие изменения
Qt5
Общие изменения
Плагин интеграции платформы Photon
Screen (API оконной библиотеки)
Добавлено
screen_blit_t
screen_get_display_property_iv()
screen_get_window_property_cv()
screen_get_window_property_iv()
screen_get_window_property_pv()
screen_get_windows_list()
screen_property_t
screen_set_window_property_cv()
screen_set_window_property_iv()
screen_set_window_property_pv()
Общие изменения
startup-*
startup-*
Вспомогательные графические библиотеки
SDL
Драйверы устройств
Добавлено
broxton.conf
deva-ctrl-intel_hda.so
deva-ctrl-usb.so
deva-mixer-ac97.so
deva-mixer-ak4531.so
deva-mixer-hda.so
devb-adpu320
devb-aha8
devb-ahci
devb-btmm
devb-eide-vm8
devb-loopback
devb-mmcsd
devb-mvSata
devb-ncr8
devb-nvme
devb-sdmmc
devc-ser8250-dw
devc-ser8250
devc-serexar
devc-serpci
devc-serusb
devc-serzilog
devc-serzscc
devg-glfb.so
devg-haswell.so
devg-i830.so
devg-intelhd.so
devg-mga2.so
devg-skylake.so
devg-sm750.so
devg-valleyview.so
devg-vpoutfb.so
devh-egalax.so
devi-screen
devnp-e1000.so
devnp-mx6x.so
devnp-rtl8169.so
devu-xhci.so
i2c-kpi
intelhd.conf
io-blk.so
skylake.conf
spi-kpi
Инструментальные средства
Добавлено
Прикладные библиотеки
json-c
jsoncpp
Общие изменения
Приложения
Добавлено
Сервисы и менеджеры
Добавлено
BIND9
gns
io-graphics
io-pkt-*
io-usb
ipsec-tools
lsm-qnet*
openssh
pci-lioh
phvncviewer
screen.conf
slogger
СЗИ
Добавлено
libcrypt
liblogin
login-ksz
login
phksz
Системные библиотеки
Добавлено
libcurl
libetfs
libmalloc
libsqlite3
libterminal
mallopt()
Утилиты
Добавлено
chkqnx6fs
curl
diskboot
fmt
gdisk
gf-layer-test
head
ifconfig
mcd
mount
on
openssl
passwd, passwd-ksz, passwd-std
player
rtc
screen-config
telnet
ЗОСРВ «Нейтрино» редакции 2021
FFB (Программный 2D рендеринг)
Общие изменения
GF (Graphics Framework)
Исключены
Общие изменения
libc
Добавлено
Устарели
hcreate*(), hdestroy*(), hsearch*()
ThreadCtl(), ThreadCtl_r()
Общие изменения
Photon
Устарели
io-graphics
Photon
procnto
procnto, procnto-*
Qt4
Общие изменения
Плагин интеграции платформы Photon
Qt5
qt-gstreamer
QtCore
QtMultimedia
QtWebKit
Плагин интеграции платформы Photon
Screen (API оконной библиотеки)
Добавлено
screen_post_window()
Общие изменения
startup-*
startup-*
Вспомогательные графические библиотеки
SDL
Драйверы устройств
Устарели
deva-ctrl-intel_hda.so
deva-mixer-hda.so
devb-ahci
devc-con-hid
devg-dc35.so
devg-haswell.so
devg-imx6x.so
devg-intelhd.so
devg-radeon.so
devg-skylake.so
devg-svga.so
devg-valleyview.so
devg-vpoutfb.so
devh-ps2ser.so
devi-hid
devnp-e1000.so
devu-xhci.so
Screen/vivante
Мультимедиа
gstreamer
Прикладные библиотеки
json-c
jsoncpp
Приложения
Браузер QupZilla
Сервисы и менеджеры
devg-screen.so
io-display
ocl-icd
screen.conf
startup-*
СЗИ
Добавлено
Системные библиотеки
boost
fontconfig
mallopt()
poppler
Утилиты
Добавлено
Устарели
checkksz, check_ksz, cksum_ksz
fdisk
phin
screen-blank
ЗОСРВ «Нейтрино» редакции 2020
FFB (Программный 2D рендеринг)
Общие изменения
GF (Graphics Framework)
Добавлено
Устарели
Общие изменения
GLVND (универсальный OpenGL загрузчик)
Общие изменения
libc
Добавлено
aio_cancel()
clock_getres()
fork()
regcomp()
regerror()
regexec()
regfree()
wcstol(), wcstoll()
Общие изменения
Mesa (Стек 3D технологий)
Общие изменения
Photon
ped
Photon
phvkbd
pterm
shelfnotifyer.so
procnto
Общие изменения
Qt4
QtGui
SDP
Общие изменения
Плагин интеграции платформы Photon
Qt5
QtCore
QtGui
QtSerialPort
QtWebKit
SDP
Демонстрационные приложения
Общие изменения
Плагин интеграции платформы Photon
Screen (API оконной библиотеки)
Добавлено
screen_flush_blits()
screen_get_buffer_property_iv()
screen_get_buffer_property_llv()
screen_get_buffer_property_pv()
screen_get_display_property_pv()
screen_get_window_property_cv()
screen_get_window_property_iv()
screen_post_window()
screen_set_display_property_iv()
screen_set_display_property_pv()
screen_set_window_property_cv()
screen_set_window_property_iv()
Драйверы устройств
Добавлено
deva-ctrl-intel_hda.so
deva-mixer-hda.so
devc-ser8250-1612
devc-ser8250
devc-serusb
devg-dc35.so
devg-flat.so
devg-haswell.so
devg-intelhd.so
devg-radeonhd.so
devg-skylake.so
devg-valleyview.so
devg-vpoutfb.so
devn-rtl.so
devn-tigon3.so
devn-tulip.so
devnp-e100.so
devnp-e1000.so
devnp-rtl8169.so
devnp-shim.so
io-blk.so
lsm-nraw
Screen/vivante
Исключены
Сервисы и менеджеры
devg-screen.so
dhcpd
ftpd
io-display
io-pkt-*
pci-bios-v2
pipe
random
screen-winmgr
startup-*
telnetd
СЗИ
auditlogger2-ksz
auditnotifier-ksz
audittool-ksz
libksz
liblogin
lpd
phksz
phlogin2
phshutdown-ksz
printmark-ksz
shutdown
Системные библиотеки
libiconv
libpcap
Утилиты
Добавлено
bunzip2
bzip2
chat
cmp
csplit
cut
dd
deflate
devb-ahci
dhcprelay
diff3
diff
diskboot
dispconf
du
elvis
file
fs-qnx6.so
ftp
gawk
getty
gf-vsync
grep
gunzip
gzip
inflator
inputtrap
io-blk.so
ipl-diskpc2-flop-noaltboot
ipl-diskpc2-noaltboot
ipsec-tools
ldd
less
ls
mkqnx6fs
mksh
mount
mv
net-snmp
nohup
openssl
patch
pax
pci
pidin
pr
pwgen
qdb
script
sed
tail
tar
tcpdump
telnet
tsort
xz
zstd
Исключены
ЗОСРВ «Нейтрино» редакции 2018
libc
Добавлено
mmap(), mmap64()
Qt5
Общие изменения
Плагин интеграции платформы Photon
СЗИ
login-ksz
login
Утилиты
Добавлено