Файловая система. Файловые системы компьютера - описание и характеристики Файловая система пк

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

Файловая система включает в себя пра­вила образования имен файлов и способов обращения к ним, систему оглавления файлов и структуру хранения файлов на дисках.

Файл имеет имя и атрибуты (архивный, "только для чтения", скрытый, системный), характеризуется размером в байтах, датой и временем создания или последне­го изменения.

Имя файла состоит из двух частей: собственно имени и расшире­ния (типа). Тип может отсут­ствовать. Имя отделяется от типа символом точки. В ОС Windows файлам можно присваивать имена длиной до 255 символов. Тип указывает вид и назначение файла, некоторые из них являются стандартными, например:

· .СОМ и.ЕХЕ - исполняемые файлы;

· .ВАТ - командный пакетный файл;

· .ТХТ - текстовый файл произвольного типа;

· .MDB - файл базы данных Access;

· .XLS - электронная таблица Excel;

· .DOC - текстовый файл редактора Microsoft Word;

· .ZIP - упакованный файл архиваторов Winzip/PkZip.

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

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

На каждом физическом или логическом диске существует корневой (головной) каталог, который нельзя создать, удалить или переименовать средствами пользователя. Он обозначается символом ‘\’ (в некоторых операционных системах можно использовать также ‘/’). В головном каталоге могут быть зарегистрированы другие каталоги и файлы. Вложенные каталоги могут, в свою очередь, включать каталоги более низкого уровня. Такая структура называется иерархической системой или деревом каталогов, в котором главный каталог образует корень дерева, а остальные каталоги подобны ветвям.

Объеди­нение файлов в каталоги не означает, что они каким-либо образом сгруппированы в одном месте на диске. Более того, один и тот же файл может быть «разбросан» (фрагментирован) по всему диску. Файлы с совпадающими именами могут находиться в нескольких катало­гах диска, но несколько одноименных файлов в одном каталоге находиться не могут.

Для того чтобы ОС могла обратиться к файлу, необходимо ука­зать:

· путь по дереву каталогов;

· полное имя файла.

Эта информация указывается в спецификации файла, которая имеет следующий формат:

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

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

Если диск не указан, то используется текущий диск. Текущий диск - это диск, с которым в настоящий момент работает опера­ционная система.

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

Довольно часто возникает необходимость обработать одной командой сразу несколько файлов. Например, удалить все файлы резервных копий, имеющие расширение BAK, или переписать несколько файлов-документов с именами doc1.txt, doc2.txt и т. д. В этих случаях используют специальные символы-маски , позволяющие описать одним именем группу файлов. Масок всего две:

· символ * в имени или расширении файла заменяет любое допустимое количество любых символов;

· символ? в имени или расширении файла заменяет любой символ или отсутствие символа.

Нашим примерам будут соответствовать маски *.bak (все файлы с расширением bak) и doc?.txt (все файлы с расширением txt и именем из 4 символов, начинающимся с doc).

Вопросы по теме, выносимые на зачет:

1. Определение ОС. Основные концепции ОС Windows (многозадачность, графический интерфейс пользователя, внедрение и связывание данных).

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

3. Работа с клавиатурой и «мышью» в Windows. Стандартные комбинации клавиш и операции с «мышью».

4. Работа с файлами и папками в Windows - основные операции и возможности. Программы «Мой компьютер» и «Проводник».

5. Поиск информации в Windows.

6. Создание ярлыков приложений и документов.

7. Панель управления и ее основные компоненты.

8. Обработка сбоев в Windows.

9. Настройка DOS-приложений под Windows.

и размещение баннера -ОБЯЗАТЕЛЬНО!!!

План учебного занятия №5

По дисциплине ИНФОРМАТИКА

Раздел 2. Информационные технологии Файловая система персонального компьютера. Файловый менеджер Norton Commander

Цели:

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

развивающая: развивать информационное мышление студентов.

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

Вид занятий (тип урока): лекция

Организационные формы обучения: лекция-беседа

Методы обучения: беседа

Средства обучения

Вид и формы контроля знаний: фронтальный опрос

Средства контроля

Внутрипредметные связи

Межпредметные связи

Виды самостоятельной работы студентов

Домашнее задание: повторить конспект лекции

Ход занятия

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

Папки и файлы (тип файла, имя файла). Файловая система. Основные операции с файлами в операционной системе

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

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

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

В операционной системе Windows имя файла может иметь до 255 символов, причем допускается использование русского алфавита, например: Единицы измерения информации.doc

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

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

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

Начальный, корневой , каталог содержит вложенные каталоги 1-го уровня , в свою очередь, в каждом из них бывают вложенные каталоги 2-го уровня и т. д. Необходимо отметить, что в каталогах всех уровней могут храниться и файлы.

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

* копирование – копия файла помещается в другой каталог;

* перемещение – сам файл перемещается в другой каталог;

* удаление – запись о файле удаляется из каталога;

* переименование – изменяется имя файла.

Графическое представление файловой с истемы. Иерархическая файловая система MS-DOS , содержащая каталоги и файлы, представлена в операционной системе Windows с помощью графического интерфейса и форме иерархической системы папок и документов. Папка в Windows является аналогом каталога MS-DOS.

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

В Windows на вершине иерархии папок находится папка Рабочий стол (рис. 1).

Рабочий стол

Мой компьютер Корзина Cетевое окружение

А B C В E ПК1 ПК2 ПК3 ПК4

Рис. 1. Иерархическая структура папок

