Структура файловой системы операционной linux. Cтруктура файловой системы Linux. Структура файловой системы

Структура файловой системы операционной linux. Cтруктура файловой системы Linux. Структура файловой системы

02.04.2019

Файловая структура Linux очень сильно отличается от таковой в Windows, поэтому, если Вы решили всерьёз заняться изучением UNIX-подобных систем, то начинать, на мой взгляд, лучше именно со структуры каталогов.

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

К чему я веду? А к тому, что пользователь Windows, который впервые увидел Linux, конечно, сможет с ним совладать (выйти в Интернет или посмотреть видеозапись), однако, стоит только возникнуть какой-либо внештатной ситуации, и он уже не будет знать, что делать!

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

Как гласит пословица, внешний вид бывает обманчив. Современные дистрибутивы Linux могут внешне и по основным принципам работы во многом копировать привычную многим среду Windows. Однако, достаточно лишь "копнуть" глубже и мы сразу увидим, что перед нами нечто совсем иное и непонятное:)

Убедиться в этом несложно на примере Linux Mint. Давайте откроем папку "Компьютер" на Рабочем столе и посмотрим на её содержимое:

Как видим, здесь, кроме подключённой флешки, нет ни одного привычного нам раздела жёсткого диска, кроме устройства "Файловая система". Именно здесь (а точнее, в корневом каталоге с названием "/", который иногда ошибочно называют "/root/", хотя это отдельная папка в "/") по умолчанию и хранятся все данные, включая системные и пользовательские файлы! Весьма странно и непонятно на первый взгляд. Давайте разбираться...

Дело в том, что Linux использует кардинально отличающийся от Windows подход к организации и работе с файловой системой. Если в Windows основой являются разделы жёсткого диска, на которых мы можем создавать произвольные папки с файлами, то в Линуксах всё базируется на чёткой иерархии каталогов, не зависящей от разметки винчестера и регламентированной стандартом FHS (сокр. англ. "Filesystem Hierarchy Standard" - "стандарт иерархии файловой системы").

Понятие дисков и их разделов, конечно, существует и в Linux, но здесь первичной является именно структура папок, в одну из которых (как правило, "/media/", "/dev/" или "/mnt/") и монтируются различные типы дисков. Сами же диски обычно именуются в зависимости от типа их подключения: SATA - sda (sdb и т.д. в зависимости от их количества), а IDE - hda (hdb...). Разделы же на дисках просто нумеруются (например, sda1, hdb2).

Отдельные каталоги Linux могут быть вынесены на разные разделы разных дисков и даже на удалённые сетевые хранилища. Единственное условие - все они должны быть примонтированы до загрузки системы. Обычно это делается автоматически при запуске Linux, но иногда может потребоваться произвести и ручную правку параметров.

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

Основные папки Linux

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

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

Каталог Назначение Аналог Windows (если есть)
/ Хранит всю структуру каталогов системы Диск C:
/bin/ Хранит бинарные исполняемые файлы системных утилит C:\Windows\System32
/boot/ Хранит ядро системы и прочие загрузочные файлы C:\Windows
/cdrom/ Хранит точки монтирования для дисководов -
/dev/ Хранит файлы подключённых устройств по типам (жёсткие диски, видеоустройства и т.п.) или псевдоустройств (например, /dev/null и /dev/zero) -
/etc/ Хранит некоторые системные файлы настроек и настройки установленных программ Частично C:\Windows\System32, частично C:\Program Files
/home/ Хранит домашние папки пользователей системы с их настройками и данными C:\Documents and Settings или C:\Users
/lib/ Хранит большинство библиотек стандартных программ и некоторых установленных Частично C:\Windows и C:\Windows\System32
/lost+found/ Хранит файлы, которые обычно в результате каких-либо сбоев остались непрописанными ни в одном из каталогов, но в то же время и не помечены для перезаписи. Пользователь обычно не имеет к ней доступа Частично C:\Recycler (Корзина)
/media/ Хранит точки монтирования для всех съёмных носителей (флешки, дисководы, съёмные жёсткие диски) -
/mnt/ Хранит временные точки монтирования устройств и их файловых систем, которые были добавлены вручную -
/opt/ Хранит дополнительные пакеты различных программ C:\Users\Admin\Application Data
/proc/ Хранит данные о запущенных процессах и работе ядра системы Частично Диспетчер задач
/root/ Хранит данные суперпользователя (root) системы Частично C:\Users\Admin
/run/ Хранит временные файлы, которые выполняются в процессе загрузки системы
/sbin/ Хранит большинство системных программ для администрирования и настройки ОС Частично C:\Windows\System32
/srv/ Хранит файлы, отвечающие за работу серверной части системы и различных протоколов передачи данных по сети (HTTP, FTP и т.п.) Частично C:\Windows\System32
/sys/ Хранит виртуальную файловую систему с данными об установленных устройствах и драйверах Частично Диспетчер устройств
/tmp/ Хранит временные файлы C:/Windows/Temp
/usr/ Хранит данные пользователей системы и файлы установленных вручную программ. Частично C:\Users\
/var/ Хранит файлы с различными изменяющимися данными, логи, кеши и пр. -

Кроме папок в самом корневом каталоге стоит также обратить внимание на некоторые вложенные директории:

