Выполните программу в пространстве ядра в Linux

Если я хочу выполнить пользовательскую программу (не модуль ядра) в пространстве ядра Linux, какие опции я имею?

Я посмотрел на KML (привилегированный режим Linux), но это характерно для архитектуры IA-32. Я хочу решение, которое является кросс-платформенным и может работать над встроенными системами Linux.

6
задан binW 20 July 2010 в 13:36
поделиться

5 ответов

Пользовательские программы не выполняются в пространстве ядра - именно это делает их пользовательскими программами.

Если вы хотите выполнить код в пространстве ядра, у вас есть два варианта: встроить его в ядро или загрузить с помощью модуля ядра.

5
ответ дан 8 December 2019 в 12:57
поделиться

В другом вопросе вы написали, что являетесь новичком в программировании ядра. Использование KML весьма нетрадиционно, и будет намного сложнее, чем выполнение стандартных действий. Это сделает ваше обучение намного сложнее. Я бы предположил, что лучшим вариантом для вас будет переоценка причин, по которым вы хотите запускать приложения пользовательского пространства в пространстве ядра, и поиск способа не делать этого.

Возможно, для этого есть веская причина, но мне неясно, что это может быть за причина. Одна вещь, которую вы должны понять при разработке ядра, заключается в том, что если что-то возможно, это не обязательно то, что должно быть сделано.

Если вы действительно хотите получить кроссплатформенное решение, вам придется написать его самостоятельно. Единственные архитектуры, поддерживаемые KML, это IA32 и AMD64.

4
ответ дан 8 December 2019 в 12:57
поделиться

Программирование ядра практически по определению зависит от платформы, поскольку ядра для разных платформ все разные.

3
ответ дан 8 December 2019 в 12:57
поделиться

Взгляните на FemtoLinux . По сути, это KML для встроенных систем и встроенных процессоров, таких как ARM и MIPS

3
ответ дан 8 December 2019 в 12:57
поделиться

call_usrmodehelper

3
ответ дан 8 December 2019 в 12:57
поделиться
Другие вопросы по тегам:

Похожие вопросы: