НЕ ПРОПУСТИТЬ ИНТЕРЕСНОЕ

Свежие обсуждения

Sorry. No data so far.

Linux для начинающих. Часть 1. Особенности файловой системы

Предисловие или почему сегодня стоит обратить внимание на Linux

Здравствуйте уважаемые читатели блога www.ithabits.ru. Совсем немного времени осталось до окончания поддержки Windows XP в апреле 2014 года.

Думаю, что незадолго до этого события имеет смысл на всякий случай запастись оффлайновым набором обновлений для XP, например, с помощью утилиты «WSUS Offline Update», описанной в предыдущей статье.

Что произойдет непосредственно после 8.04.2014 года? Да, собственно, в первый момент ничего. Те, кто по той или иной причине до сих пор не сумели отказаться от Windows XP, будут продолжать пользоваться этой операционной системы неопределенное время. По некоторым оценкам после окончания поддержки под ХР останутся около 15% мировых компьютеров.

Хорошо это или плохо? Однозначно плохо. Вновь обнаруженные уязвимости ОС устраняться больше не будут и злоумышленники наверняка постараются воспользоваться этой ситуацией.

Положение будет несколько смягчаться за счет ПО антивирусной защиты. Microsoft обещает продолжить поддержку Essential Security для XP. Можно предположить, что и антивирусные средства других разработчиков также не перестанут работать. Но антивирусное ПО и уязвимости операционной системы это все же далеко не одно и тоже.

Как-то мы уже обращались к теме Zero-day в связи с программами Adobe. Правда, в отношении Windows XP называть уязвимости Zero-day будет уже неправильно. «Нулевой день» — это когда об уязвимости никто, кроме обнаруживших  и эксплуатирующих ее злоумышленников не знает. А здесь знать будут, как бы, все, а вот устраняться она уже не будет.

Таким образом с каждым днем после окончания поддержки работа в Windows XP будет все более и более небезопасной. Наверное стоит все же попытаться найти ей замену. В этой связи мы и поговорим сегодня о Linux. Самое время.

Альтернативой Windows XP я бы Linux не назвал – это все же совершенно другая операционная система, которая с большим или меньшим успехом позволит выполнять те или иные задачи. Просто далеко не на все компьютеры, на которых работает Windows XP, можно установить новые версии операционных систем Microsoft, а вот Linux, как правило, можно.

Материал рассчитан на начинающих пользователей  Linux, то есть на тех, кто только начинает знакомиться с этой операционной системой. Поэтому очень важно с самого начала разобраться с некоторыми ее принципиальными отличиями от операционной системы Windows. Без их понимания почувствовать себя комфортно в этой операционной системе, особенно после долгих лет работы в Windows, будет сложно.

Начнем с файловой системы.

Особенности файловой системы Linux

Самое главное это разобраться с различиями в подходе к организации структуры файловой системы.

Все, конечно, знают древнюю философскую проблему о курице и яйце — что первично. Вспомнил я о ней не потому, что в операционных системах есть некая подобная проблема, а потому, что в Windows и Linux исповедуются различающиеся подходы к принципам построения файловой системы. Очень упрощенно эту разницу можно объяснить так.

В Windows первичным является том (раздел) на устройстве хранения. Для доступа к тому, он автоматически монтируется в систему с присвоением некой произвольной буквы латинского алфавита. После этого на подключенном блочном устройстве можно создавать папки и файлы и читать и модифицировать их содержимое. Перечень папок, в общем-то, не регламентирован.

Это чрезвычайно простой и очень привычный для подавляющего большинства пользователей подход. Вместе с тем он создает известные сложности когда по той или иной причине нужно разместить системные папки на разных томах.

В некоторых случаях добиться положительного результата позволяют исключительно символьные ссылки. С помощью символьной ссылки можно подключить даже целый дисковый том. Мы рассматривали такой вариант в этой статье.

Однако далеко не каждая системная папка может быть перенесена на другой диск. Например, хорошо  известную, можно даже сказать, печально известную всем продвинутым пользователям Windows 7 папку WinSxS переместить нельзя.

Как бы там ни было, задачу размещения системных каталогов Windows на разных дисках нельзя признать тривиальной. При этом точки монтирования томов (буквы дисков) живут своей жизнью, папки и файлы на устройствах хранения своей, и никак они между собой не связаны.

В Linux все наоборот. Основой файловой структуры является не том, а жестко зафиксированная, пришедшая из Unix, логическая структура каталогов системы – стандарт FHS (Filesystem Hierarchy System).

Linux File System

Если открыть в файловом менеджере Файловую систему Linux, то первое что можно заметить — отсутствуют привычные буквы дисков – в Linux они попросту не используются.

То, как обозначаются диски и дисковые тома в Linux, мы уже разбирали в статье, посвященной резервному копированию и восстановлению дисков с помощью утилиты Clonezilla, работающей в среде Linux. Коротко напомним их.

Обозначение дисков в операционной системе Linux

Первый жесткий SATA диск обозначается как sda, диск с интерфейсом SCSI или уже устаревшим сегодня PATAhda.

Первый раздел (том) диска обозначается как sda1 (hda1), второй sda2, и так далее.

Второй жесткий диск будет называться sdb (hdb), разделы, соответственно, – sdb1, sdb2, …

Однако, это не значит, что непосредственно пользуясь этими обозначениями можно получить доступ к содержимому устройств хранения. Как мы уже говорили чуть выше, первичным является дерево каталогов и устройство обязательно должно быть смонтировано к одной из его точек (каталогу).

Перечень и назначение каталогов файловой структуры Linux

Вся файловая структура Linux строится относительно корневого каталога, который имеет обозначение “/”.

Если при установке операционной системы смонтировать, например, первый раздел первого диска в корневой каталог / (точка монтирования — mount point), то абсолютно все файлы (и системные и пользовательские) будут размещаться на этом диске.

На первый взгляд пока очень похоже на Windows – все файлы на одном томе (ну если не считать маленький раздел загрузчика “Зарезервировано системой”, появившийся в Windows 7). Но это только на первый. На самом деле существует большая разница.

Дело в том, что Linux позволяет непосредственно в процессе установки или позднее монтировать к некоторым точкам своего каталога различные дисковые разделы. Это значит, что штатными средствами без  каких-либо дополнительных усилий и отрицательных последствий файлы операционной системы можно разместить в разных разделах одного диска, на разных дисках и даже в сети.

Коротко рассмотрим назначение отдельных каталогов файловой системы. На самом деле знать обо всех из них на начальном этапе не очень то и нужно, но для того, чтобы иметь общее представление и на будущее не помешает.

/bin — каталог, в котором находятся основные исполняемые файлы (binary files — двоичные файлы). Обычный пользователь не может изменять расположенные в нем файлы, только просматривать. Доступ на запись имеет исключительно суперпользователь – Root.

/boot – файлы, необходимые для загрузки Linux, например, файлы загрузчика GRUB и ядер системы. Каталог /boot может быть размещен как в корневом каталоге, так и на отдельном разделе диска.

Перенос /boot на отдельный раздел может быть необходим, например, при использовании в системе менеджера логических томов LVM (Logical Volume Manager). Такую конфигурацию мы рассматривали в статье, посвященной оптимизации использования дискового пространства в нетбуке Asus eee pc 900.

В этом случае можно найти определенную аналогию между каталогом /boot и разделом “Зарезервировано системой” Windows 7.

/dev – в этом каталоге размещаются специальные файлы устройств (devicesустройства).

Работа со всеми устройствами компьютера осуществляется с помощью этих файлов-интерфейсов. Дополнительно можно отметить, что в каталоге присутствуют файлы не только реальных, но и виртуальных устройств. Например, устройство Null, или устройство генератор случайных чисел Random. Права на каталог аналогичны /bin.

/etc – каталог, содержащий основные конфигурационные файлы программ и системных утилит. (et ceteraи так далее).

Большинство настроек операционной системы Linux содержится в обычных текстовых файлах. Возможно, что в процессе эксплуатации системы это будет именно тот каталог, к которому придётся время от времени обращаться.

Продвинутые “линуксоиды” предпочитают работать именно с текстовыми файлами настроек. Совершенно не факт, что вам придется делать тоже самое – в современных версиях Linux существует множество графических утилит для настройки системы и программ. Хотя, в конечном счете, они являются лишь удобным интерфейсом пользователя для изменения все тех же текстовых файлов.

Так как модификация этих файлов может привести к серьезным системным изменениям, редактировать что-либо в данном каталоге может, опять же, только суперпользователь Root.

/lib – основные разделяемые библиотеки с которыми работают исполняемые файлы из каталогов /bin и /sbin.

/media – каталог подключаемых носителей.

Что произойдет в Windows, если к компьютеру подключить USB Flash (флешку), USB диск или загрузить оптический диск в дисковод, хорошо известно. Устройство будет автоматически смонтировано в систему с присвоением ему первой свободной буквы. После этого с его содержимым можно начинать работать.

Абсолютно тоже самое произойдет и при подключении устройства к компьютеру с операционной системой Linux. Оно будет автоматически смонтировано (благо, времена, когда монтировать подключаемые накопители нужно было руками в командной строке, миновали).

Однако, никаких букв или новых устройств после этого не возникнет. Вместо них появится соответствующая устройству папка в каталоге /media. Вот так все просто.

В принципе, о существовании и назначении этого каталога можно ничего и не знать. Дело в том, что в современных сборках Linux после успешного монтирования нового устройства хранения соответствующая ему ссылка будет создана непосредственно на рабочем столе.

В чем могут быть преимущества такого подхода попробую пояснить на конкретном примере из Windows. На своем рабочем компьютере в качестве менеджера фотографий я использую замечательную программу Picasa. Время от времени я делаю с ее помощью резервную копию снимков на внешний USB диск. Очень удобно, так как копируются только новые и измененные фотографии.

Особенностью программы является жесткая привязка существующего архива к конкретной букве диска. А так как Windows монтирует подключаемые устройства на произвольную букву, то практически через раз приходится исправлять ситуацию через “Управление дисками”. В Linux такого бы не происходило (беда вот только, что версии Picasa для Linux не существует Печальная рожица).

/mnt – точка временного монтирования файловых систем. Используется в основном системными администраторами для выполнения неких действий с файлами подключенного устройства хранения.

/opt – каталог зарезервирован для установки дополнительных пакетов программного обеспечения. Например, если установить на компьютер с Linux хорошо всем известную программу Google Eatch, то ее файлы окажутся в папке /opt/google/earth/free/. В /opt обычно размещаются пакеты проприетарного ПО.

/proc – точка монтирования виртуальной файловой системы procfs, которая позволяет создавать двухуровневое представление пространств процессов. В корне этого каталога размещаются файлы, предоставляющих самые разнообразные сведения о системе, а не только о процессах.

/root – домашний каталог суперпользователя root. В отличие от домашних каталогов рядовых пользователей (/home) всегда размещается в корне файловой системы, то есть не может быть перемещен на другой раздел.

В этой связи уместно вспомнить, что применительно к переносу профилей пользователей в Windows я также рекомендовал всегда оставлять каталог администратора на загрузочном диске 

Такой подход определенным образом гарантирует доступность системы для администрирования.

/run – централизованное хранилище временных файлов, необходимых для запуска служб на ранних стадиях загрузки системы. Такие файлы проблематично размещать в каталоге /tmp в силу того, что в нем они могут быть удалены.

Каталог /run появился в Linux совсем недавно, буквально пару лет назад.

/sbin – аналог каталога /bin. В нем находятся исполняемые файлы, используемые для задач системного администрирования. Например, ifconfig, iptables и др.

/srv – каталог, в котором размещаются файлы сервисов, предоставляемых системой. Если таких сервисов нет, то данный каталог пуст.

/sys — точка монтирования виртуальной файловой системы sysfs, расположенной в памяти. Предоставляет пользователю детализированную информацию о работе ядра системы, например, о загруженных модулях, параметрах и драйверах устройств.

Появилась относительно недавно с целью упорядочить и отделить от /proc информацию о структурах ядра.

/tmp – каталог для размещения временных файлов. Аналог папки C:/Windows/Temp в операционной системе Windows.

/usr – каталог, в котором расположены приложения и файлы, используемые пользователями. Может быть не только размещен на другом диске, но и смонтирован по сети. Может быть общим для нескольких компьютеров (аналога в ОС Windows не существует).

В каталоге /usr расположены папки /usr/bin, /usr/sbin и /usr/lib. Их назначение аналогично рассмотренным выше одноименным каталогам с той разницей, что размещенные в них файлы относятся к пользовательским, а не к системным приложениям.

Все пользователи, кроме суперпользователя root, имеют разрешение только на чтение.

/var – каталог для хранения постоянно изменяемых данных. Его назначение аналогично каталогу /usr, но в отличие от него в /var данные можно записывать. Так например, журнальные файлы расположены в /var/log.

/lost+found — файлы, на которые нет ссылок ни из одной директории. Могут появиться в результате какого-либо системного сбоя, например, из-за выключения питания в момент удаления файла. При появлении таких файлов пользователь может проанализировать их содержимое и принять решение о том, что с ними делать.

После появления в операционной системе Linux журналируемыех файловых систем, таких как, например, ext3 и ext4, потерянных файлов стало значительно меньше благодаря возможности отката незавершенных файловых операций.

/home – каталог, в котором размещаются домашние папки пользователей.

Описание каталога /home было перенесено в завершающую часть статьи намеренно. В конечном счете интересовать нас в ближайшее время будет именно он.

В Домашних папках хранятся не только файлы пользователей, с которыми они непосредственно работают (их при желании можно разместить и в другом месте), но, главное, вся пользовательская часть конфигурационных файлов — настройки программ, настройки интерфейса и учетные данные.

Так как Linux является многопользовательской системой, каждый пользователь имеет уникальную домашнюю папку. Как мы уже говорили выше, домашняя папка суперпользователя root находится в другом месте в корне файловой системы.

Конкретный пользователь имеет доступ на запись только в своем домашнем каталоге. Для изменения других файлов в системе ему должны быть предоставлены права пользователя root.

Теперь о самом главном. Содержимое каталога /home не только может быть перенесено на отдельный раздел жесткого диска, но более того, это настоятельно рекомендуется делать. В качестве аргументов обычно называют безопасность операционной системы и сохранность пользовательских данных.

Такое разделение пользовательских данных и файлов операционной системы упрощает резервирование и повышает надежность самой операционной системы. И это совершенно справедливо. Но это еще не все.

О том, какие уникальные возможности предоставляет жесткое разделение пользовательских данных и  операционной системы мы поговорим в следующих публикациях.

В заключение еще один очень простой опрос. И пользуясь моментом хочу поблагодарить всех, кто уже поучаствовал в первом опросе о причинах использования 32-разрядных операционных систем.

Мои планы относительно использования операционной системы Linux

Показать результаты

Загрузка ... Загрузка ...

Комментарии: 4. Присоединяйтесь к обсуждению!

  1. Игорь:

    Не так давно я установил Linuxmint на старенький ноутбук как раз вместо Windows ХР. Пока никаких проблем или особых сложностей не наблюдаю. К Web вообще нет вопросов — Firefox ставится сразу, все остальные браузеры можно доустановить, если надо (ну за исключением майкрософтовского, конечно). Выглядит все точно также.
    Посмотреть и даже отредактировать документы — LibreOffice.
    Есть Skype, Dropbox без проблем, графика — Gimp.
    Одним словом, как основной компьютер — пока очень сомнительно, да и в ближайшем будущем наверное тоже. А вот на подхват унаследованного оборудования очень даже можно.
    Александр, спасибо за статью, как раз в тему. Буду ждать следующей. Интересно будет узнать правильно ли я установил Linux.

    • Ну да. В целом как-то так и есть. В конечном счете все зависит от того какие для работы нужны приложения. И в них же все в Linux и упирается.
      Я думаю, что слово «правильно» не очень подходит. Если установка проводилась «на автомате», то все было сделано правильно, просто без расчета на возможные изменения в будущем.

  2. Андрей:

    На домашнем ноте поставил Ubuntu и 7-ку,но так-как на нем в основном играю то чаще пользуюсь Семеркой.Ubuntu ставил для ознакомления и интересовал процесс установки двух Осей на винт. Пользоваться Ubuntu можно — работать нет,потому что работаю со специфическим софтом которому необходим не просто Win а еще и строго x86 (жесть, каменный век и Российские софтописатели). По той же причине и на рабочем ноте стоит 7-ка x86 с разблокированным PAE.
    Для обычного пользователя, мне кажется, вообще не будет разницы какая у него стоит система пока можно смотреть фильмы и шарится в сети, а с этим в Linuxe (не важно каком, главное с графическим интерфейсом :) ) проблем нет.
    Спасибо за статью, для меня оказалась полезной так как с файловой системой Линуха слабо знаком.

    • Полностью согласен. Ситуация очень типичная. Главным тормозом широкого внедрения Linux являются программы. Вернее отсутствие полных аналогов Windows-программ. Очень уж сильны традиции, привычки и огромное количество наработок. А с другой стороны, откуда им взяться? У разработчиков нет четкого коммерческого интереса.

Написать комментарий

Subscribe without commenting