Следующий уровень представлен папками Мой компьютер, Корзина и Сетевое окружение (если компьютер подключен к локальной сети).

Файловый менеджер Norton Сommander

Введение

Операционная оболочка Norton Commander (NC) предназначена для облегчения пользования персональным компьютером при повседневной работе в операционной системе MS-DOS и Windows. Norton Commander позволяет в простой и удобной форме производить такие часто используемые операции над файлами, каталогами и дисками, как копирование и удаление файлов, просмотр каталогов, поиск файлов и многие другие.

Основной файл имеет имя nc.exe. Обычно Norton устанавливается на диске C: в каталоге NC. Поэтому для его запуска в командной строке надо набрать:

C:\>C:\NC\NC

C:\>NC\NC

При запуске Norton Commander на экране высвечиваются два синих окошка, называемых панелями, подобно изображенных на рисунке.

Экран NC можно разделить на четыре части. Перечислим их сверху вниз:

* Раскрывающиеся меню;

* Информационные панели – левая и правая;

* Командная строка;

* Ключи функциональных клавиш.

Раскрывающиеся меню позволяют выполнять практически все функции NC. Доступ к нему с клавиатуры открывается по клавише .

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

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

* иерархическое дерево файлов (размещение файлов и подкаталогов по каталогам);

* информация о данном каталоге или диске.

Командная строка - пространство для непосредственного набора пользователем команд MS DOS и выдачи сообщений. Здесь находится курсор командной строки DOS.

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

Если приглядеться, то в одной из панелей можно обнаружить серо-зеленый прямоугольник, выделяющий конкретную позицию. Это курсор панели Norton Commander. Он перемещается теми же клавишами, что и обычный, а именно клавишами управления курсором. Между панелями курсор можно перемещать нажатием клавиши пли . Эти операции можно также выполнять при помощи манипулятора «Мышь». Оговоримся, что под словом «курсор» нужно понимать именно это выделение фона выбранной позиции. При его помощи мы можем перемещаться по файлам, каталогам и дискам компьютера. Отметим, что в верхнем левом углу панели открытого (текущего, не корневого) каталога располагаются символы «..» (две точки, не путать с двоеточием «:»). Эта позиция предназначена для выхода из данного каталога в каталог более высокого уровня. Та панель в которой находится курсор называется активной панелью.

Операции с выбранным файлом могут быть произведены нажатием клавиши . Если выбранный файл имеет расширение “com”, “exe“ или “bat” , то он начнет выполняться. В противном случае ничего не произойдет.

Некоторые операции (копирование, перемещение, удаление и т. п.) можно производить не над одним объектом, а сразу над группами выбранных файлов. Чтобы выбрать файлы, подведите курсор к нужному файлу и нажмите клавишу , имя файла будет выделено желтым шрифтом, затем таким же образом выберите следующий файл и так далее. Файлы можно также выделить, нажав клавишу [+]. Затем на появившейся панели наберите шаблон файлов, которые вы хотите выбрать (например, “*. com“ - все файлы с расширением «com») и нажмите . Исключить из группы выделенных файлов некоторые можно клавишей или нажав [-], набрать шаблон файлов и нажать .

Функциональные клавиши

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

Клавиша - «Помощь» - «Help»

При нажатии этой клавиши на экране выводится раздел «Справки», описывающий назначение клавиш и команд выполняемой операции. Если никаких операций в данный момент не происходит, то по клавише произойдет вызов содержание всех разделов справочной системы.

По «Справке» можно перемещаться нажимая соответствующие клавиши.

Клавиша - «Вызов» - «User»

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

Клавиша - «Чтение» - «View»

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

Клавиша - «Правка» - «Edit»

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

Выберите файл и нажмите .

Клавиша - «Копия» - «Copy»

Эта команда позволяет осуществлять копирование.

Клавиша - «Нов имя» - «RenMov»

С помощью этой команды можно переименовывать и перемещать файлы или директории.

Клавиша - «НовКат» - «Mkdir»

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

Напомним, что имена каталогов могут состоять максимум из восьми символов и иметь расширение до трех символов, которое в принципе необязательно.

Клавиша - «Удал-е» - «Delete»

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

Перед тем, как удалить группу файлов, спрашивается уверены ли Вы в этой операции (красная рамка со словами “Ok” и “Cancel”), если уверены - нажмите , если нет - .

Клавиша - «Меню» - «Menu»

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

Клавиша - «Выход» - «Quit»

Нажатием клавиши осуществляется выход из Norton Commander. Здесь также спрашивается, уверены ли Вы в этой операции (серая рамка со словами “Yes” и “No”), если уверены, нажмите , не уверены - .

Сменить диск -Drive

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

Работа с манипулятором «Мышь»

Существенно облегчает работу с Norton Commander манипулятор «Мышь». При его использовании Вы можете свободно перемещаться красным «мышиным» курсором по экрану и выполнять различные действия.

* Чтобы выбрать файл, подведите красный курсор «Мыши» к файлу и нажмите левую клавишу «Мыши».

* Чтобы запустить файл на выполнение, щелкните быстро два раза левой кнопкой по нему – программа запустится.

* Чтобы включить файл в группу, нажмите правую клавишу «Мыши» (аналогично нажатию клавиши ).

* Чтобы выбрать какую-либо позицию из любого меню, подведите с помощью «Мыши» курсор к нужной позиции и нажмите левую клавишу «Мыши».

