Базовые знания по QNX 4.25 необходимые в работе.

Категории: 
Тэги: 

Требования перед началом прочтения:

  • Школьный курс информатики
  • Разметка жесткого диска, разделы/партиции
  • понямание основ BIOS
  • Файловая система, фалы, папки/каталоги
  • Основы TCP/IP
  • Вход в многопользовательскую ОС



Краткое содержание.

  1. Основные понятия.
  2. Основы архитектуры системы.
  3. Доступ к файловой системе. Монтирование дисков.
  4. Процесс загрузки системы.
  5. Команды файла sysinit.
  6. Пользователи и группы. Атрибуты файла. Пользователь root.
  7. Установка системы на диск.
  8. Сеть Qnet. Настройка сети Qnet.
  9. Настройка протокола TCP/IP в QNX 4.25.
  10. Лицензии в QNX 4.25.
  11. Конфигурирование, сборка и установка ядра в систему.
  12. Установка специальных загрузчиков.
  13. Настройка и запуск графической оболочки Photon microGUI.
  14. Драйвера устройств и файловых систем. Многоуровневая модель драйверов.
  15. Основы работы и программирования в командном процессоре.
  16. Ссылки на файлы (жесткие и символьные).


1.Основные понятия.

Примечание:

определения даны не с точки зрения академической точности, а с точки зрения простоты понимания и последующего использования.

Операционная система- комплекс программных средств обеспечивающих инфраструктуру для выполнения программ (приложений) пользователя.

Ядро операционной системы – программный модуль, который загружается первым, на старте операционной системы и обеспечивает загрузку и дальнейшее функционирование ОС. Ядро не выгружается из памяти пока компьютер не выключен, в отличии от загрузчика ОС.

Загрузчик операционной системы- программный модуль обеспечивающий получение управления от BIOS и загрузку ядра ОС. Обеспечение загрузки ядра- это единственная функция загрузчика.

Микроядро – программная часть ядра ОС обеспечивающая базовые функции:
- передача сообщений- микроядро обеспечивает маршрутизацию всех сообщений в системе

- диспетчеризация – распределение машинного времени между процессами в системе

Процесс- загруженный в память и выполняемый программный код.

Операционная система реального времени- ОС с нормированным временем задержки на события

Драйвер устройства- программный код обслуживающий аппаратные ресурсы компьютера. Драйвер обеспечивает взаимодействие ОС и оборудования.

Расширение системного процесса-

Узел (Node)- номер идентификатор микроядра, который микроядро само себе присваивает и сообщает при запросе другим процессам. Является идентификатором в сети QNET.

Логическая сеть- при инициализации коммуникационного оборудования данному оборудованию может быть присвоен условный ID-сети. В последующем этот ID-сети можно использовать при маршрутизации сообщений.

Сеть QNET – механизм передачи сообщений в сети машин с ОС QNX. Не различается передача сообщений в локальной системе и сети (прозрачность сети Qnet).

Оконный менеджер – программа управляющая размещением и определяющая внешний вид окон в графическом интерфейсе пользователя.

Командный процессор (оболочка операционной системы) – интерпритатор команд, обеспечивающий интерфейс взаимодействия пользователя и системы.

Консоль – интерфейс командной строки

Псевдотерминал- реализация консоли в оконном менеджере.

Скрипт- программа для командного процессора.

Файловая система- порядок определяющий способ организации, хранения и именования данных на носителях информации.

Интерпритация программы- построчный анализ, обработка и выполнение исходного кода программы или запроса.

Компиляция программы – перевод исхордного кода программы в машинный код, доступный для непосредственного выполнения.

Физическая консоль- Адаптер дисплея, дисплей и системная клавиатура в совокупности носят название физической консоли, управляемой драйвером консоли.

Жесткая ссылка – по своему смыслу- еще одно имя файла или каталога. Файл остается доступным, пока не удалена последняя жесткая ссылка на него (последнее имя файла).

Мягкая ссылка – или символическая ссылка, указывает на имя существующего файла, по сути ярлык перенаправляющий вас по другому адресу. Если целевой файл удален, то символическая ссылка указывает в никуда.

Корневая файловая система - раздел диска, на котором хранятся основные системные файлы, необходимые для начала инициализации системы.