Каталог Назначение Аналог Windows (если есть)
/etc/X11/ Хранит файлы настроек системы отображения окон X Window System -
/etc/samba/ Хранит файлы настроек сервера Samba, который служит для связи c сетевыми папками Windows -
/home/username/ Хранит файлы и конфигурацию учётной записи конкретного пользователя (Домашняя папка) C:\Users\Username
/usr/bin/ Хранит ряд программ, которые нужны для работы в многопользовательском режиме -
/usr/share/ Хранит общие данные установленных программ -
/usr/src/ Хранит файлы с исходными кодами ядра системы -
/var/cache/ Хранит кеши программ и скачанные из репозитория пакеты программ -
/var/games/ Хранит сохранения и достижения установленных игр -
/var/log/ Хранит логи (журналы) системы и установленных программ -
/var/mail/ Хранит настройки почтовых ящиков пользователей -
/var/run/ Хранит данные о запущенных процессах и демонах Частично Диспетчер задач
/var/tmp/ Хранит временные файлы, сохраняемые при перезагрузке системы -
/var/www/ Хранит веб-страницы, обрабатывающиеся средствами локального сервера -

Немного о файловых системах

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

В Windows мы привыкли пользоваться традиционной NTFS и не морочить себе голову (ну, ещё FAT32 на флешках или UDF на дисках). В мире же Линуксов всё гораздо более разнообразно. Здесь имеется поддержка всех ФС Windows, но рекомендуется использовать специальные системы, оптимизированные под UNIX-подобные ОС.

Все файловые системы условно можно разделить на две группы: журналируемые и нежурналируемые. Журналируемые файловые системы отводят определённое место для хранения лога со списком файлов на ПК, их атрибутами и местонахождением. Они более устойчивы к сбоям и гарантируют большую целостность данных. Нежурналируемые же системы более быстры и не требуют места под хранение лога, однако, не гарантируют стабильного хранения информации, поскольку осуществляют все действия с файлами напрямую, без записи в журнал.

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

  1. Ext4 - журналируемая файловая система, которая является стандартной для большинства современных дистрибутивов Linux. Она хорошо защищена от проблем фрагментации и оптимизирована для работы с большими файлами. Если Вы при установке не форматировали раздел под систему вручную, то, скорее всего, у Вас стоит именно Ext4.
  2. Ext2 - нежурналируемая файловая система, которая была основной для старых дистрибутивов Linux (до 2000-х). Она имеет ряд ограничений на работу с большими файлами, однако, в то же время, является и самой быстрой ФС, поэтому её часто используют в различных сравнительных тестах как эталонную.
  3. Reiser4 - журналируемая файловая система, которую многие продвинутые пользователи рекомендуют к использованию на Linux. Её преимущество в хорошей стабильности и высокой скорости работы, которую, к тому же, можно ещё более повысить за счёт активации специального плагина для сжатия данных.
  4. btrfs (также B-tree FS) - журналируемая файловая система, разработанная известной компанией Oracle довольно недавно (в 2007 году). К её особенностям относятся хранение индекса файлов в так называемых "B-деревьях" - иерархических структурах, которые максимально оптимально используют ресурсы оперативной памяти за счёт небольшой глубины вложения данных.
  5. SWAP - особый вид нежурналируемой файловой системы, которая реализует структуру хранения данных, аналогичную ячеистой структуре оперативной памяти. За счёт этого используется для реализации файла подкачки в Linux.

В большинстве современных дистрибутивов по умолчанию жёсткий диск форматируется в Ext4, а также SWAP, под который отводится размер, аналогичный размеру установленной оперативной памяти. Так, например, выглядит стандартная разметка диска под Linux Mint, которая производится, если Вы никак не влияете на создание разделов вручную:

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

Разметка диска

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

Как раз первым вариантом разметки и является вынос каталога "/home/" на отдельный раздел диска. То есть, фактически нам нужно разбить диск на три раздела:

Если Вы планируете двойную загрузку с установкой Windows, то к рассмотренным выше трём разделам на место sda1 и sda2 лучше поставить два раздела, отформатированных в NTFS: один под Диск C, а второй под Диск D, соответственно.

Более же продвинутые пользователи склонны делать более сложную схему диска с учётом разделения его на отдельные загрузочные области и области выполнения программ:

В принципе, вышеупомянутые каталоги на sda4 некоторые пользователи монтируют на отдельных разделах, а некоторые не выделяют и вовсе. Всё зависит от того, какие задачи Вы планируете решать на своём ПК. Если Вы ещё не решили, как будете использовать отдельные каталоги, то рекомендую оставить "про запас" пару десятков гигабайт места на жёстком диске неразмеченным. Так Вы в любой момент прямо из-под своей системы сможете перемонтировать нужные каталоги на новосозданные разделы.

Ну и самое главное - как же эти разделы создать! Для этого рекомендую скачать уже упоминавшуюся программу в виде загрузочного образа, записать этот образ на флешку или диск и загрузиться с него.

В процессе запуска с LiveCD Вам будет задан ряд вопросов по поводу вариантов загрузки. Везде оставляем всё по умолчанию, кроме экрана с выбором языка. Там нужно будет вписать номер, соответствующий русскоязычному интерфейсу (у меня это был "22"). Во всех остальных вопросах просто жмём Enter и в результате попадём на виртуальный рабочий стол ОС Debian с запущенным GParted:

