|
Участник форума
Регистрация: 27.05.2007
Сообщений: 237
Провел на форуме: 2256445
Репутация:
767
|
|
Сетевые файловые системы.
Следствием качественной поддержки Linux’ом сетевых протоколов является такая же качественная поддержка сетевых файловых систем. Монтирование (и иногда экспорт) сетевой ФС является одной из немногих высокоуровневых операций, поддерживаемых ядром непосредственно (наиболее очевидно, что “сетевые блочные устройства” не претерпели существенных изменений в ядре 2.6. и они в основном используются в специализированных приложениях, в которых вы так или иначе работаете с ними как с подобием ФС). Все остальные сетевые операции вынесены в пользовательское пространство и не относятся к области разработчиков ядра.
В мире Linux и unix-клонов наиболее распространена сетевая ФС, метко названная Сетевая ФС (Network File System, NFS). NFS — это сложный протокол расшаривания файлов (общего использования), корни которого уходят в прошлое *nix. Основным транспортным протоколом может быть TCP и UDP, кроме этого необходимы несколько под-протоколов, каждый из которых выполняется поверх протокола RPC (Remote Procedure Call, удаленный вызов процедур).
В Linux 2.6. эта ФС получила множество изменений и дополнений. Среди них — экспериментальная поддержка нового и пока не распространенного протокола NFSv4 в реализации как клиентской, так и серверной части (предыдущие версии системы включали поддержку версий v2 и v3 этого протокола). Новая версия поддерживает более сильную и безопасную аутентификацию (с шифрованием), более интеллектуальную блокировку, псевдо-ФС и прочее. Не все возможности NFSv4 реализованы в Linux на сегодня, но имеющаяся поддержка довольно стабильна и может быть использована в коммерческих приложениях. Кроме этого реализация серверной части NFS усовершенствована в отношении масштабирования (вплоть до 64-кратного увеличения одновременно обслуживаемых пользователей и очередей запросов), завершенности (посредством поддержки обслуживания с помощью TCP, в дополнение к UDP), устойчивости (отдельные драйверы ФС могут адаптировать путь к файлу в системах, которые их экспортируют), сопровождаемости (вместо системных вызовов, управление ФС новым nfsd). Среди менее очевидных изменений — разделение lockd и nfsd, поддержка нуль-копии (zero-copy) сети на поддерживаемых интерфейсах.
Была усовершенствована поддержка томов root-ФС (для бездисковых систем).
Кроме улучшенной поддержки сетевых ФС в стиле *nix, Linux 2.6. принес множество усовершенствований сетевых ФС Windows-стиля. В Windows серверах (также как и в OS/2 и других ОС) стандартным протоколом “расшаривания” ФС является SMB (Server Message Block), и все последние версии Linux прекрасно поддерживают клиентскую часть этого протокола. Однако Windows 2000 опирается на новую надстройку этого протокола называемую CIFS (Common Internet Filesystem) . Цель такого существенного обновления состояла в упрощении и совершенствовании некоторых аспектов протокола SMB, что привело к окончательной путанице (сам протокол не был четко определен и часто расширялся, что стало причиной несовместимости даже между его реализациями в Windows 95/98/ME и WindowsNT/2000). CIFS призван добавить поддержку Unicode, улучшенную блокировку файлов, жесткие ссылки, устранить остатки зависимостей от NetBIOS и нескольких других возможностей для пользователей Windows. Так как пользователи Linux не любят сидеть в темноте подолгу, в ядро 2.6. включена полностью переписанная поддержка монтирования ФС CIFS. Linux 2.6. также поддерживает расширение протоколов SMB и CIFS, именуемое SMB-UNIX, которое позволяет ему посредством SMB-серверов, поддерживающих эти расширения (например Samba), получать доступ к файлам не-Windows типа (такими как узлы и символические ссылки).
Разработчики ядра не забыли и о пользователях Novell NetWare. Ядро 2.6. позволяет клиентам монтировать до 256 “шар” с одного тома NetWare, используя при этом встроенный драйвер ФС NCP (NetWare Core Protocol).
Linux 2.6. включает улучшенную поддержку относительно новых доменов сетевых ФС, систем, в которых файлы хранящиеся на одном логическом томе, могут быть распределены между несколькими узлами. Кроме представленной в Linux 2.4. ФС CODA, новое ядро включило некоторую поддержку еще двух распределенных ФС: AFS и InterMezzo. Поддержка AFS (Andrew FS) в настоящее время ограничена лишь операциями чтения. Вторая ФС, InterMezzo, также поддерживается начиная с ядра 2.6., но позволяет делать больше: например, предусмотрена операция разрыва соединения (таким образом вы работаете с кэшированными файлами локально), поэтому эту ФС можно использовать в приложениях высокой доступности, когда вам необходим постоянный гарантированный доступ к хранилищу (или имитация при отключении). InterMezzo также пригодна для использования в приложениях, нуждающихся в синхронизации файлов между несколькими компьютерами, такими, как ноутбуки, наладонники и ПК. Многие проекты обеспечивают поддержку этих типов ФС, позволяя Linux развивать их и дальше.
Безопасность
Наиболее существенное изменение заключается в том, что система безопасности, полностью обеспечиваемая ядром, была “модулирована” (опять же, от слова “модуль”) и стала одним из многих альтернативных модулей обеспечения безопасности (сегодня, однако, существует лишь одна модель системы защиты по умолчанию и пример, как создать собственную). Вследствие этого нововведения все части ядра были изменены, и теперь используют новую систему как базовую, в отличие от старой системы “суперпользователя”. Все Linux-системы и в дальнейшем будут иметь учетную запись суперпользователя, но при этом будет учитываться возможность ее отсутствия. Другим изменением в безопасности стало то, что исполняемые модули (например драйверы, поставляемые производителем оборудования) теперь не могут “перегружать” системные вызовы по собственному усмотрению, а также не смогут модифицировать таблицу системных вызовов. Эти меры существенно ограничивают возможности модулей с не-окрытыми исходниками в ядре и, возможно, прикрывают некоторые юридические лазейки обхода GPL. Последнее изменение, относящееся к безопасности, — теперь Linux способен работать с аппаратными генераторами случайных чисел (присутствующих в некоторых современных процессорах), лучшими, чем основанный на энтропии пул (довольно хороший по общему признанию), базирующийся на случайных аппаратных флуктуациях.
Виртуализация Linux
Одно из интереснейших нововведений в Linux 2.6. — поддержка архитектуры “user mode” (непривилегированного режима). По существу это портирование Linux (как на различные аппаратные архитектуры), реализующее полностью виртуальную среду выполнения Linux-в-Linux. Новая инстанция Linux выполняется также как обычное приложение. Внутри приложения вы можете конфигурировать “псевдо” сетевые интерфейсы, ФС и другие устройства посредством специальных драйверов, которые безопасным образом связаны с головной копией Linux. Такой подход полезен как в задачах разработки (профилирование и прочее), так и для анализа системы безопасности и забавы ради. И хотя большинство пользователей не нуждаются в такой поддержке, все же это прикольная фича.
Collected by mr. p-s [481-715-981] for antichat.ru.
_______________________
В статье были использованы материалы:
© LinuxMagazine
© http://www.opennet.ru/
© Джозефа Праневича, перевод Death_Mokar.
|