Что такое полное имя файла в информатике. Работа с носителями информации. Файловая система. Папки и файлы. Имя, тип, путь доступа к файлу

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

По способам именования файлов различают «короткое» и «длинное» имя. До появ­ления операционной системы Windows 95 общепринятым способом именования файлов на компьютерах IBM PC было соглашение 8.3. Согласно этому соглашению, принятому в MS-DOS, имя файла состоит из двух частей: собственно имени и расширения имени. На имя файла отводится 8 символов, а на его расширение - 3 символа. Имя от расширения отделяется точкой. Как имя, так и расширение могут включать только алфавитно-цифровые символы латинского алфавита.

Соглашение 8.3 не является стандартом, и потому в ряде случаев отклонения от правильной формы записи допускаются как операционной системой, так и ее при­ложениями. Так, например, в большинстве случаев система «не возражает» против использования некоторых специальных символов (восклицательный знак, символ подчеркивания, дефис, тильда и т.п.), а некоторые версии MS-DOS даже допускают использование в именах файлов символов русского и других алфавитов. Сегодня имена файлов, записанные в соответствии с соглашением 8.3, считаются «короткими».

Основным недостатком «коротких» имен является их низкая содержательность. Далеко не всегда удается выразить несколькими символами характеристику файла, поэтому с появлением операционной системы Windows 95 было введено понятие «длинного» имени. Такое имя может содержать до 256 символов. Этого вполне достаточно для создания содержательных имен файлов.

«Длинное» имя может содержать любые символы, кроме девяти специальных: \/:*?«<>|. В имени разрешается использовать пробелы и несколько точек. Расширением имени счита­ются все символы, идущие после последней точки, их может быть и больше трех.

Введение длинных имен потребовало внесения изменений в организацию файло­вых систем на основе FAT. Появился термин VFAТ, обозначающий файловую сис­тему на основе FAT с поддержкой длинных имен. Файловая система NTFS поддер­живает длинные имена с самого начала.

Наряду с «длинным» именем операционные системы семейства Windows создают также и короткое имя файла - оно необходимо для возможности работы с данным файлом на рабочих местах с устаревшими операционными системами.

Использование «длинных» имен файлов в операционных системах семейства Windows имеет ряд особенностей.

1. Если «длинное» имя файла включает пробелы, то в служебных операциях его надо заключать в кавычки. Рекомендуется не использовать пробелы, а заме­нять их символами подчеркивания.


2. В корневой папке диска (на верхнем уровне иерархической файловой струк­туры) нежелательно хранить файлы с длинными именами. В файловых систе­мах на основе FAТ количество единиц хранения в этой папке ограничено. Чем длиннее имена, тем меньше файлов можно разместить в корневой папке.

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

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

5. Прописные и строчные буквы в именах не различаются операционной системой. Однако символы разных регистров отображаются операционной системой. Если для наглядности желательно использовать прописные буквы, это можно делать.

Расширение имени файла – это последовательность символов, предназначенных для идентификации типа файла. Расширение отделяется точкой от имени файла и обычно состоит из трех, реже – четырех символов.В ранних операционных системах расширения файлов, обозначающие их тип, использовались мало. По существу, операционные системы MS-DOS ана­лизировали только расширения.ВАТ (пакетные файлы с командами MS-DOS), .EXE, .COM (исполнимые файлы программ) и.SYS (системные файлы конфигурации). В современных операционных системах любое расширение имени файла может нести информацию для операционной системы.

Обычно расширение имени является сокращением английских слов, описывающих тип файла: DOC-файлы, ТХТ-файлы.

Примеры расширений имени файлов:

DOC (англ, document) -документ с форматированием текста, в ча­стности созданные программой WordPad или Word;

ТХТ - файлы простого текста (в так называемой кодировке ASCII), в которых шрифт и абзацы имеют одинаковый вид, не форма­тируются, нет рисунков; в частности, это файлы, созданные програм­мой Блокнот;

ЕХЕ - файл программы (от англ, executable -«исполняемый»). Операционная система при попытке удаления файла с рас­ширением ехе предупреждает, что файл является программой, и без него не все будет работать;

МРЗ, WAV - звуковые файлы;

AVI - аудио- и видеофайлы;

TTF, FON - файлы шрифта;

ZIP, RAR - файлы сжатого архива;

1NI - файл настройки (инициализации) конкретной программы;

HTM, HTML- файлы веб-странии Интернета;

GIF, JPG, BMP, TIFF - графические файлы с рисунками;

Операционные системы семейства Windows имеют средства для регистрации свойств типов файлов по расширению их имени, поэтому во многих случаях выбор расширения имени файла не является частным делом пользователя.

Операционная система хранит ассоциации расширений файлов в списке, который пополняется после установки новой программы, работающей с файлами конкретного типа. Например, расширение.doc означает: открывать документ с помощью программы Word или, если программа Word не установлена, с помощью программы WordPad.

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

стандартным программам, которые поставляются в ее составе, а также к программе «Проводник».

Документы являются меню, которое показывает 15 последних открытых документов и папок.

Настройка является каскадным меню, которое обеспечивает доступ ко всем инструментам, которые дают возможность изменять аппаратную или программную конфигурацию системы или установки Windows 98. Меню дает возможность перейти к папке «Панель управления», «Принтеры», «Шрифты» и к листам свойств панели задач.

Поиск – это меню, которое обеспечивает поиск файла или папки, а через сеть – конкретного компьютера. Для поиска имен файлов можно использовать расширение файлов, время и дату последней модификации, размер, а также содержимое файла как критерии поиска.

Справка является пунктом меню, которое открывает справочную систему

Команда Выполнить обеспечивает быстрый запуск прикладных программ. КомандаЗавершение работы дает возможность безопасно выключить компьютер без потери информации перезагрузить Windows 98 или выйти из се-

ти (без перезагрузки ОС).

В промежутке между кнопкой «Пуск» и часами на панели задач располагаются кнопки активных объектов, то есть объектов, загруженных в оперативную память (например, открытые папки, документы и т.п.). Объекты, которые сохраняются на диске и не загруженные в память, считаются неактивными. На кнопке отображается имя объекта (так на рис 3.3 активным является программа

Adobe Photoshop).

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

На панели задач могут также располагаться значки прибавлений, которые чаще всего используются в работе. Они упорядочены на панели инструментов «Быстрый запуск».

Файловая система компьютера: имена файлов

Основным информационным объектом ОС Windows является файл.

Файл – это некоторый единый объем информации, связанный с общим именем и местоположением на диске

Файлы могут содержать текстовые документы, числовые данные, закодированную табличную и графическую информацию и т.п.

Поскольку ОС Windows ориентированна на работу с документами, файлы, в которых сохраняются данные, называют документами , а программы, которые создают и обрабатывают эти документы, –приложениями .

Для идентификации каждому файлу присваивается имя. Оно состоит из двух частей – собственного имени ирасширения , разделенных символом «точка». Расширения, как правило, определяет тип файла (приложение, текстовый документ, таблица, рисунок, проект программы и т.д.). Собственное имя может состоять из 1-255 символов, а расширения из 0-3 символов. В имени файла (в собственном имени и расширении), кроме букв и цифр, можно также употреблять символы: «$», «%», «’», «-», «пропуск», «@», «~», «!», «(», «)», «{», «}», «^», «#», «&», «+», «;», «=», «[», «]».

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

лем произвольно. Например: Текст.txt, Пояснительная записка.doc, Численные методы - Иванов.xlsи т.д .

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

Несмотря на допустимую произвольность в определении имени файла, на практике используют унифицированные (общепринятые) расширения. Некоторые из них приведены в табл. 3.1.

Таблица 3.1

Унифицированные расширения некоторых файлов

Унификация расширений упрощает работу с файлами. Чтобы начать работу с некоторым документом, достаточно дважды щелкнуть по его значку левой клавишей мыши. При этом Windows анализирует расширения файла и запускает на выполнение необходимое приложение, а потом загружает в него выбранный документ.

В команде поиска файлов, а также в других командах в именах файлов могут использоваться символы «?» и «*». Имена, которые содержат такие символы, называют шаблонами , илиродовыми именами . Они применяются для обозначения сразу нескольких файлов. Символ «?» в указанных позициях допускает наличие в них любого символа, а символ «*» обозначает любое количество символов в имени или расширении шаблона.

1) для документов План1997.xls, План1998.xlsи План1999.xlsшаблоном явля-

ется План199?.xls

2) для документов План1997.xls иПлан2000.xls шаблоном являетсяПлан*.xls

3) для документов План2001. xls иПлан2001.doc шаблоном является

План2001.*;

4) для документов План1999.xls, План2000.хlsи План2001.docшаблоном является План*.*;

5) для всех вышеприведенных файлов шаблоном будет *.* .

Файловая система компьютера: папки

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

Файловая система – совокупность папок и файлов, которые сохраняются на внешних носителях ПК.

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

бражением диска () и компьютера ().

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

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

выделить в отдельные группы логически однородные файлы (например, все приложения или все файлы с данными);

выделить все файлы, которые принадлежат некоторой подсистеме (например, электронным таблицам, текстовому редактору, подсистеме начисления заработной платы и т.д.);

выделить все файлы каждого пользователя, если компьютер эксплуатирует несколько пользователей.

Папке присваивается имя. Требования к нему такие же, как и к имени файла. Как правило, расширения не используется (например, Личные письма, Мои документы).

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

config.sys Program Files

Microsoft Office

Acrobat Acrobat Distiller

Рис. 3.5 Древовидная файловая структура диска С:

В корневой папке диска С: хранятся три файла: command.com, autoexec.bat, config.sys, а также одна папка Program Files, в которой содержатся три папки: Microsoft Office, Adobe и VB. В каждой из них есть свои файлы и папки.

Файловая система компьютера: полное имя файла

При древовидной файловой структуре перед именем файла необходимо указать его местоположение – цепочку подчиненных папок. Такая цепочка называется путем , илимаршрутом . При этом имена подпапок разделяются символом «\». Последний записывается после имени дисковода, а также перед именем файла.

Таким образом, полное имя файла задается следующими элементами:

именем дисковода 1 ;

маршрутом (цепочкой имен папок, в котором каждая следующая есть подпапкой предыдущей);

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

Полное имя файла имеет такой формат:

[дисковод:] [\путь\] имя файла

Элементы полного имени файла, которые содержатся в прямых скобках, могут отсутствовать (например, если файл находится на текущем диске или в текущей папке).

1 Английскими буквами А:, В: обозначаются дисководы для гибких дисков, буквами С: и т.д. – жесткие диски.

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

В широком смысле понятие "файловая система" включает:

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

Файл - это понятие, привычное любому пользователю компьютера. Для пользователя каждый файл - это отдельный предмет, у которого есть начало и конец и который отличается от всех остальных файлов именем и расположением («как называется» и «где лежит»). Как и любой предмет, файл можно создать, переместить и уничтожить, однако без внешнего вмешательства он будет сохраняться неизменным неопределенно долгое время. Файл предназначен для хранения данных любого типа - текстовых, графических, звуковых, исполняемых программ и многого другого. Аналогия файла с предметом позволяет пользователю быстро освоиться при работе с данными в операционной системе.

Имена файлов:

Файлы идентифицируются именами. Пользователи дают файлам символьные имена, при этом учитываются ограничения ОС как на используемые символы, так и на длину имени. До недавнего времени эти границы были весьма узкими. Так в популярной файловой системе FAT длина имен ограничивается известной схемой 8.3 (8 символов - собственно имя, 3 символа - расширение имени), а в ОС UNIX System V имя не может содержать более 14 символов. Однако пользователю гораздо удобнее работать с длинными именами, поскольку они позволяют дать файлу действительно мнемоническое название, по которому даже через достаточно большой промежуток времени можно будет вспомнить, что содержит этот файл. Поэтому современные файловые системы, как правило, поддерживают длинные символьные имена файлов. Например, Windows NT в своей новой файловой системе NTFS устанавливает, что имя файла может содержать до 255 символов, не считая завершающего нулевого символа.

Длинные имена поддерживаются не только новыми файловыми системами, но и новыми версиями хорошо известных файловых систем. Например, в ОС Windows 95 используется файловая система VFAT, представляющая собой существенно измененный вариант FAT. Среди многих других усовершенствований одним из главных достоинств VFAT является поддержка длинных имен. Кроме проблемы генерации эквивалентных коротких имен, при реализации нового варианта FAT важной задачей была задача хранения длинных имен при условии, что принципиально метод хранения и структура данных на диске не должны были измениться.

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

Типы файлов:

Файлы бывают разных типов: обычные файлы, специальные файлы, файлы-каталоги.

Обычные файлы в свою очередь подразделяются на текстовые и двоичные. Текстовые файлы состоят из строк символов, представленных в ASCII-коде. Это могут быть документы, исходные тексты программ и т.п. Текстовые файлы можно прочитать на экране и распечатать на принтере. Двоичные файлы не используют ASCII-коды, они часто имеют сложную внутреннюю структуру, например, объектный код программы или архивный файл. Все операционные системы должны уметь распознавать хотя бы один тип файлов - их собственные исполняемые файлы.

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

Каталог - это, с одной стороны, группа файлов, объединенных пользователем исходя из некоторых соображений (например, файлы, содержащие программы игр, или файлы, составляющие один программный пакет), а с другой стороны - это файл, содержащий системную информацию о группе файлов, его составляющих. В каталоге содержится список файлов, входящих в него, и устанавливается соответствие между файлами и их характеристиками (атрибутами).

В разных файловых системах могут использоваться в качестве атрибутов разные характеристики, например:

  • · информация о разрешенном доступе,
  • · пароль для доступа к файлу,
  • · владелец файла,
  • · создатель файла,
  • · признак "только для чтения",
  • · признак "скрытый файл",
  • · признак "системный файл",
  • · признак "архивный файл",
  • · признак "двоичный/символьный",
  • · признак "временный" (удалить после завершения процесса),
  • · признак блокировки,
  • · длина записи,
  • · указатель на ключевое поле в записи,
  • · длина ключа,
  • · времена создания, последнего доступа и последнего изменения,
  • · текущий размер файла,
  • · максимальный размер файла.

Каталоги могут непосредственно содержать значения характеристик файлов, как это сделано в файловой системе MS-DOS, или ссылаться на таблицы, содержащие эти характеристики, как это реализовано в ОС UNIX.

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

/libhistory.so.5.2

(Иерархическая файловая система в Unix и UNIX-подобных операционных системах):

Иерархия каталогов может быть деревом или сетью. Каталоги образуют дерево, если файлу разрешено входить только в один каталог, и сеть - если файл может входить сразу в несколько каталогов. В MS-DOS каталоги образуют древовидную структуру, а в UNIX"е - сетевую. Как и любой другой файл, каталог имеет символьное имя и однозначно идентифицируется составным именем, содержащим цепочку символьных имен всех каталогов, через которые проходит путь от корня до данного каталога.

Логическая организация файла:

Программист имеет дело с логической организацией файла, представляя файл в виде определенным образом организованных логических записей. Логическая запись - это наименьший элемент данных, которым может оперировать программист при обмене с внешним устройством. Даже если физический обмен с устройством осуществляется большими единицами, операционная система обеспечивает программисту доступ к отдельной логической записи. На рисунке 2.33 показаны несколько схем логической организации файла. Записи могут быть фиксированной длины или переменной длины. Записи могут быть расположены в файле последовательно (последовательная организация) или в более сложном порядке, с использованием так называемых индексных таблиц, позволяющих обеспечить быстрый доступ к отдельной логической записи (индексно-последовательная организация). Для идентификации записи может быть использовано специальное поле записи, называемое ключом. В файловых системах ОС UNIX и MS-DOS файл имеет простейшую логическую структуру - последовательность однобайтовых записей.

