Страница 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. Мне, например, совершенно трудно понять зачем могли бы понадобится парсеры (я так понимаю?) регулярных выражений в коде ядра...
Мало того, что сомнительна применимость регулярных выражений в ядре, но тут есть ещё одна тонкость...
Реализация парсера регулярных выражений
в общем виде (без больших ограничений на вид выражений) требует рекурсии с возвратами.
А в ядре, с его ограниченным и не подлежащим изменению размера стеком, рекурсия (в зависимости от входных данных) может неожиданно закончиться крахом ядра.