Здравствуйте, FR, Вы писали:
FR>Вот зависимости да придется как-то разруливать в динамике.
Само собой, зависимости будут, так что все сложнее.
FR>Проще по моему не использовать отдельные функции, а грузить готовые пакеты/модули/плагины тот же FR>Native Client всю необходимую инфраструктуру представляет.
При передаче готовых пакетов выходит потенциально охрененно огромная дыра — возможность передать левый пакет и выполнить его в ядре. Т.е. все же я хотел бы решить задачу именно в рамках виртуальной машины.
Здравствуйте, kaa.python, Вы писали:
FR>>Вот зависимости да придется как-то разруливать в динамике.
KP>Само собой, зависимости будут, так что все сложнее.
В низкоуровневых VM это тоже придется разруливать.
KP>При передаче готовых пакетов выходит потенциально охрененно огромная дыра — возможность передать левый пакет и выполнить его в ядре. Т.е. все же я хотел бы решить задачу именно в рамках виртуальной машины.
Так песочница и валидация, смотри тот же Native Client
Здравствуйте, kaa.python, Вы писали:
D>>Lua?
KP>Хотелось бы именно виртуальную машину, а не интерпретатор.
не так давно на этом форуме (рсдн) обсуждали луа\яваскрипт в эпическом треде, рекомендую еще разок просмотреть
в частности, если не ошибаюсь, там приводились положительные качества луа: маленький размер, возможность кастрировать\допиливать, голый си и тд
там внутри есть виртуальная машина, ее можно попытаться вытащить\заюзать
вики: http://en.wikipedia.org/wiki/Lua_(programming_language)
зы. сам с луа не работал =\
Здравствуйте, kaa.python, Вы писали:
KP>Здравствуйте, Alexéy Sudachén, Вы писали:
AS>>Пока не до читал до драйвера почему-то подумал что тебе нужно что-то типа qemu )))). Но таки, почему бы и не заюзать что нить типа MIPS симулятора? Их много, твоим требованиям такой финт ушами вроде отвечает. Да и код для VM можно компилировать штатным компилятором.
KP>Да мне нужно что-то совсем мелкое и легкое. Задача довольно проста — есть код обрабатывающий определенные события написанный на специальном языке. Надо это дело оттранслировать в промежуточную форму (интерпретировать в ядре, все же, более опасно) и выполнить это дело.
Вообще, конечно, так делать не стоит.
Нужен отдельный процесс в юзер-спэйсе который когда нужно обращается к драйверу для выполнение специфичных заранее определенных функций.
Простейшая стековая VM с возможностью определенния пользовательских инструкций (при компиляции, понятно) пишется за неделю (недавно такое делал).
Далее нужен протокол обращения к драйверу, системный сервис/демон.
Я бы таким путем пошел.
Здравствуйте, sts, Вы писали:
sts>Вообще, конечно, так делать не стоит.
К сожалению, иногда это единственный приемлемый по скорости работы вариант.
sts>Нужен отдельный процесс в юзер-спэйсе который когда нужно обращается к драйверу для выполнение специфичных заранее определенных функций.
Да, но это сильно зависит от частоты необходимых обращений. Ну и ряда других специфичных моментов.
Здравствуйте, kaa.python, Вы писали:
KP>Да, но это сильно зависит от частоты необходимых обращений. Ну и ряда других специфичных моментов.
Ну тогда может посмотреть на "компиляцию и валидацию" ?, шустрая, мелкая и вылизанная до работы в режиме ядра ВМ звучит довольно фантастично.
Здравствуйте, denisko, Вы писали:
D>Ну тогда может посмотреть на "компиляцию и валидацию" ?, шустрая, мелкая и вылизанная до работы в режиме ядра ВМ звучит довольно фантастично.
Ну почему-же? Машина из DTrace умещается в паре тройки сишных файлов, делает почти все, что мне нужно и при этом очень простая внутри. Собственно я к своей изначальной идее взять машину из DTrace и допилить и вернулся.