Различия между версиями 3 и 4
Версия 3 от 2008-07-24 20:20:51
Размер: 16651
Редактор: ConstantinYershow
Комментарий:
Версия 4 от 2008-07-24 20:25:44
Размер: 16721
Редактор: ConstantinYershow
Комментарий:
Удаления помечены так. Добавления помечены так.
Строка 9: Строка 9:
Строка 10: Строка 11:
Строка 11: Строка 13:
Строка 12: Строка 15:
Строка 13: Строка 17:
Строка 15: Строка 20:
Строка 16: Строка 22:
Строка 17: Строка 24:
/mnt/ - если устройство подключается вручную, при помощи команды mount, считается хорошим тоном подключать его не в каталог /media/, а сюда. Чтобы не мешать роботу.
/opt/ - предназначен для того, чтобы сваливать в него всё, что не вхдит в дистрибутив, не подчиняется дисциплине оформления програмного продукта, разработанного для вашего дистрибутива. Дисциплина оформления установки в /opt/ следующая: /opt/имя продукта/ его собственный bin, lib, etc... Обычно этот каталог пустует.

/mnt/ - если устройство подключается вручную, при помощи команды mount, считается хорошим тоном подключать его не в каталог /media, а сюда. Чтобы не мешать роботу.

/opt/ - предназначен для того, чтобы сваливать в него всё, что не вхдит в дистрибутив, не подчиняется дисциплине оформления програмного продукта, разработанного для вашего дистрибутива. Дисциплина оформления установки в /opt следующая: /opt/имя продукта/ его собственный bin, lib, etc... Обычно этот каталог пустует.
Строка 20: Строка 30:
/root/ - домашний каталог суперпользователя, который хранит там свои суперпользовательские штуки. Он не находится в /home/ для того, чтобы они (суперпользовательские штуки) были доступны тогда, когда /home/ отвалился.
/root/ - домашний каталог суперпользователя, который хранит там свои суперпользовательские штуки. Он не находится в /home для того, чтобы они (суперпользовательские штуки) были доступны тогда, когда /home отвалился.
Строка 22: Строка 34:
Строка 23: Строка 36:
Строка 24: Строка 38:
Строка 25: Строка 40:
Строка 26: Строка 42:
log - системные журналы
db - нетекстовые форматы, всякие базы данных со списком файлов в пакетах, в общем, какие-то файлы, содержащие таблицы нетекстового формата.
lock - для заведения файлов блокировки, то есть, например, две программы запускаются, одна создаёт здесь файл, а вторая смотрит, есть ли этот файл.
mail - списки почтовых очередей на отправку, получение - всякое такое.
preserv - туда периодически копируются разные важные части системы, типа содержимого /etc.
run - информация о том, какие системы запущены и что в них делается, например, идентификатор процесса запущенного сервиса хранится здесь.
cache - всякие кэши
opt - здесь (теоретически) программы из /opt хрнят свои данные
lib - там держат свои файлы разные службы, в альте они используются для изолированного запуска.

 *
log - системные журналы
 * db - нетекстовые форматы, всякие базы данных со списком файлов в пакетах, в общем, какие-то файлы, содержащие таблицы нетекстового формата.
 * lock - для заведения файлов блокировки, то есть, например, две программы запускаются, одна создаёт здесь файл, а вторая смотрит, есть ли этот файл.
 * mail - списки почтовых очередей на отправку, получение - всякое такое.
 * preserv - туда периодически копируются разные важные части системы, типа содержимого /etc.
 * run - информация о том, какие системы запущены и что в них делается, например, идентификатор процесса запущенного сервиса хранится здесь.
 * cache - всякие кэши
 * opt - здесь (теоретически) программы из /opt хрнят свои данные
 * lib - там держат свои файлы разные службы, в альте они используются для изолированного запуска.
