Чтение онлайн

ЖАНРЫ

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

Самьюэл Алекс

Шрифт:

Большая часть информации, содержащейся в файле

/proc/cpuinfo
, извлекается с помощью ассемблерной инструкции
cpuid
процессоров семейства x86. С помощью этой низкоуровневой инструкции программы могут получать сведения о центральном процессоре. Подробнее узнать об этой инструкции можно в руководстве IA-32 Intel Architecture Software Developer's Manual, Volume 2: Instruction Set Reference, доступном по адресу
http://developer.intel.com/design
.

Последний элемент файла,

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

7.3.2. Аппаратные устройства

В файле

/proc/devices
содержится список старших номеров символьных и блочных устройств, имеющихся в системе. Подробнее об этом рассказывалось в главе 6. "Устройства".

7.3.3. Шина PCI

В файле

/proc/pci
перечислены устройства, подключенные к шине (или шинам) PCI. Сюда входят реальные PCI-платы, а также устройства, встроенные в материнскую плату, плюс графические платы AGP. В каждой строке указан тип устройства, идентификатор устройства и его поставщика, имя устройства (если есть), информация о функциональных возможностях устройства и сведения о ресурсах PCI-шины, используемых устройством

7.3.4. Последовательные порты

Файл

/proc/tty/driver/serial
содержит конфигурационную и статистическую информацию о последовательных портах. Эти порты нумеруются начиная с нуля. [24] Работать с настройками порта позволяет также команда
setserial
, но файл
/proc/tty/driver/serial
, помимо всего прочего, включает дополнительные статистические данные о счетчиках прерываний каждого порта.

Например, следующая строка описывает последовательный порт 1 (COM2 в Windows):

24

В DOS и Windows нумерация последовательных портов начинается с единицы, поэтому порту COM1 соответствует последовательный порт с номером 0 в Linux.

1: uart:16550А port:2F8 irq:3 baud:9600 tx:11 rx:0

Здесь говорится о том, что последовательный порт оснащен микросхемой UART 16550А, использует порт ввода-вывода 0x218 и прерывание 3 и работает со скоростью 9600 бод. Через этот порт было передано 11 запросов на прерывание и получено 0 таких запросов.

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

В файловой системе

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

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
.

Поделиться с друзьями: