Después de dos años de desarrollo y una semana después de que el proyecto cumpliera 25 años, se publicó la sexta versión beta del sistema operativo Haiku R1. Inicialmente, el proyecto fue creado como una reacción al cierre del sistema operativo BeOS y se desarrolló bajo el nombre de OpenBeOS, pero se renombró en 2004 debido a reclamaciones relacionadas con el uso de la marca BeOS. Para evaluar el funcionamiento de la nueva versión, se prepararon varias imágenes Live (x86_64, x86 de 1.4 GB). El código fuente de la mayor parte del sistema operativo Haiku se distribuye bajo la licencia MIT, con excepción de algunas bibliotecas, códecs de medios 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, optimizada para alta capacidad de respuesta a las acciones del usuario y para una ejecución eficiente de aplicaciones multihilo. Para los desarrolladores, se presenta una API orientada a objetos. El sistema se basa directamente en tecnologías de BeOS 5 y está diseñado para ser binariamente compatible con aplicaciones de dicho sistema operativo. Requisitos mínimos de hardware: CPU Pentium y 384 MB de RAM (se recomienda Pentium 4 y 512 MB de RAM, y para la compilación b, 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 añadido soporte para las versiones actuales de Firefox y proyectos basados en tecnologías de Mozilla, como LibreWolf, Waterfox, Floorp e Icedove (Thunderbird), que ahora se pueden instalar a través del repositorio HaikuDepot.

- Se ha portado el hipervisor NVMM (NetBSD Virtual Machine Monitor), que permite que en QEMU se puedan ejecutar máquinas virtuales utilizando los mecanismos de virtualización por hardware Intel VT-x y AMD-V.

- El proyecto HaikuPorts ofrece soporte para puertos de diversas aplicaciones, incluyendo muchas de KDE y GNOME. Se ha añadido un puerto del compilador y runtime para el lenguaje de programación Go. Se han portado controladores gráficos de NVIDIA para tarjetas gráficas RTX 2xxx y más recientes.

- Se han realizado numerosas optimizaciones de rendimiento, lo que ha reducido casi a la mitad el tiempo de compilación de HaikuWebKit (de 4h53m a 2h33m). El procesamiento de tipos MIME se ha acelerado entre 5 y 10 veces. Las implementaciones de funciones de hash se han optimizado. Se ha mejorado el manejo de bloqueos en el VFS y el sistema de gestión de memoria en el núcleo. Se ha incrementado el rendimiento de los canales anónimos. Se ha mejorado la eficiencia del almacenamiento en caché de elementos de directorio e inode, lo que ha acelerado significativamente las operaciones al trabajar con un gran número de archivos.
- Se ha realizado una reestructuración de la gestión de memoria. Se ha mejorado el rendimiento en condiciones de escasez de memoria. El consumo de memoria de las estructuras en packagefs se ha reducido en un 20%. Se ha incrementado la eficiencia en el manejo de atributos de memoria y áreas mprotect. En libc se ha añadido una nueva implementación de la función malloc, basada en el código de OpenBSD. Se ha mejorado la implementación de mmap. Las optimizaciones realizar permiten cargar Haiku en modo gráfico en un sistema de 32 bits con solo 128 MB de RAM.
- En el gestor de archivos Tracker, al mantener presionada la tecla Shift mientras se abre el menú, se ha implementado la opción de cambiar la acción de algunos elementos del menú (por ejemplo, en lugar de mover a la papelera, se muestra un botón para eliminar).
- En la interfaz de búsqueda de archivos, se ha añadido la opción de restringir la búsqueda a directorios específicos.

- En SoftwareUpdater se ha implementado la eliminación automática de versiones antiguas de los paquetes, después de un tiempo tras su eliminación. En la utilidad pkgman se ha integrado una recomendación sobre la ejecución del comando «pkgman cleanup» al detectar un gran número de estados de paquetes antiguos.
- En la utilidad integrada para crear capturas de pantalla, que se activa con la tecla PrintScreen, se ha añadido soporte para seleccionar el área a guardar en la pantalla.
- En la utilidad Team monitor, que se activa presionando Ctrl+Alt+Del, se ha proporcionado agrupamiento de aplicaciones no-GUI lanzadas por aplicaciones con interfaz gráfica.

- En el gestor de particiones DriveSetup, se ha añadido un menú «Disk image» para trabajar con imágenes de disco (montaje de imágenes, copia de contenido de particiones de disco en imágenes y viceversa).
- En el gestor de ventanas y displays, se ha implementado el soporte para la reconexión de aplicaciones y la recuperación de su estado (después de un cierre inesperado de app_server, todas las aplicaciones previamente iniciadas se reconectan automáticamente). servidor En el indicador de estado de las baterías PowerStatus se ha agregado soporte para sistemas con múltiples baterías.
- En varias aplicaciones se ha mejorado el soporte para el modo oscuro y HiDPI.
- En la utilidad launch_roster se ha implementado la posibilidad de mostrar el estado de todos los servicios y trabajos en formato de tabla.
- En el sistema de archivos FAT se ha añadido soporte para sectores de 4KB y discos de más de 2TB. En BFS se ha optimizado el escaneo de bloques libres.
- Se ha mejorado el soporte de hardware lanzado en los últimos 5 años. Se han resuelto problemas de salida de audio. Se ha ampliado la compatibilidad con adaptadores Ethernet y Wi-Fi con interfaz USB a través de la transferencia de controladores desde FreeBSD y OpenBSD.
- Se ha ampliado la compatibilidad con POSIX, agregando el soporte para funciones getresuid, setresuid, getresgid, setresgid, pipe3, dup2, mkostemp, reallocarray, memmem, qsort_r, posix_devctl, pthread_getcpuclockid y posix_spawn_file_actions_add[f]chdir, así como las banderas O_CLOFORK, MSG_CMSG_CLOEXEC, MSG_CMSG_CLOFORK, SOCK_SEQPACKET, MSG_TRUNC, MSG_PEEK y WCOREDUMP.
- Se ha agregado soporte para funciones específicas de sistemas GNU y BSD: getloadavg, closefrom y closerange.
- Se ha mejorado la compatibilidad con la API FUSE, utilizada en implementaciones de los sistemas de archivos squashfs y exFAT.
- Se ha continuado el desarrollo del puerto para la arquitectura ARM64, que ahora se inicia correctamente en
- . Se están realizando experimentos para ejecutar Haiku en sistemas con chips Apple M1. una máquina virtualDespués de dos años de desarrollo y una semana después de cumplir 25 años, se ha publicado la sexta versión beta del sistema operativo Haiku R1.
Fuente: opennet.ru





