A décima versión de parches para o núcleo de Linux con soporte para a linguaxe Rust

Miguel Ojeda, o autor do proxecto Rust-for-Linux, propuxo o lanzamento de compoñentes v10 para o desenvolvemento de controladores de dispositivos na linguaxe Rust para a súa consideración polos desenvolvedores do núcleo de Linux. Esta é a undécima edición dos parches, tendo en conta a primeira versión, publicada sen número de versión. A inclusión do soporte Rust foi aprobada por Linusum Torvalds para a súa inclusión no núcleo Linux 6.1, salvo problemas imprevistos. O desenvolvemento está financiado por Google e o ISRG (Internet Security Research Group), que é o fundador do proxecto Let's Encrypt e promove o HTTPS e o desenvolvemento de tecnoloxías para mellorar a seguridade en Internet.

Do mesmo xeito que a versión anterior dos parches, a versión v10 está reducida ao mínimo, suficiente para construír un módulo do núcleo sinxelo escrito na linguaxe Rust. As diferenzas coa versión anterior redúcense a modificacións menores, substituíndo sizeof por ARRAY_SIZE en kallsyms.c e adaptando parches ao núcleo v6.0-rc7. Espérase que o parche mínimo, cuxo tamaño foi reducido de 40 a 13 mil liñas de código, simplifique a adopción do soporte de Rust no núcleo principal. Despois de proporcionar un soporte mínimo, está previsto aumentar gradualmente a funcionalidade existente, trasladando outros cambios da rama Rust-for-Linux.

Os cambios propostos permiten utilizar Rust como segunda linguaxe para desenvolver controladores e módulos do núcleo. O soporte de Rust preséntase como unha opción que non está activada por defecto e non fai que Rust se inclúa como unha dependencia de compilación necesaria para o núcleo. Usar Rust para o desenvolvemento de controladores permitirache crear controladores máis seguros e mellores cun mínimo esforzo, libre de problemas como o acceso á memoria despois da liberación, desreferencias de punteiro nulo e desbordamentos do búfer.

O manexo seguro para a memoria ofrécese en Rust no momento da compilación mediante a comprobación de referencias, o seguimento da propiedade do obxecto e a súa vida útil (alcance), así como a través da avaliación da corrección do acceso á memoria durante a execución do código. Rust tamén ofrece protección contra desbordamentos de enteiros, require a inicialización obrigatoria dos valores variables antes do seu uso, manexa mellor os erros na biblioteca estándar, aplica o concepto de referencias e variables inmutables por defecto, ofrece unha forte escritura estática para minimizar os erros lóxicos.

Fonte: opennet.ru

Engadir un comentario