Министерство образования и науки Российской Федерации
Магнитогорский государственный технический университет им Г. И. Носова
Кафедра вычислительной техники и прикладной математики
Индивидуальная работа по дисциплине: «Вычислительные машины, системы и сети» Тема работы: «Файловые системы в Linux»
Выполнил: студент гр.АМ-03-1 Нуртаева Д. Н.
Проверил: Ильина Е. А.
Нуров Х. Х.
Магнитогорск 2005 Содержание
Введение_ 2
Основная часть_ 2
1 Файловые системы, поддерживаемые Linux_ 2
2 Опции подключения_ 2
3 Структура файловой иерархии_ 2
3.1 Каталог /bin 2
3.2 Каталог /boot 2
3.3 Каталог /dev 2
3.4 Каталог /etc 2
3.5 Каталог /home 2
3.6 Каталог /lib_ 2
3.7 Каталог /mnt 2
3.8 Каталог /opt 2
3.9 Каталог /root 2
3.10 Каталог /sbin 2
3.11 Каталог /tmp_ 2
3.12 Каталоговая структура /usr 2
3.13 Каталоговая структура /var 2
Заключение_ 2
Cписок использованных источников_ 2
Введение
Несмотря на большое количество поддерживаемых файловых систем, большая часть дистрибутивов базируются на единой в системе ext2/ext3. Иногда в качестве опции предлагается использование ReiserFS, но также на общесистемном уровне. При этом не учитываются достоинства и недостатки конкретных систем, хотя, например ReiserFS ведет себя лучше на мелких файлах, а XFS – на крупных. Также у каждой файловой системы есть свои опции. Было бы неплохо пользовательские домашние каталоги подключать с nosuid,nodev, так как ни устройств ни системных файлов там быть не должно.
С другой стороны благодаря стандартизации файловой иерархии в UNIX–подобных системах можно однозначно определять тип файлов в определенный каталог. Например, в /usr/include будет много мелких неизменяющихся текстовых файлов, а в /var/log, наоборот часто меняющиеся файлы. Значит, для максимальной производительности нужно для разных каталогов выбирать разные файловые системы.
Основная часть
Linux поддерживает очень много файловых систем, в том числе FAT(32), HPFS, UFS и многие другие, но в качестве рабочих файловых систем рекомендуется использовать только ext2, ext3, ReiserFS, XFS, а также специализированные файловые системы: devfs, tmpfs, proc, devpts, romfs.
ext2 – стандартная система Linux c ядром 2.2 и более старых. Не поддерживает журналирование, но является достаточно устойчивой, наиболее совместимой и не очень требовательна к ресурсам.
ext3 – фактически ext2 с журналом. Метаданные журналируются всегда.
ReiserFS – файловая система, разработанная Hans Reiser. Основное ее преимущество: быстрая работа с большим количество маленьких файлов, а также их более компактное хранение. В качестве недостатка можно упомянуть несовместимость ее версий, а также отсутствие поддержки квот без дополнительных патчей. Также следует помнить, что не во всех rescue дисках есть поддержка этой файловой системы, поэтому нежелательно ее использование в корневом разделе.
XFS – файловая система от SGI. В ней есть несколько очень полезных свойств. Во-первых, она сразу поддерживает ACL (права для Windows клиентов) и EA (атрибуты в OS/2). Во-вторых она лучше всех работает с большими файлами. Поэтому ее целесообразно использовать на файл-серверах в разделах, к которым дается доступ из Windows или просто хранятся multimedia данные.
devfs, devpts: файловые системы для /dev и /dev/pts соответственно. Использоваться должна либо одна, либо другая. devpts создает файлы виртуальных консолей согласно их реальному количеству, а devfs создает все файлы устройств при обращении к ним.
tmpfs: файловая система в памяти. Используется в основном для /tmp, но можно использовать и для других нужд.
romfs: файловая система только для чтения в памяти. Используется при загрузке для initrd, так как ее драйвер самый маленький.
При подключении файловой системы можно указывать опции. Некоторые из них влияют на производительности, другие на безопасность. Основные:
· ro – режим только чтение
· nodev – невозможность использования файлов устройств
· nosuid – отключение SUID бита
· noexec – отключение возможности выполнения программ
· noatime – не обновлять время доступа: значительно ускоряет работу
· sync – все операции выполнять синхронизировано: медленней, но надежней.
nodev, noexec, nosuid желательно использовать для повышения безопасности системы. ro используется как для повышения производительности, так и для повышения безопасности. Разумеется, для использования этих опций необходимо удостоверится, что отключаемая возможность на данном разделе не нужна. То же самое относится и к noatime.
Структура файловой иерархии в Linux унаследована от UNIX-систем. В настоящее время эта структура стандартизована документом File Hierarchy Standard 2.3.
Краткое описание корневых каталогов:
· /bin – бинарные файлы, необходимые при загрузке
· /boot – статические файлы для загрузчика
· /dev – файлы устройств
· /etc – файлы настроек
· /home – домашние каталоги
· /lib – библиотеки, необходимы для загрузки
· /media, /mnt – точки монтирования
· /opt – большие программные пакеты
· /sbin – системные бинарные файлы, необходимые при загрузке
· /srv – данные для сервисов
· /tmp – временные файлы
· /usr – вторичная иерархия
· /var – изменяемые данные
Каталог /bin содержит команды, которые могут использоваться как системным администратором, так и рядовыми пользователями, причем только те команды, которые необходимы, когда никакая другая файловая система, кроме корневой, еще не смонтирована (например, в однопользовательском режиме). В этом каталоге могут также содержаться команды, которые используются не напрямую пользователем, а включаются в сценарии оболочки (скрипты). Исполняемые файлы, которые не так важны, чтобы быть расположенными в каталоге /bin, должны размещаться в каталоге /usr/bin.
В /bin должны иметься следующие команды или символические ссылки на соответствующие команды:
cat, chgrp, chmod, chown, cp, date, dd, df, dmesg, echo, false, hostname, kill, ln, login, ls, mkdir, mknod, more, mount, mv, ps, pwd, rm, rmdir, sed, sh, stty, su, sync, true, umount, uname.
Следующие программы или символические ссылки на программы должны находиться в каталоге /bin, если только соответствующие пакеты установлены в системе:
csh, ed, tar, cpio, gzip, gunzip, zcat, netstat, ping.
В каталоге /bin не должно быть подкаталогов.
Этот каталог содержит все, что необходимо в процессе загрузки, исключая конфигурационные файлы и установщик карты загрузки (the map installer). Таким образом, в /boot хранятся данные, которые используются до того, как ядро начинает исполнять программы пользователя. Здесь же находятся резервные сохраненные копии главной загрузочной записи (master boot sectors) и другие данные, которые не подлежат прямому редактированию.
Каталог /boot может находится либо в корневой системе (файлы в нем статические), либо подключаться отдельно. Обычно она подключается отдельно в том случае, если корневая система находится в конце диска. Старые загрузчики могут некорректно работать, в таких случаях создается маленький раздел /boot в начале диска. Файловая система на нем ext2 (загрузчик может не уметь работать с другими файловыми системами). Подключается в режим ro (только чтение), чтобы не повредить файлы.
Каталог /dev – это место расположения специальных файлов устройств. На случай, если потребуется создавать файлы устройств вручную, каталог /dev должен содержать команду MAKEDEV, которая может создать файл устройства в случае необходимости.
Для каталога /dev существует 3 варианта подключения:
1. Оставить в корневом каталоге.
2. Подключить на другой файловой системе.
3. Подключить как devfs.
Согласно стандарту в корневой файловой системе должны быть утилиты, необходимые для подключения файловых систем, восстановления системы и восстановления файловых систем из архивных копий. Также прикладные программы не должны создавать файлы или каталоги в корневом каталоге. Для загрузки необходимо устройство /dev/console и должны быть дисковые устройства, но если ядро поддерживает файловую систему devfs, то возможно в любом случае подключать эту файловую систему в /dev.
Второй вариант удобен тем, что тогда можно корневую файловую систему подключать с флагом nodev. Но при этом возникает проблема монтирования файловой системы, где лежит /dev, так как для монтирования необходимо, чтобы был доступен файл устройства, которое монтируется. Поэтому хорошим вариантом является, например, монтирование dev в память (tmpfs), с последующим созданием всех устройств. Флаг монтирования noexec. Неудобство этого варианта: задержка при загрузке компьютера и затраты памяти на неиспользуемые устройства, поэтому в современных ядрах ОС Linux существует файловая система devfs, позволяющая создавать устройства и подгружать соответствующие устройства при попытке доступа к файлам устройств. Эта файловая система хранится в памяти, но для ее работы необходим сервис devfsd. Основной недостаток этого подхода: неполная совместимость devfs с старым стандартом на имена устройств.
Страницы: 1, 2