Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
VPS/VDS серверы. 30 локаций на выбор

Серверы VPS/VDS с большим диском

Хорошие условия для реселлеров

4VPS.SU - VPS в 17-ти странах

2Gbit/s безлимит

Современное железо!

Бесплатный конструктор сайтов и Landing Page

Хостинг с DDoS защитой от 2.5$ + Бесплатный SSL и Домен

SSD VPS в Нидерландах под различные задачи от 2.6$

✅ Дешевый VPS-хостинг на AMD EPYC: 1vCore, 3GB DDR4, 15GB NVMe всего за €3,50!

🔥 Anti-DDoS защита 12 Тбит/с!

2004 г.

Ipsysctl tutorial 1.0.4

Oskar Andreasson, перевод Андрея Киселева

Глава 1. Введение

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

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

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

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

1.2. Файловая система /proc

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

Одним из каталогов, доступных на чтение-запись, является каталог /proc/sys. Все переменные ("файлы"), расположенные в этом каталоге и его подкаталогах доступны как для чтения, так и для записи.

В этом документе рассматривается Internet Protocol версии 4 (IPv4). Соответсвующий ему раздел находится в каталоге /proc/sys/net/ipv4. Здесь находятся все настройки стека IPv4, включая TCP, UDP, ICMP и ARP.

1.3. Краткое описание файловой системы /proc

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

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

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

[blueflux@work1 ]$ ls -l /proc
total 0
....
-r--r--r--    1 root     root            0 Sep 19 18:09 apm
dr-xr-xr-x    4 root     root            0 Sep 19 10:52 bus
-r--r--r--    1 root     root            0 Sep 19 18:09 cmdline
-r--r--r--    1 root     root            0 Sep 19 18:09 cpuinfo
-r--r--r--    1 root     root            0 Sep 19 18:09 devices
-r--r--r--    1 root     root            0 Sep 19 18:09 dma
dr-xr-xr-x    4 root     root            0 Sep 19 18:09 driver
-r--r--r--    1 root     root            0 Sep 19 18:09 execdomains
-r--r--r--    1 root     root            0 Sep 19 18:09 fb
-r--r--r--    1 root     root            0 Sep 19 18:09 filesystems
dr-xr-xr-x    2 root     root            0 Sep 19 18:09 fs
dr-xr-xr-x    4 root     root            0 Sep 19 18:09 ide
-r--r--r--    1 root     root            0 Sep 19 18:09 interrupts
-r--r--r--    1 root     root            0 Sep 19 18:09 iomem
-r--r--r--    1 root     root            0 Sep 19 18:09 ioports
dr-xr-xr-x   18 root     root            0 Sep 19 18:09 irq
-r--------    1 root     root     268374016 Sep 19 18:09 kcore
-r--------    1 root     root            0 Sep 19 10:52 kmsg
-r--r--r--    1 root     root            0 Sep 19 18:09 ksyms
-r--r--r--    1 root     root            0 Sep 19 18:09 loadavg
-r--r--r--    1 root     root            0 Sep 19 18:09 locks
-r--r--r--    1 root     root            0 Sep 19 18:09 mdstat
-r--r--r--    1 root     root            0 Sep 19 18:09 meminfo
-r--r--r--    1 root     root            0 Sep 19 18:09 misc
-r--r--r--    1 root     root            0 Sep 19 18:09 modules
lrwxrwxrwx    1 root     root           11 Sep 19 18:09 mounts -> self/mounts
-rw-r--r--    1 root     root          208 Sep 19 11:02 mtrr
dr-xr-xr-x    3 root     root            0 Sep 19 18:09 net
dr-xr-xr-x    2 root     root            0 Sep 19 18:09 nv
-r--r--r--    1 root     root            0 Sep 19 18:09 partitions
-r--r--r--    1 root     root            0 Sep 19 18:09 pci
dr-xr-xr-x    3 root     root            0 Sep 19 18:09 scsi
lrwxrwxrwx    1 root     root           64 Sep 19 12:01 self -> 2864
-rw-r--r--    1 root     root            0 Sep 19 18:09 slabinfo
-r--r--r--    1 root     root            0 Sep 19 18:09 stat
-r--r--r--    1 root     root            0 Sep 19 18:09 swaps
dr-xr-xr-x   10 root     root            0 Sep 19 14:39 sys
dr-xr-xr-x    2 root     root            0 Sep 19 18:09 sysvipc
dr-xr-xr-x    4 root     root            0 Sep 19 18:09 tty
-r--r--r--    1 root     root            0 Sep 19 18:09 uptime
-r--r--r--    1 root     root            0 Sep 19 18:09 version
[blueflux@work1 proc]$
 

