Операционная система UNIX
Операционная система UNIX читать книгу онлайн
Книга посвящена семейству операционных систем UNIX и содержит информацию о принципах организации, идеологии и архитектуре, объединяющих различные версии этой операционной системы.
В книге рассматриваются: архитектура ядра UNIX (подсистемы ввода/вывода, управления памятью и процессами, а также файловая подсистема), программный интерфейс UNIX (системные вызовы и основные библиотечные функции), пользовательская среда (командный интерпретатор shell, основные команды и утилиты) и сетевая поддержка в UNIX (протоколов семейства TCP/IP, архитектура сетевой подсистемы, программные интерфейсы сокетов и TLI).
Для широкого круга пользователей.
Внимание! Книга может содержать контент только для совершеннолетних. Для несовершеннолетних чтение данного контента СТРОГО ЗАПРЕЩЕНО! Если в книге присутствует наличие пропаганды ЛГБТ и другого, запрещенного контента - просьба написать на почту [email protected] для удаления материала
Функции
pr_input()pr_output()pr_ctlinput()pr_ctloutput()mbufmbufПоле
pr_flagsPR_CONNREQUIREDPR_WANTRCVDЗаметим, что каждый модуль протокола имеет собственные очереди сообщений, используемые для приема и передачи данных.
Каждый сетевой интерфейс системы представлен структурой данных, показанной на рис. 6.23. Сетевой интерфейс обычно связан с соответствующим сетевым адаптером, хотя это не является обязательным условием. Например, внутренний сетевой интерфейс loopback представляет собой псевдоустройство, используемое для унифицированного взаимодействия сетевых процессов в рамках одного хоста, отладки и т.п.

Рис. 6.23. Сетевой интерфейс
Решение об использовании того или иного сетевого интерфейса для передачи сообщения базируется на таблице маршрутизации и производится модулем сетевого уровня. Интерфейс может обслуживать протоколы различных коммуникационных доменов. Соответственно, один и тот же интерфейс может иметь несколько адресов, определенных для каждого семейства протоколов. Структуры, определяющие локальный и широковещательный (broadcast) адреса интерфейса, а также сетевую маску, хранятся в виде связанного списка.
Каждый сетевой интерфейс имеет очередь, в которую помещаются сообщения для последующей передачи, выполняемой функцией
if_output()if_init()if_reset()if_watchdog()Состояние интерфейса характеризуется флагами, хранящимися в поле
if_flagsТаблица 6.8. Состояния интерфейса
| Флаг | Значение |
|---|---|
IFF_UP | Интерфейс доступен для использования |
IFF_BROADCAST | Интерфейс поддерживает широковещательные адреса |
IFF_MULTICAST | Интерфейс поддерживает групповые адреса |
IFF_DEBUG | Интерфейс обеспечивает возможность отладки |
IFF_LOOPBACK | Программный внутренний интерфейс |
IFF_POINTOPOINT | Интерфейс для канала точка-точка |
IFF RUNNING | Ресурсы интерфейса успешно размещены |
IFF_NOARP | Интерфейс не использует протокол трансляции адреса |
Флаг
IFF_UPIFF_BROADCASTifa_broadaddrifaddrIFF_POINTOPOINTifa_dstaddrifa_broadaddrifa_dstaddrIFF_RUNNINGСостояние интерфейса и ряд других параметров можно просмотреть с помощью команды ifconfig(1M):
$ <b>ifconfig le0</b>le0: flags=863<UP,BROADCAST,RUNNING,MULTICAST> mtu 1500 inet 194.85.160.50 netmask: ffffff00 broadcast 194.85.160.255Легко заметить, что команда выводит значение следующих полей структуры
ifnetle0if_nameif_flagsif_mtuinetifa_addrnetmaskifa_netmaskbroadcastifa_broadaddrИнтерфейс хранит статистическую информацию, которая может быть использована при мониторинге сети. В частности, эта информация включает число полученных пакетов уровня канала (
if_ipacketsif_ierrorsif_opacketsif_oerrorsif_collisions
