Рівень подій ядра

(kernel event layer) – це підсистема, яка дозволяє передавати інформацію про різні події з ядра в простір користувача і реалізована, як ви вже, напевно, здогадуєтеся, на базі обєктів kobject Після випуску ядра версії 260 стало ясно, що необхідний механізм для відправлення повідомлень з ядра в простір користувача, зокрема для настільних робочих компютерів, що дозволить зробити […]

Файлова система sysfs

– це віртуальна файлова система, яка існує тільки в оперативній памяті і дозволяє переглядати ієрархію обєктів kobject Вона дозволяє пользопателям переглядати топологію пристроїв операційної системи у вигляді простої файлової системи Атрибути обєктів kobjec t можуть експортуватися у вигляді файлів, які дозволяють зчитувати значення змінних ядра, а також опціонально записувати їх

Об’єкти kobjec t

Серцем моделі представлення пристроїв є обєкти kobject, які представляються за допомогою структури struc t kobject, визначеної у файлі Тип kobjec t аналогічний класу Objec t таких обєктно-орієнтованих мов програмування, як С # і Java Цей тип визначає загальну функціональність, таку як лічильник посилань, імя, покажчик на батьківський обєкт, що дозволяє створювати обєктну ієрархію

Управління та маніпуляції з об’єктами kobjec t

Тепер, коли у нас вже є уявлення про внутрішній устрій обєктів kobjec t і повязаних з ними структурах даних, саме час розглянути експортовані інтерфейси, які дають можливість керувати обєктами kobjec t і виконувати з ними інші маніпуляції В основному, розробникам драйверів безпосередньо не доводиться мати справу з обєктами kobject Структури kobjec t вбудовуються в деякі […]

Лічильники посилань

Одне з головних властивостей, яке реалізується за допомогою обєктів kobject, – це уніфікована система підтримки лічильників посилань Після ініціалізації кількість посилань на обєкт встановлюється рівним одиниці Поки значення лічильника посилань на обєкт не дорівнює нулю, обєкт існує в памяті, і кажуть, що він захоплений (pinned,буквально, пришпилити) Будь-який код, який працює з обєктом, спочатку повинен збільшити […]

Типи ktyp e

Обєкти kobjec t можуть бути повязані з певним типом, який називається ktype Типи ktype представляються за допомогою структури struc t kobj_type, визначеної у файлі наступним чином struct kobj_type { void (*release)(struct kobject *) struct sysfs_ops       *sysfs_ops struct attribute       **default_attrs

Плутанина зі структурами

Ті кілька структур, які щойно були описані, призводять до плутанини не тому, що їх багато (тільки чотири) або вони складні (всі вони досить прості), а тому що вони сильно один з одним переплітаються При використанні обєктів kobjec t досить складно розповісти про одну структурі, не згадуючи інші Проте, на підставі розглянутих особливостей цих структур можна […]

Множини об’єктів kse t

Безлічі kse t являють собою колекції обєктів kobject Безліч kse t працює як базовий контейнерний клас для обєктів, наприклад, все блокові пристрої. Безлічі kse t дуже схожі на типи ktype, і виникає питання: Для чого потрібні два різних узагальнення” Безліч kse t обєднує декілька обєктів kobject, а типи ktype визначають загальні властивості, які повязані з […]