Repolode
pizlonator

pizlonator/fil-c

Una implementación de C y C++ segura para la memoria que compila código existente con pocos cambios o ninguno y convierte los errores de memoria en pánicos.

Estrellas
3,902
Forks
94
Issues abiertos
79
Último commit
hace 18 horas

¿Qué es?

Fil-C es una implementación de C y C++ segura para la memoria, basada en clang 20.1.8 y compatible con C17 y C++20. La mayoría del software destinado a C o C++ se puede compilar sin cambios o con cambios mínimos, y las infracciones de seguridad de memoria, como el acceso fuera de los límites, el uso después de liberar memoria y la confusión de tipos, se detectan como pánicos de Fil-C en lugar de corromper la memoria silenciosamente.

Fil-C combina la recolección de basura concurrente con capacidades invisibles: cada puntero tiene una capacidad correspondiente, que no es visible para el espacio de direcciones de C y registra a qué memoria puede acceder y cómo. Cada operación fundamental de C se comprueba contra esa capacidad. A diferencia de las herramientas basadas en etiquetas, como AddressSanitizer, el diseño busca impedir que se exploten los errores, no solo señalarlos. El lenguaje no tiene una vía de escape `unsafe` y restringe la vinculación con código inseguro.

Fil-C se ejecuta de forma nativa en Linux x86_64 y ARM64. El proyecto incluye compilaciones basadas en musl y glibc, una variante Peregrine que genera binarios APE para Linux, Darwin y Windows en x86_64, y Pizlix, un entorno de usuario de Linux seguro para la memoria. Según se informa, funcionan paquetes como OpenSSL, CPython y SQLite.

Funciones clave

  • 01Compila la mayoría del código C y C++ sin cambios o con cambios mínimos.
  • 02Detecta como pánicos los errores de acceso fuera de los límites, uso después de liberar memoria y confusión de tipos.
  • 03Usa comprobaciones basadas en capacidades en lugar de detección basada en etiquetas.
  • 04Ofrece una libc de estilo POSIX con hilos, señales, mmap, setjmp/longjmp y excepciones de C++.
  • 05Se ejecuta en Linux x86_64 y ARM64, con una variante Peregrine para varias plataformas.

Casos de uso

  • Reforzar programas existentes en C o C++ frente a exploits de seguridad de memoria.
  • Encontrar errores de memoria en código C/C++ con un entorno de ejecución que se detiene en la operación defectuosa.
  • Crear un entorno de usuario de Linux seguro para la memoria a partir de software C adaptado.

Inicio rápido

  1. 1

    Descarga una distribución binaria desde la página de releases (p. ej., filc-0.687-linux-x86_64.tar.xz).

  2. 2

    Ejecuta el script de configuración de la distribución extraída.

    ./setup.sh

Antes de usarlo

  • La compatibilidad nativa se limita a Linux en X86_64 o ARM64. Para otras plataformas se necesita la compilación experimental de Peregrine, que requiere un host Linux/x86_64 para compilar.
  • El proyecto se basa en una versión parcheada de clang y tiene un runtime propio, por lo que requiere una cadena de herramientas considerable para compilarlo desde el código fuente.
  • No tiene una única licencia estándar: depende del componente (LLVM, PAS, musl, cosmo, glibc y otros), así que revisa las condiciones antes de usarlo.

En colecciones

Temas

Preguntas frecuentes

¿Qué es fil-c?
Una implementación de C y C++ segura para la memoria que compila código existente con pocos cambios o ninguno y convierte los errores de memoria en pánicos. Fil-C es una implementación de C y C++ segura para la memoria, basada en clang 20.1.8 y compatible con C17 y C++20. La mayoría del software destinado a C o C++ se puede compilar sin cambios o con cambios mínimos, y las infracciones de seguridad de memoria, como el acceso fuera de los límites, el uso después de liberar memoria y la confusión de tipos, se detectan como pánicos de Fil-C en lugar de corromper la memoria silenciosamente.
¿fil-c es gratuito? ¿Qué licencia tiene?
fil-c es open source bajo la licencia Other. Revisa los términos de la licencia antes de usarlo en productos comerciales.
¿fil-c sigue mantenido?
Mantenimiento activo. El último commit de fil-c fue el 6 nov 2026.
¿Para qué puedo usar fil-c?
Reforzar programas existentes en C o C++ frente a exploits de seguridad de memoria. Encontrar errores de memoria en código C/C++ con un entorno de ejecución que se detiene en la operación defectuosa. Crear un entorno de usuario de Linux seguro para la memoria a partir de software C adaptado.
¿Cómo se instala fil-c?
Descarga una distribución binaria desde la página de releases (p. ej., filc-0.687-linux-x86_64.tar.xz). Ejecuta el script de configuración de la distribución extraída.: ./setup.sh
¿Dónde consigo fil-c?
El código fuente y las instrucciones de instalación están en GitHub: https://github.com/pizlonator/fil-c

Resumen generado por IA a partir del README del proyecto. Las estadísticas de GitHub se actualizan a diario.

Proyectos relacionados