Итак, давайте создадим структуру, которую я хочу прочитать из пространства уровня пользователя, которое определено в пространстве ядра, но пространство уровня пользователя имеет несколько процессов.
Пример:
В модуле ядра у меня есть глобальная структура.
struct {
int a;
int b;
} test;
В модуле пользовательского уровня я "извлек" эту глобальную структуру
extern struct {
int a;
int b;
} test;
Компилятор не жалуется, и редактор ссылок не жалуется. Однако, если у пользователя несколько процессов, то клонируется ли эта структура для каждого процесса? Если я использую разделяемую память вместе с extern, то я могу получить доступ к структуре ядра, и если у меня есть n процессов, то существует только 1 структура с момента ее общего доступа. Я могу получить доступ к переменной уровня ядра с помощью 1 процесса на уровне пользователя, но если у меня будет больше процессов, я получу клоны для каждой структуры, которая "externed"
Мой вопрос таков: могут ли процессы на уровне пользователя читать переменную уровня ядра?