The website "dmilvdv.narod.ru." is not registered with uCoz.
If you are absolutely sure your website must be here,
please contact our Support Team.
If you were searching for something on the Internet and ended up here, try again:

About uCoz web-service

Community

Legal information

Глава 11, Типы данных в ядре

Глава 11, Типы данных в ядре

Предыдущая  Содержание  Следующая V*D*V

Глава 11

 

Прежде чем перейти к более сложным темам, мы должны остановиться для быстрых замечаний о вопросах переносимости. Современные версии ядра Linux весьма переносимы, работают на большой числе различных архитектур. Учитывая мультиплатформенный характер Linux, драйверы, предназначенные для серьёзного использования также должны быть переносимыми.

 

Но основными проблемами с кодом ядра являются возможность доступа к объектам данных известной длина (например, структуры данных файловой системы или регистры на плате устройства) и эксплуатация возможностей разных процессоров (32-х разрядных и 64-х разрядной архитектур и, возможно, также 16-ти разрядных).

 

Некоторые из проблем, с которыми столкнулись разработчики ядра при переносе кода x86 на новые архитектуры, были связаны с неправильной типизацией данных. Соблюдением строгой типизации данных и компиляцией с флагами -Wall -Wstrict-prototypes можно предотвратить большинство ошибок.

 

Типы данных, используемые данными ядра, разделены на три основных класса: стандартные типы Си, такие как int, типы с явным размером, такие как u32 и типы, используемые для определённых объектов ядра, такие как pid_t. Мы собираемся показать когда и каким образом должен быть использован каждый из трёх типовых классов. В заключительных разделах главы говорится о некоторых других типичных проблемах, с которыми можно столкнуться при переносе кода драйвера с x86 на другие платформы и представляется обобщённая поддержка связных списков, экспортируемых соответствующими заголовками ядра.

 

Если вы будете следовать предлагаем принципам, ваш драйвер должен компилироваться и работать даже на платформах, на которых вы не сможете его протестировать.

Предыдущая  Содержание  Следующая