Рефераты. Файловые системы в Linux

Файловые системы в Linux

Министерство образования и науки Российской Федерации

Магнитогорский государственный технический университет
им Г. И. Носова

Кафедра вычислительной техники и прикладной математики

Индивидуальная работа
по дисциплине: «Вычислительные машины, системы и сети»
Тема работы: «Файловые системы в 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, наоборот часто меняющиеся файлы. Значит, для максимальной производительности нужно для разных каталогов выбирать разные файловые системы.

Основная часть

1 Файловые системы, поддерживаемые Linux

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, так как ее драйвер самый маленький.

2 Опции подключения

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

·        ro – режим только чтение

·        nodev – невозможность использования файлов устройств

·        nosuid – отключение SUID бита

·        noexec – отключение возможности выполнения программ

·        noatime – не обновлять время доступа: значительно ускоряет работу

·        sync – все операции выполнять синхронизировано: медленней, но надежней.

nodev, noexec, nosuid желательно использовать для повышения безопасности системы. ro используется как для повышения производительности, так и для повышения безопасности. Разумеется, для использования этих опций необходимо удостоверится, что отключаемая возможность на данном разделе не нужна. То же самое относится и к noatime.

3 Структура файловой иерархии

Структура файловой иерархии в Linux унаследована от UNIX-систем. В настоящее время эта структура стандартизована документом File Hierarchy  Standard 2.3.

Краткое описание корневых каталогов:

·        /bin – бинарные файлы, необходимые при загрузке

·        /boot – статические файлы для загрузчика

·        /dev – файлы устройств

·        /etc – файлы настроек

·        /home – домашние каталоги

·        /lib – библиотеки, необходимы для загрузки

·        /media, /mnt – точки монтирования

·        /opt – большие программные пакеты

·        /sbin – системные бинарные файлы, необходимые при загрузке

·        /srv – данные для сервисов

·        /tmp – временные файлы

·        /usr – вторичная иерархия

·        /var – изменяемые данные

3.1 Каталог /bin

Каталог /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 не должно быть подкаталогов.

3.2 Каталог /boot

Этот каталог содержит все, что необходимо в процессе загрузки, исключая конфигурационные файлы и установщик карты загрузки (the map installer). Таким образом, в /boot хранятся данные, которые используются до того, как ядро начинает исполнять программы пользователя. Здесь же находятся резервные сохраненные копии главной загрузочной записи (master boot sectors) и другие данные, которые не подлежат прямому редактированию.

Каталог /boot может находится либо в корневой системе (файлы в нем статические), либо подключаться отдельно. Обычно она подключается отдельно в том случае, если корневая система находится в конце диска. Старые загрузчики могут некорректно работать, в таких случаях создается маленький раздел /boot в начале диска. Файловая система на нем ext2 (загрузчик может не уметь работать с другими файловыми системами). Подключается в режим ro (только чтение), чтобы не повредить файлы.

3.3 Каталог /dev

Каталог /dev – это место расположения специальных файлов устройств. На случай, если потребуется создавать файлы устройств вручную, каталог /dev должен содержать команду MAKEDEV, которая может создать файл устройства в случае необходимости.

Для каталога /dev существует 3 варианта подключения:

1.     Оставить в корневом каталоге.

2.     Подключить на другой файловой системе.

3.     Подключить как devfs.

Согласно стандарту в корневой файловой системе должны быть утилиты, необходимые для подключения файловых систем, восстановления системы и восстановления файловых систем из архивных копий. Также прикладные программы не должны создавать файлы или каталоги в корневом каталоге. Для загрузки необходимо устройство /dev/console и должны быть дисковые устройства, но если ядро поддерживает файловую систему devfs, то возможно в любом случае подключать эту файловую систему в /dev.

Второй вариант удобен тем, что тогда можно корневую файловую систему подключать с флагом nodev. Но при этом возникает проблема монтирования файловой системы, где лежит /dev, так как для монтирования необходимо, чтобы был доступен файл устройства, которое монтируется. Поэтому хорошим вариантом является, например, монтирование dev в память (tmpfs), с последующим созданием всех устройств. Флаг монтирования noexec. Неудобство этого варианта: задержка при загрузке компьютера и затраты памяти на неиспользуемые устройства, поэтому в современных ядрах ОС Linux существует файловая система devfs, позволяющая создавать устройства и подгружать соответствующие устройства при попытке доступа к файлам устройств. Эта файловая система хранится в памяти, но для ее работы необходим сервис devfsd. Основной недостаток этого подхода: неполная совместимость devfs с старым стандартом на имена устройств.

Страницы: 1, 2



2012 © Все права защищены
При использовании материалов активная ссылка на источник обязательна.