А. Робачевский - Операционная система UNIX (1114671), страница 72
Текст из файла (страница 72)
Структуранижнего мультиплексора адресует проце!дурный интерфейс работы с нижними очередями соответственно полямии st_muxwinit.Для работы с мультиплексированными потоками подсистема STREAMSподдерживает четыре командыИспользуется дляпотоков. При этом файловый деск%риптор указывает на поток, подключенный к мультиплексору. Второйфайловый дескриптор, передаваемый в качестве аргумента коман%ды, указывает на поток, который необходимо подключить ниже муль%типлексора.I_PLINKИспользуется дляпотоков, которое сохраняется призакрытии файлового дескриптора. В остальном аналогично командеI_LINK.I_UNLINK,Используются для разъединения потоков, созданных командамиСоздание мультиплексированного потока происходит в два этапа.
Пояс!ним этот процесс на примере создания стека протокола IP, поддерживаю!щего работу как с адаптером Ethernet, так и с адаптером FDDI. Для этогонеобходимо объединить драйвер адаптера Ethernet, драйвер адаптера FDD1и драйвер IP, который является нижним мультиплексором. Процесс дол!жен выполнить следующие действия:fdenet ==fdip =ioctl(fdip, I_LINK, fdenet);I_LINK,Сначала процесс создает три независимых потока, адресуемых дескрипто!рами fdenet, f d f d d i и fdip (рис. 5.24, а) Для объединения потоков ис!пользуется командасистемного вызоваВ результате полу!чается конфигурация, представленная на рис. 5.24, б.В результате объединения потоков очереди и процедурный интерфейс го!ловного модуля нижнего потока (в данном случае, потока, подключенногок драйверу Ethernet или FDDI), реализованный самой подсистемойSTREAMS, заменяются на нижние очереди и соответствующий процедур!ный интерфейс мультиплексора.
Более детально процесс объединения по!тока IP и потока Ethernet показан на рис. 5.25.Задачей нижнего мультиплексора является хранение информации обо всехподключенных ниже потоках и обеспечение правильной маршрутизациимежду ними.Ⱦɚɧɧɚɹɜɟɪɫɢɹɤɧɢɝɢɜɵɩɭɳɟɧɚɷɥɟɤɬɪɨɧɧɵɦɢɡɞɚɬɟɥɶɫɬɜɨɦ%RRNVVKRSɊɚɫɩɪɨɫɬɪɚɧɟɧɢɟɩɪɨɞɚɠɚɩɟɪɟɡɚɩɢɫɶɞɚɧɧɨɣɤɧɢɝɢɢɥɢɟɟɱɚɫɬɟɣɁȺɉɊȿɓȿɇɕɈɜɫɟɯɧɚɪɭɲɟɧɢɹɯɩɪɨɫɶɛɚɫɨɨɛɳɚɬɶɩɨɚɞɪɟɫɭpiracy@books-shop.com380Глава 5.Рис. 5.24. Создание мультиплексированного потокаЗаключениеЭта глава посвящена внутренней архитектуре подсистемы ввода/вывода,движущей силой которой являются драйверы устройств. Были рассмотре!ны традиционные типы драйверов, присутствующих в операционной сис!теме UNIX с ранних ее версий, — символьные и блочные драйверы. Важ!ную роль в процессе обмена данными с драйвером играют файловый ин!терфейс и файловая система.www.books-shop.comЗаключение381Рис. 5.25.
Объединение верхнего и нижнего потоковВо второй части главы была описана архитектура драйверов подсистемыSTREAMS, имеющая модульную структуру и позволяющая более изящноосуществить буферизацию данных и управление их передачей. Вопросы,затронутые в этой части, будут также рассмотрены в следующей главе приобсуждении архитектуры сетевого доступа в операционной системы UNIX.www.books-shop.comсетив операционной системе UNIXСегодня изолированный компьютер имеет весьма ограниченную функцио!нальность. Дело даже не в том, что пользователи лишены возможностидоступа к обширным информационным и вычислительным ресурсам, рас!положенным на удаленных системах.
Изолированная система не имееттребуемой в настоящее время гибкости и масштабируемости. Возможностьобмена данными между рассредоточенными системами открыла новые го!ризонты для построения распределенных ресурсов, их администрированияи наполнения, начиная от распределенного хранения информации (сете!вые файловые системы, файловые архивы, информационные системы судаленным доступом), и заканчивая сетевой вычислительной средой.UNIX — одна из первых операционных систем, которая обеспечила воз!можность работы в сети. И в этом одна из причин ее потрясающего успехаи долгожительства.Хотя многие версии UNIX сегодня поддерживают несколько сетевых про!токолов, в этой главе мы подробнее остановимся на наиболее известном ираспространенном семействе под названием TCP/IP. Эти протоколы былиразработаны, а затем прошли долгий путь усовершенствований для обес!печения требований феномена XX века — глобальной сети Internet.
Про!токолы TCP/IP используются практически в любой коммуникационнойсреде, от локальных сетей на базе технологии Ethernet или FDDI, досверхскоростных сетей ATM, от телефонных каналов точка!точка до транс!атлантических линий связи с пропускной способностью в сотни мегабитв секунду.Глава начинается с описания наиболее важных протоколов семействаTCP/IP — Internet Protocol (IP), User Datagram Protocol (UDP) иTransmission Control Protocol (TCP). Здесь описываются стандартная спе!цификация этих протоколов и особенности реализации их алгоритмов, неопределенные стандартами, но позволяющие значительно повысить про!изводительность работы в сети.Далее обсуждается программный интерфейс доступа к протоколам TCP/IP.При этом рассматриваются два основных интерфейса — традиционныйинтерфейс работы с протоколами TCP/IP — интерфейс сокетов,www.books-shop.comСемейство протоколов TCP/IP383но разработанный для системы BSD UNIX, и интерфейс ТЫ, позволяю!щий унифицированно работать с любыми сетевыми протоколами, соответ!ствующими модели OSI.
В конце раздела описан программный интерфейсболее высокого уровня, позволяющий отвлечься от особенностей сетевыхпротоколов и полностью сосредоточиться на определении интерфейса ифункциональности предоставляемых прикладных услуг. Эта система, кото!рая называется(Remote Procedure Call — удаленный вызов процедур),явилась предтечей современных систем разработки распределенных при!ложений, таких как CORBA (Common Object Request Broker), Java и т. д.В последних разделах главы рассматривается архитектура сетевого доступав двух основных ветвях операционной системы — BSD UNIX и UNIXSystem V.Семейство протоколов TCP/IPВ названии семейства присутствуют имена двух протоколов — TCP и IP.Это, конечно, не означает, что данными двумя протоколами исчерпывает!ся все семейство.
Более того, как будет видно, названные протоколы вы!полняют различные функции и используются совместно.В 1969 году Агентство Исследований Defence Advanced Research ProjectsAgency (DAPRA) Министерства Обороны США начало финансированиепроекта по созданию экспериментальной компьютерной сети коммутациипакетов (packet switching network). Эта сеть, названная ARPANET, былапостроена для обеспечения надежной связи между компьютерным обору!дованием различных производителей.
По мере развития сети были разра!ботаны коммуникационные протоколы — набор правил и форматов дан!ных, необходимых для установления связи и передачи данных. Так появи!лось семейство протоколов TCP/IP. В 1983 году TCP/IP был стандартизи!рован (MIL STD), в то же время агентство DAPRA начало финансирова!ние проекта Калифорнийского университета в Беркли по поддержкеTCP/IP в операционной системе UNIX.Основные достоинства TCP/IP:О Семейство протоколов основано на открытых стандартах, свободнодоступных и разработанных независимо от конкретного оборудова!ния или операционной системы. Благодаря этому TCP/IP являетсянаиболее распространенным средством объединения разнородногооборудования и программного обеспечения.Протоколы TCP/IP не зависят от конкретного сетевого оборудова!ния физического уровня.
Это позволяет использовать TCP/IP в фи!зических сетях самого различного типа: Ethernet, Token!Ring,т. е. практически в любой среде передачи данных.www.books-shop.com384ОГлава 6.сети в операционной системе UNIXПротоколы этого семейства имеют гибкую схему адресации, позво!ляющую любому устройству однозначно адресовать другое устройст!во сети. Одна и та же система адресации может использоваться как влокальных, так и в территориально распределенных сетях, включаяInternet.В семейство TCP/IP входят стандартизированныевысо!кого уровня для поддержки прикладных сетевых услуг, таких как пе!редача файлов, удаленный терминальный доступ, обмен сообщения!ми электронной почты и т. д.Краткая история TCP/IPИстория создания и развития протоколов TCP/IP неразрывно связана сInternet — интереснейшим достижением мирового сообщества в областикоммуникационных технологий.
Internet является глобальным объедине!нием разнородных компьютерных сетей, использующих протоколыTCP/IP и имеющих общее адресное пространство. Явление Internet уни!кально еще и потому, что эта глобальная сеть построена на принципах са!моуправления (хотя ситуация отчасти начинает меняться). Однако вернем!ся к истории.Сегодняшняя сеть Internet "родилась" в 1969 году, когда агентство DARPAполучило заказ на разработку сети, получившей название ARPANET.Целью создания этой сети было определение возможностей использованиякоммуникационной технологии пакетной коммутации.
В свою очередь,агентство DARPA заключило контракт с фирмой Bolt, Beranek and Newman(BBN). В сентябре 1969 года произошел запуск сети, соединивший четыреузла: Станфордский исследовательский институт (Stanford ResearchInstitute), Калифорнийский университет в Санта!Барбаре (University ofCalifornia at Santa Barbara), Калифорнийский университет в Лос!Анжелесе(University of California at Los Angeles) и Университет Юты (University ofUtah). Роль коммуникационных узлов выполняли мини!компьютерыHoneywell 316, известные как Interface Message Processor (IMP).Запуск и работа сети были успешными, что определило быстрый ростARPANET.