Docsity
Docsity

Подготовься к экзаменам
Подготовься к экзаменам

Учись благодаря многочисленным ресурсам, которые есть на Docsity


Получи баллы для скачивания
Получи баллы для скачивания

Заработай баллы, помогая другим студентам, или приобретай их по тарифом Премиум


Руководства и советы
Руководства и советы

Курсовая работа Исследование файловых систем операционной системы Linux, Рефераты из Операционные системы

Курсовая работа на тему Исследование файловых систем операционной системы Linux

Вид: Рефераты

2020/2021

Загружен 23.04.2021

Rinat12132312321
Rinat12132312321 🇰🇿

1 документ

1 / 19

Toggle sidebar

Сопутствующие документы


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

Скачай Курсовая работа Исследование файловых систем операционной системы Linux и еще Рефераты в формате PDF Операционные системы только на Docsity! Министерство образования и науки Республики Казахстан ВОСТОЧНО-КАЗАХСТАНСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ ИМ. Д. СЕРИКБАЕВА Школа информационных технологий и интеллектуальных систем ПОЯСНИТЕЛЬНАЯ ЗАПИСКА к курсовой работе по дисциплине «Операционные системы» На тему: «Исследование файловых систем операционной системы Linux.» Выполнил: студент 18-ВТ-1 гр. Кожуганов Р. К. Проверил: Котлярова И.А. Усть-Каменогорск, 2019 2 Содержание Введение………………………………………………………………...…..…..3 1 Файловая система операционной системы Linux….....….…………..……...4 1.1 Понятие и функции файловой системы…...……………………...……..…4 1.2 Журналируемые файловые системы………………………..…………..…5 1.3 Блок файловой системы…………….....……………….…………………...7 1.4 Суперблок………………..……………….………………...……………….8 1.5 Описатель файла…………..……………….………………...……………..8 1.6 Файловые системы операционной системы Linux ……...….……….........9 2 Практическая работа с файловой системой…………………………….…12 2.1 Монтирование флеш-диска ………………………………………………12 2.2 Программа для вывода имена всех подкаталогов текущего каталога…..........................................................................................................15 Заключение…………………………………………………………………….18 Литература…………………………………………………………………….19 5 В начале каждой файловой системы есть чистый бит. При подключении файловой системы этот бит стирается. Это означает, что файловая система используется в данный момент, а при завершении работы этот бит заменяется обратно в чистый. 1.2Журналируемые файловые системы В операционной системе Linux широко используются журналируемые файловые системы. Такие как Ext3, Ext4, ReiserFS, XFS. Журналируемые файловые системы — это класс файловых систем, характерная черта которых — ведение журнала, хранящего список изменений, в той или иной степени помогающего сохранить целостность файловой системы. Основной целью создания журналируемых файловых систем является возможность и скорость восстановления данных при сбое. Если происходит сбой то часть информации о расположении файла теряется, так как операционная система не успевает записать все изменения из буфера на диск. При запуске операционной системы Linux после сбоя запускается утилита fsck, которая проверяет цельность файловой системы и диски которые были демонтированы некорректно, для восстановления утерянной информации. И за больших объемов жестких дисков на проверку одного или нескольких таких дисков может очень много времени. Так же нет гарантий что утерянные данные будут восстановлены. Для решения данной проблемы в журналируемых файловых системах используются транзакции. Транзакции – это неделимая связанная между собой группа операций. Транзакция будет завершена успешно только в том случае если все операции составляющие транзакцию будут завершены успешно. Так же система ведет журнал, в который записываются все действия и изменения 6 данных. При возникновение сбоя используя журнал можно восстановить утерянную информацию. Существует 3 типа журналирования: 1. Режиме обратной связи - В файловых системах записываются только метаданные то есть индексные дескрипторы изменяемых файлов, битовые карты распределения свободных блоков и свободных индексных дескрипторов. Не гарантирует цельность данных, но сокращает время требуемое для проверки. В данном режиме могут работать файловые системы XFS, ext3. 2. Упорядоченные – Не гарантирует полного восстановления утерянных данных но шансы больше по сравнению с Writeback. Запись данных в файл производится гарантированно до записи информации о изменении этого файла. Так же снижает производительность системы. Данный режим по умолчанию используется в файловых системах JFS2, ext3, а основным является в файловой системе ReiserFS 3. В режиме данных – полное журналирование, как метаданных файловой системы так и пользовательских файлов. Этот режим использует файловая система ext3. Журнальная файловая система перед каким либо действием записывает план действий в специальный файл, который называется журнальный. Как только журнальная файловая система убедится, что стратегический план действий полностью завершен и данные успешно записаны на диск она вычеркивает этот пункт из журнала. Теперь в случае сбоя компьютера и перезагрузки его, при следующем запуске программа проверки файловой системы будет проверять не все данные на диске, а только те файлы, которые находятся в журнале, ведь если и будут ошибки, то они будут в файлах, которые не успели записаться. Но ведь ошибок может и не быть по причине того, что запись в журнальный файл ведется до 7 начало операции по работе с диском и в момент отключения питания процесс записи на диск еще не начался. Рассмотрим как работает не журналируемая файловая система Ext2. Данные сначала кэшируются и только потом записываются на диск, чем достигается высокая производительность. Но предположим возникли проблемы с питанием и ОС не успеет сохранить данные, следовательно компьютер обнаружит нарушение целостности жесткого диска и запустит средство проверки файловой системы, затем восстановит работоспособность. Но этот процесс занимает много времени. Визуально загрузка будет происходить дольше обычного. 1.3Блок файловой системы Блок файловой системы- после форматирования диска или раздела сектора диск разделяется на небольшие группы, эти группы называются блоком. Размер блока задается при форматировании. Например: mkfs -t ext3 -b 4096 /dev/sda1 • mkfs - создаёт новую файловую систему Linux • -t – указывает тип файловой системы, по умолчанию выбирается ext2 • -b – задает размер блока в байтах Так же размер зависит от типа файловой системы. При выборе размера файловой системы следует учесть: максимальный размер файла, максимальный размер файловой системы и производительность. Размер блока влияет на скорость чтения/записи с диска. Размер блока не должен быть меньше размеру сектора диска, так же размер файловой системы не может быть меньше размера сектора диска. Так как ядро операционной системы Linux работает с блоками файловой системы, а не с размером сектора диска. С помощью команды getconf PAGE_SIZE можно узнать размер системной страницы. 10 Мортоном, и выпушена а 10 октября 2006 года в виде патча к ядрам Linux версий 2.6.19-rc1-mm1 и 2.6.19-rc1-git8. По сравнению с Ext3 здесь увеличился максимальный объёма одного раздела диска до 1 эксбибайта (260 байт) при размере блока 4 кибибайт, увеличение размера одного файла до 16 терабибайт, введение механизма пространственной (extent) записи файлов, уменьшающего фрагментацию и повышающего производительность. Суть механизма заключается в том, что новая информация добавляется в конец области диска, выделенной заранее по соседству с областью, занятой содержимым файла.[4] JFS (Journaled File System )- 64-битная журналируемая файловая система, была представлена IBM в феврале 1990 года. Все соответствующие файловой системе поля также 64-разрядные. Это позволяет JFS поддерживать как большие файлы, так и разделы. Минимальный размер файловой системы составляет 16 Мб. Максимальный размер зависит от размера блока файловой системы и максимального числа блоков, поддерживаемых структурами метаданных файловой системы. JFS будет поддерживать максимальный размер файла от 512 Тб (блоками по 512 байт) до 4 Пб (блоками по 4 Кб). JFS в отличие от EXT3 изначально являлось журналируемой файловой системой. JFS использует первый тип журналирования, то есть записываются только метаданные На момент выхода была самой производительной файловой системой, на данный момент сохранят лидирующие места. Многие пользователи отмечают что из всех используемых файловых систем в Linux JFS наиболее быстрая, надежная, и отличается низкой нагрузкой процессора. Но она очень редко используется так как ext4 обычно предлагает лучшую производительность. ReiserFS- разработанная специально для Linux компанией Namesys под руководством Ганса, является первой журналируемой файловой системой. Поддерживается только под Linux. Она поддерживает быструю перестройку своего дерева и имеет обширные возможности восстановления. Считается самой экономичной, поскольку позволяет хранить несколько 11 файлов в одном блоке. На данный момент существует две версии Reiser3 и Reiser4. Но и за слабой поддержки данной файловой системы большинство дистрибутивов отказываются от неё. XFS - высокопроизводительная журналируемая файловая система разработана компанией Silicom Graphics в 2001г. Отличается от других файловых систем тем, что она изначально была рассчитана для использования на дисках большого объема, более 2 Тбайт. Существует возможность потери данных во время записи при сбое питания, так как большое количество буферов хранится в памяти. Процесс восстановления потерянных файлов в XFS очень сложный, поэтому на данный момент не существует программного обеспечения для восстановления. Btrfs- Файловая система основанная на технике «Сopy and write», обеспечивает легкое масштабирования систем, высокую степень надежности и сохранности данных, гибкость настроек и легкость администрирования, сохраняя при этом высокую скорость работы. Активное её развитие приводит к изменению каких-либо ключевых моментов, на которые могут опираться сторонние утилиты при работе с ней. Несмотря на заверения разработчиков о стабильности BTRFS, пользователи регулярно сталкиваются с проблемами, потенциально приводящими к потере данных. Как правило, они носят «плавающий» характер, вследствие чего до сих пор не изучены и не исправлены. Высокая подверженность фрагментации. 12 2 ПРАКТИЧЕСКАЯ РАБОТА С ФАЙЛОВОЙ СИСТЕМОЙ 2.1Монтирование флеш-диска Задание: Примонтировать USB-флеш-накопитель с файловой системой FAT32, для пользователей root и user, в директорию /home/media/flesh. Монтирование файловой системы — процесс, подготавливающий раздел диска к использованию операционной системой. монтирование корневой файловой системы (/) является частью процесса инициализации. Операция монтирования состоит из нескольких этапов: • определение типа монтируемой системы; • проверка целостности монтируемой системы; • считывание системных структур данных и инициализация соответствующего модуля файлового менеджера (драйвера файловой системы); • установка флага, сообщающего об окончании монтирования. При корректном размонтировании этот флаг сбрасывается. Если при загрузке система определяет, что флаг не сброшен, значит работа была завершена некорректно, и возможно ФС нуждается в починке; • включение новой файловой системы в общее пространство имен. Для монтирования и демонтирования файловых систем обычно требуются привилегии пользователя root. Для монтирования применяют утилиту mount. mount — утилита командной строки в UNIX-подобных операционных системах. Применяется для монтирования файловых систем. Основные опции утилиты mount. • -V - вывести версию утилиты; 15 2.2Программа для вывода имена всех подкаталогов текущего каталога Задание: Разработать программу, которая просматривает текущий каталог и выводит на экран имена всех встретившихся в нем каталогов. Затем осуществляется переход в родительский каталог, который затем становится текущим, и указанные выше действия повторяются до тех пор, пока текущим каталогом не станет корневой каталог. Класс Directory предоставляет ряд статических методов для управления каталогами. Некоторые из этих методов: • CreateDirectory(path): создает каталог по указанному пути path • Delete(path): удаляет каталог по указанному пути path • Exists(path): определяет, существует ли каталог по указанному пути path. Если существует, возвращается true, если не существует, то false • GetDirectories(path): получает список каталогов в каталоге path • GetFiles(path): получает список файлов в каталоге path • Move(sourceDirName, destDirName): перемещает каталог • GetParent(path): получение родительского каталога Для реализации данной задачи я использовал язык программирование C# и класс Directory. Для работы с классом Directory я подключил пространство имен «System.IO». Данная программа содержит один textbox для вывода информации, одну кнопу «старт» для запуска программы. После запуска приложения переменным dirname1, dirname2 присваивается путь с которого программа начнет свою работу, а в переменной dirname3 сохраняется путь до корневого каталога. После чего запускается цикл for с параметром j<1000 в котором используется оператор if, для того что бы проверить достиг ли dirname1 корневого каталога. Если результат отрицательный то цикл продолжает работать. Далее переменная dirs типа string получает 16 информацию о находящихся в текущем каталоге подкаталогов, с помощью метода GetDirectories. После чего используя цикл foreach в окно textbox выводится информация о подкаталогах. Затем программа используя метод GetParent получит родительский каталог переменной dirname1, который сохраняется в переменной dirname2. После переменной dirname1 присваивается значение переменной dirname2. Затем данный цикл будет повторятся до тех пор пока dirname1 не станет равным dirname3, то есть пока не достигнет родительского каталога. После переменная j станет равна 1000, и после окончания цикла он завершится. Запуск приложения: Рис.3 Программа после запуска После нажатия на кнопку: Рис.4 Программа после нажатия на кнопку 17 Рис.5 Программа после нажатия на кнопку Программный код: Рис.6 Программный код
Docsity logo