- •Введение
- •Что такое файл?
- •Метки даты и времени
- •Доступ к файлам
- •Регулярные файлы и каталоги Регулярные файлы
- •Каталоги
- •Операции с каталогами
- •Чтение элементов каталога
- •Экстенты
- •Где хранятся экстенты
- •Увеличение файлов
- •Связи и индексные дескрипторы (inodes)
- •Удаление связей
- •Связи каталога
- •Символические связи
- •Программные каналы (pipes) и fifo Программные каналы (pipes)
- •Производительность Менеджера файловой системы
- •Лифтовый поиск
- •Многопотоковая обработка
- •Клиент-управляемый приоритет
- •Временные файлы
- •Псевдодиски
- •Надежность файловой системы
- •Восстановление файловой системы
- •Работа с дисками
- •Диски и дисковые подсистемы
- •Разделы ос
- •Определение блок-ориентированный файлов
- •Монтирование файловой системы
- •Битовая карта
- •Корневой каталог
- •Менеджер файловой системы dos
- •Файловая система cd-rom
- •Файловая система флэш
- •Ограничения
- •Восстановление свободного пространства
- •Сжатие и распаковка
- •Доступ к файлам
- •Монтирование
- •Доступ на низком уровне
- •Файловая система nfs
- •Файловая система smb
- •Менеджер устройств
- •Введение
- •Обслуживание устройств
- •Режим редактируемого ввода
- •Режим необрабатываемого ввода
- •Драйверы устройств
- •Управление устройствами
- •Консоль qnx
- •Функции, специфичные для консоли
- •Последовательные устройства
- •Параллельные устройства
- •Производительность подсистемы устройств
- •Менеджер сети
- •Введение
- •Обязанности Менеджера сети
- •Независимый модуль
- •Интерфейс Микроядро/Менеджер сети
- •Посылка сообщения на удаленный узел
- •Получение сообщения с удаленного узла
- •Сетевые драйверы
- •Идентификаторы узла и сети
- •Физический id узла
- •Логический id узла
- •Логический id сети
- •Выбор сети
- •Распределение нагрузки
- •Отказоустойчивость
- •Мосты между сетями qnx
- •Сеть tcp/ip
- •Менеджер tcp/ip
- •Сокет api
- •Возможность взаимодействия сетей
- •Оконная система Photon microGui
- •Графическое микроядро
- •Пространство событий Photon
- •Регионы
- •События
- •Графические драйверы
- •Несколько графических драйверов
- •Цветовая модель
- •Масштабируемые шрифты
- •Наборы шрифтов Основной латинский набор
- •Расширенный латинский набор
- •Поддерживаемые языки
- •Дополнительные языковые пакеты
- •Многоязычная поддержка Unicode
- •Поддержка анимации
- •Поддержка печати
- •Менеджер окон Photon
- •Библиотека виджетов
- •Виджет Панель (PtPane)
- •Виджет Группа (PtGroup)
- •Виджет Область прокрутки (PtScrollArea)
- •Виджет Дерево (PtTree)
- •Виджеты Терминал (PtTty, PtTerminal)
- •Виджет Делитель (PtDivider)
Наборы шрифтов Основной латинский набор
Основной латинский (Core Latin) набор шрифтов Photon (latin1.pfr), который охватывает два набора символов стандарта Unicode, Basic Latin (U+0000 - U+007F) и Latin-1 Supplement (U+0080 - U+00FF), включает следующие масштабируемые шрифты:
Dutch;
Dutch Bold;
Dutch Italic;
Dutch Bold Italic;
Swiss;
Swiss Bold;
Swiss Italic;
Swiss Bold Italic;
Courier;
Courier Bold;
Courier Italic;
Courier Bold Italic.
Расширенный латинский набор
Расширенный латинский (Extended Latin) набор (latinx.pfr) охватывает наборы символов Unicode ''Latin Extended-A (U+0100 - U+017F) и Latin Extended-B'' (U+0180 - U+0217) и включает следующие шрифты:
Dutch;
Dutch Bold;
Dutch Italic (генерируется алгоритмически);
Dutch Bold Italic (генерируется алгоритмически);
Swiss;
Swiss Bold;
Swiss Italic (генерируется алгоритмически);
Swiss Bold Italic (генерируется алгоритмически).
Поддерживаемые языки
Имея в своем распоряжении Основной латинский набор (latin1.pfr), разработчик может поддерживать множество языков, включая:
Датский; Голландский; Английский; Финский; Фламандский; Французский; Немецкий; Гавайский; Исландский; Индонезийский; Ирландский; Итальянский; Норвежский; Португальский; Испанский; Суахили; Шведский. Расширенный набор (latinx.pfr) позволяет дополнительно поддерживать:
Африканский; Баскский; Каталонский; Хорватский; Чешский; Эсперанто; Эстонский; Гренландский; Венгерский; Латышский; Литовский; Мальтийский; Польский; Румынский; Словацкий; Турецкий; Валлийский.
Дополнительные языковые пакеты
Для Photon предлагаются несколько дополнительных пакетов для поддержки национальных языков:
Японский;
Китайский;
Корейский;
Кириллица.
Многоязычная поддержка Unicode
Photon разработан с учетом поддержки национальных символов. Следуя стандарту Unicode (ISO/IEC 10646), Photon предоставляет разработчикам возможность создавать приложения, поддерживающие основные мировые языки.
Unicode основывается на наборе символов ASCII, но использует 16-битную кодировку для полной поддержки многоязычного текста. Нет никакой необходимости прибегать к escape-последовательностям или управляющим кодам для задания любого символа любого языка. Заметьте, что кодировка Unicode обрабатывает все символы - алфавитные, идеограммы, специальные символы - абсолютно одинаковым образом.
UTF-8 кодировка
Известная раньше как UTF-2, UTF-8 (от "8-битная форма") кодировка определяет использование символов Unicode в 8-битной среде UNIX.
Вот некоторые основные характеристики UTF-8:
Unicode-символы от U+0000 до U+007E (набор ASCII) отображаются в UTF-8-байты от 00 до 7E (ASCII-значения);
ASCII-значения не встречаются иным образом в UTF-8, обеспечивая полную совместимость с файловыми системами, которые анализируют ASCII-байты;
UTF-8 упрощает преобразование в Unicode-текст и из него;
Первый байт указывает количество байт в многобайтной последовательности, обеспечивая эффективный разбор;
Можно легко найти начало символа из любого места в потоке байт, так как для этого необходимо перебрать не более четырех байт, а начальный байт легко определить. Например: isInitialByte = ((byte & 0xC0) != 0x80);
UTF-8 достаточно компактен, имея в виду количество байт, используемых для кодировки.
Системная библиотека включает ряд функций преобразования:
Функция: |
Описание: |
mblen() |
Длина многобайтной строки в символах |
mbtowc() |
Преобразовать многобайтный символ в двухбайтный символ |
mbstowcs() |
Преобразовать многобайтную строку в двухбайтную строку |
wctomb() |
Преобразовать двухбайтный символ в его многобайтное представление |
wcstombs() |
Преобразовать строку двухбайтных символов в многобайтную строку |
В дополнение к перечисленным выше функциям, разработчики могут также воспользоваться собственной библиотекой Photon, функциями PxTranslate, которые выполнят различные преобразования наборов символов в/из UTF-8.