Корневой каталог- каталог в который смонтирована корневая файловая система. Корневой каталог обозначается символом «/» или «///». Необходимость использовать обозначение «///» возникает когда вы переходите из каталога на другом узле в сети в корневой каталог узла, с которого осуществляется работа.


2.Основы архитектуры.

QNX 4.25 основана на микроядерной архитектуре. Микроядро занимается только диспетчеризацией и передачей сообщений. Прочие функции добавляются в ядро при его настройке и сборке исходя из функциональных особенностей применения.

QNX 4.25 не различает системные и пользовательские процессы. Функции «вшитые» в ядро системы ни чем не отличаются от других процессов.

QNX 4.25 обеспечивает прозрачную гомогенную сеть вычислительных ресурсов.

Для обеспечения минимальной работоспособности системы в ядро должны входить и некоторые системные процессы, перечислим их:

  • Менеджер процессов (Proc);
  • Менеджер файловой системы (Fsys);
  • Менеджер устройств (Dev);
  • Менеджер сети (Net);

QNX 4.25 построена на концепции «все есть файлы». Для нас это означает, что при запуске драйвера устройства в каталоге /dev создается файл устройства, и взаимодействие с оборудованием происходит через этот файл. Имена устройств могут быть изменены программным путем при их инициализации, тем не менее, приведем общепринятые примеры:

/dev/serN ( где N- 1,2,3…)- файл соответствующий СОМ-порту

/dev/hdN – файл жесткого диска

/dev/hd1t11 – файл раздела типа FAT

/dev/hd0t77 - интерфейс к разделу QNX

/dev/null – чёрная дыра или мусорка, что туда не пиши, все закончится успехом и пропадёт

/dev/conN – интерфейсы консолей.

/dev/ttypN – интерфейсы псевдотерминалов.

Поскольку «все есть файлы» будут корректны следующие конструкции:

cp /dev/ttyp0 /dev/ser1 – все что вводится в виртуальной консоли, будет отправлено через СОМ1;

cp /dev/hd1 /home/filename - в файле filename будет создана побитная копия жёсткого диска hd1, также можно восстановить состояние диска из файла (есть проблемы );

Работа с сетевыми картами Ethernet происходит по-другому.

Распределение прав доступа к ресурсам происходит на основе пользователей и групп.

В состав QNX 4.25 входит оконная система Photon microGUI. Короткий перечень базовых возможностей:

  • полноценный оконный менеджер;
  • Шрифты
  • Языковые пакеты
  • Поддержка Unicode
  • Поддержка печати
  • Библиотека виджетов

Для запуска графики нужны графический драйвер для видеокарты, что может стать проблемой.

3. Доступ к файловой системе. Монтирование дисков.

Доступ к файлам хранящимся на жестких дисках, флешнакопителях и других подобных устройствах, осуществляется через механизм монтирования. Механизм монтирования является крайне важным для QNX, а также других ОС. Доступ ко всем ресурсам (или почти всем) осуществляется как к файлам. Доступ к дискам осуществляется как доступ к каталогам (тоже файл, только особого вида содержащий список файлов и каталогов). Базовый каталог обозначается символом «/» и называется корневым (root). В корневой каталог должен быть смонтирован раздел диска с файлами ОС QNX, при старте системы.

Например:

mount –p /dev/hd0 /dev/hd0t77 /

Команда выполняет следующие действия:

  • Считывает таблицу раздела с диска /dev/hd0. (mount –p /dev/hd0)
  • Монтирует раздел с типов файловой системы 77 как корневой. (mount /dev/hd0t77 / )

В QNX 4.25 есть серьезные ограничения на количество и тип разделов расположенных на одном диске, оно вытекает из именования файлов в каталоге /dev. В приведенном выше примере hd0t77 будет произведена попытка смонтировать устройство как файловую систему QNX4. Файловые системы QNX4, так же могут иметь тип 78. И на этом выбор ограничен. Таким образом, на одном диске мы можем расположить только две файловые системы QNX4.

