/ / Модел на устройство за ядрото на Linux - Кои устройства го следват? - Linux, модел, ядро, устройство

Модел на устройство за ядрото на Linux - Кои устройства го следват? - Linux, модел, ядро, устройство

Моят въпрос е за модела на устройството на Linux. Направих някои копаене в изходния код и установих, че моделът на устройството работи около много структури, от които някои от тях са:

  1. struct устройство
  2. struct device_driver
  3. struct bus_type
  4. Има повече свързани с управлението на захранването.

Но когато погледнах в драйверите(или ако внедря моя собствен драйвер за принтер) linux ядрото изпълнява само "struct device" и всички други структури са просто NULL. Проверих това чрез известно отстраняване на грешки и с принтер API printk ().

Така че въпросът ми тогава е защо драйверите за шаблони не следят напълно модела на устройството?

Също така кои драйвери изцяло следят модела на устройството с Linux?

Отговори:

0 за отговор № 1

Linux Device Model използва Kobject като база, която действа като лепило, за да го държи заедно.

Структурите, които споменахте, идват на слой над комикса.

Така че, можем да кажем, че kobject е нещо, което вие (почти) никога няма да срещнете, но все още е вградено навсякъде.

И драйверите за шаблони не са извинение:

struct cdev {
struct kobject kobj;
struct module *owner;
const struct file_operations *ops;
struct list_head list;
dev_t dev;
unsigned int count;
};

Всички драйвери следят модела на устройството дори и без да го знаете, поради което и драйверите за шаблони не са изключение тук.

Вижте изпълнението на cdev_add() и ще получите отговора си.

Предлагам ви да минете през това статия и копаем отново вътре в LDM кода.