BSD, Обзор, Файловая система

Сетевая файловая система - NFS

Первоначально сеть использовалась для передачи данных из одной машины в другую. Позже она развилась, давая возможность пользователям удаленно регистрироваться на другой машине. Следующим логическим шагом было перемещение данных к пользо­вателю, вместо необходимости пользователю идти к данным - так родились сетевые файловые системы. Пользователи, работающие локально, не подвергаются сетевым за­держкам при каждом нажатии на клавишу, таким образом они имеют более отзывчивое окружение.

Файловое хранилище

Видимая пользователю часть файловой системы представляет собой ее иерархическое именование, блокировки, квоты, управление атрибутами и защиту. Но большая часть реализации файловой системы содержит организацию и управление данными на физическом носителе. За размещение содержимого файлов на физическом носителе отвечает файловое хранилище (filestore). FreeBSD использует традиционный формат быстрой файловой системы Беркли (Berkley fast filesystem). На диске организуются группы протяженных блоков, называемых группами цилиндров.

Файловые системы BSD - Системные вызовы chmod chown

Системный вызов chown устанавливает владельца и группу файла, a chmod изменя­ет атрибуты прав доступа. Stat с именем файла может использоваться для получения свойств файла. Системные вызовы fchown, fchmod и fstat применяются для тех же операций с дескриптором, а не с именем файла. Системный вызов rename можно использовать, чтобы дать файлу в файловой системе новое имя, заменив одно из старых имен файла. Как и операции добавления и удаления каталогов, системный вызов rename был добавлен к 4.2BSD для обеспечения атомарности изменения имени в локальной файловой системе.

Файловые системы BSD (Часть 2)

Процесс может установить свой корневой каталог с помощью системного вызова chroot, а свой текущий каталог с помощью системного вызова chdir. Любой процесс в любое время может вызвать chdir, но chroot разрешен лишь процессу с правами суперпользователя. Chroot обычно используется для ограничения доступа к системе.

Файловые системы BSD (Часть 1)

Обычный файл является линейным массивом байтов, который может быть считан или записан, начиная с любого байта в файле. Ядро не различает границ записей в обычных файлах, хотя многие файлы распознают символы перевода строки как обозначающие концы строк, а другие программы могут устанавливать другую структуру. В самом файле не содержится никакой относящейся к системе информа­ции о файле, но система хранит с каждым файлом небольшое количество сведений о владении, защите и использовании.

Разбросанный ввод/вывод и поддержка нескольких файловых систем

В дополнение к традиционным системным вызовам read и write 4.2BSD ввело возможность осуществления разбросанного ввода/вывода (scatter/gather I/O). Разбросанный ввод исполь исполь­зует системный вызов readv, чтобы дать возможность поместить результат одной операции чтения в несколько различных буферов. Наоборот, системный вызов writev дает возмож­ность записать несколько буферов в одной неделимой операции записи.

RSS-материал