русс | укр

Языки программирования

ПаскальСиАссемблерJavaMatlabPhpHtmlJavaScriptCSSC#DelphiТурбо Пролог

Компьютерные сетиСистемное программное обеспечениеИнформационные технологииПрограммирование

Все о программировании


Linux Unix Алгоритмические языки Аналоговые и гибридные вычислительные устройства Архитектура микроконтроллеров Введение в разработку распределенных информационных систем Введение в численные методы Дискретная математика Информационное обслуживание пользователей Информация и моделирование в управлении производством Компьютерная графика Математическое и компьютерное моделирование Моделирование Нейрокомпьютеры Проектирование программ диагностики компьютерных систем и сетей Проектирование системных программ Системы счисления Теория статистики Теория оптимизации Уроки AutoCAD 3D Уроки базы данных Access Уроки Orcad Цифровые автоматы Шпаргалки по компьютеру Шпаргалки по программированию Экспертные системы Элементы теории информации

ФАЙЛОВАЯ СИСТЕМА UNIX


Дата добавления: 2013-12-23; просмотров: 924; Нарушение авторских прав


Файловая система организует хранение и обработку файлов – поименованных областей данных на внешних носителях. Файлы по каким-либо признакам объединяются в каталоги. Файловая система UNIX организована в виде дерева с вершиной, которая называется корневым каталогом (корнем).

Имена файлов могут содержать любые символы, за исключением пробела, управляющих символов и символов, имеющих специальное значение для командной оболочки системы:

! @ # $ % ^ & * ( ) [ ] { } ’ \ / | ; ? ” < >

Имя файла, в частности, может содержать любое количество точек, например: libXIE.so.6.0

Строчные и прописные буквы в именах файлов различаются. Максимальная длина имени файла определяется значением системной переменной NAME_MAX, описанной в файле заголовков limits.h. Обычное ее значение для современных версий UNIX – 255 символов.

Файл полностью идентифицируется указанием пути к нему – последовательности каталогов, начиная от корневого. Отдельные каталоги в пути отделяются символом «/», например: /usr/local/samba/config/smb.conf

Помимо такого абсолютного имени файла можно использовать и относительное, когда путь задается относительно некоторого каталога, являющегося текущим. Получить имя текущего каталога можно с помощью команды pwd, а изменить – командой cd, например: cd /root

В результате выполнения команды текущим каталогом будет каталог /root.

Все каталоги, кроме корневого, содержат по крайней мере два входа, обозначающие текущий каталог и родительский каталог.

Эти имена можно использовать при задании пути к файлу: ../lib/libXIE.so.6.0 ./main_program

Каждый файл может иметь несколько имен (жестких связей), которые совершенно равноправны и могут быть зарегистрированы в различных каталогах. Связи файла устанавливаются командой ln.

ОС UNIX поддерживает следующие типы файлов:



– Обычные файлы. Используются для хранения данных.

– Каталоги. Содержат списки файлов.

– Специальные байтоориентированные файлы. Используются в качестве канала для доступа к периферийным устройствам, обмен с которыми производится последовательно, побайтно. Буферизация ввода-вывода отсутствует.

– Специальные блокоориентированные файлы. Используются в качестве канала для доступа к периферийным устройствам, обмен с которыми производится поблочно. В частности, это дисковые накопители. Обычно применяют блоки размером 1024 байта, а обмен с устройствами производится фрагментами длиной, кратной размеру блока. В обязательном порядке используется кэширование по чтению и записи.

– Специальные FIFO-файлы (коммуникационные файлы, поименованные программные каналы). Представляют собой очереди в адресном пространстве ядра ОС, через которые могут обмениваться данными процессы, не являющиеся родственниками.

– Специальные сокет-файлы. Представляют собой очереди в адресном пространстве ядра ОС, через которые могут обмениваться данными процессы, использующие интерфейс сокетов в области AF_UNIX (внутри одной системы UNIX).

– Символические ссылки. Файлы, содержащие пути к другим файлам и косвенно адресующие их (мягкие связи, устанавливаемые командой ln -s).

Поскольку UNIX является многопользовательской системой, права доступа к файлам регламентируются и проверяются при каждом обращении к ним. Выделяют три типа операций над файлами: чтение, запись, выполнение. Для каталога право на выполнение означает право на поиск в каталоге. Все операции с каталогами производятся только операционной системой.

Права на доступ к файлу регламентируются для следующих категорий пользователей: владелец файла; член группы владельца файла; все остальные пользователи.

Соответственно файл принадлежит своему владельцу и одной из групп, в которую он входит. Полную информацию о правах доступа к файлам в каталоге можно получить командой ls, например:

ls –l /usr/dict

Структура полученной информации следующая.

1 2 3 4 5 6 7 8