Если Вы выбрали русский интерфейс, то проблем с работой в программе у Вас не будет даже, если Вы решите переразметить диск с уже установленной системой. Алгоритм действий следующий:

  1. Выделяем существующий раздел, который нужно разделить, и жмём кнопку "Изменить размер или переместить", либо аналогичный пункт в контекстном меню.
  2. В открывшемся окошке при помощи полозков или окошек для ввода чисел задаём новый размер раздела и его отступ от от начала или конца диска (помним, что корень и своп лучше размещать ближе к началу).
  3. Выделяем новосозданную неразмеченную область и нажимаем кнопку "Новый" на панели инструментов или в контекстном меню.
  4. В открывшемся окошке задаём тип файловой системы, метку тома и иные параметры.
  5. Повторяем вышеописанные действия нужное количество раз, после чего применяем все изменения и дожидаемся завершения их выполнения.

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

Если Вы решили делать всё в визуальном, то откройте, например, папку /mnt/ или /media/ и в ней создайте временную папку (назовём её /newhome/) для переноса данных. Теперь всё-таки придётся запустить терминал для того чтобы примонтировать новосозданную папку к разделу, на который мы хотим перенести папку /home/. Делается это командой вида:

Естественно, что вместо "ext4" Вы будете указывать свою файловую систему, а вместо "sda5" раздел, на который будете переносить папку. Когда раздел примонтируется и папка окажется на нём, откроем её и скопируем туда всё текущее содержимое каталога /home/. По окончании копирования отмонтируем раздел от папки следующей командой:

$sudo umount /mnt/newhome

Теперь существующую папку /home/ можно либо полностью удалить (а лучше переименовать, например, в /oldhome/) и создать заново, либо просто полностью очистить. Главное, чтобы у нас появился пустой каталог /home/. Теперь примонтируем сюда наш раздел со скопированными данными:

$sudo mount /dev/sda5 /home

Если всё прошло успешно, то в каталоге /home/ появятся все файлы, которые мы скопировали. То есть, фактически перенос завершился успешно. Осталось только закрепить успех и сделать так, чтобы не пришлось каждый раз вручную монтировать наш каталог при загрузке системы. Для этого воспользуемся правкой файла fstab (сокр. от англ. "file systems table" - "таблица файловой системы"), который находится в каталоге /etc/. Откроем его любым текстовым редактором и в самом конце допишем такую строчку:

/dev/sda5 /home ext4 nodev,nosuid 0 2

Этим мы "говорим" системе буквально следующее: на разделе /dev/sda5 находится каталог /home/, отформатированный в системе ext4, в котором нельзя создавать каталог с конфигурацией устройств (/dev/), а также запрещены операции с suid и sgid битами, отключено резервное копирование и монтирование файловой системы происходит во второй проход (в первый всегда монтируется корневая система).

Перезагружаемся и радуемся:) Для истинных же гиков скажу, что все операции (кроме правки fstab) можно было проделать прямо в консоли примерно такой последовательностью команд:

$sudo mkdir /mnt/newhome

$sudo mount -t ext4 /dev/sda5 /mnt/newhome

$find . -depth -print0 | sudo cpio --null --sparse -pvd /mnt/newhome/

$sudo umount /mnt/newhome

$sudo mv /home /oldhome

$sudo mkdir /home

$sudo mount /dev/sda5 /home

sudo gedit /etc/fstab

Выводы

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

Потратив немного времени на оптимизацию структуры каталогов Вы сделаете свой Linux более надёжным в плане хранения информации и в будущем убережёте много собственных нервов и сил!

P.S. Разрешается свободно копировать и цитировать данную статью при условии указания открытой активной ссылки на источник и сохранения авторства Руслана Тертышного.

Оригинал: "The Linux Directory Structure Explained"
Автор: Chris Hoffman
Дата публикации: June 6th, 2012
Перевод: Н.Ромоданов
Дата перевода: июдь 2012 г.

Если вы перешли с системы Windows, то структура файловой системы Linux может показаться особенно странной. Исчезло устройство C:\ и буквы остальных устройств, уступив место каталогу / и другим каталогам с загадочными названиями, большинство из которых трехбуквенные

Структура файловой системы в Linux и в других UNIX-подобных операционных системах определяется стандартом Filesystem Hierarchy Standard (FHS). Однако в файловых системах Linux также есть некоторые каталоги, которые еще не определены в этом стандарте.

Корневой каталог - /

Все на вашей системе Linux находится в каталоге /, известном как корневой каталог. Вы можете рассматривать каталог / как аналог устройства C:\ в системе Windows - но это не совсем верно, поскольку в Linux для устройств не используются буквы. Если в Windows другой раздел диска может находиться в D:\, такой другой раздел в Linux появится в виде другого подкаталога в каталоге /.


/bin – основные двоичные пользовательские модули