Строка 36: Строка 54:
bin - здесь, в отличие от корневого каталога, хранятся все пользовательские приложения. Их здесь намного больше, чем в /bin.
lib - здесь лежат все библиотеки, необходимые для работы пользователя, в том числе для програмирования.
share - в него складываются файлы, не зависящие от архитектуры, те, которые одинаково выглядят на машинах с любой архитектурой. Тут есть много чего, главный каталог - /usr/share/doc, где лежит вся документация.

 *
bin - здесь, в отличие от корневого каталога, хранятся все пользовательские приложения. Их здесь намного больше, чем в /bin.
 * lib - здесь лежат все библиотеки, необходимые для работы пользователя, в том числе для програмирования.
 * share - в него складываются файлы, не зависящие от архитектуры, те, которые одинаково выглядят на машинах с любой архитектурой. Тут есть много чего, главный каталог - /usr/share/doc, где лежит вся документация.

FHS

Очень важная тема. В отличие от виндоуса (где есть два каталога - windows и program files, а дальше чёрт ногу сломит), со стандартными каталогами линукса всё более-менее определено. Поскольку у нас есть ровно одна структура файловой системы, мы не пользуемся буквами A, B, C, D... у нас есть корень, из которого всё растёт, то можно себе позволить договориться о том, что именно растёт из этого корня. Есть группа людей, которые занимаются регулярной подготовкой документа FHS (filesystem hierarchy standart), в который включают всякие рекмендации по поводу того, как должна выглядеть файловая система в posix-совместимой системе. У нас даже есть пакет fhs, куда этот текст включается.

В корне у нас находится несколько подкаталогов, больше их не должно быть. У каждого из каталогов, которые находятся в корне структуры каталогов, есть собственное назначение.

/bin/ содержит исполняемые файлы, причём только те, которые необходимы для вывода системы в штатный режим (то есть, те, которые используются при старте).

/boot/ содержит файлы, используемые в процессе досистемной загрузки - это, как правило, два-три вида файлов: ядро, виртуальный диск, иногда загрузчик (grub).

/dev/ - специальный каталог, где хранятся так называемые "специальные файлы", они предназначены для того, чтбы можно было работать непосредственно с внешними устройствами системы, используя файловые операции. Поскольку внешнее устройство - более сложная штука, чем обычный файл, помимо обычных файловых операций есть ещё ioctl (файловая операция управления вводом-выводом). Она очень развесистая; для каждого устройства есть свои форматы ioctl. Обычному пользователю это не очень нужно, это нуно системе.

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

/home/ - каталог для домашних каталогов пользователей.

/lib/ - предназначен для хранения библитек, необходимых для старта системы. Что такое библиотеки. Вы пишете программу, которая использует функцию синус. Вот вы её написали, подумали, что функцию синус неоткуда брать, и написали алгоритм, вычисляющий синус. Выясняется, что синус нужен в некоторых других программах, и хорошо бы синус держать в отдельном файле, чтобы все другие программы можно было компилировать, используя один и тот же исходный текст функции синус. Потом оказывается, что таких функций много и глупо компилировать это каждый раз. Хорошо бы скомпилировать все эти функции один раз, получится так называесый "объектный файл", то есть файл, который нельзя напрямую выполнить, но он уже готов к компиляции, и когда вы пишете программу, вы говорите "обратиться к функции синус", и происходит компановка: берётся ваш файл про функцию синус, там, арктангенс... и на этапе компановке все они сваливаются в одну кучу, после чего получается бинарник, состоящий из скомпилированного вашего файла и других файлов, взятых из других мест, уже заранее скомпилированных. Следующий этап - когда вам приходит в голову, что не надо сотни функций хранить в сотне файлов, и хорошо бы заархивировать их в один файл и чтобы компилятор умел разархивировать этот файл и из него забирать куски скомпилированных функций. И это (то есть сборник объектных файлов) уже называется библиотека. Там уже не исходный код на языке C, а некоторый скомпилированный вариант. И дальше получается следующее: вы говорите "скомпилировать программу с использованием (допустим,) математической библиотеки". Проблемы начинаются дальше - 30 программ собираются 30 раз, компилируются с поддержкой математической библиотеки и в результате получается 30 исполняемых файлов, в которых 30 раз хранится одно и то же. Жалко места. Было бы удобно, чтобы всё лежало в одном месте, а не в тридцати. Другая проблема хуже - при изменении библиотеки надо пересобирать все файлы, в которых использована эта библиотека. Выход - отказаться от того, чтобы при компиляции программы внутрь исполняемого файла кладётся всё необходимое для её работы. То есть, мы скомпилируем программу и в ней при компиляции напишем, что для того, чтобы она работала, нужно подгрузить математическую библиотеку. Обе задачи решены. Недостаток - программа не запустится, если библиотеки нет. Есть программа ldd, которая показывает, какие библиотеки (они называются динамическими, так как загружаются в память не в момент компиляции, а в момент запуска) нужны конкретной программе.

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

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