Например, чтобы скопировать выбранный файл, подведите красный курсор «Мыши» к файлу, нажмите левую клавишу, затем выберите в нижней строке слово «Копия» и вновь нажмите левую клавишу «Мыши». Если Вас устраивает назначение копирования, нажмите правую клавишу, - копирование выполнится, отмен копирования - клавиша на клавиатуре.

Использование «Мыши» не исключает возможность набора команд с клавиатуры.

Выполнение команд DOS

Команды можно набирать непосредственно в командной строке DOS. Для этого просто наберите на клавиатуре команду и нажмите . Если для команды требуется имя файла с его расширением, выберите файл, наберите имя команды, затем (нажмите , удерживая в нажатом состоянии).

План учебного занятия №5

Файловая система персонального компьютера. Файловый менеджер Norton Commander

Понравилось? Отблагодарите, пожалуйста, нас! Для Вас это бесплатно, а нам - большая помощь! Добавьте наш сайт в свою социальную сеть:

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

      Линейные структуры (списки, вектора). Обычные списки. Адрес каждого элемента однозначно определяется его номером. Если все элементы списка имеют равную длину – вектора данных.

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

      Иерархические структуры. Используются для представления нерегулярных данных. Адрес – определяется маршрутом – от вершины дерева. Файловая система – компьютера. (Маршрут может превысить – величину данных, дихотомия – всегда два разветвления – влево и вправо).

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

    Основные элементы файловой системы

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

Файл - это именованная область внешней памяти, в которую можно записывать и из которой можно считывать данные. Три параметра:

    последовательность произвольного числа байтов,

    уникальное собственное имя (фактически – адрес).

    данные одного типа – тип файла.

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

Первая, в современном понимании, развитая файловая система была разработана фирмой IBM для ее серии 360 (1965-1966 годы). Но в нынешних системах она практически не применяется. Использовала списочные структуры данных (ЕС- том, раздел, файл).

Большинство из Вас знакомо с файловыми системами современных ОС. Это прежде всего MS DOS, Windows, а некоторые с построением файловой системы для различных вариантов UNIX.

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

Именование файлов. Все современные файловые системы поддерживают многоуровневое именование файлов за счет поддержания во внешней памяти дополнительных файлов со специальной структурой - каталогов. Каждый каталог содержит имена каталогов и/или файлов, содержащихся в данном каталоге. Таким образом, полное имя файла состоит из списка имен каталогов плюс имя файла в каталоге, непосредственно содержащем данный файл. Разница между способами именования файлов в разных файловых системах состоит в том, с чего начинается эта цепочка имен. (Unix, DOS-Windows)

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

Режим многопользовательского доступа. Если операционная система поддерживает многопользовательский режим вполне реальна ситуация, когда два или более пользователей одновременно пытаются работать с одним и тем же файлом. Если все эти пользователи собираются только читать файл, ничего страшного не произойдет. Но если хотя бы один из них будет изменять файл, для корректной работы этой группы требуется взаимная синхронизация. Исторически в файловых системах применялся следующий подход. В операции открытия файла (первой и обязательной операции, с которой должен начинаться сеанс работы с файлом) помимо прочих параметров указывался режим работы (чтение или изменение). + имеется специальные процедуры синхронизации действий пользователей. Нельзя по записям!

    Журналирование в файловых системах. Общие принципы.

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

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

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

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

    Файловая система MS-DOS (FAT)

Файловая система MS-DOS представляет собой древовидную файловую систему для небольших дисков и простых структур каталогов, в корне которой находится корневой каталог, а листьями являются файлы и другие каталоги, возможно пустые. Размещение файлов под управлением этой файловой системы происходит по кластерам, размер которых может колебаться от 4 КБ до 64 КБ кратно 4, без использования свойства смежности смешанным способом выделения дисковой памяти. Например, на рисунке показано три файла. Файл File1.txt является достаточно большим: он задействует три следующих друг за другом блока. Небольшой файл File3.txt использует пространство только одного размещаемого блока. Третий файл File2.txt. является большим фрагментированным файлом. В каждом случае точка входа указывает на первый распределяемый блок, принадлежащий файлу. Если файл использует несколько распределяемых блоков, то предшествующий блок указывает на следующий в цепочке. Значение FFF отождествляется с концом последовательности.

Дисковый раздел FAT

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

Таблица размещения файлов состоит из 16-разрядных элементов и содержит следующую информацию о каждом кластере логического диска:

    кластер не используется;

    кластер используется файлом;

    плохой кластер;

    последний кластер файла;.

Так как каждому кластеру должен быть присвоен уникальный 16-разрядный номер, то следовательно, FAT поддерживает максимально 216, или 65 536 кластеров на одном логическом диске (да еще некоторую часть кластеров резервирует для своих нужд). Таким образом получаем предельный размер диска, обслуживаемого MS-DOS, в 4 ГБ. Размер кластера можно увеличить или уменьшить в зависимости от размера диска. Однако, когда размер диска превышает некоторую величину, кластеры становятся слишком большого размера что ведет к внутренней дефрагментации диска. Кроме информации о файлах, в таблице размещения файлов может быть помещена информация и о каталогах. При этом каталоги рассматриваются как специальные файлы с 32-байтовыми элементами для каждого файла, содержащегося в этом каталоге. Корневой каталог имеет фиксированный размер – 512 записей для жесткого диска, а для дискет этот размер определяется объемом дискеты. Кроме того, корневой каталог расположен сразу же после второй копии FAT, поскольку в нем находятся файлы, необходимые загрузчику MS-DOS.