В каталоге /bin находятся основные двоичные пользовательские модули (программы), которые должны присутствовать, если система монтируется в однопользовательском режиме. Приложения, например, Firefox, хранятся в /usr/bin, в то время как важные системные программы и утилиты, такие как командная оболочка bash, расположены в каталоге /bin. Каталог /usr может храниться в другом разделе - размещение этих файлов в каталоге /bin гарантирует, что в системе эти важные утилиты будут даже в случае, если другие файловые системы не смонтированы. Каталог /sbin аналогичен — в нем находятся основные двоичные модули, используемые для системного администрирования.


/boot – файлы статической загрузки

В каталоге /boot находятся файлы, необходимые для загрузки системы — например, здесь хранятся файлы загрузчика GRUB и ваши ядра Linux. Здесь нет конфигурационных файлов, используемых загрузчиком - они находятся в каталоге /etc вместе с другими конфигурационными файлами.

/cdrom – исторически выбранная точка монтирования для CD-дисков

Каталог /cdrom не является частью стандарта FHS, но вы по-прежнему можете найти его в Ubuntu и в других операционных системах. Это временное место, где монтируются диски CD-ROM, когда они вставляются в компьютер. Однако, стандартное место для подключаемого носителя находится внутри каталога /media.

/dev – файлы устройств

В Linux устройства предоставлены в виде файлов и в каталоге /dev находится ряд специальных файлов, с помощью которых представлены устройства. Это не те файлы, которые мы знаем, но здесь они выглядят в виде файлов - например, с помощью /dev/sda представлен первый диск SATA, имеющийся в системе. Если вам на нем нужен раздел, вам нужно запустить редактор разделов и сообщить ему, что нужно отредактировать /dev/sda.

В этом каталоге также находятся псевдо-устройства, которые являются виртуальными устройствами и для которых, на самом деле, нет соответствующего реального устройства. Например, файл /dev/random генерирует случайные числа. Файл /dev/null является специальным устройством, которое не выдает никаких выходных данных и автоматически удаляет все входные данные - когда вы перенаправляете выходные данные команды на /dev/null, то вы их удаляете.


/etc – конфигурационные файлы

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

/home – домашние каталоги

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


/lib – основные разделяемые библиотеки

В каталоге /lib находятся библиотеки, необходимые для основных двоичных файлов, находящихся в каталогах /bin и /sbin. Библиотеки, необходимые двоичным файлам, находящимся в каталоге /usr/bin, находятся в каталоге /usr/lib.

/lost+found – восстановленные файлы

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

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

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

/mnt – точки временного монтирования

Исторически сложилось, что каталог /mnt является тем местом, где системные администраторы монтируют временные файловые системы, когда они их используют. Например, если вы монтируете раздел Windows для того, чтобы выполнить некоторые операции восстановления файлов, вы можете смонтировать его в /mnt/windows. Но другие файловые системы вы можете монтировать в любом другом месте.

/opt – вспомогательные пакеты

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

/proc – файлы ядра и процессов

Каталог /proc похож на каталог /dev, поскольку он не содержит стандартных файлов. В нем находятся специальные файлы, в которых представлена информация о системе и о процессах.


/root – домашний каталог пользователя root

Каталог /root является домашним каталогом пользователя root. Вместо того, чтобы находиться в /home/root, он помещается в /root. Этот каталог отличается от каталога /, который является корневым каталогом системы.

/run – файлы состояния приложений

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

/sbin –двоичные файлы администрирования системы

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


/selinux – виртуальная файловая система SELinux

Если в вашем дистрибутиве для обеспечения безопасности используется пакет SELinux (например, в Fedora и Red Hat), то в каталоге /selinux будут находиться специальные файлы, используемые SELinux. Этот каталог похож на каталог /proc. В Ubuntu SELinux не используется, поэтому наличие этой папки в Ubuntu, возможно, является ошибочным.

/srv – данные сервисных служб

В каталоге /srv находятся "данные для сервисов, предоставляемых системой". Если вы пользуетесь сервером Apache HTTP для обслуживания веб-сайта, то, скорее всего, вы будете хранить файлы вашего сайта в каталоге, расположенном внутри каталога /srv.

/tmp – временные файлы

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

/usr – пользовательские двоичные файлы и данные, используемые только для чтения

В каталоге /usr находятся приложения и файлы, используемые пользователями, в отличие от приложений и файлов, используемых системой. Например, не очень важные приложения находятся в каталоге /usr/bin, а не в каталоге /bin, а не очень важные двоичные файлы, предназначенные для системного администрирования, находятся в каталоге /usr/sbin, а не в каталоге /sbin. Библиотеки для них находятся внутри каталога /usr/lib. В каталоге также есть другие подкаталоги - например, в каталоге /usr/share расположены файлы, независимые от архитектуры системы, например, используемые для работы с графикой.

Каталог /usr/local является местом, где по умолчанию устанавливаются приложения, откомпилированные локально - это позволит им не смешиваться с остальной частью системы.


/var – файлы для хранения изменяющихся данных

Каталог /var является аналогом каталога /usr, но в каталог /var можно делать запись, а каталог /usr в обычном режиме предназначен только для чтения. Журнальные файлы и все остальное, что должно было бы записываться в обычном режиме в каталог /usr, записывается в каталог /var. Например, журнальные файлы вы сможете найти в каталоге /var/log.