Все дополнительные файловые системы монтируются в каталог расположенный в корневой файловой системе. КАТАЛОГ СОЗДАЕТСЯ В МОМЕНТ МОНТИРОВАНИЯ, САМОЙ СИСТЕМОЙ. Если вы создали каталог /home, а затем выполнили команду mount /dev/hd0t78 /home ,то увидите два каталога home в корневой файловой системе.

Монтирование «не родных» файловых систем может происходить с некоторыми особенностями.

4. Процесс загрузки системы.

Загрузка системы QNX4.25 можно разделить на несколько этапов. Кроме того, для нас, важна диагностика сбоев на этапе загрузки, соответственно особое внимание уделим сообщениям BIOS, загрузчика, ядра и др.

1 этап. Загрузка BIOS прохождение процедуры POST.

После включения компьютера загружается BIOS и проводится диагностика железа (процедура POST). На экран может выводиться или заставка, или результат диагностики. По результату диагностики, как правило, подается звуковой сигнал системным динамиком. Один короткий сигнал- все хорошо. Управление передается на MBR диска (как правило в настройках BIOS задается последовательность дисков, для передачи управления).
Возможные проблемы на первом этапе:

  • Неисправно оборудование (выдается сообщение и звуковой сигнал);
  • Не найден носитель с которого можно загрузиться ( после успешной диагностики, выдается сообщение типа – Could not read from the boot medium! ; No bootable device – insert boot disk and press any key.

2 этап. Загрузчик QNX.

Если загрузчик успешно найден, то мы увидим сообщения следующего вида (в скобках пояснения):

QNX Loader (старт загрузчика QNX)

Boot Partition 1 (Загрузка будет производиться с раздела 1, если на диске более одного раздела, будет предложение выбрать нажав клавишу «2», «3» или иную)

Press Esc for alternate OS (обнаружен раздел QNX и файлы с именами .boot и .altboot , если хотим грузить .altboot, то жмем Esc)

(В туже строку) (началась загрузка ядра системы)

(В туже строку)……. ( при успешной загрузке ядра будет 10 точек)

(Далее сообщения ядра, можно поменять или удалить при конфигурировании)

65080MHZ 686/687 PCI bus boot modules:
/boot/sys/Proc32 (загружено микроядро)
/boot/sys/Slib32 (загружены либы для 32-разрядного ПО)
/boot/sys/Slib16 ( .. для 16-разрядного ПО)
/bin/Fsys (загружен менеджер устройств)
/bin/Fsys.eide (драйвер жесткого диска )
/bin/mount (утилита монтирования для корневого раздела)
/bin/sinit ( утилита загрузки командного процессора файла конфигурации sysinit.node или sysinit или altsysinit)
starting QNX… (стартует ядро)
Path=0 – EIDE target =0 lun=0 Direct-Access(0)- VBOX HARDDISK (в ядре запущен драйвер жесткого диска, диск обнаружен)

Дальше в случае удачного монтирования корневого раздела утилита sinit загружает командный процессор ( например sh) и передает ему файл sysinit.node или sysinit или altsysinit, в зависимости от условий загрузки.

Файл /etc/config/sysinit.node загружается при штатной загрузке, где node номер узла для текущего ядра.
Файл /etc/config/sysinit загружается, если sysinit.node не обнаружен.
Файл /etc/config/altsysinit загружается для ядра .altboot по альтернативной загрузке.



3 этап загрузки. Выполнение файла инициализации.

Если все предыдущие этапы прошли успешно, то командный процессор начинает выполнение команд из файла инициализации системы /etc/config/sysinit.node (или другого, см. выше).

Команды, выполняемые до переопределения переменной PATH, должны быть на жестком диске в каталоге /bin, /usr/bin. По всей видимости состояние переменной PATH, для этого этапа, можно где-то прописать, но пока не знаю где.

Некоторые команды рассмотрим в отдельном разделе «5. Команды в файле sysinit.»



4 этап. Выполнение файлов .profile

В случае ручного или автоматического входа пользователя в систему выполняются команды из файлов /etc/profile, затем выполняется $HOME/.profile (может быть изменен).

Файлы в каталоге /etc/config/trap.

В каталоге /etc/config/trap находятся важные файлы для работы системы.

Input.node – файл для настройки мыши и клавиатуры

crt.node – файл настройки графического режима Photon microGUI


5.Команды в файле sysinit.

Если все предыдущие этапы прошли успешно, то командный процессор начинает выполнение команд из файла инициализации системы /etc/config/sysinit.node (или другого, см. ниже).

Файл /etc/config/sysinit.node выполняется при штатной загрузке, где node номер узла для текущего ядра.
Файл /etc/config/sysinit выполняется, если sysinit.node не обнаружен.
Файл /etc/config/altsysinit выполняется для ядра .altboot по альтернативной загрузке.

Исходя из выше сказанного, акцентируем внимание на некоторых моментах:

  • Файл /etc/config/sysinit – это обычный скрипт командного процессора и должен соответствовать правилам написания скриптов;

  • Файл /etc/config/sysinit – не единственный файл выполняемый при входе в систему;

  • Некоторые процессы, такие как драйвера устройств, должны продолжить выполнение в фоновом режиме. Не забывайте использовать знак “&” после команды, для возврата управления ;

Для понимания, происходящего в системе, рассмотрим, некоторые команды в файле sysinit.

  • # - вся последующая строка является комментарием;
  • &- вернуть управление командному процессору, не дожидаясь завершения команды;
  • «перевод строки» - выполнить команды в строке, таким образом, последняя строка должна быть пустой или комментарием, для выполнения команд из предпоследней строки;
  • export – объявляет переменную окружения как наследуемую дочерними процессами;
  • rtc at – настройка типа часов реального времени;
  • Dev – менеджер устройств, обслуживание каталога /dev;
  • emu87 – эмулятор сопроцессора;
  • Pipe – запуск канала межпроцессного взаимодействия;
  • Dev.ser 3f8,4 & - запустить драйвер СОМ-порта. 3f8 – адрес устройства, 4 – прерывание.
  • Dev.ansi - драйвер консоли;
  • reopen /dev/con1 – подключить стандартные потоки (ввод, вывод и ошибок) к первой консоли;
  • kbd – драйвер клавиатуры;
  • prefix – регистрация префикса. Связано с регистрацией точек монтирования и файлов устройств;
  • Dev.par- драйвер параллельных устройст (Centronics, IEEE 1284, SPP);
  • Dev.pty- драйвер псевдотерминала ( окно с командной строкой в графической оболочке);
  • Fsys.eide, Fsys.ata и др. – драйвера жесткого диска;
  • Iso9660fsys – драйвер файловой системы CD-ROM;
  • Net – менеджер сети QNET;
  • Net.ether1000, Net.ether905 и др.- драйвера сетевых плат;
  • netmap –f - прочитать карту сети QNET;
  • netmapd – поддерживает карту сети в актуальном состоянии;
  • tinit –c “login root” –t /dev/con1 & - инициализировать терминал на первой виртуальной консоли и войти на нем от имени root;
  • tinit –T /dev/con[2-6] & - инициализировать терминалы на консолях 2-6;
  • nameloc & - определитель сетевых имен в сети QNET и ПРОВЕРКА ЛИЦЕНЗИЙ;
  • chkfsys – проверить корректность файловых систем ;

6. Пользователи и группы. Пользователь root.

Разграничение прав доступа в QNX происходит на основе атрибутов файлов (в том числе файлов устройств). Атрибуты файлов являются свойством файловой системы QNX, соответственно, копирование файла на файловую систему другого типа приводит к потере его атрибутов. (Если распаковать архив на флешку с файловой системой FAT, то все атрибуты будут сброшены и ПО не будет работать).

Фалы имеют следующие атрибуты:

Owner – ID владельца файла ( соответствие определено в файле /etc/default/passwd)
Group – ID группы которой принадлежит файл ( соответствие определено в файле /etc/group)

Права доступа для владельца, группы и прочих. R-W-X- соответственно, чтение, запись, выполнение.

Owner - RWX
Group – RWX
Other -RWX

Иногда выражают в числовом в виде 0-0-0 = 0 все запрещено. 1-1-1 =7 все разрешено. Таким образом права на файл 760 означают:

Владельцу- все разрешено, группе – разрешено чтение и запись, прочим – доступ закрыт.

SUID – как правило, для нас не имеет значения, связано с возможностью выполнения от чужого имени.

Пользователь root – всегда есть в системе, имеет не ограниченные права, в том числе по ограничению собственных прав.

7. Установка системы на диск или иное устройство.

В общем случае установка системы на диск происходит в несколько этапов:

  1. Создание образа системы и загрузочного диска;
    Этот раздел не рассматривается, считаем что образ системы получен у производителя.

  2. Загрузка с подготовленного загрузочного носителя;
    Как правило установка происходит без изъятия носителя из устройства, соответственно нам необходимо получить доступ к диску и доступ к инструментам для работы с диском. Для этого применяются установочные диски CD-ROM от дистрибьютора или специально подготовленные носители USB, CD-ROM или загрузка по сети.

  3. Разметка диска утилитой fdisk;
    Для разметки жесткого диска необходимо запустить соответствующий драйвер, посмотреть/определить имя диска и передать его утилите fdisk.
    Fsys.eide & # Смотрим выдачу.
    ls /dev #Смотрим содержимое каталога /dev и имя нашего диска (нужно посмотреть до и после, затем найти разницу). Предположим это hd0.
    fdisk /dev/hd0
    shutdown # До перезагрузки системы результата можем не увидеть.
    По утилите fdisk достаточно много материалов, стоит лишь отметить, что системный раздел следует делать первым, тип системного раздела 77, размер системного раздела более 500Мб не имеет смысла, пространство далее 2Гб может не поддерживаться. Системный раздел необходимо отметить как «загрузочный/boot». Загрузчик на этом этапе ставить не следует.

  4. Создание файловой системы QNX4 утилитой dinit;
    Загружаем систему, запускаем драйвер диска как в предыдущем пункте, а затем:
    mount –p /dev/hd0 #Прочитать таблицу разделов с диска.
    ls /dev # Смотрим что разделами, предположим появилось устройство /dev/hd0t77.
    dinit –h /dev/hd0t77 # Создаем файловую систему (форматируем диск).
    mount /dev/hd0t77 /HDD # монтируем устройство в каталог, для получения доступа к файловой системе.
    ls /HDD # Посмотрим содержимое должны быть видны файлы: .boot , .altboot, .inodes, .bitmap.

  5. Копирование файлов системы на подготовленный диск, из подготовленного образа системы;
    cp –AcLpRV ./ /HDD

  6. Создание файлов конфигурации системы и размещение их на диске;
    Отдельная большая тема. Считаем, что все есть в образе системы.

  7. Создание ядра системы и размещение его на диске;
    Отдельная большая тема. Считаем, что все есть в образе системы.

  8. Подготовка загрузчика и размещение его на диске (если загрузчик установлен до создания файловой системы, ОС едва ли стартует);
    Утилита fdisk позволяет установить стандартный загрузчик QNX, через свой интерфейс.
    Для установки специальных загрузчиков следует воспользоваться командой :
    fdisk –B fileNameLoader /dev/hd0 loader

  9. Размещение файлов лицензий.
    Лицензии нового стиля добавляются в файл /.licenses.
    Лицензии старого стиля находятся в каталоге /etc/licenses.
    Лицензирование происходит по количеству узлов в сети. Если лицензия на четыре узла, а в сети две машины с номерами узлов 3 и 5, то связи между ними не будет. Потому что 5 больше 4.

  10. Извлечение установочного носителя и загрузка, вновь установленной ОС;
    После копирования файлов, крайне рекомендуется, выполнить команду: sync. Только затем перезугружать систему.

8. Сеть Qnet. Настройка сети Qnet.

Возможности сети Qnet:
Сеть Qnet позволяет объединить машины с QNX 4.25 в гомогенную сеть, с прозрачным доступом к ресурсам. Резервирование сетей при помощи логического ID сети.

Для работоспособности сети Qnet необходимы следующие условия:

  • Запущенный менеджер сети Net;
  • Запущенный драйвер сетевой карты;
  • В сети запущен, хотя бы один экземпляр утилиты nameloc;
  • Актуальное состояние файла /etc/config/netmap (или утилита-демон netmapd, или ручное редактирование);
  • Наличие файла лицензий;

Маршрутизация логических сетей:
Любой узел является мостом между однотипными логическими сетями.

Примеры рабочих конфигураций:

  1. Виртуальная машина, сетевой адаптер Intel PRO/1000 MT Desktop (82540OEM)

    netmap –f
    nameloc &
    netmapd &
    Net &

    Net.i82540 &

 

  • Виртуальная машина,
    1 сетевой адаптер Intel PRO/1000 MT Desktop (82540OEM), Внутренняя сеть 1;
    2 сетевой адаптер PCnet-FAST III (Am 79C973), Внутренняя сеть 2;

Net &
Net.i82540 –l 1 &
Net.ether2100 –l 2 &

netmap –f
nameloc &
netmapd &

l1 – имя будущего иньеофейса будет en1

9. Настройка протокола TCP/IP в QNX 4.25.

Сетевые утилиты находятся в каталоге /usr/ucb/ , который в базовой установке не прописан в переменную PATH (можно проверить: echo $PATH). Что приводит к необходимости набора полного пути, при запуске программы.

Для запуска TCP/IP со статическим адресом необходимы две команды:
/usr/ucb/Socket Name &
/usr/ucb/ifconfig en1 192.168.0.1

netstatin - позволяет узнать состояния сети TCP/IP, текущие адреса и имена интерфейсов.

Возможно динамическое получение IP адресов, при помощи dhcp.client.

Поверх TCP/IP возможна поддержка некоторых протоколов: NFS, SMB, FTP, SMTP, TELNET.

10.Лицензии в QNX 4.24.

Лицензии нового стиля добавляются в файл /.licenses.
Лицензии старого стиля находятся в каталоге /etc/licenses.
Лицензирование происходит по количеству узлов в сети. Если лицензия на четыре узла, а в сети две машины с номерами узлов 3 и 5, то связи между ними не будет. Потому что 5 больше 4.

Для работы лицензированного ПО необходима работающая nameloc , доступный в сети или локально.

Необходимо активировать лицензии командой:
license -r

11. Конфигурирование, сборка и установка ядра в систему.

Обычно формирование образа ядра необходимо для решения следующих задач:

  • Смена источника загрузки системы
  • Смена номера узла

Стоит остановиться на формировании образа ядра для того или иного источника загрузки. Очевидно, что загруженное ядро должно получить доступ к командному процессору и файлу sysinit. Для этого необходимо включить в ядро необходимые средства для доступа к корневому разделу.

Например:
Fsys, Fsys.ata, mount – позволяют получить доступ корневому разделу расположенному на диске с драйвером Fsys.ata.
Fsys, io-usb, Fsys.umass, mount – необходимы если корневой раздел находится на USB накопителе
Перед сборкой ядра необходимо создать файл конфигурации. В каталоге /boot/build/ можно посмотреть образцы файлов конфигурации. В каталоге boot/images находятся собранные ядра.
Средства автоматизации для создания конфигураций отсутствуют. Файл конфигурации необходимо создавать в текстовом редакторе.
Более подробную информацию можно получить в справочной системе графической среды Photon microGUI.


Для сборки ядра можно применять следующие команды:
cd /boot
buildqnx build/hard.1 images/hard.ata.1
или
cd /boot
make b=hard.1
Если в первом варианте имя целевого файла задается прямо, то во втором случае целевой файл будет находиться в каталоге /boot/images и иметь тоже имя, что и файл конфигурации (полный путь: /boot/images/ hard.1).
Установка ядра в систему происходит копированием полученного файла в файл /.boot или /.altboot.


ВАЖНО. Кроме того следует позаботиться о конфигурировании системы для нового ядра и возможности загрузки в случае ошибок. В общем случае стоит действовать по следующему алгоритму:

  • Проверить возможность альтернативной загрузки (ESC -> .altboot и т.д.).
  • Собрать и скопировать новое ядро в /.boot.
  • Создать корректный файл sysinit для нового ядра (если нужно).
  • Создать корректные файлы /etc/config/trap/crt.node и /etc/config/trap/input.node .
  • Перезагрузить систему под новым ядром.



12.Установка специальных загрузчиков.

Несмотря на то, что загрузчик QNX представляет приемлемые возможности по загрузке, иногда требуется установка специальных загрузчиков для расширения функциональных возможностей системы.

Установка загрузчика из файла filename:

fdisk –B filename /dev/hd0 loader

13.Настройка и запуск графической оболочки Фотон (Photon microGUI).

Графическая оболочка Photon microGUI для QNX 4.25 позволяет использовать современный графический интерфейс пользователя (GUI).
С поддержкой PS/2 устройств, проблем не возникает с поддержкой USB устройств, не все однозначно.

Команда для запуска Photon microGUI – ph. Для корректного старта необходимы файлы /etc/config/trap/crt.node и /etc/config/trap/input.node, а также графический драйвер видео карты.
Если удалить файл /etc/config/trap/crt.node , то Photon microGUI попробует просканировать устройства и подобрать минимально работающий режим. Затем можно продолжить настройку через граическую утилиту.

14.Драйвера устройств и файловых систем. Многоуровневая модель драйверов.

Концепция многоуровневой модели драйверов, или послойной модели, заключается в том, что драйвер выполняет свою, узко специализированиую функцию, передовая результаты своей работы дальше по цепочке уровненей, соответственно получая входные данные от предыдущего слоя.

Подобная концепция вытекает из концепции, применяемой в UNIX-подобных ОС, когда каждую программу нагружают минимальным количеством однородного функционала, что позволяет строить более гибкую и более надежную систему.

Рассмотрим концепцию на прмере получения доступа к USB-накопителю:

Fsys.umass <-> Io-usb <-> Fsys <-> Fatfsys

В этой процедуре задействовано четыре компонента:
  • Драйвер USB- накопителя
  • Драйвер USB
  • Менеджер устройств (каталог /dev )
  • Драйвер файловой системы FAT



Большинство драйверов распалагается в каталоге /bin и имеют достаточно понятное наименование файлов:

  • Dev.ser- драйвер СОМ порта
  • Io-usb –драйвер USB
  • Fsys.ata, Fsys.eide, Fsys.ide, Fsys.amdscsi – драйвера соответствующих жестких дисков
  • Fsys.umass – драйвер USB- накопителей
  • Iso9660fsys – драйвер доступа к компакт дискам (CD-ROM)
  • Net.ether1000, Net.ether* - драйвера для раздичных сетевых карт

Используйте команду use для получения краткой справки.

15.Основы работы и программирования в командном процессоре.

Заходя в систему в текстовом режиме вы, как правило, видите приглашение командного процессора. Вводя команды, вы можете управлять системой или запускать программы.

В QNX 4.25 доступны bash, ksh, sh. В базовые возможности командных процессоров входит интерактивный ввод и испольнение встроенных команд, исполение скриптов, запуск программ.

Некоторые базовые сущьности для коммандных процессоров:

Текущий (рабочий) католог - каталог который в данный момент, для данного процесса используется для нахождения файлов только по имени или по относительному пути.

Абсолютный путь- полный путь к файлу или каталогу начиная от корневого ( /home/username/.profile)

Относительный путь – путь к файлу или каталогу относительно текущего ( username/.profile , если текущий /home из придыдущего примера). Часто используются символы: “./”- текущий каталог , “../”- подняться на один уровень вверх.

Переменная “PATH – перечень каталогов, в которых ищуться испольняемые файлы, задаваемые только по имени.

Скрипт- текстовы файл, который является программой для командного процессора. Скрипты выполняются в режиме интерпритации. Перевод строки является командой на выполнение, таким образом, для выполнения последней команды в скрипте, должна быть переведена строка и скрипт будет оканчиваться, или пустой строкой, или комментарием.

Переменные окружения – для настройки поведения командного процессора (оболочки ) используются переменные окружения( Например: PATH).< /p>

Команда expot – объявляет о том, что переменная окружения будет передоваться дочерним процессам. (Не путать с объявлением глобальной переменной в языках програмирования).



Часто используемые приемы работы с коммандными процессорами (не все возможности есть во всех оболочках):

Стрелки вверх и вниз – переход по истории команд в текущем экземпляре оболочки.

Клавиша «ТАБ» - попытаться найти команду по введенным символам, попытка автодополнения (нет в Sh, Bash, в других не знаю).

cd /// - перейти в корневую дирректорию текущего узла.

cd //node/ - перейти на узел node.

& - запустить команду в фоновом режиме, актуально для драйверов.