Linux - Алексей Стахнов
Шрифт:
Интервал:
Закладка:
• протокол данных маршрутизации RIP;
• протокол обмена нумерованными пакетами SPX (Sequenced Packet Exchange), гарантированная доставка;
• протокол Echo;
• протокол сообщений об ошибках;
• протокол обмена пакетами PEP (Packet Exchange Protocol);
• протокол сервисных объявлений SAP (Service Advertisement Protocol).
Существует программное обеспечение под Linux (Mars), выполняющее функции сервера NetWare, и программное обеспечение, выступающее клиентом для серверов NetWare. Также есть программное обеспечение под Linux, позволяющее маршрутизировать пакеты IPX.
Протокол AppleTalk
Протокол AppleTalk используется в сетях фирмы Apple. Реально, помимо компьютеров Apple, он не используется нигде. В операционной системе Linux существует поддержка этого протокола, что позволяет взаимодействовать с компьютерами Apple.
Протокол NetBIOS
Протокол, используемый фирмой Microsoft в своих продуктах.
Протокол DECnet
Группа сетевых продуктов фирмы DEC. Поддержка в операционной системе Linux этого протокола существует. Однако маловероятно, что вы столкнетесь с этим протоколом.
Стандарты в Интернете
Стандарты Интернета описаны в документах, известных как RFC (Request For Comments). В табл. 3.8 приведены некоторые стандарты.
Таблица 3.8. Список основных стандартов Интернета
Ссылки
• www.rfc-editor.org – сайт, посвященный RFC.
• Man-страница (встроенная страница помощи) arp – программы, работающей с ARP-таблицей.
Глава 4 Идеология файловой системы
Одним из столпов операционной системы является файловая система. От ее архитектуры, возможностей, надежности во многом зависит работоспособность операционной системы. Помимо продуманной «родной» файловой системы крайне желательно, чтобы была возможность также работать с другими наиболее распространенными файловыми системами (например, FAT 16/FAT 32). В этой главе мы подробно рассмотрим, что нам предлагает Linux.
История развития файловых систем Linux
Первоначально Linux разрабатывался как расширение операционной системы Minix, и было вполне логично взять от предшественника все, что можно, поскольку такое решение позволяло достаточно быстро пройти этап проектирования (ведь все уже и так разработано, надо было только создать соответствующий программный код). На тот момент (начало 1990-х, компьютеры на базе 386-го процессора считались мощными, в порядке вещей был жесткий диск емкостью 120 Мбайт) файловая система Minix была достаточно эффективна. Однако ее архитектурные ограничения (адреса блоков 16-битные, что ставит предел максимального объема файловой системы в 64 Мбайт, каталоги содержат записи с ограниченным размером, имя файла не должно превышать 14 символов) очень скоро вынудили разработчиков задуматься об альтернативной файловой системе. Была разработана «Extended File System» (Ext FS – расширенная файловая система), затем ее сменила в качестве стандартной «Second Extended File System» (Ext2FS – вторая расширенная файловая система). Сегодня практически завершена разработка следующей версии файловой системы Ext3 – с поддержкой журналирования. Существуют также и другие журналируемые файловые системы: ReiserFS (стандарт de-facto журналируемых файловых систем для серверов на базе Linux) и JFS от фирмы IBM. По всей видимости, в ближайший год будет произведен полный перевод Linux на журналируемую файловую систему. Пока же большинство системных администраторов используют файловую систему ReiserFS. Однако достаточно много аналитиков преде казывают большую вероятность использования системы JFS. Аргументы в ее пользу достаточно весомы: имя IBM, отлаженность, хорошая масштабируемость и надежность. Посмотрим, кто победит.
Файл
Ключевым понятием в операционной системе Linux является концепция файла. Практически все моменты, связанные с данными, в том или ином виде представляются в виде файла или операций с файлами. Для операционной системы Linux по большому счету, все равно, с каким устройством или процессом взаимодействовать – система работает с файлом. В результате получается весьма унифицированный интерфейс.
Типы файлов
Поскольку понятие файла применяется к достаточно разнородным вещам (файл как таковой, физические устройства, каталоги и т. п.), поневоле возникает разделение файлов на типы. В Linux существует шесть типов файлов:
• файл;
• каталог;
• файл устройства;
• канал (FIFO, PIPE);
• ссылка (link).
• сокет (Socket).
Файл
Содержит информацию в некотором формате. Для операционной системы – просто набор байтов. Вся интерпретация содержимого файла осуществляется прикладной программой.
Каталог
Каталоги являются элементами иерархического дерева. Любой каталог может содержать файлы и подкаталоги. Каталог – это файл, содержащий список записей. Каждая запись содержит номер индексного дескриптора и имя файла. Структуру записи см. в разд. «Физическая структура Ext2».
Файл устройства
В операционной системе Linux доступ к устройствам осуществляется через специальные файлы. Такой файл является точкой доступа к драйверу устройства. Существует два типа файлов устройств: символьные и блочные.
Символьный файл устройства используется для небуферизированного обмена данными с устройством – байт за байтом.
Блочный файл устройства используется для обмена с устройством блоками данных. Некоторые устройства имеют как символьный, так и блочный интерфейс.
Канал
Файлы этого типа используются для связи между процессами для передачи данных.
Ссылки
Индексный дескриптор может быть связан с несколькими именами файлов. Дескриптор содержит поле, хранящее число, с которым ассоциируется файл. Добавление ссылки заключается в создании записи каталога, где номер индексного дескриптора указывает на другой дескриптор, и увеличении счетчика ссылок в дескрипторе. При удалении ссылки ядро уменьшает счетчик ссылок и удаляет дескриптор, если этот счетчик станет равным нулю. Такие ссылки называются жесткими и могут использоваться только внутри одной файловой системы.
Так же существует еще один тип ссылок, называемый символической ссылкой. Эта ссылка содержит только имя файла. Так как символическая ссылка не указывает на индексный дескриптор, то возможно создание ссылок на файлы, расположенные в другой файловой системе. Эти ссылки могут указывать на файл любого типа, даже на несуществующий.
Сокет
Сокеты предназначены для взаимодействия между процессами. Часто используются для доступа к сети TCP/IP.
Владельцы файлов
Файлы в Linux имеют трех владельцев – собственно владельца, группу и прочих пользователей. Существует только один владелец, любое количество членов группы и все остальные, которые не входят в группу. Привилегия владения – одно из ключевых понятий в системе защиты операционной системы Linux.
Каждый тип владельца может (или не может) иметь право на чтение и/или запись и/или исполнение файла, владельцем которого он является. На основе этих трех групп владельцев можно построить политику прав доступа к файлам и каталогам, позволяющую достаточно надежно и непротиворечиво обезопасить операционную систему.
Как правило, права доступа к файлу изменяются от максимальных у владельца файла до минимальных (вплоть до полного отсутствия) у всех остальных. Устанавливать и изменять права доступа к файлу или каталогу могут только два пользователя – владелец файла и администратор системы (пользователь root). Изменить права доступа к файлу можно утилитой chmod.
Права доступа к файлам
Права доступа к файлу или к каталогу описываются тремя восьмеричными цифрами, самая левая из этой тройки – права владельца, средняя – права группы, правая – права всех остальных. Каждая из этих восьмеричных цифр представляет собой битовую маску из трех битов. Эти биты отвечают за права на (слева направо) чтение, запись и исполнение файла или каталога. Если установлена единица – доступ разрешен, если ноль – запрещен. Таким образом, права доступа к файлу, описанные цифрой 644, означают, что владелец может писать и читать файл, группа и остальные пользователи – только читать.
Посмотрим, что означает чтение, запись и выполнение файла с точки зрения функциональных возможностей.
• Чтение:
– возможность просмотра содержимого файла;
– возможность чтения каталога.
• Запись:
– возможность добавить или изменить файл;
– возможность удалять или перемещать файлы в каталоге.
• Выполнение:
– возможность запуска программы;
– возможность поиска в каталоге в комбинации с правом чтения.
Узнать о том, какие права доступа установлены к файлам и каталогам, можно, используя команду ls. Ниже приведен результат выполнения команды Is -l
В первой колонке представлены права доступа к файлу, во второй – количество жестких ссылок, в третьей – имя владельца файла, в четвертой – название группы владельца файла, в пятой – дата создания и в шестой – имя файла или каталога. В первой строке листинга вы видите ссылку на test (буква 1 в правах доступа обозначает, что это не файл, а ссылка). В последней строке листинга вы видите каталог t (буква d в правах доступа обозначает, что это каталог (directory), а не файл). Остальные строки листинга – файлы. В правах доступа вы видите десять символов. Первый слева – тип файла (файл, ссылка, каталог и т. п.). Следующие три символа – права доступа владельца файла: rwx – чтение, запись, исполняемость файла. Следующие символы, соответственно, права доступа группы и права доступа прочих.