Для получения более подробной технической информации о иерархии файловой системы в Linux обратитесь к документации стандарта иерархии файловых систем Filesystem Hierarchy Standard, ver.2.3 .

Примечание: На нашем сайте имеется перевод FHS версии 2.2 , а также перевод статьи , в которой делается попытка объяснить причины, почему появился именно такой вариант структуры каталогов UNIX.

Очень сильно отличается от устройства в windows. Для начала, в линуксе нет дисков C или D. Один физический диск (или несколько) при установке системы разбивается на каталоги и подкаталоги. Основной, корневой каталог обозначается символом / (слэш) Вместо файла подкачки существует отдельный раздел /swap . Каждый каталог можно форматировать в нужную файловую систему, в зависимости от задач пользователя. Например Ext3, ReiserFS, JFS или другую.
В разных дистрибутивах линукс схема и назначение некоторых каталогов может несколько отличаться.
Можно создавать свои каталоги. У меня на отдельном жестком диске находится каталог с фильмами. В корневом разделе он выглядит как /films.

Описание основных каталогов и подкаталогов в linux:
/bin - В нем находятся
основные файлы команд.

/boot - В этом каталоге находится загрузчик системы (Grub или Lilo) и файлы, необходимые для загрузки системы.

/dev - В каталоге dev размещаются файлы описания устройств компьютера. В linux все устройства считаются файлами. Даже порты, диски, принтеры - все файл.

/etc - Каталог, в котором находятся конфигурационные файлы системы, программ, стартовые сценарии.
/etc/rc.d - файлы команд, запускающие приложения при загрузке системы.
/etc/passwd - в файле зашифрованы все данные о пользователях.
/etc/fstab - в файле содержится информация о файловых системах, автоматически монтируемых при запуске системы

/home - Пользовательский, домашний каталог. В linux может быть множество пользователей. Каждый пользователь имеет свой каталог.(например /home/user) В нем находятся любые файлы пользователей к которым он имеет непосредственный доступ
записи/удаления. Также в домашнем каталоге находятся пользовательские программы, настройки. Их имена начинаются на точку и выглядят, к примеру, вот так - .kde .fonts

/lib - Здесь находятся различные библиотеки системы, модули ядра
/lib/firmware - несвободные модули ядра с закрытой лицензией
/lib/modules - подгружаемые модули ядра. Например драйверы устройств, файловых систем.

/mnt - В этот каталог временно монтируются различные подключаемые устройства. Флешки, дискеты, диски

/opt - В каталог устанавливаются дополнительные пакеты программ.

/proc - Каталог с виртуальной файловой системой. В нем, в виде файлов содержится информация о происходящих в системе процессах.
/proc/modules - в этом файле находится информация о списке загруженных модулей ядра.
/proc/cpuinfo - подробная информация о процессоре.
/proc/meminfo -
информация об оперативной памяти.
/proc/devices - драйверы устройств встроенных в ядро системы.
/proc/uptime - информация про uptime системы. Т.е. Время работы без перезагрузки.
/proc/version - версия используемого системой ядра linux .
Все эти данные можно выводить в консоли с помощью команды cat .
Например cat /proc/cpuinfo

/root - Домашний каталог администратора(суперпользователя) системы. Используется администратором в случае если основной каталог home по каким-то причинам недоступен.

/sbin - Тут находятся основные программы выполняемые root.

/tmp - Каталог для временного хранения данных программами.

/usr - Основной каталог для установки программ. Кроме программ, в нем находятся файлы документации, исходные коды программ, ядра.
/usr/local - в этом каталоге находятся
отдельно устанавливаемые пакеты программ.
/usr/src - исходники установленных программ и ядра.
/usr/man - файлы руководств к установленным программам.
/usr/lib - неизменяемые конфигурационные файлы и данные программ.

/var - В каталоге var находятся данные которые часто меняются в процессе работы системы. Например логи, кэши программ.
/var/local - изменяемые данные программ, установленных администратором в /usr/local.
/var/log - логи различных системных программ.
/var/run - временные файлы. Информация в них хранится до очередной перезагрузки системы.
/var/tmp - каталог для временных файлов.

Файловая система ОС Linux

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

Предназначение файловой системы

В ОС Linux, как и в любой другой ОС семейства UNIX, любой объект является файлом, хранящимся на файловой системе. Файловая система представляет собой некоторое устройство (например, жесткий диск), отформатированное для хранения файлов. Файловые системы могут находиться на жестких дисках, гибких дисках, CD-ROM или других носителях, которые позволяют осуществлять произвольный или последовательный доступ к данным.

Условно файловую систему ОС Linux можно разделить на следующие компоненты.

Пространство имен - методы именования объектов файловой системы и их иерархическая организация.

Программный интерфейс приложения (API) - набор системных вызовов и библиотек, предназначенных для управления объектами файловой системы.

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

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

Основными задачами файловой системы являются:

упорядочивание хранимых данных;

простой и быстрый доступ к хранимым данным;

обеспечение целостности хранимых данных.

Точный формат и способы хранения файлов в ОС Linux не имеют значения, так как система обеспечивает общий интерфейс для всех распознаваемых ею типов файловых систем. В ОС Linux файловой системой, устанавливаемой по умолчанию, является ext3fs. При доступе к любой файловой системе из ОС Linux данные представляются в виде иерархии каталогов с находящимися в них файлами вместе с идентификаторами владельцев и групп, битами прав доступа и прочими атрибутами.