При поиске файла на диске MS-DOS вынуждена просматривать структуру каталога, чтобы найти его. Например, чтобы запустить исполняемый файл С:\Program\NC4\nc.exe находит исполнимый файл, выполнив следующие действия:

    читает корневой каталог диска C: и ищет в нем каталог Program;

    читает начальный кластер Program и ищет в этом каталоге запись о вложенном каталоге NC4;

    читает начальный кластер вложенного каталога NC4 и ищет в нем запись о файле nc.exe;

    читает все кластеры файла nc.exe.

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

Достоинства FAT

    Является лучшим выбором для логических дисков небольшого размера, т.к. стартует с минимальными накладными расходами. На дисках, размер которых не превышает 500 МБ, она работает с приемлемыми характеристиками.

Недостатки FAT

    Поскольку размер записи о файле ограничен 32 байтами, а информация должна включать в себя и размер файла и дату, и атрибуты и т.д., то размер под название файла также ограничен и не может превышать 8+3 символа на каждый файл. Использование так называемых коротких имен файлов делает FAT менее привлекательной для использования по сравнению с другими файловыми системами.

    Использование FAT на дисках, объем которых превышает 500 МБ нерационально по причине дефрагментации диска.

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

    Скорость выполнения операций в FAT происходит обратно пропорционально глубине вложенности каталогов и объему диска.

    Файловая система UNIX – систем (ext3)

Современная, мощная и бесплатная операционная система Linux предоставляет широкую территорию для разработки современных систем и пользовательского программного обеспечения. Некоторые из наиболее интересных разработок в недавних ядрах Linux это новые, высоко производительные технологии для управления хранением, размещением и обновлением данных на диске. Один из наиболее интересных механизмов – это файловая система ext3, которая интегрируется в ядро Linux начиная с версии 2.4.16, и уже доступна по умолчанию в Linux дистрибутивах от компаний Red Hat и SuSE.

Файловая система ext3 является журналируемой файловой системой, 100% совместимой со всеми утилитами созданными для создания, управления и тонкой настройки файловой системы ext2, которая используется в Linux системах несколько последних лет. Перед детальным описанием различий между файловыми системами ext2 и ext3, уточним терминологию файловых систем и хранения файлов.

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

Файловые системы созданы на разделах диска для упрощения хранения и организации данных в форме файлов и директорий. Linux, как Unix система, использует иерархическую файловую систему составленную из файлов и директорий, которые соответственно содержат либо файлы либо каталоги. Файлы и директории в файловой системе Linux становятся доступным пользователю путем их монтирования (команда «mount»), которая обычно является частью процесса загрузки системы. Список файловых систем доступных для использования хранится в файле /etc/fstab (FileSystem TABle). Список файловых систем не смонтированных в данные момент системой хранится в файле /etc/mtab (Mount TABle).

В момент монтирования файловой системы в процессе загрузки, бит в заголовке («чистый бит» / «clean bit») стирается, это означает что файловая система используется, и что структуры данных используемые для управления размещением и организации файлов и директорий, в данной файловой системы могут быть изменены.

Файловая система расценивается как целостная если все блоки данных в ней либо используются, либо свободны; каждый размещенный блок данных занят одним и только одним файлом или директорией; все файлы и директории могут быть доступны после обработки серии других директорий в файловой системе. Когда система Linux намеренно прекращает работу используя команды оператора, все файловые системы размонтируются. Размонтирование файловой системы в процессе завершения работы устанавливает «чистый бит» в заголовок файловой системы, указывая на то, что файловая система была размонтирована должным образом и, тем самым, может рассматриваться как целостная.

Года отладки и переработки файловой системы и использование улучшенных алгоритмов для записи данных на диск в большой степени уменьшили повреждение данных вызываемых приложениями или самим ядром Linux, но устранение повреждения и потери данных в связи с отключением питания и другими системными проблемами до сих пор является сложной задачей. В случае аварийной остановки или простого отключения Linux системы без использования стандартных процедур остановки работы «чистый бит» в заголовке файловой системы не устанавливается. При следующей загрузке системы, процесс монтировки обнаруживает, что система не маркирована как «чистая», и физически проверяет ее целостность использую Linux/Unix утилиту проверки файловой системы "fsck" (File System ChecK).

Существует несколько журналируемых файловых систем доступных для Linux. Наиболее известные из них: XFS, журналируемая файловая система разработанная Silicon Graphics, но сейчас выпущенная открытым кодом (open source); RaiserFS, журналируемая файловая система разработанная специально для Linux; JFS, журналируемая файловая система первоначально разработанная IBM, но сейчас выпущенная как открытый код; ext3 – файловая система разработанная доктором Стефаном Твиди (Stephan Tweedie) в Red Hat, и несколько других систем.

Файловая система ext3 – это журналируемая версия Linux файловой системы ext2. Файловая система ext3 имеет одно значительно преимущество перед другими журналируемыми файловыми системами – она полностью совместима с файловой системой ext2. Это делает возможным использование всех существующих приложений разработанных для манипуляции и настройки файловой системы ext2.

Файловая система ext3 поддерживается ядрами Linux версии 2.4.16 и более поздними, и должна быть активизирована использованием диалога конфигурации файловых систем (Filesystems Configuration) при сборке ядра. В Linux дистрибутивы, такие как Red Hat 7.2 и SuSE 7.3 уже включена встроенная поддержка файловой системы ext3. Вы можете использовать файловую систему ext3 только в том случае, когда поддержка ext3 встроена в ваше ядро и у вас есть последние версии утилит «mount» и «e2fsprogs».

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

# /sbin/tune2fs -j <имя-раздела >

