Пятница , Декабрь 6 2019
Главная / Студентам / ОСиС / Лекция № 10. ОПЕРАЦИОННЫЕ СИСТЕМЫ QNX и Linux

Лекция № 10. ОПЕРАЦИОННЫЕ СИСТЕМЫ QNX и Linux

10.1. Операционная система реального времени QNX 

Сетевая операционная система реального времени QNX является мощной операционной системой, разработанной для процессоров с архитектурой i32. Она позволяет проектировать сложные программные комплексы, работающие в реальном времени как на отдельном компьютере, так и в локальной вычислительной сети. Встроенные средства QNX обеспечивают поддержку многозадачного режима на одном компьютере и взаимодействие параллельно выполняемых задач на разных компьютерах, работающих в среде локальной вычислительной сети. 

Основным языком программирования в системе является C. Основная операционная среда соответствует стандарту POSIX. Это позволяет с небольшими доработками переносить ранее разработанное программное обеспечение в QNX. 

Операционная система QNX обладает свойствами предсказуемости и масштабируемости. 

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

Масштабируемость – свойство,  выражающееся в возможности исполнения программы на различных ресурсах (объём памяти, число и производительность процессоров) с пропорциональным изменению ресурсов значением показателей эффективности. Именно способность работать на ограниченных аппаратных ресурсах позволяет использовать QNX во встроенных системах. 

С точки зрения пользовательского интерфейса QNX очень похожа на UNIX, поскольку выполняет требования стандарта POSIX. Однако QNX – это не версия UNIX, хотя многие так считают. Операционная система QNX была разработана «с нуля» канадской фирмой QNX Software Systems Limited в 1989 году по заказу Министерства обороны США, причем на совершенно иных архитектурных принципах, нежели использовались при создании операционной системы UNIX. 

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

Микроядро операционной системы QNX имеет объем всего в несколько десятков килобайтов (в одной из версий – 10 Кбайт, в другой – менее 32 Кбайт, хотя есть вариант и на 46 Кбайт). В этом объеме помещаются: 

  • Механизм передачи сообщений между процессами IPC (Inter Process Communication). 
  • Редиректор (redirector) прерываний. 
  • Блок планирования выполнения задач (диспетчер задач). 
  • Сетевой интерфейс для перенаправления сообщений (менеджер Net). 

10.2. Операционная система Linux  

Операционная система Linux, созданная Линусом Торвальдсом в 1991 году лидирует среди UNIX-систем новой школы с открытым исходным кодом, появившихся в 1990 году (в их число также входит FreeBSD, NetBSD, OpenBSD и Darwin), и представляет направление конструирования, принятое данной группой в целом. 

Linux не включает в себя код из дерева исходных кодов первоначальной UNIX, но данная система была сконструирована на основе UNIX-стандартов и работает подобно UNIX. 

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

Наиболее очевидным новшеством является смена предпочтительных стилей интерфейса. Большинство UNIX-программистов долго оставались прочно привязанными к командной строке. Разработчики Linux перешли к созданию GUI-интерфейсов. 

Желание склонить на свою сторону конечных пользователей также заставило Linux-разработчиков гораздо больше интересоваться проблемами простоты инсталляции и распространения программного обеспечения, чем это было принято при разработке частных UNIX-систем. 

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

Linux-разработчики перенимают конструкторские идеи из операционных систем, не относящихся к семейству UNIX. Примером могут служить Linux-приложения, использующие для конфигурации INI-файлы формата Windows. Внедрение в ядро 2.5 Linux расширенных атрибутов файлов, которые среди прочего можно использовать для эмуляции семантики ветви ресурса в Macintosh, – еще один яркий пример этого. 

Остальные частные UNIX-системы (такие как Solaris, HP-UX, AIX и другие) разрабатываются как большие продукты для суперкомпьютеров. Их рыночная ниша поддерживает конструкции, оптимизированные под максимальную мощность на высококлассном, инновационном аппаратном обеспечении. Поскольку частично Linux связана со средой энтузиастов PC, особое значение в данной системе уделяется выполнению большего количества задач при меньших затратах.