Después de un año y medio de desarrollo, se ha publicado la cuarta versión beta del sistema operativo Haiku R1. Inicialmente, el proyecto fue creado como respuesta al cierre del sistema operativo BeOS y se desarrolló bajo el nombre OpenBeOS, pero fue rebautizado en 2004 debido a reclamaciones relacionadas con el uso de la marca BeOS en su nombre. Se han preparado varias imágenes de arranque Live (x86, x86-64) para evaluar el funcionamiento de esta nueva versión. La mayoría del código fuente del sistema operativo Haiku se distribuye bajo la licencia MIT, excepto algunas bibliotecas, códecs multimedia y componentes tomados de otros proyectos.
El sistema operativo Haiku está orientado a computadoras personales, utiliza su propio núcleo, construido sobre una arquitectura modular, optimizado para una alta capacidad de respuesta a las acciones del usuario y la ejecución eficiente de aplicaciones multiproceso. Se presenta una API orientada a objetos para desarrolladores. El sistema se basa directamente en las tecnologías de BeOS 5 y está diseñado para la compatibilidad binaria con aplicaciones para este sistema. Requisitos mínimos de hardware: CPU Pentium II y 384 MB de RAM (se recomienda Intel Core i3 y 2 GB de RAM).
Se utiliza OpenBFS como sistema de archivos, que soporta atributos extendidos de archivos, registro, punteros de 64 bits, y almacenamiento de metadatos (para cada archivo se pueden guardar atributos en forma de clave=valor, lo que hace que el sistema de archivos sea similar a una base de datos) y índices especiales para acelerar las consultas. Se utilizan árboles "B+ tree" para organizar la estructura de directorios. Del código de BeOS, se incluye en Haiku el gestor de archivos Tracker y la barra de tareas Deskbar, cuyos códigos fuente fueron liberados después de la desaparición de BeOS.
Novedades principales:
- Se ha mejorado el funcionamiento en pantallas de alta densidad de píxeles (HiDPI). Ahora se ha implementado un escalado correcto de la interfaz que no se limita al cambio de tamaño de fuentes. Al iniciar Haiku por primera vez, ahora intenta detectar automáticamente la presencia de una pantalla HiDPI y seleccionar los tamaños necesarios para el escalado. Los parámetros seleccionados pueden ser cambiados en la configuración, pero aún se requiere reiniciar para aplicarlos. Los parámetros de escalado son compatibles con la mayoría de las aplicaciones nativas y algunas portadas, pero no con todas.
- Se ha proporcionado la opción de usar una apariencia con decorador de ventanas plano y un diseño plano de botones, en lugar de un diseño que utilice activamente gradientes. El diseño plano se incluye en el paquete Haiku Extras y se activa en la sección de configuraciones de apariencia.

- Se ha añadido una capa de compatibilidad con la biblioteca Xlib, que permite ejecutar aplicaciones X11 en Haiku sin necesidad de iniciar un servidor X. La capa se implementa mediante la emulación de funciones de Xlib a través de la traducción de llamadas en la API gráfica de alto nivel de Haiku.
- Se ha preparado una capa de compatibilidad con Wayland, que permite ejecutar kits de herramientas y aplicaciones que utilizan este protocolo, incluidos los programas basados en la biblioteca GTK. La capa proporciona la biblioteca libwayland-client.so, basada en el código de libwayland y compatible a nivel de API y ABI, lo que permite ejecutar aplicaciones de Wayland sin cambios. A diferencia de los composites típicos de Wayland, servidores la capa no se inicia como un proceso de servidor separado, sino que se carga como un complemento para los procesos del cliente. En lugar de sockets, servidor se utiliza un ciclo nativo de procesamiento de mensajes basado en BLooper.
- Gracias a las capas de compatibilidad con X11 y Wayland, se ha preparado un puerto funcional de la biblioteca GTK3. Entre las aplicaciones que se pueden ejecutar con este puerto se encuentran GIMP, Inkscape, Epiphany (GNOME Web), Claws-mail, AbiWord y HandBrake.

- Se ha añadido un puerto funcional con Wine, que se puede utilizar para ejecutar aplicaciones de Windows en Haiku. Entre las limitaciones se menciona la posibilidad de ejecutar solo en versiones de 64 bits de Haiku y la capacidad de ejecutar solo aplicaciones de Windows de 64 bits.

- Se ha añadido un puerto del editor de texto GNU Emacs, que funciona en modo gráfico. Los paquetes están disponibles en el repositorio HaikuDepot.

- Se ha añadido soporte para la generación y visualización de miniaturas de imágenes en el gestor de archivos Tracker. Las miniaturas se guardan en atributos extendidos de los archivos.

- Se ha implementado una capa de compatibilidad con los controladores de FreeBSD. Se han portado controladores de FreeBSD para soportar adaptadores USB inalámbricos con chips Realtek (RTL) y Ralink (RA). Entre las limitaciones se menciona la necesidad de conectar el dispositivo antes de cargar (después de cargar, el dispositivo no es reconocido).
- Se ha portado la pila inalámbrica 802.11 de OpenBSD con soporte para 802.11ac y los controladores iwm e iwx que soportan adaptadores inalámbricos Intel 'Dual Band' y 'AX'.
- Se ha añadido un controlador USB-RNDIS, que permite establecer un punto de acceso a través de USB (USB tethering) para ser utilizado como una tarjeta de red virtual.
- Se ha añadido un nuevo controlador NTFS, basado en la biblioteca del proyecto NTFS-3G. La nueva implementación es más estable, admite la integración con la capa de caché de archivos y proporciona un buen rendimiento.
- Se ha añadido un traductor para leer y escribir imágenes en formato AVIF.
- El motor del navegador HaikuWebKit se ha sincronizado con la versión actual de WebKit y se ha trasladado a un backend de red basado en la biblioteca cURL.
- Se ha añadido soporte para sistemas de 32 bits con EFI al cargador de arranque y se ha proporcionado la posibilidad de instalar un entorno Haiku de 64 bits desde un cargador EFI de 32 bits.
- Se ha mejorado la compatibilidad con los estándares POSIX. Se ha continuado la sustitución de llamadas a la biblioteca estándar de C, anteriormente trasladadas de glibc, por versiones de musl. Se ha añadido soporte para hilos C11 y métodos locale_t.
- Se ha mejorado el controlador para unidades NVMe, añadiendo soporte para la operación TRIM para informar al disco sobre los bloques liberados.
- Se ha habilitado la posibilidad de compilar el núcleo y los controladores con las nuevas versiones de GCC (incluyendo GCC 11), todavía se requiere GCC 2.95 para compilar el sistema debido a dependencias de código antiguo para mantener la compatibilidad con BeOS.
- Se ha realizado un trabajo general para mejorar la estabilidad de todo el sistema.
Fuente: opennet.ru





