Система NFS и организация работы с файлами в операционной системе UNIX
Хотя система NFS была разработана в целях ее применения в разнотипных файловых системах, на ее общий проект, применяемую терминологию и многие тонкости реализации протокола значительное влияние оказала организация оригинальной файловой системы UNIX. Проектировщики NFS, определяя смысл отдельных операций дистанционного доступа к файлам, приняли за основу организацию этой файловой системы. Поэтому, чтобы понять, как работает NFS, необходимо вначале изучить файловую систему UNIX. Найти и скачать adobe dreamweaver cs3 keygen
В главе 3 приведено краткое описание средств ввода/вывода, а в следующем разделе это описание дополнено. В этом разделе показано, как организовано хранение файлов в системе UNIX и как к ним предоставляется доступ, и это описание сосредоточено на тех понятиях и сведениях, которые в большей степени касаются NFS. В остальных разделах данной главы показано, что разработчики NFS позаимствовали многие идеи непосредственно из проекта файловой системы UNIX и адаптировали основные особенности ее конструкции с незначительными изменениями.
Для понимания работы системы NFS необходимо знать устройство оригинальной файловой системы UNIX, поскольку в системе NFS используется такая же терминология и организация файловой системы.
Хотя в данной главе упоминается оригинальная система UNIX, все эти понятия и термины относятся также и к системе Linux.
Обзор файловой системы UNIX
В настоящем разделе рассматриваются понятия, термины и конкретные сведения о файловой системе UNIX, относящиеся и к системе NFS, а в следующих разделах описано, как эти понятия реализованы в NFS.
Основные определения
С точки зрения пользователя, в системе UNIX файл определен как объект, состоящий из последовательности байтов. С теоретической точки зрения, файл UNIX может достигать произвольных размеров, но на практике размер файла ограничен объемом пространства, доступного на физическом запоминающем устройстве. Файлы UNIX могут расти динамически. Файловая система не требует предварительного объявления ожидаемого размера или распределения пространства. Размеры файла увеличиваются автоматически в соответствии с объемом данных, записанных в него приложением.
Формально в системе UNIX байты в файле нумеруются, начиная с нуля. В любой момент времени размер файла определяется как число находящихся в нем байтов. Файловая система UNIX обеспечивает произвольный доступ к любому файлу с использованием номеров байтов для указания адреса доступа. Она позволяет приложению перейти в файле к позиции любого байта и обратиться к данным в этой позиции.
Последовательность байтов без границ между записями
Каждые файл в системе UNIX представляет собой последовательность байтов; эта система не определяет для файла какую-либо дополнительную структуру, выходящую за пределы структуры самих данных. В частности, в системе UNIX нет такого понятия, как границы между записями, блокировка записей, индексированные файлы или типизированные файлы, как в других системах. Безусловно, в приложении имеется возможность создать файл, состоящий из записей, а затем обращаться к этим записям. Основная идея здесь состоит в том, что сама файловая система не предусматривает структуризации содержимого файла: формат файла должны определять приложения, в которых он используется.
Идентификаторы владельца и группы файла
В системах UNIX предусмотрено применение учетных записей для пользователей, и каждому пользователю присвоен числовой идентификатор пользователя, который служит для учета выполняемых им действий и проверки прав во всей системе. Каждый файл имеет одного владельца, обозначенного числовым идентификатором пользователя, который создал этот файл. Информация о том, кому принадлежит файл, хранится вместе с файлом (т.е. в самом файле, а не в системе каталогов).
Кроме доступа к файлу по принципу указания идентификатора пользователя, в системе UNIX предусмотрен совместный доступ к файлам в составе групп пользователей, что дает возможность системному администратору создавать подмножества пользователей, обозначенных числовым идентификатором группы. Любой пользователь в любое время может принадлежать к одной или нескольким группам. После вызова пользователем на выполнение прикладной программы (например, программы для работы с электронными таблицами или текстового редактора) работающая программа наследует идентификаторы пользователя и его группы. Каждый файл принадлежит к определенной группе, и числовой идентификатор его группы хранится вместе с ним. Операционная система сравнивает идентификаторы пользователя (владельца файла) и группы, хранящиеся в файле, с идентификаторами пользователя и группы конкретного прикладного процесса для определения того, какие операции данная программа может выполнить с файлом.