Реферат по предмету "Программное обеспечение"


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

Министерствообразования и науки Российской Федерации
Магнитогорский государственныйтехнический университет
им Г. И. Носова
Кафедра вычислительной техники и прикладнойматематики
Индивидуальная работа
по дисциплине: «Вычислительные машины, системы и сети»
Тема работы: «Файловые системы в Linux»
Выполнил: студент гр.АМ-03-1 НуртаеваД. Н.
Проверил: Ильина Е. А.
Нуров Х. Х.
Магнитогорск 2005
Содержание
 TOC o «1-3» h z u Введение_ PAGEREF _Toc122001961 h 2
Основная часть_ PAGEREF _Toc122001962 h 2
1 Файловые системы,поддерживаемые Linux_ PAGEREF _Toc122001963 h 2
2 Опции подключения_ PAGEREF _Toc122001964 h 2
3 Структурафайловой иерархии_ PAGEREF _Toc122001965 h 2
3.1 Каталог /bin_ PAGEREF _Toc122001966 h 2
3.2 Каталог /bootPAGEREF _Toc122001967 h 2
3.3 Каталог /dev_ PAGEREF _Toc122001968 h 2
3.4 Каталог /etcPAGEREF _Toc122001969 h 2
3.5 Каталог /homePAGEREF _Toc122001970 h 2
3.6 Каталог /lib_ PAGEREF _Toc122001971 h 2
3.7 Каталог /mntPAGEREF _Toc122001972 h 2
3.8 Каталог /optPAGEREF _Toc122001973 h 2
3.9 Каталог /rootPAGEREF _Toc122001974 h 2
3.10 Каталог /sbin_ PAGEREF _Toc122001975 h 2
3.11 Каталог /tmp_ PAGEREF _Toc122001976 h 2
3.12 Каталоговая структура /usrPAGEREF _Toc122001977 h2
3.13 Каталоговая структура /varPAGEREF _Toc122001978 h2
Заключение_ PAGEREF _Toc122001979 h 2
Cписок использованных источников_ PAGEREF _Toc122001980 h 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 mapinstaller). Таким образом, в /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 с старым стандартом на именаустройств.3.4 Каталог /etc
Каталог /etc содержит конфигурационные файлы и каталоги,специфичные для данной конкретной системы. В каталоге /etc не должно бытьбинарных файлов. В соответствии со стандартом FHS этот каталог в обязательномпорядке должен содержать подкаталог /opt, в котором должны размещатьсяподкаталоги с конфигурационными файлами отдельных пакетов и приложений. Длякаждого установленного пакета должен создаваться конфигурационныйкаталог /etc/opt/package.
Для запуска необходим /etc/inittab и доступ к стартовымскриптам. Но можно сделать минимальный скрипт, чтобы он подключал /etc изаставлял init перечитать /etc/inittab. Также все несколько проще при загрузкес initrd. Все, что надо – подключить /etc до того, как будет выполнен chroot. Всеуказанные каталоги содержат статические данные за исключением /etc/mtab. Можнолибо сделать ссылку /etc/mtab -> /proc/mounts, но это не всегда удобно. Илиподключить /tmp, а затем сделать /etc/mtab -> /tmp/mtab, создав предварительно/tmp/mtab с необходимыми двумя записями (для корня и для /tmp). Итак корневойкаталог должен быть подключен в режиме «только чтение». Так какнеобходимо подключение корневого каталога любым свежесобранным ядром, кажетсялогичным выбрать формат файловой системы ext2. Именно ext2, а не ext3,так как все преимущества ext3 в журналировании, а писать всеравно ничего не надо.
Если же /etc подключается отдельно от корневой системы, тофайловая система для него должна быть ext2, а флаги монтирования: nodev, sync.Первый указывает, что в /etc не должно быть файлов устройств, а sync означает,что любые изменения файлов /etc должны немедленно записываться на диск. Этожелательно, так как при аварийном восстановлении перезагрузка часто выполняетсябез выполнения скриптов завершения работы, вследствие чего могут быть утеряныпоследние изменения, которые еще не записаны на диск.3.5 Каталог /home
В небольшихсистемах каждый домашний каталог пользователя является одним из непосредственныхподкаталогов каталога /home, таких как /home/smith, /home/torvalds,/home/operator и так далее. В больших системах (особенно когда каталоги /homeявляются разделяемыми между многими хостами посредством NFS) полезно объединитьдомашние каталоги в группы, введя подкаталоги групп такие как /home/staff,/home/guests, /home/students и так далее. Но как бы то ни было, структурадомашних каталогов различается от хоста к хосту. Следовательно, никакаяпрограмма не должна полагаться на какие-то предположения о структуре домашнихкаталогов.
Рассмотрим как лучше использовать /home. С одной стороны,очевидно, нужны опции nodev, nosuid, так ни устройств, ни suid-файлов упользователей быть не должно. Иногда можно также устанавливать noexec. Обычнопользователям разрешено создавать запускаемые файлы в ~/bin. Тип файловойсистемы также имеет смысл выбирать в зависимости от того, какие файлы хранятсяу пользователей. Если много маленьких (пользователи – программисты) и не нужныквоты, то лучше ставить ReiserFS. Если крупные файлы(пользователи обрабатывают или хранят видео, музыку, архивы), то лучше XFS.Также XFS рекомендуется, если необходимо давать доступ по протоколуSamba (также известный как Windows Network Neighbourghood), так как XFSподдерживает права доступа в формате ACL, которые используются в MS Windows.Если пользователям не надо знать время доступа к файлам, можно такжеиспользовать noatime.3.6 Каталог /lib
Каталог /lib содержит те разделяемые библиотеки, которыенеобходимы для загрузки системы и запуска команд, расположенных в каталогах/bin и /sbin.
Не должны располагаться в /lib разделяемые библиотеки,которые необходимы только исполняемым файлам, расположенным в /usr (таким, какбинарные файлы системы X Window).
Более одного варианта каталога /lib может существовать всистемах, поддерживающих более одного формата исполняемых файлов (например,32-х и 64-х разрядные форматы), при этом для каждого формата требуется свойотдельный вариант разделяемых библиотек (которые могут называться /lib32 и/lib64).3.7 Каталог /mnt
Эта директория предназначена для того, чтобы системныйадминистратор мог временно монтировать файловые системы по мере необходимости.Содержимое этого каталога индивидуально для каждой системы и не должно никакимобразом влиять на работу запускаемых программ.
Этот каталог не должен использоваться программами инсталляцииПО; для создания и хранения временных файлов на этапе инсталляции должныиспользоваться временные каталоги, не используемые системой.3.8 Каталог /opt
Стандарт FHS резервирует каталог /opt для установкидополнительных пакетов программного обеспечения. Предполагается, что любойпакет, который устанавливается в каталог /opt, должен размещать своистатические файлы в отдельной каталоговой структуре /opt/, где– название соответствующего пакета программного обеспечения.
Как правило, все данные, необходимые для поддержкифункционирования пакета, должны присутствовать в каталоге /opt/,включая файлы, копируемые в каталоги /etc/opt/и/var/opt/а также специально создаваемые для пакета каталоги в/opt.
Каталоги /opt/bin, /opt/doc, /opt/include, /opt/info,/opt/lib и /opt/man зарезервированы для использования локальным системнымадминистратором.
Программы, вызываемые на исполнение пользователем, должнырасполагаться в каталоге /opt//bin. Если пакет ПО содержит всвоем составе страницы обычного в UNIX интерактивного руководства man, онидолжны устанавливаться в каталог /opt//man, который должен иметьтакую же структуру, как и каталог /usr/share/man.
Файлы пакета, которые являются переменными (изменяемыми привыполнении стандартных операций), должны устанавливаться в /var/opt.Специфичные для хоста конфигурационные данные должны устанавливаться в/etc/opt.
Никакие файлы пакета не должны размещаться вне каталогов/opt, /var/opt и /etc/opt, кроме тех файлов, которые должны оказаться в другихместах по той причине, что иначе пакет не сможет функционировать нормально.Например, файлы блокирования устройств должны располагаться в /var/lock, афайлы устройств должны располагаться в /dev.
Дистрибутивы могут устанавливать программное обеспечение вкаталог /opt, но не должны модифицировать или удалять ПО, установленное местнымсистемным администратором, без разрешения этого самого администратора.
Каталог /opt можно подключать на отдельном разделе. Какправило, файлы в этом разделе не изменяются и не требуются в экстренныхслучаях, поэтому лучше использовать ReiserFS или ext3 с опцией ro.3.9 Каталог /root
Каталог /root – это домашний каталог суперпользователя. Онможет быть задан разработчиком или определен при инсталляции системы, норекомендуемое место его расположения по умолчанию – корневая файловая система.
В стандарте FHS подчеркивается, что бюджет суперпользователядолжен использоваться исключительно для системного администрирования и его нерекомендуется использовать для выполнения задач, которые могут быть выполненынепривилегированным пользователем. По этой причине не стоит размещатьподкаталоги для почты и других приложений в домашнем каталоге пользователяroot.3.10 Каталог /sbin
Утилиты для выполнения задач системного администрирования (идругие команды, используемые только пользователем root) размещаются в /sbin,/usr/sbin и /usr/local/sbin. Каталог /sbin содержит исполняемые файлы,необходимые для загрузки системы и ее восстановления в различных ситуациях(restoring, recovering, and/or repairing the system), не попавшие в каталог/bin.
Единственная команда, которая обязательно должнаприсутствовать в /sbin, это команда shutdown – команда остановки системы.
Принять решение о том, какие программы разместить в каталогах«sbin», довольно просто: если обычный пользователь (не системныйадминистратор) когда-либо запускает программу, она должна размещаться в одномиз каталогов «bin». Обычные пользователи не должны указывать каталогиsbin в списке путей, просматриваемых по умолчанию (в своей переменной PATH).
Авторы стандарта рекомендуют предоставить всем пользователямправо на чтение и выполнение для всех файлов, расположенных в /sbin, кроме,может быть тех программ, для которых установлены биты setuid и setgid.Разделение каталогов /bin и /sbin делается не из соображений безопасности и недля того, чтобы лишить пользователей возможности видеть системные утилиты.Целью такого деления является установление явного различия между исполняемымифайлами, которые используются всеми, и теми утилитами, которые в основномиспользуются для решения административных задач. С точки зрения безопасностинет никаких преимуществ в том, чтобы сделать /sbin недоступным дляпользователей.3.11 Каталог /tmp
Каталог /tmp предназначен для хранения временных файлов,создаваемых в процессе работы различных программ. При этом программы не должныпредполагать, что какой-либо файл в каталоге /tmp сохранится при следующем запускепрограммы.
После перезагрузки он обязан быть пустым, поэтому его можноразмещать либо на диске, либо в памяти. noatime на него ставить нельзя, так какпо нему ориентируется tmpwatch (программа для чистки /tmp от старых файлов).Если оставлять на диске, то лучше ставить на ReiserFS, так как тамобычно много мелких файлов. Для монтирования в память используется файловаясистема tmpfs. В любом случае рекомендуется, во-первых, выносить /tmpна отдельный раздел, во-вторых, подключать с флагом noexec. Если не ставитсяnoexec, тогда должно стоять хотя бы nosuid. И в любом случае nodev.3.12 Каталоговая структура /usr
Каталог /usr – это второй по важности раздел файловойсистемы. /usr содержит разделяемые данные, предназначенные только для чтения.Это означает, что /usr может быть доступен с различных FHS-совместимых хостов иправа записи в него не должно быть. Любая информация, которая являетсяспецифичной для конкретного хоста или может изменяться со временем, должназаписываться в другое место.
Структура/usr
·       /usr/bin– бинарные файлы
·       /usr/include– заголовочные файлы для C
·       /usr/lib– библиотеки
·       /usr/local– локальная иерархия (структура как у /usr)
·       /usr/sbin– системные бинарные файлы
·       /usr/share– данные независимые от архитектуры
/usr – это обычно достаточно большой раздел, который, какправило, делается с таким расчетом, чтобы его можно было использовать нанескольких однотипных машинах. Поэтому его можно монтировать только для чтения.Но в этом случае нужно отдельно подмонтировать /usr/local (хотя бы из техсоображений, что в нем устанавливаются программы нужные только на одноймашине).
/usr/local монтируется с теми же параметрами, что и /usr.3.13 Каталоговая структура /var
Каталог /var содержит файлы с изменяющимися данными. В ихчисло входят каталоги и файлы спулинга, данные об администрировании илогировании, временные файлы.
Некоторые части каталоговой структуры /var не являютсяразделяемыми между разными системами. К ним относятся /var/log, /var/lock и/var/run. Другие части могут быть разделяемыми, например, /var/mail,/var/cache/man, /var/cache/fonts и /var/spool/news.
Структура каталогов /var определяется в стандарте FHS с тойцелью, чтобы сделать возможным монтирование каталога /usr в режиме только длячтения. Все, что записывается на диск в процессе выполнения системных операций(в противоположность процессам инсталляции и поддержки программногообеспечения), должно размещаться в каталоге /var.
На весь раздел лучше ставить ReiserFS, желательно сфлагом noexec, или хотя бы nosuid. Обычно можно использовать noatime, но невсегда.
Каталог /var/log предназначен для хранения журналовсообщений. Его обязательно следует размещать на отдельном разделе, так как присбоях и DoS атаках он может переполняться, а это не должно мешать работе всейоперационной системы. Для него наилучшим решением будет ReiserFS с опциямиnoexec, nodev, noatime.
В каталоге /var/spool/mail хранится почта пользователей. Нанего рекомендуется ставить ext3 с data=journal, noatime, noexec,nodev и включенными квотами.
/var/cache – кэш прокси. Тут много мелких файлов, поэтому ReiserFSс noexec, nodev, noatime.
/var/tmp – временные файлы, нужные после перезагрузки. Из техже соображений, что и для /tmp выбираем ReiserFS с опциями noexec, nodev,noatime.

