Давайте предположим, что на данный момент у меня есть программное обеспечение, работающее на операционной системе ядра Linux (Ubuntu) и считывающее состояние устройства NIC (поэтому, в основном, считывает содержимое регистров NIC). Текущий сервер использует архитектуру процессора Intel x86 и модель NIC Realtek RTL8169.
Я хочу использовать одно и то же программное обеспечение на другом ядре Linux (CentOS 7) с архитектурой процессора ARMv8 (не архитектуры x86) и картой NIC Mellanox.
Итак, мне было интересно, потому что я мало знаю об аппаратной архитектуре и о том, как NIC взаимодействует с ОС и процессором для обработки кадров, и какова связь между ними,
Какие изменения мне нужно внести в исходный код программного обеспечения, чтобы можно было снова прочитать состояние устройства моей сетевой карты?
В общем, я не спрашиваю конкретно, какие части определяют основную функцию между NIC во взаимосвязи с разными архитектурами ЦП и разными типами ОС?
Например: Первый шаг - прочитать таблицу данных NIC и посмотреть, какие регистры используются. Во-вторых, возможно, процессор ARM использует MMIO, а не PIO для данных. Я прошу что-то в этом роде, если есть какие-то другие важные различия, которые мне нужно отрегулировать, если речь идет о системе ОС и процессоре? Драйверы устройств используют разные типы регистров, когда работают под разными ядрами? и два разных типа архитектуры ЦП, какие их части могут отличаться между такой связью (связь NIC - ЦП)?
Большое спасибо за вашу помощь.