Предыдущий урок: Как работает компьютер? Часть 75. Управление устройствами ввода-вывода
Мы уже знаем, как операционная система управляет памятью и процессами, но все эти вычисления были бы бессмысленны, если бы их результаты нельзя было сохранить надолго. Для этого служат диски — SSD и HDD. Однако, если бы мы просто сбрасывали данные на диск как попало, это быстро превратилось бы в хаос. Представьте огромную библиотеку, где книги сваливают в одну большую кучу без названий, оглавлений и полок. Найти нужную информацию было бы невозможно. Именно чтобы избежать такого хаоса, существуют файловые системы. Файловая система — это набор правил и структур данных, которые превращают пространство диска, представляющее собой просто последовательность нулей и единиц, в упорядоченное хранилище с файлами и папками, к которым мы привыкли.
Вся магия начинается с разметки диска. Когда вы подключаете новый диск, он подобен чистому листу бумаги. Прежде чем использовать его, операционная система должна провести на нём «разметку» — создать таблицу разделов. Эта таблица, расположенная в самом начале диска, сообщает системе, на сколько логических частей («разделов») разделён диск. Каждый раздел затем можно отформатировать под определённую файловую систему. Форматирование — это процесс создания на разделе всех необходимых структур выбранной файловой системы.
Само сердце файловой системы — это её метаданные, то есть «данные о данных». Представьте себе библиотечный каталог. В нём нет самих книг, но есть карточки, которые точно указывают, где какую книгу искать. Так же работает и файловая система. Основная структура метаданных в UNIX-подобных системах (Linux, macOS) называется inode (index node). Inode — это не имя файла, а его уникальный паспорт. В нём хранится вся информация о файле: его размер, права доступа, время создания и, самое главное, указатели на те самые блоки на диске, где физически записано содержимое этого файла. Имена файлов и их связь с inode хранятся в других структурах — каталогах, которые, по сути, сами являются файлами со списком имён и соответствующих им номеров inode.
Когда вы пытаетесь открыть файл /home/user/report.txt, система выполняет примерно следующие шаги:
- Находит корневой каталог / и ищет в нём запись с именем home. Она содержит номер inode для каталога home.
- Обращается к этому inode, читает данные каталога home и находит в нём запись user, получая номер inode для каталога user.
- Читает каталог user, находит запись report.txt и, наконец, получает номер inode самого файла.
- По номеру inode находит его структуру, из которой узнаёт адреса блоков диска, где хранится содержимое файла report.txt.
- Считывает эти блоки в оперативную память.
Современные файловые системы также решают проблему целостности данных. Представьте, что вы записываете файл на диск, и в этот момент отключается электричество. Данные могут быть повреждены. Для борьбы с этим используется механизм журналирования. Перед тем как внести изменения в саму файловую систему (например, обновить inode или записать новые блоки), ОС сначала записывает план предстоящих действий в специальную область — журнал (или лог). Это как сделать пометку в черновике «сейчас я соберу книжную полку». Только после того, как план безопасно записан, система приступает к его выполнению. Если в процессе сбоя питание пропадёт, то при следующей загрузке система проверит журнал, увидит незавершённую операцию и сможет её откатить или завершить, предотвращая повреждение структур файловой системы.
Таким образом, файловая система — это не просто способ хранения файлов. Это сложная база данных, которая обеспечивает целостность, быстрый доступ и эффективное управление дисковым пространством. Она незаметно для нас превращает безликую последовательность битов на диске в удобную иерархическую структуру папок и файлов, делая взаимодействие с данными простым и надёжным.
Спасибо за внимание!
Следующий урок: Как работает компьютер? Часть 77. Интерфейсы: общение с ОС
Если вам интересно копать глубже, разбирать реальные кейсы и получать знания, которых нет в открытом доступе — вам в IT Extra Premium.
Что внутри?
✅ Закрытые публикации: Детальные руководства, разборы сложных тем (например, архитектура высоконагруженных систем, глубокий анализ уязвимостей, оптимизация кода, полезные инструменты и объяснения сложных тем простым и понятным языком).
✅ Конкретные инструкции: Пошаговые мануалы, которые вы сможете применить на практике уже сегодня.
✅ Без рекламы и воды: Только суть, только концентрат полезной информации.
✅ Ранний доступ: Читайте новые материалы первыми.
Это — ваш личный доступ к экспертизе, упакованной в понятный формат. Не просто теория, а инструменты для роста.
👉 Переходите на Premium и начните читать то, о чем другие только догадываются.
👍 Ставьте лайки если хотите разбор других интересных тем.
👉 Подписывайся на IT Extra на Дзен чтобы не пропустить следующие статьи
👇
Понравилась статья? В нашем Telegram-канале ITextra мы каждый день делимся такими же понятными объяснениями, а также свежими новостями и полезными инструментами. Подписывайтесь, чтобы прокачивать свои IT-знания всего за 2 минуты в день!