Вход на хостинг
IT-новости
20.04.2016 iPhone 2017 года поместят в водонепроницаемый корпус из стекла
Линейка iPhone в новом году серьезно поменяется. В этом уверен аналитический исследователь Мин Чи Ку......
30.07.2015 Ищем уникальный контент для сайта
Ищем уникальный контент для сайта Без уникального контента Ваш сайт обречен на то, что его страницы......
Ядро QNX
Во всех ОС, которые мне встречались, ядра системы были так нагружены, что они уже сами по себе начинали смахивать на операционные системы (сколько нынче ядро пингвиненка весит?). Скажу сразу, ядро QNX весит от 8 до 32 Кб. Удивлены? Такой малый размер достигается за счет того, что, во-первых, ядро полностью написано на ассемблере, и во-вторых (самое главное), ядро QNX исполняет всего 2 задачи: передачу сообщений и планирование. Все. Причем удивительно, но факт – само ядро не планируется, а взаимодействие с ним осуществляется с помощью процессов (надо заметить, с одинаковыми правами). Часть ядра, отвечающая за планировку, «вступает в игру», после того как некий процесс меняет свое состояние в результате появления сообщения, адресованного ему, или прерывания.
В отличие от процессов само ядро никогда не планируется к выполнению. Управление передается ядру только в результате прямого вызова ядра из процесса или по аппаратному прерыванию. Что касаемо передачи сообщений – ядро QNX реализует передачу любых сообщений между абсолютно всеми процессами в системе. Сообщение представляет собой обычный пакет данных размером до 64 Kб, который передается ядром от одного процесса в другой. Ядро никогда не изменяет содержимое сообщения, оно просто передает данные из адресного пространства одного процесса в адресное пространство другого процесса и как бы замораживает процесс-«отправитель» до тех пор, пока «получатель» не ответит на посланное ему сообщение.
Схематично изобразить взаимодействие ядра с процессами можно так:
Все функции реализуются только этими системными процессами. Эти процессы ничем не отличаются от других обычных процессов, и именно это обеспечивает QNX легкую расширяемость. Процесс dev отвечает за администрирование различных устройств, proc – за администрирование процессов, fsys – администрирование файловой системы, net отвечает за сеть.
Файлы и файловая система QNX
Все данные в операционной системе хранятся в виде файлов. Ну а файлы – это в свою очередь набор байтов, имеющих общие атрибуты (имя, GID, UID, тип файла, метки времени). QNX обеспечивает поддержку следующих типов файлов: обычные файлы, каталоги, жесткие ссылки, мягкие ссылки, FIFO (именованные программные каналы), блок-ориентированные специальные файлы, байт-ориентированные специальные файлы, и именованные специальные устройства. Вкратце я расскажу о них.