No es tan conocido como Linux, pero FreeBSD tiene muchos fans incondicionales. En una amplia charla sobre licencias, arquitecturas que incluyen RISC-V y un modelo de desarrollo libre de un “dictador”, The Reg habló con los miembros del proyecto sobre nuevas funciones de lanzamiento y más.
FreeBSD 13.0 acaba de alcanzar la versión candidata 1 y está programada para salir a finales de marzo, con nuevas características clave que incluyen una cadena de herramientas LLVM completa, redes más rápidas y un sistema de archivos ZFS mejorado.
Los nuevos lanzamientos importantes se producen cada dos años aproximadamente: 12.0 se lanzó en diciembre de 2018 y 12.2 en octubre de 2020. Hablamos con el desarrollador del kernel John Baldwin y Ed Maste, quien es un responsable de FreeBSD y director de desarrollo de proyectos para la Fundación FreeBSD.
BSD son las siglas de Berkeley Software Distribution, una versión descontinuada de Unix que apareció por primera vez en 1977, siendo FreeBSD una versión de código abierto, lanzada originalmente a finales de 1993. A diferencia de Linux, no tiene licencia pública GNU (GPL), que es una licencia copyleft (lo que significa que insiste en que los trabajos derivados tienen la misma licencia), pero bajo la licencia BSD más relajada, aunque incluye algo de código GPL.
“Parte de la fuerza de FreeBSD, parte de lo que nos hace únicos, es nuestra licencia”, nos dijo Baldwin. “Mucha gente consume FreeBSD como un conjunto de herramientas para construir cosas, como dispositivos. Para muchos de esos proveedores, la licencia BSD es muy importante en comparación con la licencia GPL, particularmente GPLv3. Nunca importamos cadenas de herramientas v3 a nuestra cadena de herramientas nativa”.
Qué hay de nuevo
La cadena de herramientas actualizada en FreeBSD 13 fue lo primero que señalaron Baldwin y Maste cuando se trata de elementos nuevos en el lanzamiento. El gran problema es que un proyecto a largo plazo para migrar al compilador LLVM ya está completo, y LLVM tiene licencia de Apache 2.0, que es menos restrictiva que GPL.
“Nuestros esfuerzos en el trabajo de la cadena de herramientas comenzaron hace unos 10 años”, dijo Maste. “Hemos estado trabajando en la migración a Clang y la familia de componentes del proyecto LLVM. Importamos Clang al sistema base y lo migramos hace algún tiempo, pero para FreeBSD 13 hemos terminado ese largo proyecto. Tenemos a Clang como compilador, LLD como enlazador y la cadena de herramientas ELF como las diversas utilidades binarias.
“Algunas de las arquitecturas de nivel 2, como MIPS, todavía usaban un gcc [compilador C/C++] 4.2.1, que lleva años y años desactualizado”.
Las implicaciones de esta migración se extienden a todas las arquitecturas que admite FreeBSD, aunque la mayoría de las arquitecturas ya usaban LLVM. “Esta es la culminación de un proceso para llevarnos a una cadena de herramientas moderna que también tiene una licencia BSD completa o una licencia compatible”, dijo Baldwin.
“Para las arquitecturas que aún no usaban Clang, su código básico era bastante antiguo y no admitía los estándares modernos de C++, por lo que significaba que cuando escribíamos código para utilidades básicas teníamos que limitarnos al mínimo común denominador. No éramos libres utilizar, por ejemplo, las funciones de C++ 11. Ahora tenemos la libertad de hacerlo “.
“Los componentes antiguos introdujeron un impuesto o una penalización en todas las arquitecturas; limitaron lo que podíamos hacer en x86 o ARM porque teníamos que soportar el soporte para las otras arquitecturas”, dijo Maste.
LLVM también es popular en el mundo académico y de investigación. “Es mucho más fácil investigar con LLVM porque está diseñado para eso”, dijo Baldwin. Otro caso de uso es el de RISC-V, que parece ser una arquitectura futura clave para FreeBSD. “La única forma en que podíamos obtener un compilador para RISC-V era usar Clang. Eso funciona completamente en 13.”
Respecto al puerto RISC-V, Maste agregó: “Funciona. Todavía está en las primeras etapas de convertirlo en un entorno totalmente utilizable, pero el sistema base, el kernel, el espacio de usuario, todo está ahí y funciona”.
¿Qué más hay de nuevo en 13?
“Se ha trabajado mucho en el rendimiento de la red, algunas cosas como el trabajo financiado por la Fundación FreeBSD para mejorar el rendimiento de nuestra interfaz de puente virtual, para máquinas virtuales o algunas otras configuraciones. Tenemos una mejora de rendimiento cinco veces mayor.
“El cortafuegos PF (filtro de paquetes) recibió un montón de mejoras, financiadas por un ISP que usa FreeBSD. La capa de red virtual también tiene una nueva funcionalidad. Fue experimental durante mucho tiempo, pero ha estado disponible de forma predeterminada porque ha alcanzado una estabilidad y la finalización de funciones. Otro es el trabajo de TLS en el kernel “, dijo Maste.
TLS en el kernel? “Uno de los proyectos que propuso Netflix fue kernel TLS, por lo que puede permitir que el kernel administre la parte de cifrado de TLS, utilizando software o, en algunos casos, tenemos controladores para tarjetas NIC que pueden realizar el cifrado a medida que transmiten los paquetes. Mover eso al kernel puede brindarle un rendimiento y un rendimiento mucho mejores. Así es como Netflix puede enviar cien o más Gbps de tráfico TLS de un solo servidor “, dijo Baldwin.
Otra característica clave es el sistema de archivos OpenZFS. “FreeBSD ha incluido ZFS en el sistema base durante varios años. Pero ZFS, su desarrollo ha cambiado con el tiempo. La mente compartida de los desarrolladores se movió más hacia el árbol ZFS en Linux, que ahora se llama OpenZFS. En 13, la implementación de ZFS en FreeBSD ha cambiado a ser el nuevo árbol OpenZFS. Esto significa que tenemos algunas características que no estaban presentes en la última implementación. Ahora estamos conectados a la canalización ascendente correcta “, dijo Maste.
ZFS es el sistema de archivos predeterminado, como vimos cuando probamos el último RC.
En el lado del software, “Hemos puesto mucho esfuerzo en la capa de emulación de Linux que tenemos, el Linuxulator”, dijo Maste. “Una gran cantidad de binarios contemporáneos de Linux se ejecutarán en el kernel de FreeBSD ahora. La gente ha estado usando esto para ejecutar Linux Chrome, para Widevine DRM para ver contenido de Netflix o ejecutar algunos juegos de Steam”.
¿Cómo es el desempeño? “Para la gran mayoría de las aplicaciones Linux, la sobrecarga de rendimiento es efectivamente nula. O se ejecutarán igual de rápido o no se ejecutarán en absoluto”, nos dijo.
Seguridad
¿Está interesado el equipo de FreeBSD en utilizar lenguajes más seguros como Rust para mejorar la seguridad? Baldwin no vio esto como la ruta principal hacia una mayor seguridad de la memoria. “Una de las cosas en las que trabajo es un proyecto en Cambridge llamado CHERI (Capability Hardware Enhanced RISC Instructions) que nos permite introducir seguridad de memoria especial en el propio procesador, para que pueda tener una versión mucho más segura de C .
“Y eso se compondrá bien con lenguajes como Rust. Significa que podemos tomar la seguridad del lenguaje y aplicarlo más abajo en la pila de lo que podemos actualmente. Así que mi sesgo personal es que creo que CHERI será una mejor solución. FreeBSD está escrito en gran parte en C y pudimos ejecutar todo el sistema base en CHERI. Así que tenemos todo ese código C ejecutándose como una C. más segura. Creo que esa es la forma futura más probable de obtener sistemas seguros para la memoria “.
Desarrollo
¿En qué se diferencia el proceso de desarrollo de FreeBSD del de Linux? “Una gran diferencia es que no tenemos un gran dictador. Tenemos un grupo de personas que han construido una reputación basada en el trabajo que han hecho”, dijo Baldwin.
“Operamos principalmente en listas de correo de la misma manera que lo hace la lista de correo del kernel de Linux”, dijo Maste. “Una gran diferencia es que el sistema base de FreeBSD es un repositorio mono, el kernel y la biblioteca C y la cadena de herramientas, todas las utilidades del sistema base como ls y el shell están todas en un solo repositorio, construidas y publicadas juntas.
“Hay una gran cantidad de código aportado por terceros; la cadena de herramientas LLVM es una parte bastante grande de lo que constituye el sistema base de FreeBSD. Pero es bastante fácil para nosotros hacer un cambio de kernel y el soporte de la biblioteca C para eso en conjunto”.
Esto también significa que FreeBSD no depende de las distribuciones de la misma manera que Linux. “No necesitamos una distribución en el mundo FreeBSD y la visión de FreeBSD de las cosas. Es completamente posible tomar FreeBSD y ejecutarlo en su servidor o su computadora portátil como FreeBSD. Ese es el caso de la mayoría de los desarrolladores de FreeBSD. Mi La computadora portátil está ejecutando FreeBSD y no estoy usando una distribución de terceros “, dijo Maste.
A pesar de esto, existen distribuciones de FreeBSD, como el proyecto helloSystem , que proporciona una GUI similar a Mac. “Estamos felices de tener gente que tiene una opinión obstinada sobre las cosas para construir en FreeBSD”, dijo Maste. “helloSystem definitivamente atrajo mucho interés, en parte porque es particularmente obstinado, el desarrollador de helloSystem no está tratando de ser todo para todos. Ese es un excelente lugar para que exista una distribución en FreeBSD”. Añadió: “Hay otros como GhostBSD y NomadBSD que han estado adoptando ese enfoque durante bastante tiempo”.
¿Importa FreeBSD en el escritorio, o es inútil debido a la dificultad con los controladores para el hardware moderno, un área en la que incluso Linux tiene problemas a veces?
El escritorio es importante, dijo el equipo, en parte porque trae nuevos desarrolladores y la situación del controlador no es tan mala como parece. “Hemos desarrollado una forma de tomar controladores de Linux y recompilarlos de forma nativa bajo FreeBSD. Podemos rastrear muy de cerca y tener compatibilidad a la par con los núcleos de Linux modernos”, dijo Baldwin.
Maste agregó: “Los autores de los controladores apoyan específicamente ese caso de uso. Y la pila de gráficos en Linux tiene en su mayor parte doble licencia, por lo que los controladores de gráficos Intel, por ejemplo, están disponibles bajo su elección de licencia GPL o BSD. utilice exactamente el mismo código “.
“La situación de Wi-Fi no está en tan buena forma. Estamos buscando tanto mejoras en los controladores personalizados existentes como también tratando de usar el mismo modelo de uso de implementaciones de licencia dual en Linux y adaptarlas. En el transcurso de este año espero que estemos en la misma situación con wifi que con gráficos “, dijo Maste.
¿Cuál es el modelo de negocio subyacente a FreeBSD?
“El trabajo de desarrollo proviene de algunas fuentes diferentes. Hay mucho que proviene de compañías como Netflix, que tiene un equipo interno de expertos en FreeBSD que desarrollan funciones con trabajo que va directamente a FreeBSD upstream. Hay mucho trabajo que viene de fuentes académicas. Hay algunos trabajos que provienen de aficionados. Hay trabajos, cada vez más recientes, asumidos por la Fundación FreeBSD. La fundación es una organización benéfica registrada en los EE. UU. financiada por donaciones y tiene un presupuesto de un poco más de $ 1 millón por año . Recibimos donaciones de particulares y de empresas que utilizan FreeBSD “.
La base es significativa, dijo Baldwin, porque está aportando más equilibrio al desarrollo de FreeBSD. “El desarrollo Históricamente ha sido impulsado por las empresas que utilizan FreeBSD de alguna manera, si se trataba de Yahoo ! O Netflix o proveedores de almacenamiento construcción de aparatos. Ellos van a trabajar en las partes que funcionan bien para ellos. Hay algunas lagunas, que tal vez no sean de interés para los proveedores de dispositivos, pero siguen siendo importantes para mantener un ecosistema viable para los desarrolladores. Por lo tanto, cosas como el soporte mejorado para computadoras portátiles es uno de los enfoques de la fundación. Eso no es algo que le importe a Netflix, pero es importante que FreeBSD continúe siendo una experiencia útil para nuestros desarrolladores “.
¿Apple aporta algo?
“No son muy activos en contribuir al upstream de la misma manera que lo hace Netflix. Pero no los culpo por eso. Somos un proyecto con licencia BSD, no somos GPL. Kirk [McKusick, un colaborador clave desde el principio] describió la licencia BSD como centro de copia, que es hacer lo que quieras, no nos importa “, dijo Baldwin.
Maste agregó: “Apple contribuye mucho al proyecto LLVM que nos beneficia inmensamente. Apple hizo mucho trabajo en LLVM en plataformas ARM, eso fue importante para nosotros. Trabajé mucho con LLD y los ingenieros de Apple fueron muy comunicativos con revisiones de código y consejos sobre cómo integrar la compatibilidad con LLVM “. Lo mismo ocurre con Sony. “Sony trabajó mucho para hacer que LLD se convirtiera en un enlazador viable. No fue una contribución directa, pero realmente nos ayudó”, dijo Baldwin.
“En los últimos años hemos tenido un poco de autocontrol. Estábamos tratando de pivotar un poco, para estar un poco más enfocados en el futuro. Hemos eliminado muchos controladores antiguos, como las tarjetas ISA. 32 -bit x86, todavía está ahí, pero ya no es totalmente compatible de la misma manera que el de 64 bits. Lo estamos terminando con gracia. Esperamos un futuro dominado por x86 de 64 bits y Arm, y probablemente RISC- V.
“Es fenomenal para mí que el código que he escrito en los últimos 20 años se use en todo tipo de lugares en los que no hubiera pensado. La PS4 de mi hijo ejecuta mi código todo el tiempo. Eso es simplemente extraño. Eso es genial”. ®
Fuente: www.freebsd.org