Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

6 - каталоги /proc, /sys. Блочные и символьные файлы-устройства

Лекция



Сразу хочу сказать, что здесь никакой воды про /proc, и только нужная информация. Для того чтобы лучше понимать что такое /proc, /sys, блочные файлы, символьные файлы , настоятельно рекомендую прочитать все из категории Операционная система LINUX.

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

Файлы-устройства делятся на два типа: блочные и символьные. Еще можно встретить в литературе блочно-ориентированные и байт-ориентированные. Отличия между типами в способе “общения” с компонентами. С блочными файлами-устройствами обмен информацией идет порциями или блоками. Типичным блочным устройством является жесткий диск. Также следует отметить, что информацию можно получить из любой части блочного файла-устройства. С символьными файлами-устройствами обмен информацией идет последовательно. Пример такого устройства - com-порт.

Выполните команду ls /dev/ и посмотрите на результат. Вы как раз и увидите файлы-устройства присущие вашей аппаратоной конфигурации. Рассмотрим сначала символьные файлы-устройства. Я уже упоминал о таких устройствах как tty (консоль) и ttyS0 (порт com1). аudiodspmixer - файл-устройства отображающие звуковую карту. Виртуальные устройства random и urandom - позволяют генерировать псевдослучайные числа. Причем устройство urandom генерирует последовательность исключительно математическими методами, аrandom использует для генерации так называемый “шум”, который генирируется в процессе работы разлычными аппаратными компонентами. Зарегистрируйтесь во второй и третьей консоли. Наберите во второй консоли команду hexdump /dev/random . Вы должны увидеть шестнадцатеричные числа. Подождите некоторое время и вы увидите как количество чисел растет. Чтобы ускорить процесс можете перейти на третью консоль и понажимать на клавиши. Об этом говорит сайт https://intellect.icu . Вернитесь на вторую консоль и прервите выполнение команды hexdump комбинацией клавиш ctrl+C. Наберите теперь команду hexdump /dev/urandom и увидите как последовательность чисел генерируется очень быстро, так как используются только математические методы генерации последовательности.

Еще два интересных файла-устройства это zero и null . zero - постоянно выдает нули. Это может быть нужно например, если нужно очистить жесткий диск. Для этого можно использовать команду dd if=/dev/zero of=/dev/sdc . Только не нужно выполнять эту команду на своем рабочем диске. Что делает эта команда? В качестве входящих данных (if - input file), используется информация из /dev/zero (то есть нули), в качестве приемника данных (of - output file) используется жесткий диск. В результате выполнения весь диск заполниться нулями. Null - не содержит в себе ничего. И запись в это устройство - это запись в никуда. Это может быть полезно если мы хотим чтобы, информация выдаваемая командами не высвечивалась на консоли. Например, команда echo Hello! > /dev/null не отобразит на консоли слово Hello!, так как вывод перенаправлен в/dev/null.

Давайте выполним команду mount без параметров, чтобы посмотреть какие устройства у нас смонтированы и с какими файловыми системами. Нас интересует строка относящаяся к каталогу  /proc . Выглядит она примерно так: proc on /proc type proc (rw). Как можете видеть файловая система здесь называется proc. Это виртуальная файловая система, в которой отображаются файлы-процессы. Эту виртуальную файловую системуLinux создает в виртуальной памяти, поэтому на жестком диске она не занимает место, да и многие файлы в памяти также не занимают место так как на самом деле не содержат в себе информации. Выполните команду df -ha и убедитесь, что действительно каталог /proc занимает 0 байт пространства. Хотя информацию можно получить по команде cat (less), но на самом деле информация эта генерируется ядром на лету - cat /proc/cpuinfo . То есть /proc/cpuinfo - это не текстовый файл. Другими словами через файлы содержащиеся в каталоге /proc мы получаем доступ к различным статистическим (и не только) данным ядра. Например, командаcat /proc/net/dev покажет статистическую информацию по сетевым устройствам - количество принятых/переданных байт и пакетов и другую. А команда cat /proc /sys /net/ipv4/ip_forward - покажет разрешена ли в нашей системе пересылка (форвардинг) пакетов. Большинство файлов в каталоге /proc доступны только для чтения, но есть и такие которые доступны для записи (для пользователя root). Файл ip_forward как раз относится к последним. Если у вас там 0, то форвардинг отключен. Но мы можем включить его следующим способом (в некоторых дистрибутивах такие операции не пройдут): echo 1 > /proc/sys/net/ipv4/ip_forward. По этой команде мы изменим содержимое с 0 на 1 и тем самым разрешим форвардинг (после перезагрузки системы снова будет 0). По команде ls /proc/ вы можете увидеть много директорий с числовым именем. Эти имена соответствуют идентификаторам процессов запущенных в системе. В каждой такой папке содержится разнообразная информация о процессе. Подробнее можно ознакомится набрав man 5 proc .

Каталог /sys имеет свою файловую систему sysfs. В чем-то содержимое каталога (по назначению) /sys схоже с каталогом /proc . Основное отличие в том, что файлы в /sys описывают реальную конфигурацию компьютера на текущий момент. /sys очень тесно связан с udev если вы подключаете (отключаете) устройства, содержимое каталога /sys динамически меняется. Можно посмотреть на примере. Выполните команду ls /sys/bus/usb/devices/ , чтобы посмотреть текущие usb-устройства в системе. Теперь подключите флеш-накопитель и выполните команду ls /sys/bus/usb/devices/ еще раз. Вы увидите, что теперь устройств стало больше.

Еще раз хочу обратить внимание на то, что содержимое директорий /proc и /sys формируется ядром на этапе загрузки. Загрузитесь с любого LiveCD диска зайдите в директории /proc и /sys на вашем диске и убедитесь, что они пустые.

На следующей лекции поговорим о регулярных файлах и линках.

Пожалуйста, пиши комментарии, если ты обнаружил что-то неправильное или если ты желаешь поделиться дополнительной информацией про /proc Надеюсь, что теперь ты понял что такое /proc, /sys, блочные файлы, символьные файлы и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Операционная система LINUX

Из статьи мы узнали кратко, но содержательно про /proc
создано: 2014-09-13
обновлено: 2021-03-13
132455



Рейтиг 2 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей



Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Операционная система LINUX

Термины: Операционная система LINUX