Например, перевод файловой системы ext2 расположенной на разделе /dev/hda5 в файловую систему ext3 может быть осуществлен с помощью следующей комманды:

# /sbin/tune2fs -j /dev/hda5

Опция "-j" команды "tune2fs" создает журнал ext3 на существующей ext2 файловой системе. После перевода файловой системы ext2 в ext3, вы так же должны внести изменения в записи файла /etc/fstab, для указания что теперь раздел является файловой системой "ext3". Так же вы можете использовать авто определение типа раздела (опция «auto»), но все же рекомендуется явно указывать тип файловой системы. Следующий пример файл /etc/fstab показывает изменения до и после перевода файловой системы для раздела /dev/hda5:

/dev/ hda5 /opt ext2 defaults 1 2

/dev/ hda5 /opt ext3 defaults 1 0

Последнее поле в /etc/fstab указывает этап в загрузке, во время которого целостность файловой системы должна быть проверена с помощью утилиты «fsck». При использовании файловой системы ext3, вы можете установить это значение в «0», как показано на предыдущем примере. Это означает что программа "fsck" никогда не будет проверять целостность файловой системе, в связи с тем что целостность файловой системы гарантируется путем отката в журнале.

Перевод корневой файловой системы в ext3 требует особого подхода, и лучше всего его проводить в режиме одного пользователя (single user mode) после создания RAM диска поддерживающего файловую систему ext3.

Кроме совместимости с утилитами файловой системы ext2 и простым переводом файловой системы из ext2 в ext3, файловая система ext3 так же предлагает несколько различных типов журнилирования.

Файловая система ext3 поддерживает три различных режима журналирования, которые могут быть активированы из файла /etc/fstab. Эти режимы журналирования следующие:

    Журнал / journal – запись всех изменений данных файловой системы и мета-данных. Наиболее медленный из всех трех режимов журналирования. Этот режим минимизирует шанс потери изменений файлов которые вы проводите в файловой системе.

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

    Обратная запись / writeback – записываются только изменения мета-данных файловой системы, основан на стандартном процессе записи изменений данных файлов. Это наиболее быстрый метод журналирования.

Различия между этими режимами журналирования одновременно и едва заметны, и основательны. Использование режима «журнал» требует, что бы файловая система ext3 записывала каждое изменение файловой системы дважды – первый раз в журнал, а затем в саму файловую систему. Это может снизить общую производительность вашей файловой системы, но этот режим наиболее любим пользователями, потому что он минимизирует шанс потери изменения данных ваших файлов, так как и изменения мета - данных и изменения данный файлов записывается в журнал ext3 и может быть повторено при перезагрузке системы.

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

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

Указание журналируемого режима, используемого в ext3 файловой системе производиться в файле /etc/fstab для этой файловой системы. «Последовательный» режим используется по умолчанию, но вы можете указать различные режимы журналирования, путем изменения опций для требуемого раздела в файле /etc/fstab. Например, запись в /etc/fstab указывающая на использование режима журналирования «обратная запись» будет выглядеть следующим образом:

/dev/hda5 /opt ext3 data=writeback 1 0

    Файловая система семейства Windows NT (NTFS)

      Физическая структура NTFS

Начнем с общих фактов. Раздел NTFS, теоретически, может быть почти какого угодно размера. Предел, конечно, есть, но я даже не буду указывать его, так как его с запасом хватит на последующие сто лет развития вычислительной техники - при любых темпах роста. Как обстоит с этим дело на практике? Почти так же. Максимальный размер раздела NTFS в данный момент ограничен лишь размерами жестких дисков. NT4, правда, будет испытывать проблемы при попытке установки на раздел, если хоть какая-нибудь его часть отступает более чем на 8 Гб от физического начала диска, но эта проблема касается лишь загрузочного раздела.

Лирическое отступление. Метод инсталляции NT4.0 на пустой диск довольно оригинален и может навести на неправильные мысли о возможностях NTFS. Если вы укажете программе установки, что желаете отформатировать диск в NTFS, максимальный размер, который она вам предложит, будет всего 4 Гб. Почему так мало, если размер раздела NTFS на самом деле практически неограничен? Дело в том, что установочная секция просто не знает этой файловой системы:) Программа установки форматирует этот диск в обычный FAT, максимальный размер которого в NT составляет 4 Гбайт (с использованием не совсем стандартного огромного кластера 64 Кбайта), и на этот FAT устанавливает NT. А вот уже в процессе первой загрузки самой операционной системы (еще в установочной фазе) производится быстрое преобразование раздела в NTFS; так что пользователь ничего и не замечает, кроме странного "ограничения" на размер NTFS при установке. :)

      Структура раздела - общий взгляд

Как и любая другая система, NTFS делит все полезное место на кластеры - блоки данных, используемые единовременно. NTFS поддерживает почти любые размеры кластеров - от 512 байт до 64 Кбайт, неким стандартом же считается кластер размером 4 Кбайт. Никаких аномалий кластерной структуры NTFS не имеет, поэтому на эту, в общем-то, довольно банальную тему, сказать особо нечего.

Диск NTFS условно делится на две части. Первые 12% диска отводятся под так называемую MFT зону - пространство, в которое растет метафайл MFT (об этом ниже). Запись каких-либо данных в эту область невозможна. MFT-зона всегда держится пустой - это делается для того, чтобы самый главный, служебный файл (MFT) не фрагментировался при своем росте. Остальные 88% диска представляют собой обычное пространство для хранения файлов.