/mnt/ - если устройство подключается вручную, при помощи команды mount, считается хорошим тоном подключать его не в каталог /media, а сюда. Чтобы не мешать роботу.

/opt/ - предназначен для того, чтобы сваливать в него всё, что не вхдит в дистрибутив, не подчиняется дисциплине оформления програмного продукта, разработанного для вашего дистрибутива. Дисциплина оформления установки в /opt следующая: /opt/имя продукта/ его собственный bin, lib, etc... Обычно этот каталог пустует.

/proc/ - виртуальная файловая система, специфичная в сновном для Linux, где в виде файлов и каталогов представлена структура процессов.

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

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

/srv/ происходит от слова server - там разрешается размещать файлы, которые мы раздаём всем окружающим, например, подключаем как сетевую файловую систему. По FHS, содержимое ftp-сервера должно быть тут.

/sys/ - ещё одна виртуальная файловая система, которая представляет в виде файловой системы структуру аппаратного обеспечения в том виде, в котором её воспринимает ядро линукса. Она удобна для того, чтобы тута заглянуть и узнать, что думает линукс о том железе, на котором вы работаете. Она удобна продвинутым пользователям, ещё более удобна для роботов, которые должны что-то распознать и на этом основании что-то делать.

/tmp/ - каталог для хранения временных файлов

/var/ - каталог, предназначенный для данных, размер и количество которых неизвестны:

  • log - системные журналы
  • db - нетекстовые форматы, всякие базы данных со списком файлов в пакетах, в общем, какие-то файлы, содержащие таблицы нетекстового формата.
  • lock - для заведения файлов блокировки, то есть, например, две программы запускаются, одна создаёт здесь файл, а вторая смотрит, есть ли этот файл.
  • mail - списки почтовых очередей на отправку, получение - всякое такое.
  • preserv - туда периодически копируются разные важные части системы, типа содержимого /etc.
  • run - информация о том, какие системы запущены и что в них делается, например, идентификатор процесса запущенного сервиса хранится здесь.
  • cache - всякие кэши
  • opt - здесь (теоретически) программы из /opt хрнят свои данные
  • lib - там держат свои файлы разные службы, в альте они используются для изолированного запуска.

/usr/

  • bin - здесь, в отличие от корневого каталога, хранятся все пользовательские приложения. Их здесь намного больше, чем в /bin.
  • lib - здесь лежат все библиотеки, необходимые для работы пользователя, в том числе для програмирования.
  • share - в него складываются файлы, не зависящие от архитектуры, те, которые одинаково выглядят на машинах с любой архитектурой. Тут есть много чего, главный каталог - /usr/share/doc, где лежит вся документация.


Сведения о ресурсах

Готовность (%)

Продолжительность (ак. ч.)

Подготовка (календ. ч.)

Полный текст (раб. д.)

Предварительные знания

Level

Maintainer

Start date

End date

20

1

1

1

1

ConstantinYershow, DmitryChistikov, MaximByshevskiKonopko


CategoryLectures CategoryPspo CategoryMpgu CategoryUneex

PspoClasses/080718/05FHS (последним исправлял пользователь MaximByshevskiKonopko 2008-10-09 21:44:27)