Программирование для Linux. Профессиональный подход.

7.4. Информация о ядре.

В файловой системе /proc есть много элементов, содержащих информацию о настройках и состоянии ядра. Некоторые из них находятся на верхнем уровне файловой системы, а некоторые скрыты в каталоге /рrос/sуs/кеrnеl.

7.4.1. Версия ядра.

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

% cat /proc/version.

Linux version 2.2.14-5.0 (root@porky.devel.redhat.com).

(gcc version egcs-2.91.66 19990314/Linux (egcs-1.1.2 release)).

#1 Tue Mar 7 21:07:39 EST 2000.

Здесь сказано, что в системе используется ядро Linux версии 2.2.14, которое было скомпилировано программой EGCS версии 1.1.2 (эта программа является предшественницей широко распространенного в настоящее время пакета GCC).

Для наиболее важных параметров, а именно названия операционной системы и номера версии/модификации ядра, созданы отдельные записи в файловой системе /proc. Это файлы /proc/sys/kernel/ostype, /proc/sys/kernel/osrelease и /proc/sys/kernel/version.

% cat /proc/sys/kernel/ostype Linux.

% cat /proc/sys/kernel/osrelease 2.2.14-5.0.

% cat /proc/sys/kernel/version #1 Tue Mar 7 21:07:39 EST 2000.

7.4.2. Имя компьютера и домена.

В файлах /proc/sys/kernel/hostname и /proc/sys/kernel/domainname содержатся имя компьютера и имя домена соответственно. Эту же информацию возвращает функция uname(), описанная в разделе 8.15, "Функция uname()".

7.4.3. Использование памяти.

Файл /proc/meminfo хранит сведения об использовании системной памяти. Указываются данные как о физической памяти, так и об области подкачки. Во второй и третьей строках значения даны в байтах, в остальных строках — в килобайтах. Приведем пример:

% cat /proc/meminfo.

        total:    used:     free:  shared:  buffers: cached:

Mem:  529694720 519610368 10084352 82612224 10977280 82108416.

Swap: 271392766 44003328  227389440.

MemTotal:  517280 kB.

MemFree:     9848 kB.

MemShared:  80676 kB.

Buffers:    10720 kB.

Cached:     80184 kB.

BigTotal:       0 kB.

BigFree:        0 kB.

SwapTotal: 265032 kB.

SwapFree:  222060 kB.

Как видите, в системе имеется 512 Мбайт ОЗУ, из которых 9 Мбайт свободно. Для области подкачки выделено 258 Мбайт, из которых свободно 216 Мбайт. В строке, соответствующей физической памяти, показаны три других значения.

■ В колонке "shared" отображается общий объем совместно используемой памяти, выделенной в системе.

■ В колонке "buffers" отображается объем памяти, выделенной для буферов блочных устройств. Эти буферы используются драйверами устройств для временного хранения считываемых и записываемых блоков данных.

■ В колонке "cached" отображается объем памяти, выделенной для страничного кэш-буфера. В этом буфере сохраняются страницы файлов, отображаемых в памяти.

Ту же самую информацию можно получить с помощью команды free.