что означает содержание / proc / ioports - PullRequest
5 голосов
/ 15 октября 2011

Я получил странный текст, 'перехватив' файл / proc / ioports моего ПК с Linux,

0000-001f : dma1
0020-003f : pic1
0040-005f : timer
0060-006f : keyboard
0070-007f : rtc0
...

Что я не понимаю, так это переднюю часть каждой записи, посмотрите на первую запись дляНапример, означает ли это 31 (0x1f в шестнадцатеричном формате) порты, занятые dma1?Если это правда, я не могу себе представить, сколько портов на процессоре x86, так как я знаю, что на 8-битном MCU есть только несколько 8-битных портов.

Может кто-нибудь подробно описать значение числа и портов io процессора x86

Ответы [ 2 ]

5 голосов
/ 17 октября 2011

Это список областей портов ввода / вывода, которые были заявлены драйверами ядра с помощью функции ядра request_region.Таким образом, это не полный список доступных портов ввода-вывода или устройств, а только те, которые были заявлены различными драйверами ядра.Механизм request_region позволяет ядру запретить нескольким драйверам общаться с одним и тем же устройством.

1 голос
/ 15 октября 2011

/ proc / ioports перечисляет диапазоны и имена ioports, предоставляемых драйверами устройств в ядре Linux портов диапазонов портов, заявленных и обработанных указанными драйверами.

Например, io-порты 0070 - 007f запрашиваются драйвером ядра RTC Linux.

Можно предположить, что указанные диапазоны портов, заявленные драйвером, соответствуют соответствующим диапазонам портов, предлагаемым соответствующим оборудованием, но вы должны заметить, что на самом деле не существует механизма, который бы гарантировал, что они действительно есть.

...