Иерархия файловой системы

Иерархия каталогов файловой системы ОС Linux соответствует общепринятому в мире UNIX стандарту Filesystem Hierarchy System (FHS). Основное преимущество данного стандарта заключается в том, что определенные типы файлов расположены в соответствующих каталогах.

Например, большинство конфигурационных файлов располагается в каталоге /etc, а файлы журналов различных сервисов располагаются в каталоге /var/log.

Описание каталогов файловой системы ОС Linux

Каталоги /bin, /usr/bin, /usr/locl/bin, /sbin, /usr/sbin и /usr/local/sbin содержат установленные в системе команды. При работе в системе под обычным пользователем, вам будут доступны только команды каталогов /bin, /usr/bin и /usr/locl/bin, так как в стандарте FHS определено, что в каталогах sbin должны содержаться только административные команды.


Рисунок 1.2.Структура каталогов ОС Linux

Основным каталогом файловой системы ОС Linux является корневой каталог /. Ниже корневого каталога располагаются все остальные каталоги, созданные на локальной дисковой подсистеме или подмонтированные с внешних устройств. Процедура монтирования файловой системы означает связывание каталога существующей файловой системы, называемого точкой монтирования, с корневым каталогом новой файловой системы.

Монтирование файловой системы к точке монтирования осуществляется при помощи команды mount. В следующем листинге приведен пример монтирования DVD привода, содержащего дистрибутив ОС RedHatEnterpriseLinux 5.

# mount /dev/hdc /mnt/

mount: block device /dev/hdc is write-protected, mounting read-only

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

Список смонтированных файловых систем хранится в файле /etc/fstab. Благодаря этому возможны автоматическая проверка целостности файловой системы при помощи команды fsck и монтирование файловых систем на этапе начальной загрузки, а также выполнение сокращенных команд наподобие mount /var/spool. Информация, содержащаяся в этом файле, отражает расположения файловых систем на диске. Подробнее файл /etc/fstab будет рассмотрен в модуле 3.

Размонтирование файловых систем осуществляется командой umount. «Заблокированную» файловую систему размонтировать невозможно. В ней не должно быть ни открытых файлов, ни текущих каталогов выполняющихся процессов. Если размонтируемая файловая система содержит исполняемые программы, они не должны быть запущены. В следующем листинге приводится пример размонтирования ранее подмонтированной файловой системы в каталоге /mnt.

# umount /mnt # Is -1 /mnt total 0

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

# mount /dev/sda2 on / type ext3 (rw)

proc on /ргос type proc (rw)

sunrpc on /var/lib/nfs/rpc_pipefs type rpc_pipefs (rw) /dev/hdc on /mnt type iso9660 (ro)

Как видим, в выводе команды mount последовательно отображается подмонтированное устройство, точка монтирования, тип файловой системы и дополнительные опции монтирования.

Типы файлов

При работе с ОС Linux важно понимать, что любой объект ОС является файлом. Это ключевая особенность ОС Linux по сравнению с операционными системами семейства Windows.

Файлы различаются как по своей структуре, так и по своему предназначению. В ОС Linux определены семь типов файлов:

регулярные файлы (обычные файлы);

каталоги;

именованные каналы;

файлы блочных устройств;

файлы символьных устройств.

Определить тип файла можно с помощью команды Is -Id. Первый символ в строке вывода обозначает тип файла. В следующем листинге выдается информация о файле

/dev/hdc. # Is -Id /dev/hdc

Регулярные файлы

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

Каталоги

В ОС Linux имеются так называемые специальные каталоги. Специальные каталоги, такие как «.» и «..», обозначают, соответственно, текущий рабочий каталог и его родительский каталог.

В ОС Linux принято различать символические и жесткие ссылки, каждая из которых имеет особенное значение.

Символическая ссылка позволяет вместо имени файла указывать его псевдоним. В процессе поиска файла по символическим ссылкам, ядро извлекает хранящиеся в них имена. Жёсткая ссылка является прямой, т.е. указывает непосредственно на индексный дескриптор файла, тогда как символическая ссылка указывает на файл по его имени. Файл, адресуемый символической ссылкой, и сама ссылка представляют собой разные объекты файловой системы.

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

ОС Linux подсчитывает количество ссылок на каждый файл и при удалении файла не освобождает блоки данных до тех пор, пока не будет удалена последняя ссылка на него.

Сокеты

Сокет - это специальный тип файла, используемый процессами для взаимодействия друг с другом. Установленные посредством сокетов соединения позволяют процессам взаимодействовать, не подвергаясь влиянию других процессов. В ОС Linux выделяется несколько видов сокетов, использование которых предполагает наличие сетевой инфраструктуры. Локальные сокеты доступны только на локальном компьютере, обращение к ним осуществляется через специальные объекты файловой системы, а не через сетевые порты. Такие сокеты принято называть сокетами домена UNIX (UNIXdomainsocket). Помимо локальных сокетов существуют сетевые сокеты, позволяющие процессам обмениваться данными по сети.

