Категории: ДомЗдоровьеЗоологияИнформатикаИскусствоИскусствоКомпьютерыКулинарияМаркетингМатематикаМедицинаМенеджментОбразованиеПедагогикаПитомцыПрограммированиеПроизводствоПромышленностьПсихологияРазноеРелигияСоциологияСпортСтатистикаТранспортФизикаФилософияФинансыХимияХоббиЭкологияЭкономикаЭлектроника |
Размещение компонентов системы: Стандарт FHSПопробуем более подробно разобраться, как устроено дерево каталогов Linux и где что в нём можно найти. Фрагмент дерева каталогов типичной файловой системы Linux (Some Linux, которую использует Мефодий) приведён на рис. dir-tree. Мефодий решил обследовать свою файловую систему, начиная с корневого каталога: Гуревич посоветовал использовать для этого команду ls каталог, где каталог — это полный путь к каталогу: утилита ls выведет список всего, что в этом каталоге содержится. Утилита ls вывела список подкаталогов корневого каталога. Этот список будет таким же или почти таким же в любом дистрибутиве Linux. В корневом каталоге Linux-системы обычно находятся только подкаталоги со стандартными именами. Более того, не только имена, но и тип данных, которые могут попасть в тот или иной каталог, также регламентированы этим стандартом. Этот стандарт называется Filesystem Hierarchy Standard («стандартная структура файловых систем»). Опишем кратко, что находится в каждом из подкаталогов корневого каталога. Мы не будем приводить полные списки файлов для каждого описываемого каталога, а Мефодий сможет просмотреть их при помощи команды ls имя каталога. /bin Название этого каталога происходит от слова «binaries» («двоичные», «исполняемые»). В этом каталоге находятся исполняемые файлы самых необходимых утилит. Сюда попадают такие программы, которые могут понадобиться системному администратору или другим пользователям для устраненения неполадок в системе или при восстановлении после сбоя. /boot «Boot» — загрузка системы. В этом каталоге находятся файлы, необходимые для самого первого этапа загрузки: загрузки ядра и, обычно, само ядро. Пользователю практически никогда не требуется непосредственно работать с этими файлами. /dev В этом каталоге находятся все имеющиеся в системе файлы-дырки: файлы особого типа, предназначенные для обращения к различным системным ресурсам и устройствам (англ. «devices» — «устройство», отсюда и сокращённое название каталога). Например, файлы /dev/ttyN соответствуют виртуальным консолям, где N — номер виртуальной консоли. Данные, введённые пользователем на первой виртуальной консоли, система считывает из файла /dev/tty1, в этот же файл записываются данные, которые нужно вывести пользователю на эту консоль. В файлах-дырках в действительности не хранятся никакие данные, при их помощи данные передаются. Подробнее о принципе работы с файлами-дырками речь пойдёт в лекции Работа с внешними устройствами. /etc Каталог для системных конфигурационных файлов. Здесь хранится информация о специфических настройках данной системы: информация о зарегистрированных пользователях, доступных ресурсах, настройках различных программ. Подробно системные конфигурационные файлы будут рассмотрены в лекции Конфигурационные файлы. /home Здесь расположены каталоги, принадлежащие пользователям системы — домашние каталоги, отсюда и название «home». Отделение всех файлов, создаваемых пользователями, от прочих системных файлов даёт очевидное преимущество: серьёзное повреждение системы или необходимость обновления не затронет наиболее ценной информации — пользовательских файлов. /lib Название этого каталога — сокращение от «libraries» (англ. «библиотеки»). Библиотеки — это собрания наиболее стандартных функций, необходимых многим программам: операций ввода/вывода, рисования элементов графического интерфейса и проч. Чтобы не включать эти функции в текст каждой программы, используются стандартные функции библиотек — это значительно экономит место на диске и упрощает написание программ. В этом каталоге содержатся библиотеки, необходимые для работы наиболее важных системных утилит (размещённых в /bin и /sbin). /mnt Каталог для монтирования (от англ. «mount») — временного подключения файловых систем, например, на съёмных носителях (CD-ROM и др.). Подробно о монтировании файловых систем речь пойдёт в лекции Работа с внешними устройствами. /proc В этом каталоге все файлы «виртуальные» — они располагаются не на диске, а в оперативной памяти. В этих файлах содержится информация о программах (процессах), выполняемых в данный момент в системе. /root Домашний каталог администратора системы — пользователя root. Смысл размещать его отдельно от домашних каталогов остальных пользователей состоит в том, что /home может располагаться на отдельном устройстве, которое не всегда доступно (например, на сетевом диске), а домашний каталог root должен присутствовать в любой ситуации. /sbin Каталог для важнейших системных утилит (название каталога — сокращение от «system binaries»): в дополнение к утилитам /bin здесь находятся программы, необходимые для загрузки, резервного копирования, восстановления системы. Полномочия на исполнение этих программ есть только у системного администратора. /tmp Этот каталог предназначен для временных файлов: в таких файлах программы хранят промежуточные данные, необходимые для работы. После завершения работы программы временные файлы теряют смысл и должны быть удалены. Обычно каталог /tmp очищается при каждой загрузке системы. /usr Каталог /usr — это «государство в государстве». Здесь можно найти такие же подкаталоги bin, etc, lib, sbin, как и в корневом каталоге. Однако в корневой каталог попадают только утилиты, необходимые для загрузки и восстановления системы в аварийной ситуации,все остальные программы и данные располагаются в подкаталогах /usr. Прикладных программ в современных системах обычно установлено очень много, поэтому этот раздел файловой системы может быть очень большим. /var Название этого каталога — сокращение от «variable» («переменные» данные). Здесь размещаются те данные, которые создаются в процессе работы разными программами и предназначены для передачи другим программам и системам (очереди печати и электронной почты и др.) или для сведения системного администратора (системные журналы, содержащие протоколы работы системы). В отличие от каталога /tmp сюда попадают те данные, которые могут понадобиться после того, как создавшая их программа завершила работу. Стандарт FHS регламентирует не только перечисленные каталоги, но и их подкаталоги, а иногда даже приводит список конкретных файлов, которые должны присутствовать в определённых каталогах8. Этот стандарт последовательно соблюдается во всех Linux-системах, хотя и не без горячих споров между разработчиками при выходе каждой новой его версии.
16 Особенности и основные функции файловой системы. Основной задачей, которую решает файловая система, является обеспечение взаимодействия программ и физических устройств ввода/вывода, таких как накопители на жестких дисках, магнитных лентах и т. д. Файловая система связывает носитель информации с одной стороны и API для доступа к файлам — с другой. Когда прикладная программа обращается к файлу, она не имеет никакого представления о том, каким образом расположена информация в конкретном файле, так же, как и на каком физическом типе носителя (CD, жёстком диске, блоке флеш-памяти или другом) он записан. Всё, что знает программа - это имя файла, его размер и атрибуты. Эти данные она получает от драйвера файловой системы. Именно файловая система устанавливает, где и как будет записан файл на физическом носителе (например, жёстком диске). Однако файловая система не обязательно напрямую связана с физическим носителем информации. Существуют виртуальные файловые системы, а также сетевые файловые системы, которые являются лишь способом доступа к файлам, находящимся на удалённом компьютере. ЗАДАЧИ: v именование файлов; v программный интерфейс работы с файлами для приложений; v отображения логической модели файловой системы на физическую организацию хранилища данных; v организация устойчивости файловой системы к сбоям питания, ошибкам аппаратных и программных средств; v содержание параметров файла, необходимых для правильного его взаимодействия с другими объектами системы (ядро, приложения и пр.). В многопользовательских системах появляется ещё 1 задача: v защита файлов одного пользователя от несанкционированного доступа другого пользователя, а также обеспечение совместной работы с файлами, к примеру, при открытии файла одним из пользователей, для других этот же файл временно будет доступен в режиме «только чтение». 17 Индексная файловая система. Виртуальная файловая система. Виртуальная файловая система (virtual file system - VFS) или виртуальный коммутатор файловой системы (virtual filesystem switch) - уровень абстракции поверх конкретной реализации файловой системы. Целью VFS является обеспечение единообразного доступа клиентских приложений к различным типам файловых систем. VFS может быть использована, например, для прозрачного доступа к локальным и сетевым устройствам хранения данных без использования специального клиентского приложения (независимо от типа файловой системы). VFS определяет интерфейс между ядром и конкретной файловой системой, таким образом, можно легко добавлять поддержку новых типов файловых систем, внося изменения только в ядро операционной системы. Иногда виртуальными файловыми системами называют псевдо-файловые системы, которые не предназначены для хранения данных. Примером такой системы является procfs. Одна из первых виртуальных файловых систем в Unix-подобных ОС была реализована Sun Microsystems в SunOS 2.0 в 1985 году. Это позволило системным вызовам Unix получить прозрачный доступ к локальной UFS и удалённой NFS. По этой причине вендоры Unix-систем, получившие лицензию на код NFS, часто копировали дизайн VFS от Sun. Другие файловые системы могут быть подключены так же: появилась реализация файловой системы MS-DOS FAT, разработанная в Sun, использовавшая SunOS VFS, хотя она не поставлялась в качестве продукта до SunOS 4.1.
Индексные дескрипторы файлов Каждому файлу на диске соответствует один и только один индексный дескриптор файла, который идентифицируется своим порядковым номером - индексом файла. Это означает, что число файлов, которые могут быть созданы в файловой системе, ограничено числом индексных дескрипторов, которое либо явно задается при создании файловой системы, либо вычисляется исходя из физического объема дискового раздела. Индексный дескриптор файла имеет следующее строение.
Поле типа и прав доступа к файлу представляет собой двух- байтовое слово, каждый бит которого служит флагом, индицирующим отношение файла к определенному типу или установку одного конкретного права на файл.
Среди индексных дескрипторов имеется несколько дескрипторов, которые зарезервированы для специальных целей и играют особую роль в файловой системе. Это следующие дескрипторы
Самый важный дескриптор в этом списке - дескриптор корневого каталога. Этот дескриптор указывает на корневой каталог, который, подобно всем каталогам, состоит из записей следущей структуры:
Отдельная запись в каталоге не может пересекать границу блока (то есть должна быть расположена целиком внутри одного блока). Поэтому, если очередная запись не помещается целиком в данном блоке, она переносится в следующий блок, а предыдущая запись продолжается таким образом, чтобы она заполнила блок до конца.
18 Стандартные каталоги в файловой системе. Сохранность и защита файлов. Стандартные каталоги UNIX
Корневой каталог: /bin - исполняемые файлы самых необходимых утилит, которые требуются для корректной работы ОС. /boot - ядро ОС и карты загрузки, а также конфигурационные файлы загрузчиков. /cdrom - сюда монтируется диск, вставленный в CD-ROM. /dev - файлы особого типа, предназначенные для обращения к системным ресурсам и устройствам. /etc - информация о пользователях, доступных ресурсах, настройках программ. /home«домашние каталоги»(/home/<имя пользователя>/) пользователей, личные настройки всех приложений /initrdinitial ram disk, стартовый виртуальный диск. /libБиблиотеки, используемые для работы важных системных утилит. /media - монтируются файловые системы. /mnt -временное подключение ФС на съемных носителях (CD-диски, USB-флэшки, внешние винчестеры). /opt -дополнительное программное обеспечение. /proc -файлы в этом каталоге “виртуальные”. Информация о программах (процессах), выполняемых в данный момент в системе. /rootДомашний каталог администратора. /sbinКаталог системных утилит. Программы нужные для загрузки, восстановления системы, резервного копирования. Права на исполнение этих программ только у суперпользователя. /srvДанные для сервисов. /sysСредства для изменения конфигурации системы. /tmpВременные файлы, созданные запущенными программами или процессам, очистка при загрузке системы. /usrВсе программы. /var - информация, созданная в процессе работы программами и необходимая для передачи другим программам и системам. Сохранность и защита данных Безопасность данных вычислительной системы обеспечивается средствами отказоустойчивости ОС, направленными на защиту от сбоев и отказов аппаратуры и ошибок программного обеспечения, а также средствами защиты от несанкционированного доступа. В последнем случае ОС защищает данные от ошибочного или злонамеренного поведения пользователей системы. Первым рубежом обороны при защите данных от несанкционированного доступа является процедура логического входа. ОС должна убедиться, что в систему пытается войти пользователь, вход которого разрешен администратором. Функции защиты ОС вообще очень тесно связаны с функциями администрирования, так как именно администратор определяет права пользователей при их обращении к разным ресурсам системы — файлам, каталогам, принтерам, сканерам и т. п. Кроме того, администратор ограничивает возможности пользователей в выполнении тех или иных системных действий. Например, пользователю может быть запрещено выполнять процедуру завершения работы ОС, устанавливать системное время, завершать чужие процессы, создавать учетные записи пользователей, изменять права доступа к некоторым каталогам и файлам. Администратор может также урезать возможности пользовательского интерфейса, убрав, например, некоторые пункты из меню операционной системы, выводимого на дисплей пользователя. Важным средством защиты данных являются функции аудита ОС, заключающиеся в фиксации всех событий, от которых зависит безопасность системы. Например, попытки удачного и неудачного логического входа в систему, операции доступа к некоторым каталогам и файлам, использование принтеров и т. п. Список событий, которые необходимо отслеживать, определяет администратор ОС. Поддержка отказоустойчивости ОС реализуется, как правило, на основе резервирования. Чаще всего в функции ОС входит поддержание нескольких копий данных на разных дисках или разных дисковых накопителях. Резервируются также принтеры и другие устройства ввода-вывода. При отказе одного из избыточных устройств ОС должна быстро и прозрачным для пользователя образом произвести реконфигурацию системы и продолжить работу с резервным устройством. Особым случаем обеспечения отказоустойчивости является использование нескольких процессоров, то есть мультипроцессирование, когда система продолжает работу при отказе одного из процессоров, хотя и с меньшей производительностью. (Необходимо отметить, что многие ОС использует мультипроцессорную конфигурацию компьютера только для ускорения работы и при отказе одного из процессоров прекращают работу.) 19 Сравнение файловых систем. Windows NTFS NTFS является предпочтительной файловой системой для этой версии Windows. Она имеет множество преимуществ перед более ранней системой FAT32; ниже перечислены некоторые из них.
FAT32 Файловая система FAT32 и редко применяемая система FAT использовались в предыдущих версиях Windows, в том числе в Windows 95, Windows 98 и Windows Millenium Edition. Файловая система FAT32 не обеспечивает уровня безопасности, предоставляемого NTFS, поэтому если на компьютере имеется раздел или том, отформатированный под FAT32, файлы на этом разделе видны любому пользователю, имеющему доступ к компьютеру. Файловая система FAT32 также имеет ограничения по размеру файлов. В этой версии Windows невозможно создать раздел FAT32 размером более 32Гб. Кроме того, раздел FAT32 не может содержать файл размером более 4Гб. Основной причиной использования системы FAT32 может служить то, что на компьютере можно будет запустить как Windows 95, Windows 98 или Windows Millenium Edition, так и эту версию Windows (конфигурация с несколькими операционными системами). Для создания такой конфигурации необходимо установить предыдущую версию операционной системы на раздел, отформатированный под FAT32 или FAT, сделав его основным (основной раздел может содержать операционную систему). UNIX Ext2 Second Extended Filesystem (сокращенно звучит как ext2 или просто ext2) много лет была файловой системой GNU/Linux по умолчанию. Она заменила Extended File System (вот откуда в названии появилось «Second»). ext2 устраняет определенные проблемы и ограничения своей предшественницы. ext2 соблюдает обычные стандарты для файловых систем UNIX®-типа. С самого начала она была предназначена для дальнейшего развития, сохраняя при этом высокую отказоустойчивость и хорошую производительность. Ext3 Как видно из названия, Third Extended File System является наследником ext2. Она совместима с последней, но была улучшена засчет добавления журналирования. Одним из главных недостатков «традиционных» файловых систем типа ext2 является их низкая устойчивость к внезапным падениям системы (отключение электричества или сбой программного обеспечения). Вообще говоря, при дальнейшей перезагрузке системы такие виды событий приводят к очень долгой проверке структуры файловой системы и попыткам исправить ошибки, что иногда вызывает более обширные разрушения. Это разрушение могло бы привести к частичной или полной потере данных. Журналирование отвечает за решение этой проблемы. Для упрощения давайте будем говорить, что мы записываем действия (например, сохранение файла) до того, как они происходят на самом деле. Мы могли бы сравнить такой образ действий с тем, что ведет капитан корабля, который использует бортовой журнал для записи ежедневных событий. С той лишь разницей, что он делает запись после того, как событие произошло. Результат - всегда согласованная файловая система. А если возникают проблемы, проверка и окончательное восстановление выполняются очень быстро. Время, потраченное на проверку файловой системы, таким образом, пропорционально ее фактическому использованию и не связано с ее размером. Таким образом, ext3 предлагает технологию журналирования файловой системы, сохраняя при этом структуру ext2, обеспечивая при этом отличную совместимость. Это значительно облегчает переход с ext2 на ext3 и обратно. ReiserFS В отличие от ext3 reiserfs была написана с нуля. Это журналируемая файловая система типа ext3, но ее внутренняя структура радикально отличается, т.к. в ней используются идеи двоичного дерева, навеянные программным обеспеченем для баз данных. JFS JFS - это журналируемая файловая система, разработанная и используемая в IBM. Изначально она была собственнической и закрытой, но потом в IBM решили открыть к ней доступ для движения за свободное программное обеспечение. Ее внутренняя структура близка к структуре reiserfs. XFS XFS - это журналируемая файловая система, разаработанная в SGI, и также используемая в операционной системе Irix. Изначально она была собственнической и закрытой, но потом в SGI также решили открыть к ней доступ для движения за свободное программное обеспечение. Ее внутренняя структура имеет много разнообразных возможностей, таких как поддержка пропускной способности реального времени, экстенты (непрерывные области с прямым доступом, резервируемые для определенного набора данных) и кластерные файловые системы (но не в свободной версии).
Mac HFS (англ. Hierarchical File System, иерархическая ФС) — файловая система, разработанная Apple Computer для компьютеров с ОС Mac OS. HFS делит том на логические блоки по 512 байт, один или более которых составляют allocation block. HFS - файловая система с 16-битной адресацией, поэтому размер тома ограничен 65535 allocation block. HFS использует древовидную структуру, называемую B*-дерево для хранения большей части метаданных. То есть каждый файл состоит из двух частей, так называемых, ветви ресурсов и ветви данных. Ветвь данных (data fork) - это собственно содержание файла, например, текст, изображение, видео или звук. В ветви ресурсов (resource fork) содержится различная служебная информация о файле: даты создания и редактирования, информация о программе создателе, иконка файла, а если этот файл - программа, то и используемый код. HFS+ или Mac OS Extended - файловая система для замены ранее использующейся HFS, основной ФС на компьютерах Macintosh. С этой ФС может работать плеер iPod. HFS+ является улучшенной версией HFS, с поддержкой файлов большого размера (32-битная адресация вместо старой 16-битной) и использует кодировку UTF-16 для имён файлов и папок. HFS+ поддерживает имена длиной до 255 символов формата UTF-16 и многопоточные файлы подобно NTFS (однако почти все программы используют только поток данных (англ. data fork) и поток с ресурсами (англ. resource fork)). HFS+ также использует 32-битную таблицу привязки файла к месту на диске (англ. allocation mapping table) вместо 16-битной в HFS. Старая адресация являлась серьёзным ограничением HFS, не позволявшим работать с томами объёмом более 65 536 блоков (по аналогии: FAT16 и FAT-32). При объёме диска в 1 ГБ размер кластера (блока) составлял 16 КБ - даже файл из 1 байта занимал все 16 КБ. 20 Модели распределения памяти. Статистические и динамические разделы. Свопинг. Запоминающие устройства компьютера разделяют, как минимум, на два уровня: основную (главную, оперативную, физическую) и вторичную (внешнюю) память. Основная память представляет собой упорядоченный массив однобайтовых ячеек, каждая из которых имеет свой уникальный адрес (номер). Процессор извлекает команду из основной памяти, декодирует и выполняет ее. Для выполнения команды могут потребоваться обращения еще к нескольким ячейкам основной памяти. Вторичную память (это главным образом диски) также можно рассматривать как одномерное линейное адресное пространство, состоящее из последовательности байтов. В отличие от оперативной памяти, она является энергонезависимой, имеет существенно большую емкость и используется в качестве расширения основной памяти. Алгоритмы распределения памяти Подкачка страниц (paging; swap) - механизм виртуальной памяти, при котором отдельные фрагменты памяти (обычно неактивные) перемещаются из ОЗУ во вторичное хранилище (жёсткий диск или другой внешний накопитель, такой как флеш-память), освобождая ОЗУ для загрузки других активных фрагментов памяти. Временно выгруженные из памяти страницы могут сохраняться на внешних запоминающих устройствах как в файле, так и в специальном разделе на жёстком диске (partition), называемые соответственно swap-файл и swap-раздел. В случае откачки страниц, соответствующих содержимому какого-либо файла (например, memory-mapped files), они могут удаляться. При запросе такой страницы она может быть считана из оригинального файла. Когда приложение обратится к откачанной странице, произойдет исключительная ситуация PageFault. Обработчик этого события должен проверить, была ли ранее откачана запрошенная страница, и, если она есть в swap-файле, загрузить ее обратно в память.
|
|||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
Последнее изменение этой страницы: 2016-06-09 lectmania.ru. Все права принадлежат авторам данных материалов. В случае нарушения авторского права напишите нам сюда... |