- Файловая система Linux — обзор, список команд для работы
- 1. Что такое файловая система простыми словами
- 2. Целостность файловой системы — что это такое
- 3. Список команд для работы с файлами в Linux
- 4. Типы файловых систем Linux — описание и обзор
- 5. Типы файлов Linux
- Файловые системы в Linux
- Что такое файловая система Linux? Простое Руководство
- Что такое файловая система Linux?
- Типы файловых систем Linux
- Каталоги файловой системы Linux
- Заключение
Файловая система Linux — обзор, список команд для работы
Поговорим о файловых системах Linux. Какие существуют типы и виды. Какие их основные различия: журналируемые и не журналируемые ФС.
1. Что такое файловая система простыми словами
Термин «файловая система» можно понимать двояко. С одной стороны — это архитектура хранения битов на жестком диске, с другой — это организация каталогов в соответствии с идеологией Unix. В этой статье мы более подробно обсудим первую сторону.
В физическом смысле файловая система Linux/UNIX представляет собой пространство раздела диска разбитое на блоки фиксированного размера. Их размер кратен размеру сектора: 1024, 2048, 4096 или 8120 байт. Размер блока известен заранее.
Как происходит обмен данными между ядром, приложениями и жестким диском? Для этого существуют 2 технологии:
- Виртуальная файловая система (VFS). Некий интерфейс, между ядром и файловой системой (ext2, ext4 и т.д.). Это позволяет взаимодействовать ядру и приложениям без особенностей работы конкретного типа ФС. Иногда VFS называют «виртуальным коммутатором файловых систем».
- Драйверы файловых систем . Специальные программы, которые устанавливают «мост» (интерфейс) взаимодействия между аппаратурой и программой.
Список поддерживаемых ядром файловых систем находится в файле /proc/filesystems :
Иерархия файловой системы
Как мы уже сказали выше, есть вторая сторона ФС, которая состоит в определении ее с точки зрения организации расположения файлов в Linux. В этом случае можно сказать, что: файловая система — это иерархическая структура, которая начинается с корневого каталога «/» (корневой каталог) и дальше ветвится в соответствие с работой системы.
В этой статье мы будем говорить подробнее про типы файловых систем. Про организацию и структуру каталогов в Linux можно отдельно прочитать в статье:
2. Целостность файловой системы — что это такое
Файловая система называется целостной, если внесенные изменения в один файл не приведут к изменению другого файла в системе, который никак не связан с первым. В этом случае мы говорим, что у всех данных собственная физическая память.
Проверку целостности файловой системы в Linux можно запустить с помощью команды fsck (в Windows это программа называется – scandisk )
В начале ФС есть чистый бит. Если система используется, то в этот бит заносится 1. По завершению работы опять 0.
3. Список команд для работы с файлами в Linux
Команда | Описание |
touch file_name | Создать файл «file_name» |
mkdir directory_name | Создать директорию «directory_name» |
rm file_name | Удалить файл «file_name» |
rm -r | Удалить рекурсивно все файлы из директории |
pwd | Вывод каталога в котором сейчас находитесь |
ls directory_name | Вывести содержание каталога «directory_name» (можно просто ввести ls без имени и тогда выведутся все файлы текущей директории) |
cd directory_name | Перейти в директорию «directory_name» |
cp file_name directory_name | Копировать «file_name» в директорию «directory_name» |
mv file_name directory_name | Переместить «file_name» в директорию «directory_name» |
mv old_name new_name | Переименовать файл/директорию «old_name» в «new_name» |
Права доступа к файлу/каталогу можно изменять с помощью команды chmod:
Таким образом можно изменять права доступа к файлу и каталогам (а также вложенным каталогам и файлам в них).
4. Типы файловых систем Linux — описание и обзор
Файловые системы условно делятся на два типа
- Журналируемые . Имеют в своем арсенале специальный файл, который хранит историю действий (лог) и план дальнейшей проверки. Характерной особенностью является устойчивость к сбоям и большая гарантия на сохранение целостности данных.
- Не журналируемые . Отсутствует файла с логом. Работают более быстро. Не гарантируют целостность и сохранность данных. Особенно это проблема встает в случае сбоев, когда некоторые действия могли редактировать файл и прервать изменения в неправильном месте.
Узнать файловую систему в ОС Linux
Самые популярными типами ФС в Linux являются:
- Ext4 (считается стандартом для Linux)
- Ext2
- ReiserFS
- XFS
- SWAP
В Windows поддерживаются свои ФС: NTFS, FAT32. Линукс также их поддерживает, а вот Windows не поддерживает линуксовые системы.
1 Extfs (Extended File System). Дата появления на свет апреле 1992 года. Самая первая файловая система разработанная специально для ОС на ядре Linux. Наибольший возможный размер раздела файла — 2 Гб. Максимальная длина имени файла — 255 символов. Является прародителем популярных ФС Ext2, Ext3.
2 Ext2 (second extended file system). Дата создания 1993 год. Является не журналируемой файловой системой. Была популярна до 2000-х. Имеет ряд ограничений на работу с большими файлами, зато является и самой быстрой, поэтому её часто используют в различных сравнительных тестах как эталонную.
3 Ext3 (third extended filesystem). Дата выхода 2001 год. Считается революционной, поскольку относится к поколению журналируемых систем. В настоящее время файловая система Ext3 поддерживает файлы размером до 1 ТБайт. Используется в некоторых случаях до сих пор. Разделы Ext3 могут читать Windows-программы (например, Total Commander). Разработчик Стивен Твид.
4 Ext4 (дата выхода 2006 год). Является стандартом во всех современных Linux (а сейчас 2019 год). Хорошо защищена от проблем фрагментации и оптимизирована для работы с большими файлами. Максимальный размер файловой системы не может превышать 16 ТБайт.
5 ReiserFS (или Reiser3). Создана уже после ext3 в качестве ее альтернативы. Журналируемая система. Поддерживает большую производительность. Позволяет изменять размеры разделов во время работы.
Считается самой экономичной, поскольку позволяет хранить несколько файлов в одном блоке, что позволяет использовать каждый байт жесткого диска. Обычные файловые системы могут хранить в одном блоке один файл или одну его часть.
6 Reiser4 (дата создания 2004 году). Система включает себя такие передовые технологии как транзакции, задержка выделения пространства, а так же встроенная возможность кодирования и сжатия данных.
7 XFS (журналируемая файловая система). Это производительная файловая система, разработанная в Silicon Graphics для свой операционной системы еще в 2001 году. Позволяла использовать диски 2 ТБайт. Существует возможность потери данных во время записи при сбое питания, так как большое количество буферов хранится в памяти.
8 Btrfs или B-Tree File System . Журналируемая файловая система. Совершенно новоиспеченная файловая система, которая сосредоточена на отказоустойчивости, свободности администрирования и восстановления данных. К её особенностям относятся хранение индекса файлов в так называемых «B-деревьях» – иерархических структурах, которые максимально оптимально используют ресурсы оперативной памяти за счёт небольшой глубины вложения данных.
9 SWAP – особый вид не журналируемой файловой системы, которая реализует структуру хранения данных, аналогичную структуре оперативной памяти. Используется для реализации файла подкачки в Linux.
5. Типы файлов Linux
Перечислим поддерживаемые типы файлов в ОС Linux
- Файлы (тексты, исходники, картинки, скрипты)
- Каталоги
- Блочные устройства (жесткие диски, дискеты)
- Символьные устройства (терминалы, принтеры)
- символические ссылки
- PIPE
- Гнезда
Тип файла в каталоге можно посмотреть командой:
Посмотреть список блочных устройств можно командой:
# ls-l /dev/sd* brw-rw—-1 root disk 8, 0 Мар11 19:03 /dev/sda brw-rw—-1 root disk 8, 1 Мар10 21:23 /dev/sda1 brw-rw—-1 root disk 8, 5 Мар10 21:23 /dev/sda5 brw-rw—-1 root disk 8, 16 Мар10 22:31 /dev/sdb brw-rw—-1 root disk 8, 17 Мар10 21:23 /dev/sdb1 brw-rw—-1 root disk 8, 18 Мар10 21:23 /dev/sdb2 brw-rw—-1 root disk 8, 32 Мар11 19:05 /dev/sdc brw-rw—-1 root disk 8, 33 Мар11 17:59 /dev/sdc1
Буквой «b» помечаются блочные устройства.
Посмотреть список дисков можно командой
Вывести информацию о жестком диске можно так
Источник
Файловые системы в Linux
XFS — начало разработки 1993 год, фирма Silicon Graphics, в мае 2000 года предстала в GNU GPL, для пользователей большинства Linux систем стала доступна в 2001-2002 гг. Отличительная черта системы — прекрасная поддержка больших файлов и файловых томов, 8 эксбибайт — 1 байт (8*2 60 -1 байт) для 64-х битных систем. Ко всему прочему обладает другими немаловажными особенностями — непрерывные области дискового пространства, задержка выделения пространства и онлайн дефрагментация. Является одной из старейших журналируемых файловых систем для *nix, и содержит в себе наиболее отлаженный, в этом контексте, исходный код.
ReiserFS (Reiser3) — одна из первых журналируемых файловых систем под Linux, разработана Namesys. Имеет некоторые врождённые головные боли, но в целом неплохая система, ведущая отсчёт дней своих с 2001 года. Оговорюсь, что смысл журналируемых систем заключается в дисковых транзакциях, которые последовательно пишутся в специальную зону диска (журнал, он же лог), перед тем как данные попадают в конечные точки файловой системы. Максимальный объём тома для этой системы равен 16 тебибайт (16*2 40 байт).
JFS (Journaled File System) — файловая система, детище IBM, явившееся миру в далёком 1990 году для ОС AIX (Advanced Interactive eXecutive). В виде первого стабильного релиза, для пользователей Linux, система стала доступна в 2001 году. Из плюсов системы — неплохая масштабируемость. Из минусов — не особо активная поддержка на протяжении всего жизненного цикла. Максимальный рамер тома 32 пэбибайта (32*2 50 байт).
ext (extended filesystem) — появилась в апреле 1992 года, это была первая файловая система, изготовленная специально под нужды Linux ОС. Разработана Remy Card с целью преодолеть ограничения файловой системы Minix.
ext2 (second extended file system) — была разработана Remy Card в 1993 году. Не журналируемая файловая система, это был основной её недостаток, который исправит ext3.
ext3 (third extended filesystem) — по сути расширение исконной для Linux ext2, способное к журналированию. Разработана Стивеном Твиди (Stephen Tweedie) в 1999 году, включена в основное ядро Linux в ноябре 2001 года. На фоне других своих сослуживцев обладает более скромным размером пространства, до 4 тебибайт (4*2 40 байт) для 32-х разрядных систем. На данный момент является наиболее стабильной и поддерживаемой файловой системой в среде Linux.
Reiser4 — первая попытка создать файловую систему нового поколения для Linux. Впервые представленная в 2004 году, система включает в себя такие передовые технологии как транзакции, задержка выделения пространства, а так же встроенная возможность кодирования и сжатия данных. Ханс Рейзер (Hans Reiser), главный разработчик системы, рекламировал использовать своё детище непосредственно как БД с улучшенными метаданными. После того, как Ханс Рейзер был осуждён за убийство в 2008 году, дальнейшая судьба системы стала сомнительной.
ext4 — попытка создать 64-х битную ext3 способную поддерживать больший размер файловой системы (1 эксбибайт). Позже добавились возможности — непрерывные области дискового пространства, задержка выделения пространства, онлайн дефрагментация и прочие. Обеспечивается прямая совместимость с системой ext3 и ограниченная обратная совместимость при недоступной способности к непрерывным областям дискового пространства.
UPD: Btrfs (B-tree FS или Butter FS) — проект изначально начатый компанией Oracle, впоследствии поддержанный большинством Linux систем. Многие считаеют систему эдаким ответом на ZFS. Ключевыми особенностями данной файловой системы являются технологии: copy-on-write, позволяющая сделать снимки областей диска (снапшоты), которые могут пригодится для последующего восстановления; контроль за целостностью данных и метаданных (с повышенной гарантией целостности); сжатие данных; оптимизированный режим для накопителей SSD (задаётся при монтировании) и прочие. Немаловажным фактором является возможность перехода с ext3 на Btrfs. С августа 2008 года данная система выпускается под GNU GPL.
Tux2 — известная, но так и не анонсированная публично файловая система. Создатель Дэниэл Филипс (Daniel Phillips), система базируется на алгоритме «Фазового Дерева», который как и журналирование защищает файловую систему от сбоев. Организована как надстройка на ext2.
Tux3 — наступая на пятки Btrfs, представлена новая файловая система. Система создана на основе FUSE (Filesystem in Userspace), специального модуля для создания файловых систем на *nix платформах. Данный проект ставит перед собой цель избавиться от привычного журналирования, взамен предлагая версионное восстановление (состояние в определённый промежуток времени). Преимуществом используемой в данном случае версионной системы, является способ описания изменений, где для каждого файла создаётся изменённая копия, а не переписывается текущая версия. Такой подход позволяет более гибко управлять версиями.
UPD: Xiafs — задумка и разработка данной файловой системы принадлежат Frank Xia, основана на файловой системе MINIX. В настоящее время считается устаревшей и практически не используется. Наряду с ext2 разрабатывалась, как замена системе ext. В декабре 1993 года система была добавлена в стандартное ядро Linux. И хотя система обладала большей стабильностью и занимала меньше дискового пространства под контрольные структуры — она оказалась слабее ext2, ведущую роль сыграли ограничения максимальных размеров файла и раздела, а так же способность к дальнейшему расширению.
UPD: ZFS (Zettabyte File System) — изначально созданная в Sun Microsystems файловая система, для небезызвестной операционной системы Solaris в 2005 году. Отличительные особенности — отсутствие фрагментации данных как таковой, возможности по управлению снапшотами (snapshots), пулами хранения (storage pools), варьируемый размер блоков, 64-х разрядный механизм контрольных сумм, а так же способность адресовать 128 бит информации! В Linux системах может использоваться посредствам FUSE.
Источник
Что такое файловая система Linux? Простое Руководство
Linux — это операционная система с открытым исходным кодом, который подходит как для новичков, так и для опытных пользователей, на основе потребности каждого из них. Опытные пользователи рано или поздно задаются вопросом о файловой системе Linux, дабы понять как работает и как устроена данная структура знаменитой ОС.
Что такое файловая система Linux?
Файловая система — это логическая коллекция файлов на разделе или диске. Раздел представляет собой контейнер для информации и при желании может охватывать весь жесткий диск. Все в Unix считается файлом, включая физические устройства, такие как DVD-диски, USB-устройства и дисководы.
Файловая система Linux или любая файловая система, как правило, представляет собой слой под операционной системой, который обрабатывает и размещает хранимые вами файлы.
Даже если вы найдете какой-либо неподдерживаемый тип файловой системы, вы даже можете скачать программное обеспечение, которое сможет работать с ней.
Итак, поговорим о типах файловых систем Linux.
Типы файловых систем Linux
Когда вы попытаетесь установить Linux, вы увидите, что Linux предлагает множество файловых систем, подобных этим:
Ext, Ext2, Ext3, Ext4, JFS, XFS, btrfs и swap
Так что же это за файловые системы, которые предлагает Linux?
- Ext : старый и больше не используется из-за ограничений.
- Ext2 : первая файловая система Linux, которая позволяет 2 терабайта данных.
- Ext3 : пришел из Ext2, но с обновлениями и обратной совместимостью. Единственная проблема в том, что серверы не используют такую файловую систему, потому что эта файловая система не поддерживает восстановление файлов или моментальные снимки дисков.
- Ext4 : быстрее и позволяет обработать большие файлы со значительной скоростью. Это очень хороший вариант для дисков SSD, и при попытке установить любой дистрибутив Linux вы замечаете, что это файловая система по умолчанию, предлагаемая Linux.
- JFS : старая файловая система, созданная IBM. В отчетах говорится, что он очень хорошо работает с маленькими и большими файлами, но потерпел неудачу и портил файлы после длительного использования.
- XFS : старая файловая система, которая медленно работает с маленькими файлами.
- Btrfs: сделан компанией Oracle. Он как и Ext не стабилен в некоторых дистрибутивах Linux и у него хорошая производительность.
Каталоги файловой системы Linux
- /bin : Где находятся основные команды Linux, такие как ls, mv и т.д.
- /boot : где находится загрузчик и загрузочные файлы.
- /dev : где все физические носители монтируются как USB и DVD.
- /etc : содержит конфигурационные файлы установленных пакетов.
- /home : где у каждого пользователя есть личная папка для размещения его собственных файлов и папок, например /home/itgap.
- /lib : где расположены библиотеки установленных пакетов
- /media : где расположены внешние устройства, такие как DVD и USB-флешки, которые смонтированы, и вы можете получить доступ к их файлам отсюда.
- /mnt : Где вы монтируете сетевые папки и другие дистрибутивы подключенные через USB или DVD.
- /opt : где расположены установленные программы, имеющие большой дисковый объем
- /proc : эта необычный каталог для процессов, запущенных в системе, и вы можете получить к ним доступ и увидеть много информации о текущих процессах.
- /root : домашний каталог для пользователя root.
- /sbin : Как и /bin, но все файлы только для пользователя root.
- /tmp : каталог временных файлов.
- /usr : Содержит пользовательские программы. По размеру это один из самых больших каталогов файловой системы. В этот каталог устанавливаются практически все программы.
- /var: Содержит системные журналы и другие переменные данные, которые подвергаются наиболее частому изменению.
Заключение
Хотя между дистрибутивами Linux есть небольшие различия, расположение их файловых систем, к счастью, сильно схоже. И лучший способ узнать файловую систему — изучить ее.
Лучший способ изучить файловую систему, это переходить из одного каталога в другой и осматривая каждую папку и файл. Вскоре вы узнаете как устроена файловая система Linux и интуитивно будете знать, где найти приложения, документацию и другие ресурсы.
Источник