300 likes | 757 Views
Современные операционные системы. UNIX Linux QNX. Операционная система Linux. Linux — это современная POSIX -совместимая и UNIX -подобная операционная система для персональных компьютеров и рабочих станций.
E N D
Современные операционные системы • UNIX • Linux • QNX
Операционная система Linux • Linux — это современная POSIX-совместимая и UNIX-подобная операционная система для персональных компьютеров и рабочих станций. • Как известно, Linux — это свободно распространяемая версия UNIX, которая первоначально была разработана Линусом Торвальдсом (Linus Torvalds) (toкvalds@kruuna.helsinki.fi) в университете Хельсинки (Финляндия). Все компоненты системы, включая исходные тексты, распространяются с лицензией на свободное копирование и установку для неограниченного числа пользователей.
Операционная система Linux • Linux был создан с помощью многих UNIX-программистов и энтузиастов из Интернета. Большинство программ Linux разработано в рамках проекта GNU из Free Software Foundation в Кембридже, Массачусетс. • Изначально Linux создавался как «самодельная» UNIX-подобная реализация для ПК типа IBM PC с процессором i80386. В настоящее время имеется реализация этой ОС практически для всех типов процессоров и компьютеров на их основе. На базе ОС Linux создаются и встроенные системы, и суперкомпьютеры. Система поддерживает кластеризацию и большинство современных интерфейсов и технологий.
Операционная система Linux • Linux — это полноценная многозадачная многопользовательская операционная система. Это означает, что одновременно много пользователей могут работать на одной машине, одновременно выполняя много программ. Linux достаточно хорошо совместим с рядом стандартов для UNIX на уровне исходных текстов, включая IEEE POSIX.1, System V и BSD. Такая совместимость учитывалась при его создании. Большинство свободно распространяемых по сети Интернет программ для UNIX может быть откомпилировано для LINUX практически без особых изменений.
Операционная система Linux • Кроме того, все исходные тексты для Linux, включая ядро, драйверы устройств, библиотеки, пользовательские программы и инструментальные средства распространяются свободно. Другие специфические внутренние черты Linux включают контроль работ по стандарту POSIX (используемый оболочками, такими как csh и bash), псевдотерминалы (pty), поддержку национальных и стандартных клавиатур динамически загружаемыми драйверами клавиатур.
Операционная система Linux • Linux поддерживает различные типы файловых систем для хранения данных. Файловая система ext2fs, была создана специально для Linux. Поддерживаются другие типы файловых систем, например Minix-1 и Xenix. Реализована система управления файлами на основе FAT. Поддерживается и файловая система ISO 9660 CD-ROM для работы с дисками CD-ROM. Имеются системы управления файлами и на томах с HPFS и NTFS, правда, они работают только на чтение файлов. Созданы варианты системы управления файлами и для доступа к FAT32.
Операционная система Linux • Linux, как и все UNIX-системы, обеспечивает полный набор протоколов стека TCP/IP для сетевой работы. Это включает драйверы устройств для многих популярных сетевых адаптеров технологии Ethernet, протоколы SLIP (serial line Internet protocol, обеспечивающий доступ по TCP/IP при последовательном соединении), PPP (point-to-point protocol), NFS (network file system) и т. д. Поддерживается весь спектр клиентов и услуг TCP/IP, таких как FTP, telnet, NNTP и SMTP. Очень часто на компьютерах, работающих под управлением Linux, реализуют DNS-сервер, WWW-серверы (Apache), файерволы для защиты локальных сетей при работе в Интернете, почтовые серверы, сервер DHCP.
Операционная система Linux • Выполняемые программы используют динамически связываемые библиотеки, то есть выполняемые программы могут совместно использовать библиотечную программу, представленную одним физическим файлом на диске. Это позволяет выполняемым файлам занимать меньше места на диске, особенно тем, которые многократно используют библиотечные функции.
Операционная система Linux • Есть также статические связываемые библиотеки для тех, кто желает пользоваться отладкой на уровне объектных кодов или иметь «полные» выполняемые программы, которые не нуждаются в разделяемых библиотеках. В Linux разделяемые библиотеки динамически связываются во время выполнения, позволяя программисту заменять библиотечные модули своими собственными.
Сетевая ОС реального времени QNX • Операционная система QNX является мощной операционной системой, позволяющей проектировать сложные программные системы, работающие в реальном времени как на одном-единственном компьютере, так и в локальной вычислительной сети. Встроенные средства операционной системы QNX обеспечивают поддержку многозадачного режима на одном компьютере и взаимодействие параллельно выполняемых задач на разных компьютерах, работающих в среде локальной вычислительной сети.
Сетевая ОС реального времени QNX • Основным языком программирования в системе является язык С. Основная операционная среда соответствует стандартам POSIX-интерфейса. Это позволяет с небольшими доработками перенести необходимое накопленное программное обеспечение в среду операционной системы QNX для организации их работы в среде распределенной обработки.
Сетевая ОС реального времени QNX • ОС QNX является сетевой, мультизадачной, многопользовательской (многотерминальной) и масштабируемой. С точки зрения пользовательского интерфейса и API она очень похожа на UNIX. Однако QNX была разработана «с нуля», канадской фирмой QNX Software Systems Limited в 1989 году по заказу Министерства обороны США. Причем эта система построена на совершенно других архитектурных принципах, чем ОС UNIX.
Сетевая ОС реального времени QNX • QNX была первой коммерческой ОС, построенной на принципах микроядра и обмена сообщениями. Система реализована в виде совокупности независимых (но взаимодействующих через обмен сообщениями) процессов различного уровня (менеджеры и драйверы), каждый из которых реализует определенный вид сервиса.
Преимущества QNX • Предсказуемость, означающая ее применимость к задачам жесткого реального времени. • Масштабируемость и эффективность, достигаемые оптимальным использованием ресурсов. • Расширяемость и надежность одновременно, поскольку написанный вами драйвер не нужно компилировать в ядро, рискуя вызвать нестабильность системы. • Быстрый сетевой протокол FLEET, прозрачный для обмена сообщениями, автоматически обеспечивающий отказоустойчивость, балансирование нагрузки и маршрутизацию. • Компактная графическая подсистема Photon - вместе с ОС всего 4Мбайт памяти!
Архитектура системы QNX • Микроядро системыимеет объем от 10 до 32 Кбайт, то есть это одно из самых маленьких ядер среди всех существующих операционных систем. В этом объеме помещаются: • механизм передачи сообщений между процессами (IPC); • редиректор (от redirect - перенаправлять) прерываний; • блок планирования выполнения задач; • сетевой интерфейс для перенаправления сообщений (менеджер Net).
Архитектура системы QNX • Механизм передачи межпроцессных сообщений занимается пересылкой сообщений между процессами, в том числе и системными. • Редиректор прерываний является частью ядра и занимается перенаправлением аппаратных прерываний в связанные с ними процессы. • Блок планирования выполнения задач (диспетчер задач) занимается обеспечением многозадачности. К выполнению функций диспетчера ядро приступает в следующих случаях: • какой-либо процесс вышел из блокированного состояния; • истек квант времени для процесса, владеющего CPU; • работающий процесс прерван каким-либо событием.
Архитектура системы QNX • В QNX существуют три метода диспетчеризации: FIFO, round-robin и адаптивный - наиболее используемый.Процесс, работающий с адаптивным методом, ведет себя следующим образом: • Когда процесс полностью использовал выделенный ему квант времени, его приоритет снижается на 1, если в системе есть процессы с тем же уровнем приоритета, готовые к исполнению. • Если процесс с пониженным приоритетом остается не обслуженным в течение секунды, его приоритет увеличивается на 1. • Если процесс блокируется, ему возвращается оригинальное значение приоритета.
Архитектура системы QNX • Сетевой интерфейс в системе QNX является частью ядра. Он взаимодействует с сетевым адаптером через сетевой драйвер, но базовые сетевые сервисы реализованы на уровне ядра. Передача сообщения процессу, находящемуся на другом компьютере, ничем не отличается для приложения от передачи сообщения процессу, выполняющемуся на том же компьютере. Для приложений не имеет значения, с какого компьютера они были запущены, на каком исполняются и куда поступают результаты их работы.
Механизмы организации распределенных вычислений • Для организации сети на каждой машине, называемой узлом, помимо ядра и менеджера процессов должен быть запущен менеджер Net. Менеджер Net не зависит от аппаратной реализации сети. Данная аппаратная независимость обеспечивается за счет использования сетевых драйверов. • Кроме этого, имеется возможность организации сети через последовательный канал или модем.
Механизмы организации распределенных вычислений • В QNX четвертой версии полностью реализовано встроенное сетевое взаимодействие «точка-точка». Например, находясь на машине А, вы можете скопировать файл с гибкого диска, подключенного к машине В, на жесткий диск, подключенный к машине С. По существу, сеть из машин QNX действует как один мощный компьютер. Любые ресурсы (модемы, диски, принтеры) могут быть добавлены к системе простым их подключением к любой машине в сети.
Механизмы организации распределенных вычислений • Каждому узлу в сети соответствует уникальный целочисленный идентификатор — логический номер узла. Любой поток в сети QNX имеет прозрачный доступ (при наличии достаточных привилегий) ко всем ресурсам сети, то же самое относится и к взаимодействию потоков. Для взаимодействия потоков, находящихся на разных узлах сети, используются те же самые вызовы ядра, что и для потоков, выполняемых на одном узле. В том случае, если потоки находятся на разных узлах сети, ядро переадресует запрос менеджеру сети.
Механизмы организации распределенных вычислений • Для организации обмена в сети используется надежный и эффективный протокол транспортного уровня FLEET. Каждый из узлов может принадлежать одновременно нескольким QNX-сетям. В этом случае для передачи выбирается незагруженная и более скоростная сеть. • Этот протокол не базируется ни на одном из распространенных сетевых протоколов и обладает рядом качеств, которые делают его уникальным. Основные его качества зашифрованы в аббревиатуре FLEET, которая расшифровывается следующим образом.
Механизмы организации распределенных вычислений • Благодаря этой технологии сеть компьютеров с QNX фактически можно представлять как один виртуальный суперкомпьютер. Все ресурсы любого из узлов сети автоматически доступны другим, и для этого не нужны специальные «фокусы» с использованием технологии RPC. Это значит, что любая программа может быть запущена на любом узле, при этом ее входные и выходные потоки могут быть направлены на любое устройство на любых других узлах.
Механизмы организации распределенных вычислений • Например, утилита make в QNX автоматически распараллеливает компиляцию пакетов из нескольких модулей на все доступные узлы сети, а затем собирает исполняемый модуль по мере завершения компиляции на узлах. Специальный драйвер, входящий в комплект поставки, позволяет использовать для сетевого взаимодействия любое устройство, с которым может быть ассоциирован файловый дескриптор, например последовательный порт, что открывает возможности для создания глобальных сетей.
Дополнительная информация • http://www.swd.ru - официальный представитель QNX в России. Распространяет литературу и некоммерческие версии ОС. • http://qnx.org.ru - сайт сообщества разработчиков и пользователей ОС.