-rw-r--r-- 1 root root 2945 Nov 19 2012 extra.words

-rw-r--r-- 1 root root 409048 Nov 19 2012 linux.words

drwxr-xr-x 2 root root 1024 Nov 17 14:23 new_dict

-rw-r--r-- 1 root root 10 Nov 3 01:23 out.prn

lrwxrwxrwx 1 root root 11 Oct 7 21:38 words -> linux.words

Содержание колонок листинга:


1. Права доступа к файлу.

2. Число связей файла.

3. Владелец файла.

4. Группа владельца файла.

5. Длина файла в байтах.

6. Дата создания файла.

7. Время либо год создания файла.

8. Имя файла (для символической ссылки указывается также ее содержание).


Поле прав доступа к файлу структурировано следующим образом:

- r w - r - - r - -
Тип файла Права владельца Права группы Права остальных

Обозначение прав доступа:

r - право чтения; w - право записи; x - право выполнения.

Если какое-либо право отсутствует (операция запрещена), в соответствующей позиции поля прав появляется символ «-».

Обозначение типов файла:

- - обычный файл;

d - каталог;

l - символическая ссылка;

b - блокоориентированный специальный файл;

c - байториентированный специальный файл;

p - специальный FIFO файл ( поименованный программный канал);

s - специальный файл типа сокет.

Изменение прав доступа производится командой chmod, изменение владельца и группы – chown и chgrp. Кроме прав доступа, у файлов имеются дополнительные атрибуты, которые мы рассмотрим позже. Синтаксис команды chmod:

chmod <класс доступа><операция><право доступа> <список файлов>

Классы доступа:

u - владелец;

g - группа владельца;

o - остальные пользователи (кроме владельца и его группы);

a - все пользователи.

Операции: + - добавить право; - - удалить право; = - присвоить право;

Н-р, добавить право чтения всех файлов в текущем каталоге для всех пользователей: chmod a+r *

Синтаксис команд изменения владельца и группы:

chown <владелец> <список файлов> chgrp <группа> <список файлов>

Например, изменение идентификатора владельца всех файлов текущего каталог на user: chown user *

Изменить эти идентификаторы файла может либо владелец файла, либо привилегированный пользователь.

На каждом устройстве (физическом носителе) создается своя файловая система. Корневой каталог находится на устройстве, с которого была загружена операционная система. Файловые системы других устройств становятся доступными после выполнения операции монтирования (например, командой mount). Операция монтирования предполагает присоединение корневого каталога файловой системы на устройстве к основному дереву каталогов в точке монтирования – некоторому каталогу. Содержимое этого каталога становится временно недоступным, вместо него доступно содержимое корневого каталога на устройстве. Обратная операция – демонтирование (например, командой umount) - должна быть выполнена, в частности, перед сменой носителя на устройстве.

Синтаксис команды монтирования: mount <устройство> <точка монтирования>

Устройство представляется специальным файлом, связанным с этим устройством. Например, монтирование в каталог /mnt: mount /dev/fd0 /mnt

Демонтирование производится следующей командой: umount <устройство>

Например, демонтирование дискетты: umount /dev/fd0

Команды монтирования и демонтирования обычно доступны только привилегированному пользователю.

Суперблоки всех смонтированных файловых систем, содержащие основную информацию о них, кэшируются. Соответственно, смена носителя без успешного выполнения демонтирования (если устройство допускает такую смену), может привести к разрушению файловой системы на этом носителе. К аналогичному результату может привести и выключение питания компьютера без остановки операционной системы (командами halt либо rebout). Для уменьшения вероятности такого разрушения периодически выполняется системный вызов sync, приводящий суперблоки всех смонтированных файловых систем в актуальное состояние и сбрасывающий на устройства все буферы. Возможно также выполнение команды sync вручную.



<== предыдущая лекция | следующая лекция ==>
Особенности ОС UNIX | Особенности проектирования оснований, фундаментов и подземных сооружений с учетом зоны риска для соседней застройки


Карта сайта Карта сайта укр


Уроки php mysql Программирование

Онлайн система счисления Калькулятор онлайн обычный Инженерный калькулятор онлайн Замена русских букв на английские для вебмастеров Замена русских букв на английские

Аппаратное и программное обеспечение Графика и компьютерная сфера Интегрированная геоинформационная система Интернет Компьютер Комплектующие компьютера Лекции Методы и средства измерений неэлектрических величин Обслуживание компьютерных и периферийных устройств Операционные системы Параллельное программирование Проектирование электронных средств Периферийные устройства Полезные ресурсы для программистов Программы для программистов Статьи для программистов Cтруктура и организация данных


 


Не нашли то, что искали? Google вам в помощь!

 
 

© life-prog.ru При использовании материалов прямая ссылка на сайт обязательна.

Генерация страницы за: 0.572 сек.