Несмотря на то, что другие процессы распознают файлы сокетов как элементы каталога, только процессы, между которыми установлено соответствующее соединение, могут осуществлять чтение и запись файлов сокета. С локальными сокетами работают различные сервисы ОС Linux - CUPS, XWindow и Syslog.

Именованные каналы ( FIFO)

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

Файлы блочных и символьных устройств

Файлы блочных и символьных устройств позволяют приложениям получать доступ к аппаратным средствам и периферийному оборудованию системы. На этапе конфигурирования к ядру ОС Linux динамически подгружаются необходимые модули, предназначенные для управления аппаратными средствами системы. За управление конкретным устройством отвечает специальный модуль, называемый драйвером устройства.

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

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

Основные понятия

Операционная система Linux разработана в соответствии с требованиями международного стандарта на UNIX-совместимые системы IEEE POSIX, поэтому логично будет кратко рассмотреть сначала структуру файловой системы ОС UNIX.

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

Пользователь

С самого начала ОС UNIX замышлялась как интерактивная система. Другими словами, UNIX предназначен для терминальной работы. Чтобы начать работать, человек должен "войти" в систему, введя со свободного терминала свое учетное имя (account name) и, возможно, пароль (password). Человек, зарегистрированный в учетных файлах системы, и, следовательно, имеющий учетное имя, называется зарегистрированным пользователем системы. Регистрацию новых пользователей обычно выполняет администратор системы. Пользователь не может изменить свое учетное имя, но может установить и/или изменить свой пароль. Пароли хранятся в отдельном файле в закодированном виде. Не стоит забывать свой пароль, снова узнать его не поможет даже администратор!

Все пользователи ОС UNIX явно или неявно работают с файлами. Файловая система ОС UNIX имеет древовидную структуру. Промежуточными узлами дерева являются каталоги со ссылками на другие каталоги или файлы, а листья дерева соответствуют файлам или пустым каталогам. Каждому зарегистрированному пользователю соответствует некоторый каталог файловой системы, который называется "домашним" (home) каталогом пользователя. При входе в систему пользователь получает неограниченный доступ к своему домашнему каталогу и всем каталогам и файлам, содержащимся в нем. Пользователь может создавать, удалять и модифицировать каталоги и файлы, содержащиеся в домашнем каталоге. Потенциально возможен доступ и ко всем другим файлам, однако он может быть ограничен, если пользователь не имеет достаточных привилегий.

Файловая система

Понятие файла является одним из наиболее важных для ОС UNIX. Все файлы, с которыми могут манипулировать пользователи, располагаются в файловой системе, представляющей собой дерево, промежуточные вершины которого соответствуют каталогам, и листья - файлам и пустым каталогам. Примерная структура файловой системы ОС UNIX показана на рисунке 2.1. Реально на каждом логическом диске (разделе физического дискового пакета) располагается отдельная иерархия каталогов и файлов. Для получения общего дерева в динамике используется "монтирование" отдельных иерархий к фиксированной корневой файловой системе.

Замечание: В мире ОС UNIX по историческим причинам термин "файловая система" является перегруженным, обозначая одновременно иерархию каталогов и файлов и часть ядра, которая управляет каталогами и файлами. Видимо, было бы правильнее называть иерархию каталогов и файлов архивом файлов, а термин "файловая система" использовать только во втором смысле. Однако, следуя традиции ОС UNIX, мы будем использовать этот термин в двух смыслах, различая значения по контексту.

Каждый каталог и файл файловой системы имеет уникальное полное имя (в ОС UNIX это имя принято называть full pathname - имя, задающее полный путь, поскольку оно действительно задает полный путь от корня файловой системы через цепочку каталогов к соответствующему каталогу или файлу; я буду использовать термин "полное имя", поскольку для pathname отсутствует благозвучный русский аналог). Каталог, являющийся корнем файловой системы (корневой каталог), в любой файловой системе имеет предопределенное имя "/" (слэш). Полное имя файла, например, /bin/sh означает, что в корневом каталоге должно содержаться имя каталога bin, а в каталоге bin должно содержаться имя файла sh. Коротким или относительным именем файла (relative pathname) называется имя (возможно, составное), задающее путь к файлу от текущего рабочего каталога (существует команда и соответствующий системный вызов, позволяющие установить текущий рабочий каталог).

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

Рис. 2.1. Структура каталогов файловой системы

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

Структура файловой системы

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

В мире UNIX существует несколько разных видов файловых систем со своей структурой внешней памяти. Наиболее известны традиционная файловая система UNIX System V (s5) и файловая система семейства UNIX BSD (ufs). Файловая система s5 состоит из четырех секций (рисунок 2.2,a). В файловой системе ufs на логическом диске (разделе реального диска) находится последовательность секций файловой системы (рисунок 2.2,b).

Рис. 2.2. Структура внешней памяти файловых систем s5 и ufs

Кратко опишем суть и назначение каждой области диска.

    Boot-блок содержит программу раскрутки, которая служит для первоначального запуска ОС UNIX. В файловых системах s5 реально используется boot-блок только корневой файловой системы. В дополнительных файловых системах эта область присутствует, но не используется.

    Суперблок - это наиболее ответственная область файловой системы, содержащая информацию, которая необходима для работы с файловой системой в целом. Суперблок содержит список свободных блоков и свободные i-узлы (information nodes - информационные узлы). В файловых системах ufs для повышения устойчивости поддерживается несколько копий суперблока (как видно из рисунка 2.2,b, по одной копии на группу цилиндров). Каждая копия суперблока имеет размер 8196 байт, и только одна копия суперблока используется при монтировании файловой системы (см. ниже). Однако, если при монтировании устанавливается, что первичная копия суперблока повреждена или не удовлетворяет критериям целостности информации, используется резервная копия.

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

    Список i-узлов (ilist) содержит список i-узлов, соответствующих файлам данной файловой системы. Максимальное число файлов, которые могут быть созданы в файловой системе, определяется числом доступных i-узлов. В i-узле хранится информация, описывающая файл: режимы доступа к файлу, время создания и последней модификации, идентификатор пользователя и идентификатор группы создателя файла, описание блочной структуры файла и т.д.

    Блоки данных - в этой части файловой системы хранятся реальные данные файлов. В случае файловой системы ufs все блоки данных одного файла пытаются разместить в одной группе цилиндров. Размер блока данных определяется при форматировании файловой системы командой mkfs и может быть установлен в 512, 1024, 2048, 4096 или 8192 байтов.

Монтируемые файловые системы

Файлы любой файловой системы становятся доступными только после "монтирования" этой файловой системы. Файлы "не смонтированной" файловой системы не являются видимыми операционной системой.

Для монтирования файловой системы используется системный вызов mount. Монтирование файловой системы означает следующее. В имеющемся к моменту монтирования дереве каталогов и файлов должен иметься листовой узел - пустой каталог (в терминологии UNIX такой каталог, используемый для монтирования файловой системы, называется directory mount point - точка монтирования). В любой файловой системе имеется корневой каталог. Во время выполнения системного вызова mount корневой каталог монтируемой файловой системы совмещается с каталогом - точкой монтирования, в результате чего образуется новая иерархия с полными именами каталогов и файлов.

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

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

Интерфейс с файловой системой

Ядро ОС UNIX поддерживает для работы с файлами несколько системных вызовов. Среди них наиболее важными являются open, creat, read, write, lseek и close.

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

Файл в системных вызовах, обеспечивающих реальный доступ к данным, идентифицируется своим дескриптором (целым значением). Дескриптор файла выдается системными вызовами open (открыть файл) и creat (создать файл). Основным параметром операций открытия и создания файла является полное или относительное имя файла. Кроме того, при открытии файла указывается также режим открытия (только чтение, только запись, запись и чтение и т.д.) и характеристика, определяющая возможности доступа к файлу:

open(pathname, oflag [,mode])

Одним из признаков, которые могут участвовать в параметре oflag, является признак O_CREAT, наличие которого указывает на необходимость создания файла, если при выполнении системного вызова open файл с указанным именем не существует (параметр mode имеет смысл только при наличии этого признака). Тем не менее по историческим причинам и для обеспечения совместимости с предыдущими версиями ОС UNIX отдельно поддерживается системный вызов creat, выполняющий практически те же функции.

Открытый файл может использоваться для чтения и записи последовательностей байтов. Для этого поддерживаются два системных вызова:

read(fd, buffer, count) и write(fd, buffer, count)

Здесь fd - дескриптор файла (полученный при ранее выполненном системном вызове open или creat), buffer - указатель символьного массива и count - число байтов, которые должны быть прочитаны из файла или в него записаны. Значение функции read или write - целое число, которое совпадает со значением count, если операция заканчивается успешно, равно нулю при достижении конца файла и отрицательно при возникновении ошибок.

В каждом открытом файле существует текущая позиция. Сразу после открытия файл позиционируется на первый байт. Другими словами, если сразу после открытия файла выполняется системный вызов read (или write), то будут прочитаны (или записаны) первые count байтов содержимого файла (конечно, они будут успешно прочитаны только в том случае, если файл реально содержит по крайней мере count байтов). После выполнения системного вызова read (или write) указатель чтения/записи файла будет установлен в позицию count+1 и т.д.

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

lseek(fd, offset, origin)

Как и раньше, здесь fd - дескриптор ранее открытого файла. Параметр offset задает значение относительного смещения указателя чтения/записи, а параметр origin указывает, относительно какой позиции должно применяться смещение. Возможны три значения параметра origin. Значение 0 указывает, что значение offset должно рассматриваться как смещение относительно начала файла. Значение 1 означает, что значение offset является смещением относительно текущей позиции файла. Наконец, значение 2 говорит о том, что задается смещение относительно конца файла. Заметим, что типом данных параметра offset является long int. Это значит, что, во-первых, могут задаваться достаточно длинные смещения и, во-вторых, смещения могут быть положительными и отрицательными.

Например, после выполнения системного вызова

указатель чтения/записи соответствующего файла будет установлен на начало (на первый байт) файла. Системный вызов

UNIX стандарту Filesystem ... команды. Рисунок 1.2.Структура каталогов ОС Linux Основным каталогом файловой системы ОС Linux является корневой каталог...

  • Установка операционной системы Linux

    Реферат >> Информатика

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



  • © 2024 beasthackerz.ru - Браузеры. Аудио. Жесткий диск. Программы. Локальная сеть. Windows