Физическая организация и адрес файла:

Физическая организация файла описывает правила расположения файла на устройстве внешней памяти, в частности на диске. Файл состоит из физических записей - блоков. Блок - наименьшая единица данных, которой внешнее устройство обменивается с оперативной памятью. Непрерывное размещение - простейший вариант физической организации (рисунок 2.34,а), при котором файлу предоставляется последовательность блоков диска, образующих единый сплошной участок дисковой памяти. Для задания адреса файла в этом случае достаточно указать только номер начального блока. Другое достоинство этого метода - простота. Но имеются и два существенных недостатка. Во-первых, во время создания файла заранее не известна его длина, а значит не известно, сколько памяти надо зарезервировать для этого файла, во-вторых, при таком порядке размещения неизбежно возникает фрагментация, и пространство на диске используется не эффективно, так как отдельные участки маленького размера (минимально 1 блок) могут остаться не используемыми.

Следующий способ физической организации - размещение в виде связанного списка блоков дисковой памяти (рисунок 2.34,б). При таком способе в начале каждого блока содержится указатель на следующий блок. В этом случае адрес файла также может быть задан одним числом - номером первого блока. В отличие от предыдущего способа, каждый блок может быть присоединен в цепочку какого-либо файла, следовательно фрагментация отсутствует. Файл может изменяться во время своего существования, наращивая число блоков. Недостатком является сложность реализации доступа к произвольно заданному месту файла: для того, чтобы прочитать пятый по порядку блок файла, необходимо последовательно прочитать четыре первых блока, прослеживая цепочку номеров блоков. Кроме того, при этом способе количество данных файла, содержащихся в одном блоке, не равно степени двойки (одно слово израсходовано на номер следующего блока), а многие программы читают данные блоками, размер которых равен степени двойки.

Популярным способом, используемым, например, в файловой системе FAT операционной системы MS-DOS, является использование связанного списка индексов. С каждым блоком связывается некоторый элемент - индекс. Индексы располагаются в отдельной области диска (в MS-DOS это таблица FAT). Если некоторый блок распределен некоторому файлу, то индекс этого блока содержит номер следующего блока данного файла. При такой физической организации сохраняются все достоинства предыдущего способа, но снимаются оба отмеченных недостатка: во-первых, для доступа к произвольному месту файла достаточно прочитать только блок индексов, отсчитать нужное количество блоков файла по цепочке и определить номер нужного блока, и, во-вторых, данные файла занимают блок целиком, а значит имеют объем, равный степени двойки.

