Введение. Обычно файлы, хранимые на жестком диске, представляют собой несвязанные блоки информации, расположенные в разных местах диска. Операционная система, записывая или извлекая файлы (данные, программы, объектные модули, библиотеки и т.д.) из внешних носителей информации, таких как жесткие или сетевые диски и т.д., использует специальные описатели. В описателе, в частности, хранится информация о расположении фрагментов файла на диске. Каким образом извлекать фрагменты, с тем чтобы в памяти ПК представить их в виде логически связанных цепочек, т.е. способ организации файлов, и указывается в
описателе.
Наиболее популярные на сегодняшний день ОС Windows XX и UNIX используют собственные методы хранения файлов и, следовательно, файловые системы. Эти методы, схожие по содержанию, имеют различную программную реализацию.
В мире Windows наиболее популярны файловые системы:
FAT-16 #Основная файловая система DOS, Windows 95;
FAT-32 #Основная файловая система Windows 98, Me;
NTFS # Основная файловая система Windows NT, Windows 2000, Windows XP.
Основной файловой системой ОС Linux является ФС Еxt3, а количество файловых систем, поддерживаемых этой ОС, значительно больше, чем в Windows XX. Все файловые системы компании Microsoft поддерживаются ОС Linux. Отметим наиболее популярные ФС для ОС UNIX, так же поддерживаемые этой операционной системой:
UFS # Основная файловая система UNIX System V;
VxFS, XFS, ReiserFS # Журналируемые файловые системы ОС UNIX.
По существующей конвенции ядро ОС Linux может быть сконфигурировано и скомпилировано самим пользователем на основании исходных текстов, написанных на языках программирования C, C++. Во время сборки ядра пользователь сам определяет, поддержку каких файловых систем необходимо включить в ядро.
Операционные системы, сохраняя файлы на диске, используют либо метод точной записи (данные записываются непосредственно на диск во время операции записи), либо метод отложенной записи. Современные ОС используют второй метод. При этом данные, прежде чем быть записанными на диск, сохраняются во внутренних буферах (КЭШах) ОС, находящихся в оперативной памяти, и переписываются на диск через определенные промежутки времени. Если ПК по каким-либо техническим или программным причинам оказывается в нерабочем состоянии, то информация, расположенная в КЭШе, теряется безвозвратно. Поэтому после сбоев (питания или аварийного выключения) ОС должна проверить жесткие диски на наличие ошибок и убедиться, что сбой не привел к фатальным последствиям и ОС осталась в рабочем состоянии. Этот процесс занимает продолжительное время, которое зависит от объема жесткого диска.
В последнее время в области разработок файловых систем нового поколения появилась технология, широко применяемая в СУБД: технология ведения журнала проведенных операций. В результате ОС имеет четкое представление о том, какие данные были перенесены на диск, а какие потеряны, и, следовательно, может точно определить момент, с которого ОС остается работоспособной. К таким файловым системам относятся хорошо известная в мире Windows XX файловая система NTFS и файловые системы различных UNIX и Linux систем: VxFS, XFS, ReiserFS и Ext3. Ядро ОС Linux имеет поддержку всех перечисленных выше файловых систем.
Цель лабораторной работы. Ознакомить студентов с утилитами ОС Linux, предназначенными для работы с локальными и сетевыми файловыми системами, а также с локализацией файловой системы FAT (настройка ОС Linux на восприятие русских символов основной файловой системы Windows 9Х).
В большинстве случаев для выполнения лабораторной работы нам понадобятся графическая оболочка GNOME, алфавитно-цифровой терминал xterminal и графический редактор OpenOffice.org Writer. Картинки этих приложений расположены в панели задач. При составлении отчета необходимо запустить оба приложения, а затем, отметив мышкой результат в окне терминала, перенести результат в окно Writer. По окончании составления отчета файл следует сохранить на дискете или в домашнем каталоге студенческого сервера.
Для ввода русских символов используются клавишные комбинации <Ctrl>+<Shift> или <Left Shift>+<Right Shift>.
Команды и утилиты, предназначенные для работы
с файловыми системами
Перечислим информационные команды ОС Linux, используемые для просмотра объектов различных файловых систем, и команды создания, удаления, переименования файлов и каталогов, создания ссылок на файлы и каталоги.
Информационные команды:
ls – просмотр содержимого текущего каталога;
cat «имя файла» – команда просмотра содержимого файла;
pwd – показывает имя текущего каталога;
df – показывает свободное и занятое пространство на всех логических дисках системы;
du -s «имя каталога» – указывает размер каталога в блоках.
Команды создания и удаления объектов файловой системы:
mkdir «имя каталога» – создание каталога;
rm «имя файла или пустого каталога» – удаление файла или каталога;
rename «имя файла или каталога» «новое имя файла или каталога» – перемещение или переименование файла или каталога;
ln – команда создания жестких и символических ссылок на файлы и каталоги.
Перечисленные команды могут применяться с ключами, которые задают режимы вывода информации. Эти команды также могут использоваться в командных файлах. Более детальную информацию о командах, допустимых ключах и формате вывода можно узнать в справочной системе ОС или в руководстве пользователя (команда man), введя с командной строки:
«имя команды» --help или man «имя команды»
На лабораторных занятиях мы будем пользоваться программой
Midnight Commander, имеющей развитый интерфейс с файловыми системами ОС. Вследствие того, что перечисленные выше команды встроены в mc и выполняются с помощью директив меню и функциональных клавиш, мы не будем останавливаться на их детальном изучении.
Задание 1. Используя утилиты командной строки, определите свободное и занятое пространство жесткого диска Вашего ПК. Определите объем дискового пространства, занимаемого каталогом ~/Desktop. Результаты поместите в отчет.
Создание, редактирование и удаление разделов жесткого диска.
Утилита fdisk
Утилита командной строки fdisk предназначена для просмотра, создания и удаления разделов жесткого диска. Эта утилита является аналогом утилиты fdisk, применяемой в операционных системах MS-DOS и
Windows 9X. Но она поддерживает значительно большее количество файловых систем, чем ее аналог, и имеет в своем составе набор команд, расширяющий возможности этой утилиты. В лабораторной работе мы рассмотрим ряд команд, имеющих информационное назначение, а в качестве объекта изучения выберем primary master жесткий диск ПК, который в Windows 9X обозначен как диск С:. В ОС Linux ему соответствует специальный файл /dev/hda1.
Задание 2. С командной строки выполните:
fdisk /dev/hda
Система запустит утилиту и перейдет в ожидание ввода команд. Список допустимых команд и краткую аннотацию к ним можно получить по клавишам <m>, <Enter>. Мы разберем команды:
l – вывод списка кодов файловых систем;
p – вывод на экран текущей таблицы разделов.
Выполните команду l. Результаты поместите в отчет. Отметим, что в терминах ОС Linux основная файловая система имеет шестнадцатеричный код 83 и код 82 для раздела Linux swap.
Задание 3. Далее определите, на какие разделы разбит жесткий диск. Для этого, находясь в среде утилиты fdisk, выполните команду p. Результаты поместите в отчет.
Определите раздел загрузки ОС по умолчанию (этот раздел помечен символом * в поле boot). Результат поместите в отчет. Определите раздел, на котором расположена файловая система W95 (Windows 95). Запомните это устройство (обычно /dev/hda2 или /dev/hda5). Имя раздела нам понадобится при выполнении задания 8. Покиньте утилиту по клавише <q>.
Задание 4. Выполните команду df. Определите имя специального файла, подключенного к корневому каталогу (/). Результат поместите в отчет. Информация, выводимая этой командой на экран, содержит несколько столбцов. В столбце Filesystem (Файловая система) указан специальный файл – драйвер устройства, например /dev/hda6, на котором расположена некоторая файловая система, а в столбце Mounted on (Смонтирована на) – точка в корневом каталоге, на которую смонтирована данная файловая
система.