Непрерывное размещение - простейший вариант физической организации (рисунок 4.4. а), при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.
Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 4.4. б ). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в
одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программ! • читают данные блоками, размер которых равен степени двойки.
1 | |
4 | 2 |
3 | |
6 | : |
9 | 6 7 |
8 | |
- | 9 |
3 | в | я | ||
1 | ||||
2 | ||||
3 | ||||
4 | ||||
5 | ||||
6 | ||||
7 |
г) |
1 |
Облестъ j индексов |
3 4 |
Файл2,4.5.7 |
69 10 |
Рис. 4.4. Физическая организация файла а - непрерывное размещение; б - связанный список блоков: в - связанный список индексов; г - перечень номеров блоков
Популярным способом, используемым, например, в файловой системе FATоперационной системы MS-DOS. является использование связанного списка
г
индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOSэто таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.
Определить права доступа к файлу - значит определить для каждого пользователя набор операций, которые он может применить к данному файлу. В разных файловых системах может быть определен свой список дифференцируемых операций доступа. Этот список может включать следующие операции:
• создание файла,
• уничтожение файла,
• открытие файла.
• закрытие файла,
• чтение файла,
• запись в файл,
• дополнение файла,
• поиск в файле,
• получение атрибутов файла.
• установление новых значений атрибутов,
• переименование,
• выполнение файла,
• чтение каталога,
• и другие операции с файлами и каталогами.
В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки - всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции (рисунок 4.5). В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIXвсе пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных.
Имела файлов
class.Л f |
Ч1ш: ppt |
пю dem.txt
kna |
выполнять |
выполнять
genya |
выполнять |
выполнять читать
о |
nataly |
выполнять читать
victor |
сиздать |
читать писать
Рис. 4.5. Матрица прав доступа
Различают два основных подхода к определению прав доступа:
1. избирательный доступ, когда для каждого файла и каждого пользователя сам владелец может определить допустимые операции:
2. мандатный подход, когда система наделяет пользователя определенными правами по отношению к каждому разделяемому ресурсу (в данном случае файлу) в зависимости оттого, к какой группе пользователь отнесен.
По сравнению с Windows® и большинством других операционных систем, в GNU/Linuxработа с файлами организована совсем по-другому. Основные различия являются прямым следствием того факта, что Linux- это многопользовательская система: каждый файл является исключительной собственностью одного пользователя и одной группы. Еще один момент о пользователях и группах, который мы не упомянули, состоит в том, что каждый из них владеет личным каталогом (называемым домашним каталогом). \ 1ользователь является владельцем этого каталога и всех создаваемых в нем файлов. С ними также ассоциируется группа, которая является основной группой, к которой принадлежит пользователь. Пользователь может быть членом нескольких групп одновременно. Как владелец файла, пользователь может устанавливать права на файлы. Эти нрава распределяю геи между тремя категориями пользователей: владельцем файла; всеми пользователями, являющимися членами группы, ассоциированной с файлом (также называемой группой владельца), но не являющимися владельцами; и остальными, куда входят все остальные пользователи, которые не являются ни владельцами, ни членами группы владельца.
Существует три разновидности прав:
1. Права на чтение(Read,г): пользователю разрешается читать содержимое файла. По отношению к каталогу это означает, что пользователь может просмотреть его содержимое (т.е. список файлов этого каталога).
2. Права на запись (Write, w): разрешает изменять содержимое файла. По отношению к каталогу право на запись дает пользователю возможность добавлять или удалять файлы из этого каталога, даже если он не является владельцем этих файлов.
3. Права на выполнение(eXecute, х): разрешает запуск файла (обычно только исполняемые файлы имеют этот тип прав доступа). По отношению к каталогу это дает пользователю возможность проходить его, что означает войти в этот каталог или пройти сквозь него. Обратите внимание, что это отличается от доступа на чтение: вы в состоянии пройти через каталог, но прочитать его содержимое все-таки не можете!
Возможны любые комбинации этих прав. Например, вы можете разрешить только чтение файла для себя и запретить доступ для всех других пользователей. Как владелец файла вы также можете изменить его группу (только если вы член устанавливаемой группы).
Ниже представлено выполнение команды Is-I в командной строке: Is-I total1
-rw-r---- 1 queen users 0 Jul 8 14:11 a_file
drwxr-xr— 2 peter users 1024 Jul 8 14:11 adirectory/
Результаты выполнения командыIs -I(слева направо):
• Первые десять символов представляют тип файла и назначенные ему права. Первый символ - это тип файла: если это обычный файл, вы увидите тире (-). Если это каталог, крайним левым символом будет d. Существуют и другие типы файлов, которые мы обсудим позже. Следующие девять символов представляют собой права доступа для данного файла. Эти девять символов на самом деле являются тремя группами из трех прав. Первая группа представляет права владельца файла; следующие три символа касаются всех пользователей, принадлежащих к группе владельца; и последние три символа относятся ко всем остальным. Знак тире (-) означает, что права доступа не установлены.
• Далее следует количество ссылок на файл. Позже мы увидим, что уникальный идентификатор файла - это не имя. а его номер (номер inode), и существует возможность иметь на диске несколько имен для одного файла. Для каталога количество ссылок имеет специальное значение, что также будет рассмотрено несколько позже.
• Следующая часть информации - это имя владельца файла и имя группы.