Первоначально сеть использовалась для передачи данных из одной машины в другую. Позже она развилась, давая возможность пользователям удаленно регистрироваться на другой машине. Следующим логическим шагом было перемещение данных к пользователю, вместо необходимости пользователю идти к данным - так родились сетевые файловые системы. Пользователи, работающие локально, не подвергаются сетевым задержкам при каждом нажатии на клавишу, таким образом они имеют более отзывчивое окружение.
Видимая пользователю часть файловой системы представляет собой ее иерархическое именование, блокировки, квоты, управление атрибутами и защиту. Но большая часть реализации файловой системы содержит организацию и управление данными на физическом носителе. За размещение содержимого файлов на физическом носителе отвечает файловое хранилище (filestore). FreeBSD использует традиционный формат быстрой файловой системы Беркли (Berkley fast filesystem). На диске организуются группы протяженных блоков, называемых группами цилиндров.
Системный вызов chown устанавливает владельца и группу файла, a chmod изменяет атрибуты прав доступа. Stat с именем файла может использоваться для получения свойств файла. Системные вызовы fchown, fchmod и fstat применяются для тех же операций с дескриптором, а не с именем файла. Системный вызов rename можно использовать, чтобы дать файлу в файловой системе новое имя, заменив одно из старых имен файла. Как и операции добавления и удаления каталогов, системный вызов rename был добавлен к 4.2BSD для обеспечения атомарности изменения имени в локальной файловой системе.
Процесс может установить свой корневой каталог с помощью системного вызова chroot, а свой текущий каталог с помощью системного вызова chdir. Любой процесс в любое время может вызвать chdir, но chroot разрешен лишь процессу с правами суперпользователя. Chroot обычно используется для ограничения доступа к системе.
Обычный файл является линейным массивом байтов, который может быть считан или записан, начиная с любого байта в файле. Ядро не различает границ записей в обычных файлах, хотя многие файлы распознают символы перевода строки как обозначающие концы строк, а другие программы могут устанавливать другую структуру. В самом файле не содержится никакой относящейся к системе информации о файле, но система хранит с каждым файлом небольшое количество сведений о владении, защите и использовании.
В дополнение к традиционным системным вызовам read и write 4.2BSD ввело возможность осуществления разбросанного ввода/вывода (scatter/gather I/O). Разбросанный ввод исполь использует системный вызов readv, чтобы дать возможность поместить результат одной операции чтения в несколько различных буферов. Наоборот, системный вызов writev дает возможность записать несколько буферов в одной неделимой операции записи.