Estoy evaluando diferentes posibilidades para una VM personalizada, y dejé LLVM de otra pregunta. Dado que todavía estoy trabajando en la evaluación de las máquinas virtuales de lenguaje incrustado, no puedo probar/verificar esto por ahora. Me gustaría saber la siguiente información sobre LLVM/CLANG:¿Cuál es el tamaño de un programa que usa LLVM/CLANG para una máquina virtual personalizada de códigos de bytes?
- ¿Es compatible con Windows? ¿O Solaris? (multiplataforma es una ventaja para mí)
- Si quiero escribir mi máquina virtual personalizada/personalizada con un lenguaje tipo C, ¿qué debería incluir en el proyecto? (Secciones o componentes de LLVM/CLANG, etc.)
- Mantendría el compilador separado de la máquina virtual por razones obvias (sin escribir un intérprete). ¿Cuál sería el tamaño de los componentes requeridos? ¿Podría construirlos 'en' el programa en lugar de vincularlos dinámicamente a ellos?
- ¿Puedo evitar JIT? Me gustaría tener una máquina virtual de bytecode que no se traduzca necesariamente en código nativo. Esto ayudaría cuando no se admite JIT en la plataforma (por ejemplo, sistemas con permisos de memoria restrictivos que no permiten mapeos de memoria wx/rwx).
Sé que el antivirus clamav, por ejemplo, utiliza bytecode respaldado por LLVM/clang para admitir firmas dinámicas/en tiempo de ejecución. Sin embargo, no sé si hay una instalación existente para implementar esto y/o tutoriales o documentación que lo guíe a través del proceso de implementación de tal cosa.
Gracias! :)
¡Gracias, no respondí antes que hoy ...! – soze