Свободное место диска, однако, включает в себя всё физически свободное место - незаполненные куски MFT-зоны туда тоже включаются. Механизм использования MFT-зоны таков: когда файлы уже нельзя записывать в обычное пространство, MFT-зона просто сокращается (в текущих версиях операционных систем ровно в два раза), освобождая таким образом место для записи файлов. При освобождении места в обычной области MFT зона может снова расширится. При этом не исключена ситуация, когда в этой зоне остались и обычные файлы: никакой аномалии тут нет. Что ж, система старалась оставить её свободной, но ничего не получилось. Жизнь продолжается... Метафайл MFT все-таки может фрагментироваться, хоть это и было бы нежелательно.

      MFT и его структура

Файловая система NTFS представляет собой выдающееся достижение структуризации: каждый элемент системы представляет собой файл - даже служебная информация. Самый главный файл на NTFS называется MFT, или Master File Table - общая таблица файлов. Именно он размещается в MFT зоне и представляет собой централизованный каталог всех остальных файлов диска, и, как не парадоксально, себя самого. MFT поделен на записи фиксированного размера (обычно 1 Кбайт), и каждая запись соответствует какому либо файлу (в общем смысле этого слова). Первые 16 файлов носят служебный характер и недоступны операционной системе - они называются метафайлами, причем самый первый метафайл - сам MFT. Эти первые 16 элементов MFT - единственная часть диска, имеющая фиксированное положение. Интересно, что вторая копия первых трех записей, для надежности (они очень важны) хранится ровно посередине диска. Остальной MFT-файл может располагаться, как и любой другой файл, в произвольных местах диска - восстановить его положение можно с помощью его самого, "зацепившись" за самую основу - за первый элемент MFT.

        Метафайлы

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

Метафайлы находятся корневом каталоге NTFS диска - они начинаются с символа имени "$", хотя получить какую-либо информацию о них стандартными средствами сложно. Любопытно, что и для этих файлов указан вполне реальный размер - можно узнать, например, сколько операционная система тратит на каталогизацию всего вашего диска, посмотрев размер файла $MFT. В следующей таблице приведены используемые в данный момент метафайлы и их назначение.

копия первых 16 записей MFT, размещенная посередине диска

файл поддержки журналирования (см. ниже)

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

список стандартных атрибутов файлов на томе

корневой каталог

карта свободного места тома

загрузочный сектор (если раздел загрузочный)

файл, в котором записаны права пользователей на использование дискового пространства (начал работать лишь в NT5)

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

        Файлы и потоки

Итак, у системы есть файлы - и ничего кроме файлов. Что включает в себя это понятие на NTFS?

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

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

Довольно интересно обстоит дело и с данными файла. Каждый файл на NTFS, в общем-то, имеет несколько абстрактное строение - у него нет как таковых данных, а есть потоки (streams). Один из потоков и носит привычный нам смысл - данные файла. Но большинство атрибутов файла - тоже потоки! Таким образом, получается, что базовая сущность у файла только одна - номер в MFT, а всё остальное опционально. Данная абстракция может использоваться для создания довольно удобных вещей - например, файлу можно "прилепить" еще один поток, записав в него любые данные - например, информацию об авторе и содержании файла, как это сделано в Windows 2000 (самая правая закладка в свойствах файла, просматриваемых из проводника). Интересно, что эти дополнительные потоки не видны стандартными средствами: наблюдаемый размер файла - это лишь размер основного потока, который содержит традиционные данные. Можно, к примеру, иметь файл нулевой длинны, при стирании которого освободится 1 Гбайт свободного места - просто потому, что какая-нибудь хитрая программа или технология прилепила в нему дополнительный поток (альтернативные данные) гигабайтового размера. Но на самом деле в текущий момент потоки практически не используются, так что опасаться подобных ситуаций не следует, хотя гипотетически они возможны. Просто имейте в виду, что файл на NTFS - это более глубокое и глобальное понятие, чем можно себе вообразить просто просматривая каталоги диска. Ну и напоследок: имя файла может содержать любые символы, включая полый набор национальных алфавитов, так как данные представлены в Unicode - 16-битном представлении, которое дает 65535 разных символов. Максимальная длина имени файла - 255 символов.

      Каталоги

Каталог на NTFS представляет собой специфический файл, хранящий ссылки на другие файлы и каталоги, создавая иерархическое строение данных на диске. Файл каталога поделен на блоки, каждый из которых содержит имя файла, базовые атрибуты и ссылку на элемент MFT, который уже предоставляет полную информацию об элементе каталога. Внутренняя структура каталога представляет собой бинарное дерево. Вот что это означает: для поиска файла с данным именем в линейном каталоге, таком, например, как у FAT-а, операционной системе приходится просматривать все элементы каталога, пока она не найдет нужный. Бинарное же дерево располагает имена файлов таким образом, чтобы поиск файла осуществлялся более быстрым способом - с помощью получения двухзначных ответов на вопросы о положении файла. Вопрос, на который бинарное дерево способно дать ответ, таков: в какой группе, относительно данного элемента, находится искомое имя - выше или ниже? Мы начинаем с такого вопроса к среднему элементу, и каждый ответ сужает зону поиска в среднем в два раза. Файлы, скажем, просто отсортированы по алфавиту, и ответ на вопрос осуществляется очевидным способом - сравнением начальных букв. Область поиска, суженная в два раза, начинает исследоваться аналогичным образом, начиная опять же со среднего элемента.

Вывод - для поиска одного файла среди 1000, например, FAT придется осуществить в среднем 500 сравнений (наиболее вероятно, что файл будет найден на середине поиска), а системе на основе дерева - всего около 10-ти (2^10 = 1024). Экономия времени поиска налицо. Не стоит, однако думать, что в традиционных системах (FAT) всё так запущено: во-первых, поддержание списка файлов в виде бинарного дерева довольно трудоемко, а во-вторых - даже FAT в исполнении современной системы (Windows2000 или Windows98) использует сходную оптимизацию поиска. Это просто еще один факт в вашу копилку знаний. Хочется также развеять распространенное заблуждение (которое я сам разделял совсем еще недавно) о том, что добавлять файл в каталог в виде дерева труднее, чем в линейный каталог: это достаточно сравнимые по времени операции - дело в том, что для того, чтобы добавить файл в каталог, нужно сначала убедится, что файла с таким именем там еще нет:) - и вот тут-то в линейной системе у нас будут трудности с поиском файла, описанные выше, которые с лихвой компенсируют саму простоту добавления файла в каталог.

Какую информацию можно получить, просто прочитав файл каталога? Ровно то, что выдает команда dir. Для выполнения простейшей навигации по диску не нужно лазить в MFT за каждым файлом, надо лишь читать самую общую информацию о файлах из файлов каталогов. Главный каталог диска - корневой - ничем не отличается об обычных каталогов, кроме специальной ссылки на него из начала метафайла MFT.

      Журналирование

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

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

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

И все-таки помните, что журналирование - не абсолютная панацея, а лишь средство существенно сократить число ошибок и сбоев системы. Вряд ли рядовой пользователь NTFS хоть когда-нибудь заметит ошибку системы или вынужден будет запускать chkdsk - опыт показывает, что NTFS восстанавливается в полностью корректное состояние даже при сбоях в очень загруженные дисковой активностью моменты. Вы можете даже оптимизировать диск и в самый разгар этого процесса нажать reset - вероятность потерь данных даже в этом случае будет очень низка. Важно понимать, однако, что система восстановления NTFS гарантирует корректность файловой системы, а не ваших данных. Если вы производили запись на диск и получили аварию - ваши данные могут и не записаться. Чудес не бывает.

Файлы NTFS имеют один довольно полезный атрибут - "сжатый". Дело в том, что NTFS имеет встроенную поддержку сжатия дисков - то, для чего раньше приходилось использовать Stacker или DoubleSpace. Любой файл или каталог в индивидуальном порядке может хранится на диске в сжатом виде - этот процесс совершенно прозрачен для приложений. Сжатие файлов имеет очень высокую скорость и только одно большое отрицательное свойство - огромная виртуальная фрагментация сжатых файлов, которая, правда, никому особо не мешает. Сжатие осуществляется блоками по 16 кластеров и использует так называемые "виртуальные кластеры" - опять же предельно гибкое решение, позволяющее добиться интересных эффектов - например, половина файла может быть сжата, а половина - нет. Это достигается благодаря тому, что хранение информации о компрессированности определенных фрагментов очень похоже на обычную фрагментацию файлов: например, типичная запись физической раскладки для реального, несжатого, файла:

кластеры файла с 1 по 43-й хранятся в кластерах диска начиная с 400-го кластеры файла с 44 по 52-й хранятся в кластерах диска начиная с 8530-го...

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

кластеры файла с 1 по 9-й хранятся в кластерах диска начиная с 400-го кластеры файла с 10 по 16-й нигде не хранятся кластеры файла с 17 по 18-й хранятся в кластерах диска начиная с 409-го кластеры файла с 19 по 36-й нигде не хранятся....

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

      Безопасность

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

Права файловой системы NTFS неразрывно связаны с самой системой - то есть они, вообще говоря, необязательны к соблюдению другой системой, если ей дать физический доступ к диску. Для предотвращения физического доступа в Windows2000 (NT5) всё же ввели стандартную возможность - об этом см. ниже. Система прав в своем текущем состоянии достаточно сложна, и я сомневаюсь, что смогу сказать широкому читателю что-нибудь интересное и полезное ему в обычной жизни. Если вас интересует эта тема - вы найдете множество книг по сетевой архитектуре NT, в которых это описано более чем подробно.

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

Эта штука была в NTFS с незапамятных времен, но использовалась очень редко - и тем не менее: Hard Link - это когда один и тот же файл имеет два имени (несколько указателей файла-каталога или разных каталогов указывают на одну и ту же MFT запись). Допустим, один и тот же файл имеет имена 1.txt и 2.txt: если пользователь сотрет файл 1, останется файл 2. Если сотрет 2 - останется файл 1, то есть оба имени, с момента создания, совершенно равноправны. Файл физически стирается лишь тогда, когда будет удалено его последнее имя.

      Symbolic Links (NT5)