В заключение рассмотрим задание физического расположения файла путем простого перечисления номеров блоков, занимаемых этим файлом. ОС UNIX использует вариант данного способа, позволяющий обеспечить фиксированную длину адреса, независимо от размера файла. Для хранения адреса файла выделено 13 полей. Если размер файла меньше или равен 10 блокам, то номера этих блоков непосредственно перечислены в первых десяти полях адреса. Если размер файла больше 10 блоков, то следующее 11-е поле содержит адрес блока, в котором могут быть расположены еще 128 номеров следующих блоков файла. Если файл больше, чем 10+128 блоков, то используется 12-е поле, в котором находится номер блока, содержащего 128 номеров блоков, которые содержат по 128 номеров блоков данного файла. И, наконец, если файл больше 10+128+128 (128, то используется последнее 13-е поле для тройной косвенной адресации, что позволяет задать адрес файла, имеющего размер максимум 10+ 128 + 128(128 + 128).

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

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

  • · создание файла,
  • · уничтожение файла,
  • · открытие файла,
  • · закрытие файла,
  • · чтение файла,
  • · запись в файл,
  • · дополнение файла,
  • · поиск в файле,
  • · получение атрибутов файла,
  • · установление новых значений атрибутов,
  • · переименование,
  • · выполнение файла,
  • · чтение каталога,

и другие операции с файлами и каталогами.

В самом общем случае права доступа могут быть описаны матрицей прав доступа, в которой столбцы соответствуют всем файлам системы, строки - всем пользователям, а на пересечении строк и столбцов указываются разрешенные операции (рисунок 2.35). В некоторых системах пользователи могут быть разделены на отдельные категории. Для всех пользователей одной категории определяются единые права доступа. Например, в системе UNIX все пользователи подразделяются на три категории: владельца файла, членов его группы и всех остальных.

Общая модель файловой системы:

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

Задачей символьного уровня является определение по символьному имени файла его уникального имени. В файловых системах, в которых каждый файл может иметь только одно символьное имя (например, MS-DOS), этот уровень отсутствует, так как символьное имя, присвоенное файлу пользователем, является одновременно уникальным и может быть использовано операционной системой. В других файловых системах, в которых один и тот же файл может иметь несколько символьных имен, на данном уровне просматривается цепочка каталогов для определения уникального имени файла. В файловой системе UNIX, например, уникальным именем является номер индексного дескриптора файла (i-node).

На следующем, базовом уровне по уникальному имени файла определяются его характеристики: права доступа, адрес, размер и другие. Как уже было сказано, характеристики файла могут входить в состав каталога или храниться в отдельных таблицах. При открытии файла его характеристики перемещаются с диска в оперативную память, чтобы уменьшить среднее время доступа к файлу. В некоторых файловых системах (например, HPFS) при открытии файла вместе с его характеристиками в оперативную память перемещаются несколько первых блоков файла, содержащих данные.

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

На логическом уровне определяются координаты запрашиваемой логической записи в файле, то есть требуется определить, на каком расстоянии (в байтах) от начала файла находится требуемая логическая запись. При этом абстрагируются от физического расположения файла, он представляется в виде непрерывной последовательности байт. Алгоритм работы данного уровня зависит от логической организации файла. Например, если файл организован как последовательность логических записей фиксированной длины l, то n-ая логическая запись имеет смещение l((n-1) байт. Для определения координат логической записи в файле с индексно-последовательной организацией выполняется чтение таблицы индексов (ключей), в которой непосредственно указывается адрес логической записи.

каталогов , поэтому " methody ", " Methody " и " METHODY " будут тремя разными именами.

Есть несколько символов, допустимых в именах файлов и каталогов , которые нужно использовать с осторожностью. Это так называемые спецсимволы " * ", " \ ", " & ", " < ", " > ", " ; ", " ( ", " ) ", " | ", а также символы пробела и табуляции. Дело в том, что эти символы имеют особое значение для любой командной оболочки , поэтому нужно будет специально позаботиться о том, чтобы командная оболочка воспринимала эти символы как часть имени файла или каталога . О специальном значении символа " - " для команд Linux уже шла речь в лекции 2, там же обсуждалось, как изменить его интерпретацию 1Символ " - " означает, что следующее слово – ключ, а пробелы и табуляции разделяют параметры в командной строке. . О том, зачем командной оболочке нужны спецсимволы , речь пойдет в лекции 8.

Кодировки и русские имена

Как можно было заметить, пока во всех встречавшихся именах файлов и каталогов употреблялись только символы латинского алфавита и некоторые знаки препинания. Это не случайно и вызвано желанием сделать так, чтобы приводимые примеры выглядели на любых системах одинаково. В Linux в именах файлов и каталогов допустимо использовать любые символы любого языка, однако такая свобода требует жертв, на которые Мефодий, например, пойти не смог.

Дело в том, что с давних пор каждый символ (буква) каждого языка традиционно представлялся в виде одного байта. Такое представление накладывает очень жесткие ограничения на количество букв в алфавите: их может быть не больше 256, а за вычетом управляющих символов, цифр, знаков препинания и прочего - и того меньше. Обширные алфавиты (например, иероглифические японский и китайский) пришлось заменять упрощенным их представлением. Вдобавок, первые 128 символов из этих 256 лучше всегда оставлять неизменными, соответствующими стандарту ASCII, включающему латиницу, цифры, знаки препинания и наиболее популярные символы из тех, что встречаются на клавиатуре печатной машинки. Интерпретация остальных 128 символов зависит от того, какая кодировка установлена в системе. Например, в русской кодировке KOI8-R 228-й символ такой таблицы соответствует букве "Д", а в западноевропейской кодировке ISO-8859-1 этот же символ соответствует букве "a" с двумя точками над ней (как у нашей буквы "ё").

Имена файлов , записанные на диск в одной кодировке , выглядят нелепо, если при просмотре каталога была установлена другая. Более того, многие кодировки заполняют диапазон символов с номерами от 128 до 255 не полностью , поэтому соответствующего символа может вообще не быть! Это означает, что ввести такое искаженное имя файла с клавиатуры (например, для того, чтобы его переименовать) напрямую не удастся: придется пускаться на разные ухищрения, описанные в лекции 8. Наконец, многие языки, в том числе и русский, исторически имеют несколько кодировок 2Мефодий и сам несколько раз получал электронные письма, начинающиеся словами "бНОПНЯ" или "бМХЛЮМХЕ" – результат представления текста, имеющего кодировку CP-1251, в кодировке KOI8-R. . К сожалению, в настоящее время нет стандартного способа указывать кодировку прямо в имени файла , поэтому в рамках одной файловой системы стоит придерживаться единой кодировки при именовании файлов .

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

Это не означает, что, называя файлы , не следует использовать языки, отличные от английского. Пока точно известно, в какой кодировке задано имя файла - проблем не возникнет. Однако Мефодий решил, что гарантий в передаче названного по-русски файла на какую-нибудь другую систему можно добиться, только передавая вместе с ним настройку кодировки , даже две: в своей системе и в системе адресата (неизвестно какой!). Другой, гораздо более легкий способ передать файл - использовать в его названии только символы ASCII.

Расширения

Многим пользователям знакомо понятие расширение - часть имени файла после точки, обычно ограничивающаяся несколькими символами и указывающая на тип содержащихся в файле данных. В файловой системе Linux нет никаких предписаний по поводу расширения: в имени файла может быть любое количество точек (в том числе ни одной), а после последней точки может стоять любое количество символов 3В отличие от старых файловых систем, организованных по принципу "8+3" (DOS, ISO9660 и т. п.), где в имени файла допустимо не более одной точки и расширение может быть не длиннее 3-х символов. Это ограничение определило вид многих известных сегодня расширений файлов, например, " txt " для текстового файла. . Хотя расширения не обязательны и не навязываются технологией в Linux, они широко используются: расширение позволяет человеку или программе, не открывая файл , только по его имени определить, какого типа данные в нем содержатся. Однако нужно учитывать, что расширение - это только набор соглашений о наименовании файлов разных типов. Строго говоря, данные в файле могут не соответствовать заявленному расширению по той или иной причине, поэтому всецело полагаться на расширение нельзя.

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

$ file -- -filename-with- -filename-with-: ASCII English text $ file /home/methody /home/methody: directory Пример 3.1. Определение типа данных в файле

Мефодий, забыв, что содержится в файле " -filename-with- ", который он создал в примере, представленном в предыдущей лекции, хотел было уже посмотреть его содержимое при помощи команды cat . Однако его остановил Гуревич, который посоветовал сначала выяснить, что за данные содержатся в этом файле . Не исключено, что это двоичный файл исполняемой программы, а в таком файле могут встречаться последовательности, которые случайно совпадут с управляющими последовательностями терминала. Поведение терминала после этого может стать непредсказуемым, и неопытный пользователь вряд ли сможет с ним справиться. Мефодий получил вполне точный ответ от утилиты file : в его файле - английский текст в кодировке ASCII. file умеет различать очень многие типы данных и почти наверняка выдаст правильную информацию. Эта утилита никогда не доверяет расширению файла (если оно присутствует) и анализирует сами данные. file различает не только разные данные, но и разные типы файлов , в частности, сообщит, если исследуемый файл является не обычным файлом , а, например, каталогом .

Дерево каталогов

Понятие каталога позволяет систематизировать все объекты, размещенные на носителе данных (например, на диске). В большинстве современных файловых систем используется иерархическая модель организации данных: существует один каталог , объединяющий все данные в файловой системе - это "корень" всей файловой системы , корневой каталог . Корневой каталог может содержать любые объекты файловой системы , и в частности, подкаталоги (каталоги первого уровня вложенности). Те, в свою очередь, также могут содержать любые объекты файловой системы и подкаталоги (второго уровня вложенности) и т. д. Таким образом, все , что записано на диске - файлы , каталоги и специальные файлы - обязательно "принадлежит" корневому каталогу : либо непосредственно (содержится в нем), либо на некотором уровне вложенности.

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

Структуру файловой системы можно представить наглядно в виде дерева 4Здесь имеется в виду дерево в строгом математическом смысле: ориентированный граф без циклов с одной корневой вершиной, в котором в каждую вершину входит ровно одно ребро. , "корнем" которого является корневой каталог , а в вершинах расположены все остальные

Файловая система

Файл – это любой набор информации, сохраненный на диске под собственным именем. Файлом могут быть программы, тексты, рисунки, наборы данных и т.п. Файлы хранятся на диске в виде иерархической древовидной структуры.

Диски обозначаются буквами латинского алфавита и знаком двоеточия. Жесткий диск может быть разбит на несколько логических дисков, которые обозначаются буквами С:, D:, E: и т.д.

По существу папка представляет собой особый тип файла, в котором содержится информация о находящихся в ней файлах и папках.

Адрес указывает на расположение файла или папки в файловой системе. Он начинается с имени диска, а затем записывается последовательность названий папок. Имя диска называют корневым каталогом . Адрес имеет еще одно название «полный путь».

Формат записи адреса: Имя диска:\Папка1\Папка2\ .

Полное имя файла состоит из имени файла и полного пути. Каждый файл, хранящийся в компьютере, имеет уникальное полное имя. В одной папке не может быть двух файлов с одинаковыми именами, в разных папках это допустимо.

Запись файлов на диск производится частями. Наименьшее место, которое могут занимать на диске записываемые данные, составляет один кластер – это минимальный адресуемый элемент диска. Кластер может состоять из одного или нескольких секторов. Объем сектора составляет 512 байт.

Система организации хранения файлов называется файловой системой . Windows поддерживает три файловые системы: FAT16 (или просто FAT), FAT32 и NTFS. Выбор файловой системы осуществляется при установке Windows и форматировании диска.

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

В загрузочном секторе (Boot Record) хранятся данные о формате диска и его файловой системе.

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

Таблица размещения файлов (File Allocation Table, сокращенно FAT) содержит описание порядка расположения всех файлов в кластерах данного диска, а также информацию о дефектных участках диска. Количество ячеек FAT-таблицы соответствует количеству кластеров на диске, а значениями ячеек являются цепочки размещения файлов, т.е. последовательность адресов кластеров, в которых хранятся файлы. Порядковый номер ячейки FAT-таблицы соответствует адресу кластера.

Имя файла состоит из двух частей, разделенных точкой, - это название файла и его расширение.

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


Файлы программ называются исполняемыми файлами. Они имеют расширение com или exe .

В имени файла запрещено использование следующих служебных символов: \ / : * ? “ < > |.

Имеются некоторые отличия в задании имен файлов в ОС MS DOS и Windows. В MS DOS длина имени не должна превышать 8 символов, в Windows – 256 символов. В MS DOS нельзя использовать символы русского алфавита и пробелы, а в Windows можно.

Для обозначения группы файлов применяются шаблоны, в которых используются подстановочные символы. Звездочка (*) обозначает любое количество любых символов, вопросительный знак (?) – один любой символ. Например, шаблон p* означает, что имя файла начинается на букву р, шаблон р???л – что в имени файла между буквами р и л находятся три любых знака, а шаблон *.txt обозначает все файлы с расширением txt.

В некоторых программах используется знак вертикальной черточки (|), обозначающий исключение некоторых шаблонов. Например, *.*|*.bak означает все файлы, кроме файлов с расширением bak.