7.3.1. Центральный процессор
Как уже говорилось, файл /proc/cpuinfo
содержит информацию о центральном процессоре (или процессорах, если их больше одного). В поле "processor" перечислены номера процессоров. В случае однопроцессорной системы там будет стоять 0. Благодаря полям "vendor_id", "cpu family", "model" и "stepping" можно точно узнать модель и модификацию процессора. В поле "flags" показано, какие флат процессора установлены. Это самая важная информация. Она определяет, какие функции процессора доступны. Например, флаг "mmx" говорит о том, что поддерживаются расширенные инструкции MMX. [23] В главе 9, "Встроенный ассемблерный код", рассказывается о том, как задействовать ассемблерные инструкции в 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. "Устройства".
В файле /proc/pci
перечислены устройства, подключенные к шине (или шинам) PCI. Сюда входят реальные PCI-платы, а также устройства, встроенные в материнскую плату, плюс графические платы AGP. В каждой строке указан тип устройства, идентификатор устройства и его поставщика, имя устройства (если есть), информация о функциональных возможностях устройства и сведения о ресурсах PCI-шины, используемых устройством
7.3.4. Последовательные порты
Файл /proc/tty/driver/serial
содержит конфигурационную и статистическую информацию о последовательных портах. Эти порты нумеруются начиная с нуля. [24] В DOS и Windows нумерация последовательных портов начинается с единицы, поэтому порту COM1 соответствует последовательный порт с номером 0 в Linux.
Работать с настройками порта позволяет также команда setserial
, но файл /proc/tty/driver/serial
, помимо всего прочего, включает дополнительные статистические данные о счетчиках прерываний каждого порта.
Например, следующая строка описывает последовательный порт 1 (COM2 в Windows):
1: uart:16550А port:2F8 irq:3 baud:9600 tx:11 rx:0
Здесь говорится о том, что последовательный порт оснащен микросхемой UART 16550А, использует порт ввода-вывода 0x218 и прерывание 3 и работает со скоростью 9600 бод. Через этот порт было передано 11 запросов на прерывание и получено 0 таких запросов.
В файловой системе /proc
есть много элементов, содержащих информацию о настройках и состоянии ядра. Некоторые из них находятся на верхнем уровне файловой системы, а некоторые скрыты в каталоге /proс/sys/kernel
.
В файле /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()".
Читать дальше