Microsoft Research dio más noticias sobre el Proyecto Verona , ofreciendo algunos detalles más sobre el proyecto y sus ambiciones para construir sistemas más seguros a través de una mejor administración de memoria, compartimentación y «sandboxing generalizado». El proyecto Verona también está siendo ayudado por académicos en el Imperial College de Londres.
Microsoft ha dicho que está explorando la idea de reescribir sus productos en Rust. El interés de la compañía en el lenguaje centrado en la seguridad para combatir un problema constante. Específicamente, la compañía señala que más del 70% de todos los parches que envió en los últimos 10 años trataron errores de memoria. Rust fue desarrollado para hacer frente a estos problemas.
Matthew Parkinson, un investigador de Microsoft del Cambridge Computer Lab en el Reino Unido el año pasado, explicó la visión de la compañía para lidiar con problemas de memoria. Específicamente, la compañía está trabajando con MemGC (Memory Garbage Collector) en Edge e Internet Explorer.
El Proyecto Verona tiene como objetivo ayudar a proteger el código en lenguajes inseguros como C y C # que todavía existe en muchos de los códigos heredados de Microsoft, que Microsoft no puede desperdiciar pero le gustaría proteger mejor.
“Construimos un recolector de basura (GC) para el DOM. Ese gran bulto en el uso después de la liberación fue básicamente que las personas encontraban formas de explotar la administración de memoria en el motor DOM en IE «
dijo Parkinson.
Con el lanzamiento del Proyecto Verona en GitHub, Microsoft ha ampliado los detalles del lenguaje basado en Rust. Parkinson señala que el objetivo del proyecto es crear una plataforma más segura para la gestión de la memoria.
La compañía ha discutido previamente los posibles beneficios de seguridad de Rust pero no ha ampliado los detalles. A principios de este año, Microsoft señaló su interés en el lenguaje como una alternativa a C y C ++ para los desarrolladores de Windows.
En GitHub, el equipo de desarrollo dice que actualmente está trabajando para abordar las siguientes preguntas importantes
- Si diseñamos un lenguaje sin mutación concurrente, ¿podemos construir una administración de memoria escalable?
- ¿Se pueden usar regiones lineales para eliminar las restricciones de linealidad por objeto sin sacrificar la administración de memoria?
- ¿Se pueden usar regiones de nivel de idioma para admitir compartimentación?
Puedes visitar el proyecto en github aqui