Операционная система ЗОСРВ «Нейтрино»
Руководство пользователя
Знакомство с ЗОСРВ «Нейтрино»
Отличия ЗОСРВ «Нейтрино» от других операционных систем
ОС 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()