Текст книги "Операционная система UNIX"
Автор книги: Андрей Робачевский
Жанр:
ОС и Сети
сообщить о нарушении
Текущая страница: 39 (всего у книги 39 страниц)
Как и в случае предоставления транспортных услуг, обмен данными между пользователем и поставщиком происходит в виде сообщений, несущих примитивы DLPI. Ниже рассмотрены некоторые из этих примитивов, относящиеся к режиму передачи без предварительного установления связи и без подтверждения. Именно такой режим обычно используется в традиционных локальных сетях.
Несмотря на то что рассматриваемая услуга не предусматривает установления связи, фактической передаче данных предшествует обмен примитивами для инициализации потока и подключения его к поставщику услуг уровня канала данных. Во-первых, пользователь должен создать точку доступа к поставщику услуг, для чего необходимо произвести операцию связывания. Во-вторых, в случае использования поставщика услуг второго типа (style 2), пользователь также должен подключиться к требуемой PPA. Наконец, пользователю может потребоваться произвести ряд действий, включающих получение информации о созданном потоке, регистрацию специфического группового адреса для потока или включение режима отсутствия фильтрации кадров, при котором пользователь сможет получать копии всех пакетов, полученных поставщиком услуг.[94]94
Включение этого режима требует привилегий суперпользователя и используется преимущественно в приложениях мониторинга уровня канала данных.
[Закрыть]
После этого пользователь может передавать данные, учитывая, однако, что в обсуждаемом режиме поставщик не гарантирует надежную доставку данных адресату (удаленному пользователю услуг уровня канала данных). Например, отсутствие управления передачей может привести к переполнению буферов, и, как следствие, к потере кадров. Неправильные кадры, полученные из сети, также будут отбрасываться без уведомления передающей стороны. Однако преимуществом является отсутствие необходимости установления связи и связанных с этим накладных расходов.
Итак, приведем некоторые управляющие сообщения DLPI, используемые в режиме без предварительного установления связи и без подтверждения. В табл. 6.12 приведено их краткое описание.
Таблица 6.12. Примитивы DLPI
DL_BIND_REQ | M_PROTO | Запрос на связывание. Этот примитив инициируется пользователем услуг и запрашивает связывание потока с точкой доступа и его активизацию. Следует иметь в виду, что активным считается поток, для которого поставщик услуг может передавать или принимать пакеты данных. Таким образом, PPA, ассоциированная с данным потоком, должна быть инициализирована до завершения обработки запроса на связывание (другими словами, поставщик гарантирует, что при получении пользователем подтверждения связывания DL_BIND_ACK инициализация PPA завершилась успешно. Сообщение состоит из одного блока M_PROTO , который содержит значение адреса SAP, тип услуги и ряд других параметров, обсуждение которых выходит за рамки данной книги. |
DL_BIND_ACK | M_PCPROTO | Подтверждение получения запроса на связывание. Этот примитив отправляется пользователю услуг и означает, что поток был связан с адресом SAP и был активизирован. Сообщение состоит из одного блока M_PCPROTO , в частности, содержащего значение адреса SAP. |
DL_ATTACH_REQ | M_PROTO | Запрос на подключение к PPA. Этот примитив инициируется пользователем услуг уровня канала данных и запрашивает у поставщика ассоциацию потока с указанной PPA. Этот запрос является необходимым для поставщика второго типа (style 2) для указания физической среды, по которой будут передаваться данные. Сообщение состоит из одного блока M_PROTO , в котором пользователь передает значение идентификатора PPA. Формат этого идентификатора определяется поставщиком. Пользователь должен указать, как минимум, физическую среду передачи. Для сетей, где несколько независимых каналов передачи мультиплексируются в одном физическом носителе, идентификатор также должен содержать информацию о конкретном канале передачи данных. Примером технологий, обеспечивающих такое мультиплексирование являются ISDN (каналы В и D) и ATM (коммутируемые и постоянные виртуальные каналы – SVC и PVC). |
DL_INFO_REQ | M_PCPROTO | Запрос на получение параметров потока. Этот примитив служит для запроса пользователем значений размеров различных параметров потока, активизированного поставщиком DLPI, а также информации о текущем состоянии интерфейса. Сообщение состоит из одного блока M_PCPROTO . |
DL_INFO_ACK | M_PCPROTO | Параметры транспортного протокола. Этот примитив служит для передачи пользователю ранее запрошенных с помощью DL_INFO_REQ параметров. Сообщение состоит из одного блока M_PCPROTO , содержащего информацию, часть из которой приведена ниже: dl_max_sdu – определяет максимальное число октетов данных пользователя, которое может быть передано в одном кадре. (Максимальный размер SDU поставщика услуг.) dl_min_sdu – определяет минимальный размер SDU. dl_addr_length – определяет максимальную длину адреса DLSAP поставщика. Этот адрес, помимо адреса SAP может также включать физический адрес интерфейса и ряд других полей (иерархический адрес). dl_addr_offset – указывает смещение адреса DLSAP в блоке M_PCPROTO . dl_mac_type – указывает тип среды передачи, поддерживаемой потоком DLPI. См. значение поля mac_type структуры DL_sap_t ранее в этой главе. dl_current_state – указывает текущее состояние потока. dl_service_mode – определяет тип услуги, обеспечиваемой потоком DLPI. dl_provider_style – определяет тип поставщика услуг (style 1 или style 2). dl_brdcst_addr_length – определяет размер физического широковещательного адреса. dl_brdcsr_addr_offset – указывает смещение значения адреса DLSAP в блоке M_PCPROTO . |
DL_UNITDATA_REQ | M_PROTO | Запрос на передачу данных. Этот примитив применим только для услуг уровня канала данных без предварительного установления связи и отправляется пользователем услуг в качестве запроса на передачу кадра. Сообщение состоит из одного блока M_PROTO , за которым может следовать один или несколько блоков типа M_DATA , содержащих данные пользователя. Блок M_PROTO содержит значения размера адресов и сам адрес получателя кадра, а также приоритет из диапазона, определенного поставщиком. |
DL_UNITDATA_IND | M_PROTO | Индикация получения данных. Этот примитив применим только для услуг уровня канала данных без предварительного установления связи и указывает пользователю, что поставщиком услуг получен кадр от удаленного узла. Сообщение состоит из одного блока M_PROTO , за которым может следовать один или несколько блоков типа M_DATA , содержащих данные пользователя. Блок M_PROTO содержит значения адресов отправителя и получателя кадра. |
DL_OK_ACK | M_PCPROTO | Положительное подтверждение. Этот примитив сообщает пользователю услуг уровня канала данных, что предшествующий примитив, инициированный им, был успешно принят поставщиком услуг. Примитив DL_OK_ACK передается только для примитивов, нуждающихся в подтверждении. |
DL_ERROR_ACK | M_PCPROTO | Сообщение об ошибке. Этот примитив сообщает пользователю услуг, что последний примитив, инициированный им, вызвал ошибку. Получение этого примитива может рассматриваться как отрицательное подтверждение, свидетельствующее, что никаких действий, связанных с ошибочным примитивом, не было предпринято. Сообщение состоит из одного блока M_PCPROTO , содержащего тип примитива, вызвавшего ошибку, код DLPI и, если возможно, код системной ошибки UNIX. |
DL_UDERROR_IND | M_PROTO | Сообщение об ошибке кадра. Этот примитив применим только для услуг уровня канала данных без предварительного установления связи и указывает пользователю, что его запрос на передачу DL_UNITDATA_REQ вызвал ошибку и не может быть выполнен. Сообщение состоит из одного блока M_PROTO , содержащего размер адреса и сам адрес получателя, а также код ошибки. |
Заключение
В этой главе описана организация сетевой поддержки UNIX. Рассмотрение не выходило за рамки обсуждения семейства протоколов TCP/IP, хотя архитектура сетевого доступа операционной системы позволяет обеспечить поддержку практически любых протоколов. В этом отношении большей гибкостью обладает сетевая подсистема UNIX System V, основанная на архитектуре STREAMS.
Хотя стандартная спецификация протоколов гарантирует совместимость между системами различных разработчиков и производителей, на эффективность и производительность сетевой подсистемы оказывает существенное влияние конкретная реализация алгоритмов. Этот аспект особенно актуален для протокола транспортного уровня – TCP. Безусловно, работа сетевой подсистемы также существенным образом зависит от оптимальной настройки, но этот вопрос, к сожалению, находится за пределами этой книги. Однако сегодня уже недостаточно просто связи с удаленным хостом, и материал этой главы может помочь обеспечить требуемое качество этой связи.
В главе также описан программный интерфейс сетевого доступа. В частности, был рассмотрен пример использования сокетов для межпроцессного взаимодействия не только в рамках одного компьютера, но и в распределенной сетевой инфраструктуре.
Во второй части главы была описана внутренняя архитектура сетевых подсистем в BSD UNIX и UNIX System V. Хотя эти вопросы наиболее интересны разработчикам драйверов и других подсистем ядра, более пристальный взгляд на взаимодействие компонентов операционной системы может помочь и администраторам в решении их проблем, и пользователям в оценке качества работы их систем для уверенного обсуждения этой темы с системным администратором.
Приложение А
Электронный справочник man(1)
Многообразие команд и утилит UNIX, обилие ключей или опций к ним, особенности применения и формат тех или иных системных вызовов и функций могут озадачить неискушенного пользователя. К счастью, в UNIX имеется электронный справочник, позволяющий быстро получить исчерпывающую информацию по интересующей команде или функции, формату файла или типам данных. Воспользоваться этим справочником так же просто, как и любой другой утилитой UNIX. Для этого в командной строке нужно ввести man
с названием команды или функции, о которой вы хотели бы получить информацию. Например, введя $ man man
, вы узнаете как пользоваться справочником.
Весь справочный материал разбит на разделы, порядок и названия которых различны для разных версий операционной системы. В таблице, приведенной ниже, перечислены традиционные разделы и их названия (чаще всего, это просто номер) для двух основных ветвей UNIX: BSD и System V.
Прикладные утилиты | 1 | 1 |
Системные вызовы | 2 | 2 |
Библиотечные функции | 3 | 3 |
Специальные файлы, драйверы устройств и аппаратное обеспечение | 4 | 7 |
Форматы различных конфигурационных и системных файлов | 5 | 4 |
Всякая всячина, например, типы файловых систем, определение типов данных и т.д. | 7 | 5 |
Административные утилиты | 8 | 1M |
Некоторые разделы справочника могут иметь подсекции, содержимое которых можно уточнить, прочитав введение к соответствующему разделу. Например, в операционной системе Solaris 2.x для вывода содержания раздела «Библиотечные функции» необходимо задать следующую команду:
$ man -s3 intro
Явное указание раздела понадобится и в том случае, когда по заданному ключевому слову имеются статьи в различных разделах. Например, для слова passwd имеются статьи в разделе 1 (команда passwd(1) для изменения пароля пользователя) и в разделе 4 (формат файла паролей passwd(4)). Просматривая статью, обязательно прочитайте абзац с названием «SEE ALSO» в котором приведены названия статей справочника, имеющие отношение к интересующей вас тематике.
Приложение Б
Дополнительная информация об операционной системе UNIX
Книги
Б. Керниган, P. Пайк. UNIX-универсальная среда программирования.//Пер. с англ. M.: Финансы и статистика, 1992. Прекрасная книга, написанная людьми, принимавшими непосредственное участие в создании этой операционной системы. Книга окажется интересной как для пользователей, так и для программистов и администраторов системы. Несмотря на относительно небольшой объем, книга позволяет достаточно основательно изучить эту операционную систему.
Bach M. The Design of the UNIX Operating System. Englewood Cliffs, NJ: Prentice-Hall, 1986. Долгое время эта книга являлась практически единственным полным описанием внутренней архитектуры UNIX. Хотя материал, представленный в книге, основан на системе UNIX System V Release 2, большинство положений остаются справедливыми и сегодня.
M. Банахан, Э. Раттер. Введение в операционную систему UNIX.//Пер. С англ. M.: Радио и связь, 1986. Одна из немногих книг по UNIX на русском языке. Изданная на английском языке в 1982 году, книга в значительной степени устарела. В основном предназначена тем, кто приступает к использованию UNIX.
P. Готье. Руководство по операционной системе UNIX.//Пер. с англ. M.: Финансы и статистика, 1985. Книга во многом копирует электронный справочник man, хотя и содержит ряд любопытных примеров по использованию тех или иных утилит. В книге также содержится ряд практических рекомендаций для системного администратора. Несомненным достоинством является то, что книга написана на русском языке.
Leffler S., McKusick M.K., Karels M.J., Quarterman J.S. The Design and Implementation of the 4.3BSD UNIX Operating System. Reading, MA: 1989. Книга написана группой разработчиков этой версии операционной системы. В книге детально обсуждается внутренняя архитектура ядра и принцип работы системы UNIX. Прекрасная возможность получить информацию о UNIX «из первых уст».
Vahalia, U. UNIX Internals: the New Frontiers. UpperSaddle River, NJ: Prentice Hall, 1996. В книге сравниваются принципы организации и функционирования нескольких современных версий UNIX (SVR4.X, Solaris, Digital UNIX, 4.4BSD, Mach и OSF/1). В книге нашли свое отражение последние достижения в разработке операционных систем семейства UNIX.
Pate S.D. UNIX Internals. A Practical Approach. Addison Wesley Longman Ltd., 1996. Книга написана сотрудником компании Santa Cruz Operation, Inc. и посвящена архитектуре ядра операционной системы UNIX. Хотя весь материал основан на версии UNIX SCO OpenServer, большая часть положений справедлива и для других современных систем. Большое количество иллюстраций и практических примеров позволяет проникнуть в тайны ядра UNIX.
Stevens, W.R. Advanced Programming in the UNIX Environment. Reading, MA:Addison-Wesley, 1992. Наиболее полное описание программного интерфейса операционной системы UNIX. Книга содержит много примеров и служит прекрасным пособием разработчикам программного обеспечения для этой операционной системы.
Stevens, W.R. UNIX Network Programming. Englewood Cliffs, NJ: Prentice Hall, 1990. Прекрасное руководство для программистов в области сетевых технологий. Многочисленные примеры позволяют проверить положения книги на практике.
Информация в Internet
Официальный сервер UNIX (http://www.rdg.opengroup.org/unix/). В этом разделе сервера группы The Open Group, собственностью которой является зарегистрированный знак UNIX, вы можете ознакомиться с различными спецификациями, имеющими отношение к этому семейству операционных систем. В частности, здесь вам предложат программное обеспечение Report, позволяющее проверить насколько тексты написанной вами программы удовлетворяют стандартам и требованиям переносимости.
Компания Santa Cruz Operation, Inc. (http://www.sco.com/). На сервере этой фирмы-производителя коммерческих версий операционной системы UNIX – SCO OpenServer SCO и UnixWare, вы можете ознакомиться с каталогом предлагаемого программного обеспечения, новинками и предложениями от SCO. Здесь же вы узнаете, как получить бесплатную версию систем OpenServer и UnixWare для некоммерческого использования. Обширный раздел сервера посвящен разработчикам программного обеспечения.
Сервер компании Silicon Graphics, Inc. (http://www.sgi.com/). Если вы счастливый обладатель рабочей станции, сервера или суперкомпьютера фирмы Silicon Graphics, вы наверняка частый гость на этом сервере. Здесь представлен материал о собственной версии операционной системы UNIX, получившей название IRIX. Сегодня эта операционная система работает на компьютерах Silicon Graphics и считается одной из самых мощных.
Информационный центр DIGITAL UNIX (http://www.unix.digital.com/). Этот сервер компании Digital Equipment Corporation посвящен операционной системе DIGITAL UNIX, предназначенной для рабочих станций и серверов на базе процессоров Alpha. Здесь вы ознакомитесь с новейшими достижениями компании, найдете полезный материал по операционной системе DIGITAL UNIX, а также сможете скопировать ряд программных продуктов.
Программное обеспечение для серверов RS/6000 (http://www.rs6000.ibm.com/software/). Крупнейший производитель компьютеров и программного обеспечения к ним, фирма IBM на этом сервере представляет собственную версию операционной системы UNIX – AIX 4.x и разнообразные приложения, разработанные для нее.
Сервер компании Berkeley Software Design, Inc. (http://www.bsdi.com/). Эта компания является поставщиком операционной системы BSDI, изначально разработанной в Калифорнийском университете Беркли. На этом сервере вам предложат новинки программного обеспечения, часть из которых можно скопировать на собственный сервер. Здесь вы имеете возможность лучше ознакомиться с этой версией UNIX, по праву являющейся одним из лидеров в области сетевых операционных систем.
FreeBSD (http://freebsd.org). На этом сервере вы найдете ответы на все вопросы, связанные с операционной системой FreeBSD. Эта система разработана и поддерживается большой группой энтузиастов, познакомиться с которыми вы также сможете на этом сервере. Система включает все возможности BSD UNIX и к тому же является совершенно бесплатной. Если у вас дома имеется персональный компьютер, подключенный к Internet, вы сможете установить систему по сети. После этого возвращайтесь на сервер и расширяйте возможности вашей рабочей станции, устанавливая дополнительное программное обеспечение.
OpenBSD (http://openbsd.org). Здесь вы познакомитесь с проектом OpenBSD, направленным на разработку свободно распространяемой системы OpenBSD, в основе которой лежит версия UNIX 4.4BSD. Последняя версия системы OpenBSD 2.1 была выпущена участниками проекта 2 июня 1997 года. Посетите этот сервер и вы узнаете, как получить и установить эту систему.
NetBSD (http://www.netbsd.org). Еще один проект, посвященный разработке свободно распространяемой системы ветви BSD UNIX. Здесь вы узнаете о целях проекта, его истории и участниках, а также получите практические советы, как получить дистрибутив операционной системы, установить ее и использовать в своей работе.
UNIXhelp for Users (http://www.winterweb.com/UNIX/). Полезный справочный материал по UNIX, созданный в Университете Эдинбурга, Великобритания. Здесь вы можете найти советы по работе в операционной системе, например по настройке пользовательского окружения или управлению задачами. Вы также ознакомитесь с основными концепциями UNIX, а также с правилами применения основных команд и утилит. Если online-доступ к этой информации кажется вам слишком медленным, вы сможете переписать и установить электронную версию справочника на собственном компьютере.
Sun World Online (http://www.sun.com/sunworldonline/). В этом разделе сервера компании Sun Microsystems вы найдете электронные версии журнала SunWorld. Краткие обзоры и аналитические статьи, посвященные различным аспектам, связанным с операционной системой Solaris и UNIX вообще, рекомендации экспертов и советы для начинающих, все это вы встретите на страницах журнала. Вы можете оформить подписку и получать по электронной почте уведомления о новых номерах журнала (на англ. яз.).
Журнал UnixWorld (http://www.unixworld.com/unixworld/). Здесь вы сможете ознакомиться с электронным журналом UnixWorld, материалы которого содержат практические рекомендации для начинающих пользователей, экспертов и системных администраторов различных версий операционной системы UNIX.
Вопросы и ответы по операционной системе Solaris (http://zaphod.cs.uni-sb.de/Corner/soIaris2.html). Если у вас возникла проблема, загляните в раздел «Вопросы и ответы» сервера.
Сервер FreeBird (http://www.freebird.org). Сервер в основном посвящен операционной системе SCO UnixWare, и конечно содержит информацию полезную для пользователей других версий UNIX. На этом сервере вы можете заглянуть в онлайн страницы электронного справочника man, скопировать разнообразное программное обеспечение, познакомиться с телеконференциями, посвященными UNIX и многое другое.
Unix Guru Universe (http://www.ugu.com). Этот сервер по праву называется официальным сервером системных администраторов UNIX. По количеству справочного материала, практических рекомендаций, программного обеспечения, ссылок на другие ресурсы, имеющие отношение к UNIX, этот сервер не имеет себе равных.
Ресурсы UNIX (http://wwwhost.cc.utexas.edu/cc/services/unix/index.html).Прекрасный сервер Университета штата Техас, созданный в рамках проекта ACITS (Academic Computing and Instructional Technology Services). Ha этом сервере вы сможете воспользоваться электронными версиями документации и руководств, найти различные ресурсы, связанные с вопросами безопасности, сетевой поддержки, программного обеспечения.
Защита данных (http://voyager.crrel.usace.army.mil/~pete/security.html). На
сервере вы найдете информацию по различным аспектам защиты данных в операционной системе UNIX, начиная с советов по выбору паролей и заканчивая практическими рекомендациями по защите вашей системы от несанкционированного доступа.
Координационный центр CERT (http://www.cert.org/). Это официальный сервер Координационного центра группы быстрого реагирования по компьютерной безопасности CERT (Computer Emergency Responce Team). Здесь вы получите исчерпывающие ответы на вопросы об истории CERT, целях и задачах этой организации, а также узнаете, как улучшить защищенность вашей системы от несанкционированного доступа.
Электронная библиотека документации по SCO UNIX (http://www2.sco.com:1996/dochome.html). На этом сервере расположены электронные гипертекстовые версии документации по операционным системам SCO UNIX. Прекрасный источник информации для пользователей SCO UNIX.
JefPs UNIX Vault (http://www2.shore.net/~jblaine/vault). Прекрасная коллекция ссылок на ресурсы Internet, связанные с операционной системой UNIX.
Домашняя страница Ричарда Стевенса (http://www.kohala.com/~rstevens). Если вы хотите познакомиться с автором замечательных книг по программированию в UNIX Ричардом Стевенсом, посетите его домашнюю страницу. Здесь вы найдете полную библиографию его книг с аннотациями и содержанием, а также большое количество ссылок на другие источники информации по операционной системе UNIX.
Зеркальный сервер компании SCO (ftp://ftp.olly.ru/). На сервере Санкт-Петербургской фирмы OLLY представлен большой объем справочной информации, драйверов, условно бесплатного программного обеспечения для операционных систем компании Santa Cruz Operation, Inc., включая зеркальные копии многих разделов сервера ftp.sco.comftp.sco.com .
Книги и документация по UNIX на русском языке (http://pluto.xTech.RU/Russian/Unix-Doc/). На сервере Новосибирского института систем информатики представлены переводы книг M. Баха «Архитектура операционной системы UNIX», M. Уэлша «Инсталляция Linux и первые шаги», а также некоторые разделы электронного справочника man.