Заключение
Таким образом, для максимальной производительности Linuxследует для разных каталогов выбирать разные файловые системы. Файловую системуext2лучше устанавливать в каталоги /boot и /etc; ext3 – в каталоги /opt и /var/spool/mail;ReiserFS– в каталоги /home, /tmp, /var, /var/log, /var/cache, /var/tmp и /opt;  XFS – в каталог /home. devfs,devpts –  файловые системы для каталогов/dev и /dev/pts соответственно. tmpfs используется в основном для/tmp. Также следует указывать соответствующие опции: ro, nodev, nosuid, noexec,noatime, sync.
Разумеется возникает вопрос как лучше разместить такоеколичество файловых систем на жестком диске. Можно создавать файловые системы вфайлах. Делается это при помощи команды
mount /fs.img /mnt -o loop,
где fs.img – файл с этой файловой системой, а /mnt – местоподключения. Очевидно, что доступ к файловым системам с этими файлами долженбыть достаточным для установки нужных прав на файловую систему. То есть нельзяподключить файловую систему с полным доступом, если права доступа к файлутолько на чтение. В качестве файловой системы для хранилища этих файлов лучшевсего выбрать XFS, так как файлы очень большие.

Cписокиспользованных источников
1.     Академия Корпоративных Систем – Информационныересурсы. – Электрон. текстовые данные (139267 bytes) – Режим доступа: http://a–sys.ru/Articles/Article.aspx?ID=51. Tuesday, 8 November2005 10:47:04.
2.     Виртуальная энциклопедия «LINUXпо русски».– Электрон. текстовые данные (128952 bytes) – Режим доступа: http://rus–linux.net. Tuesday, 8 November2005 10:51:47.


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

Поделись с друзьями, за репост + 100 мильонов к студенческой карме :

Пишем реферат самостоятельно:
! Как писать рефераты
Практические рекомендации по написанию студенческих рефератов.
! План реферата Краткий список разделов, отражающий структура и порядок работы над будующим рефератом.
! Введение реферата Вводная часть работы, в которой отражается цель и обозначается список задач.
! Заключение реферата В заключении подводятся итоги, описывается была ли достигнута поставленная цель, каковы результаты.
! Оформление рефератов Методические рекомендации по грамотному оформлению работы по ГОСТ.

Читайте также:
Виды рефератов Какими бывают рефераты по своему назначению и структуре.