Страница 1 из 1

Регулярные выражения в kernel space

Добавлено: 19 мар 2015, 08:56
AlekseyMelikov
Для реализации задачи требуется применение регулярных выражений в пространстве ядра. Гуглю, ничего подобного не вижу. Подскажите есть ли готовые библиотеки (модули) такого рода?

Re: Регулярные выражения в kernel space

Добавлено: 19 мар 2015, 09:56
Olej
aleksey.melikov писал(а):Для реализации задачи требуется применение регулярных выражений в пространстве ядра. Гуглю, ничего подобного не вижу. Подскажите есть ли готовые библиотеки (модули) такого рода?
1. В пространстве ядра не могут быть использованы никакие "библиотеки" - только то, что непосредственно вкомпилировано в ядро.

2. Это, ожидаемо, могли бы быть имена вида *reg* ... но таких нет:

Код: Выделить всё

[Olej@modules ~]$ cat /boot/config-3.18.9-100.fc20.x86_64 | grep *reg*
[Olej@modules ~]$
3. Мне, например, совершенно трудно понять зачем могли бы понадобится парсеры (я так понимаю?) регулярных выражений в коде ядра...
Но если уж сильно хочется, то можете взять исходный C код из любой библиотеки парсера + скомпилировать его в модуль ядра.

Re: Регулярные выражения в kernel space

Добавлено: 19 мар 2015, 11:19
Olej
Olej писал(а): 3. Мне, например, совершенно трудно понять зачем могли бы понадобится парсеры (я так понимаю?) регулярных выражений в коде ядра...
Мало того, что сомнительна применимость регулярных выражений в ядре, но тут есть ещё одна тонкость...
Реализация парсера регулярных выражений в общем виде (без больших ограничений на вид выражений) требует рекурсии с возвратами.
А в ядре, с его ограниченным и не подлежащим изменению размера стеком, рекурсия (в зависимости от входных данных) может неожиданно закончиться крахом ядра. :-?