Файловая система Linux
Операционные системы хранят данные на диске при помощи
файловых систем. Классическая файловая система представляет данные в виде вложенных друг в друга
каталогов (их ещё называют папками), в которых содержатся
файлы. Один из каталогов является «вершиной» файловой системы (а выражаясь технически — «корнем»), в нём содержатся (или, если угодно, из него растут) все остальные каталоги и файлы.
Если жёсткий диск разбит на разделы, то на
каждом разделе организуется отдельная файловая система с собственным корнем и структурой каталогов (ведь разделы полностью изолированы друг от друга).
В Linux корневой каталог называется весьма лаконично — «/». Полные имена (пути) всех остальных каталогов получаются из «/», к которому дописываются справа имена последовательно вложенных друг в друга каталогов. Имена каталогов в пути также разделяются символом «/» («слэш»). Например, запись
/home
обозначает каталог «home» в корневом каталоге («/»), а
/home/user
— каталог «user» в каталоге «home» (который, в свою очередь, в корневом каталоге). Перечисленные таким образом каталоги, завершающиеся именем файла, составляют
полный путь к файлу.
Относительный путь строится точно так же, как и полный — перечислением через «/» всех названий каталогов, встретившихся при движении к искомому каталогу или файлу. Между полным путём и относительным есть только одно существенное различие: относительный путь начинается
от текущего каталога, в то время как полный путь всегда начинается
от корневого каталога. Относительный путь любого файла или каталога в файловой системе может иметь любую конфигурацию: чтобы добраться до искомого файла можно двигаться как по направлению к корневому каталогу, так и от него. Linux различает полный и относительный пути очень просто: если имя объекта
начинается на «/» — это полный путь, в любом другом случае — относительный.
Монтирование
Корневой каталог в Linux всегда только
один, а все остальные каталоги в него вложены, т. е. для пользователя файловая система представляет собой единое целое. В действительности, разные части файловой системы могут находиться на совершенно разных устройствах: разных разделах жёсткого диска, на разнообразных съёмных носителях (лазерных дисках, дискетах, флэш-картах), даже на других компьютерах (с доступом через сеть). Для того, чтобы соорудить из этого хозяйства единое дерево с одним корнем, используется процедура
монтирования.
Монтирование — это подключение в один из каталогов целой файловой системы, находящейся где-то на другом устройстве. Эту операцию можно представить как «прививание» ветки к дереву. Для монтирования необходим пустой каталог — он называется
точкой монтирования. Точкой монтирования может служить любой каталог, никаких ограничений на этот счёт в Linux нет. При помощи команды
mount
мы объявляем, что в данном
каталоге (пока пустом) нужно отображать файловую систему, доступную на таком-то
устройстве или же по сети. После этой операции в каталоге (точке монтирования) появятся все те файлы и каталоги, которые находятся на соответствующем устройстве. В результате пользователь может даже и не знать, на каком устройстве какие файлы располагаются.
Подключённую таким образом («смонтированную») файловую систему можно в любой момент отключить —
размонтировать (для этого имеется специальная команда
umount
), после чего тот каталог, куда она была смонтирована, снова окажется пустым.
Для Linux самой важной является
корневая файловая система (root filesystem). Именно к ней затем будут подключаться (монтироваться) все остальные файловые системы на других устройствах. Обратите внимание, что корневая файловая система тоже монтируется, но только не к другой файловой системе, а к «самой Linux», причём точкой монтирования служит «/» (корневой каталог). Поэтому при загрузке системы прежде всего монтируется корневая файловая система, а при останове она размонтируется (в последнюю очередь).
Пользователю обычно не требуется выполнять монтирование и размонтирование вручную: при загрузке системы будут смонтированы все устройства, на которых хранятся части файловой системы, а при останове (перед выключением) системы все они будут размонтированы. Файловые системы на съёмных носителях (лазерных дисках, дискетах и пр.) также монтируются и размонтируются автоматически — либо при подключении носителя, либо при обращении к соответствующему каталогу.
Стандартные каталоги
В корневом каталоге Linux-системы обычно находятся только подкаталоги со
стандартными именами. Более того, не только имена, но и
тип данных, которые могут попасть в тот или иной каталог, также регламентированы стандартом. Этот стандарт довольно последовательно соблюдается во всех Linux-системах: так, в любой Linux вы всегда найдёте каталоги
/etc
,
/home
,
/usr/bin
и т. п. и сможете довольно точно предсказать, что именно в них находится.
Стандартное размещение файлов позволяет и человеку, и даже программе предсказать, где находится тот или иной компонент системы. Для человека это означает, что он сможет быстро сориентироваться в любой системе Linux (где файловая система организована в соответствии со стандартом) и найти то, что ему нужно. Для программ стандартное расположение файлов — это возможность организации автоматического взаимодействия между разными компонентами системы.
Параметры монтирования
При выполнении операции монтирования, в том числе при выборе точки монтирования во время установки Linux-системы, можно изменять свойства смонтированной файловой системы. Для этого нужно указать утилите
mount
один или несколько параметров. Существует ряд параметров монтирования, поддерживаемых всеми файловыми системами. Есть параметры, характерные для одной конкретной файловой системы. Подробно о параметрах монтирования можно прочитать в руководстве к утилите
mount
(
mount(8)
).
Оконная система X и её реализации
Графический интерфейс не является неотъемлемой частью Linux
— это просто одна из её компонент, такая же необязательная с точки зрения архитектуры системы, как, например, программа для рисования изображений. Но для тех программ, которые используют графические ресурсы, эта компонента предоставляет возможность работать с графическими объектами (линиями, прямоугольниками, цветами), ничего не зная о деталях работы конкретных устройств графического вывода (видеокарты и монитора). Это похоже на то, как ядро скрывает от программ детали работы с конкретным оборудованием, например, жёстким диском, предоставляя им работать с файлами. Поэтому комплекс программ, предоставляющий доступ к графическим ресурсам, называют графической подсистемой. В Linux
функции графической подсистемы выполняет оконная система «Икс».
Графическая подсистема с точки зрения операционной системы представляет собой группу обычных процессов, управление которыми производится общесистемными средствами. Точно так же, общесистемными средствами производится и управление процессами, запускаемыми «из-под» этой графической среды. Графическая подсистема отнюдь не монополизирует использование компьютера; параллельно с её работой продолжает исполняться множество служебных системных процессов; с других терминалов (если система многотерминальная) могут запускаться другие программы или даже другие графические подсистемы.
Оконная система Икс (от англ. X window system, далее — просто
X) — один из самых больших и успешных проектов в истории компьютерной техники — восходит к 1984 г., когда разработчики двух систем компьютерной графики, претендующих на универсальность — проектов Athena (Массачусетский технологический институт) и W Windowing (Стэнфордский университет) — решили объединить свои усилия. Подробнее об истории этого проекта можно узнать, например, из статьи в
Wikipedia.
Тогда перед ними стояла задача создать систему компьютерной графики, позволяющую совместно использовать самые разные компьютерные платформы. Решением стало создание специального протокола X, который позволял разделить программы-клиенты и сервер, предоставляющий графические ресурсы, отсюда и возможность исполнять программу-клиент на одном компьютере, сервер на другом, а данные между ними передавать по сети.
Проект этот был настолько наукоёмок и настолько полно охватывал тогдашнюю область задач, связанных с графикой, что серьёзных альтернатив ему так и не возникло. С тех пор X прошла через одиннадцать основных релизов (отсюда другое название — X11, представляющее собой название и текущую версию протокола) и множество версий. И возникновение, и вся история развития X тесно связаны с ОС UNIX
, а теперь, естественно, и Linux
. Тем не менее, реализации X доступны и для нескольких альтернативных архитектур ОС, включая Windows NT.
Существует несколько реализаций X, дальнейшее изложение будет ориентировано на две широко распространённые свободные реализации:XFree86 и XOrg. XFree86 изначально создавалась для семейства процессоров Intel 386, и вплоть до 2004 года была самой популярной реализацией X. XFree86 поддерживает беспрецедентно широкий спектр оборудования (оно и понятно, учитывая существующий «зоопарк» видеокарт и устройств ввода для платформы PC). Благодаря доступности исходных текстов и пользовательской аудитории в десятки миллионов человек, XFree86 весьма устойчива и хорошо оттестирована, по крайней мере, насколько это возможно для такого разнообразия поддерживаемого оборудования.
В последние годы параллельно с XFree86 развивается основанная на тех же исходных текстах X Window System графическая подсистема XOrg. До недавнего времени по спектру поддерживаемого оборудования, архитектур и функциональности XOrg мало чем отличалась от XFree86, и сейчас они тоже примерно эквивалентны с точки зрения пользователя. Однако направление развития этих двух проектов, состав их разработчиков и лицензионная политика несхожи. В ближайшем будущем вполне вероятно, что XOrg обгонит XFree86 и по возможностям, и по частоте использования.
Большинство из того, о чем будет говориться в последующих разделах, справедливо для любой реализации
X на любом оборудовании и под любой
ОС, список которых можно найти на
http://www.X.org.
Коледа+Куприянов+Довыденко