Гораздо более практичная возможность, позволяющая делать виртуальные каталоги - ровно так же, как и виртуальные диски командой subst в DOSе. Применения достаточно разнообразны: во-первых, упрощение системы каталогов. Если вам не нравится каталог Documents and settings\Administrator\Documents, вы можете прилинковать его в корневой каталог - система будет по прежнему общаться с каталогом с дремучим путем, а вы - с гораздо более коротким именем, полностью ему эквивалентным. Для создания таких связей можно воспользоваться программой junction (junction.zip(15 Kb), 36 кб), которую написал известный специалист Mark Russinovich (http://www.sysinternals.com). Программа работает только в NT5 (Windows 2000), как и сама возможность. Для удаления связи можно воспользоваться стандартной командой rd. ВНИМАНИЕ: Попытка удаления связи с помощью проводника или других файловых менеджеров, не понимающих виртуальную природу каталога (например, FAR), приведет к удалению данных, на которые ссылается ссылка! Будьте осторожны.

      Шифрование (NT5)

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

Типовое окно папки показано на рисунке.

Окно содержит следующие обязательные элементы.

    Строка заголовка - в ней написано название папки. Служит для перетаскивания окна.

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

    Кнопки управления размером : разворачивающая (восстанавливающая), сворачивающая, закрывающая.

    Строка меню (ниспадающее меню). Гарантированно предоставляет доступ ко всем командам данного окна.

    Панель инструментов . Содержит командные кнопки для выполнения наиболее часто встречающихся операций. Часто пользователь может сам настраивать эту панель размещая на ней необходимые кнопки.

    Адресная строка . В ней указан путь доступа к текущей папке. Позволяет быстро перейти к другим разделам файловой структуры.

    Рабочая область . Отображает значки объектов, хранящихся в папке, причем способом отображения можно управлять.

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

    Строка состояния . Выводит дополнительную информацию об объектах в окне.

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

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

ОС MS-DOS, OS/2, Windows-95/NT реализуют 16-разрядные поля в FAT-таблицах. Такая система называлась FAT-16. Такая система позволяет разместить не более 65536 записей о местоположении единиц хранения данных. Наименьшей единицей хранения данных является сектор . Размер сектора равен 512 байтам. Группы секторов условно объединяют в кластеры , которые являются наименьшей единицей адресации к данным. Размер кластера зависит от емкости диска: в Fat-16 для дисков от 1 до 2 Гбайт 1 кластер занимает 64 сектора или 32 Кбайта. Это нерационально, поскольку даже маленький файл занимает 1 кластер. У больших файлов, занимающих несколько кластеров, в конце образуется незаполненный кластер. Поэтому потери емкости для дисков в системе FAT-16 могут быть очень велики. С дисками свыше 2,1 Гбайт FAT-16 вообще не работает.

В Windows 98 и старших версиях реализована более совершенная файловая система - FAT-32 с 32-разрядными полями в таблице размещения файлов. Она обеспечивает маленький размер кластера для дисков большой емкости. Например, для диска до 8 Гбайт 1 кластер занимает 8 секторов (4 Кбайта).

Файл - это именованная последовательность байтов произвольной длины. До появления Windows-95 общепринятой схемой именования файлов была схема 8.3 (короткое имя) – 8 символов собственно имя файла, 3 символа – расширение его имени. Недостаток коротких имен - их низкая содержательность. Начиная с Windows-95, введено понятие длинного имени (до 256 символов). Оно может содержать любые символы, кроме девяти специальных: \ / : * ? " < > |.

Расширением имени считаются все символы после последней точки. В современных операционных системах расширение имени несет для системы важную информацию о типе файла. Типы файлов регистрируются и связывают файл с открывающей его программой (приложением). Например, файл MyText.doc будет открыт текстовым процессором MS Word, поскольку расширение.doc обычно связывается именно с этим приложением. Обычно, если файл, не связан ни с какой открывающей программой, то на его значке обозначен флаг - логотип Microsoft Windows, а открывающую программу пользователь может указать сам, выбрав ее из предоставленного списка.

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

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

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

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

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

Файловая система включает:

Совокупность всех файлов на логическом диске;

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

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

Каждая ОС имеет свою файловую систему.

Функции файловой системы:

Распределение дисковой памяти;

Присвоение имени файлу;

Отображение имени файла в соответствующий физический адрес во внешней памяти;

Обеспечение доступа к данным;

Защита и восстановление данных;

Типы файлов

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

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

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

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

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

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

Простое имя определяет файл в пределах одного каталога. Файла могут иметь одинаковые символьные имена, если они расположены в разных каталогах. «Много файлов – одно простое имя».

Полное имя представляет собой последовательность простых символьных имен всех каталогов, через которые проходит путь от корня до данного файла, и самого имени файла. Полное имя файла однозначно определяет файл в файловой системе. «Один файл – одно полное имя»

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

Если ОС поддерживает несколько устройств внешней памяти (жесткий диск, дисковод, CD ROM), то хранение файлов может быть организовано двумя способами:

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

2. Монтирование файловых систем (ОС UNIX). Пользователь имеет возможность объединить файловые системы, находящиеся на разных устройствах, в единую файловую систему, которая будет иметь единое дерево каталогов.

Атрибуты файлов – свойства, приписываемые файлу. Основные атрибуты – Только для чтения, Системный, Скрытый, Архивный.

Файловая система ОС должна предоставить пользователю набор операций для работы с файлами в виде системных вызовов. Этот набор включает системные вызовы: create (создать файл), read (читать), write (запись), close (закрыть) и некоторых других. При работе с одним файлом, как правило, выполняется не одна операция, а последовательность. Например, при работе в текстовом редакторе. Какая бы операция не выполнялась над файлом, ОС должна выполнить ряд универсальных для всех операций действий:

1. По символьному имени файла найти его характеристики, которые хранятся в файловой системе на диске;

2. Скопировать характеристики файла в ОП;

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

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

Работа с файлом начинается с системного вызова OPEN , который копирует характеристики файла и проверят права доступа, и завершается системным вызовом CLOSE, который освобождает буфер с характеристиками и делает невозможным продолжение работы с файлом без его повторного открытия.

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

Принципы размещения файлов, каталогов и системной информации на конкретном устройстве внешней памяти называется Физической организацией файловой системы.