Большая часть информации находится в формате, удобном для восприятия. Однако есть файлы, к которым не следует "прикасаться", например: kcore. Этот файл хранит отладочную информацию ядра. Если попробовать просмотреть его от начала до конца (хотя бы с помощью команды cat), то это может привести к зависанию и краху системы. В некоторых случаях, попытка скопировать kcore в обычный файл может привести к заполнению всего свободного пространства, имеющегося на заданном разделе жесткого диска. Это еще раз напоминает нам о том, что нужно быть очень и очень осторожными. В большинстве своем содержимое файловой системы /proc безопасно для просмотра, исключение составляют лишь некоторые файлы. Вот краткое описание некоторых переменных (файлов), находящихся в корне файловой системы /proc, содержащих важную информацию:

  • cmdline - Командная строка, переданная ядру во время загрузки.

  • cpuinfo - Информация о Центральном Процессорном Устройстве (CPU), известные баги, флаги и пр.

  • dma - Информация о доступных каналах DMA и драйверах, использующих их.

  • filesystems - Краткая информация о файловых системах, поддерживаемых ядром.

  • interrupts - Краткий список всех IRQ, данные о количестве прерываний, поступивших по каждому из них и драйверы, обслуживающие эти IRQ.

  • iomem - Карта памяти.

  • ioports - Карта портов ввода-вывода.

  • kcore - Полный дамп памяти. Не пытайтесь копировать это файл, это может подвесить вашу систему. Используется в целях отладки.

  • kmsg - Сообщения, переданные ядром, не может и не должен читаться пользователями, поскольку содержит жизненно важную информацию. В основном используется в отладочных целях.

  • ksyms - Таблица символов ядра, которая используется, в основном, для отладки.

  • loadavg - Содержит величину средней нагрузки за последние 1, 5 и 15 минут.

  • meminfo - Информация об использовании памяти.

  • modules - Информация о всех загруженных модулях ядра.

  • mounts - Ссылка на другой файл в файловой системе /proc, который содержит информацию обо всех смонтированных файловых системах.

  • partitions - Информация обо всех разделах на всех устройствах в системе.

  • pci - Информация обо всех PCI устройствах в системе, включая AGP и встроенные устройства, подключенные к шине PCI.

  • swaps - Информация о всех смонтированных swap-разделах.

  • uptime - uptime системы -- время в секундах, прошедшее с момента последней перезагрузки.

  • version - Версия ядра, включая дату сборки и версию компилятора.

Список основных каталогов:

  • bus - Информация обо всех аппаратных шинах, таких как USB, PCI и ISA.

  • ide - Информация обо всех шинах IDE в системе и IDE-устройствах.

  • net - Некоторая базовая информация и статистика сетевой подсистемы.

  • scsi - Информация о SCSI шинах в системе и SCSI-устройствах.

  • sys - Набор переменных, которые могут быть изменены. Сюда входит раздел /proc/sys/net/ipv4, который будет обсуждаться ниже.

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

VPS в России, Европе и США

Бесплатная поддержка и администрирование

Оплата российскими и международными картами

🔥 VPS до 5.7 ГГц под любые задачи с AntiDDoS в 7 локациях

💸 Гифткод CITFORUM (250р на баланс) и попробуйте уже сейчас!

🛒 Скидка 15% на первый платеж (в течение 24ч)

Скидка до 20% на услуги дата-центра. Аренда серверной стойки. Colocation от 1U!

Миграция в облако #SotelCloud. Виртуальный сервер в облаке. Выбрать конфигурацию на сайте!

Виртуальная АТС для вашего бизнеса. Приветственные бонусы для новых клиентов!

Виртуальные VPS серверы в РФ и ЕС

Dedicated серверы в РФ и ЕС

По промокоду CITFORUM скидка 30% на заказ VPS\VDS

Новости мира IT:

Архив новостей

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 495 7861149
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2019 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...