Предложенный способ является односторонним, но, поскольку пользовательское пространство не находится под вашим контролем (имеется в виду, что любая пользовательская программа имеет возможность тыкать в ядро), вы открываете возможности для злонамеренной атаки из пользовательского пространства.Это основанное на ядре разделение памяти с пользовательским пространством также описано здесь:
http://www.scs.ch/~frey/linux/memorymap.html
Вместо этого, как насчет выделения памяти в пространстве пользователя, а затем из ядра используйте API copy_from_user ()и copy_to_user () для копирования в / из памяти пространства пользователя?Если вы хотите разделить память между различными процессами, тогда вы всегда можете использовать API, связанный с IPC, для выделения и определения памяти, например, shmget () и т. Д. И в этом случае в самом исходном коде ядра много примеров кода.
напр.
fs / checkum.c: missing = __copy_from_user (dst, src, len);