- El port arm64 de Haiku ahora arranca hasta el escritorio en las compilaciones nocturnas más recientes, y la imagen hrev59669 funciona en QEMU
- Para ejecutar QEMU, la compatibilidad entre Tianocore EFI y la selección de CPU es importante; en Debian se resolvió especificando
--cpu cortex-a76
- Con pequeños ajustes, también fue posible el arranque en UTM, pero el movimiento del mouse es lento y entrecortado, así que la usabilidad real sigue siendo baja
- La imagen nocturna de arm64 está en estado unbootstrapped, por lo que no incluye
git, gcc ni paquetes de desarrollo, y la ausencia de OpenSSL también puede impedir la instalación de paquetes
- La transferencia de archivos entre host y guest puede resolverse con una imagen de disco FAT32, y también se menciona la posibilidad de hacer compilación cruzada de
.hpkg desde x86_64 o Linux
Estado de arranque de Haiku arm64
- El port arm64 de Haiku ha llegado al punto de arrancar hasta el escritorio en las compilaciones nocturnas más recientes
- La compilación más reciente hrev59669 de download.haiku-os.org funciona en QEMU
- Con pequeños ajustes, Haiku también puede arrancar en UTM, aunque el movimiento del mouse es lento y entrecortado, por lo que su uso práctico aún es limitado
Configuración de ejecución en QEMU
- El siguiente comando funcionó para ejecutar la imagen arm64 en QEMU
qemu-system-arm64 -m 512M -bios /path/to/the/arm64/QEMU_EFI.fd -device ramfb -M virt --cpu cortex-a76 -device usb-ehci -device usb-kbd -device usb-tablet -device usb-storage,drive=dska -drive id=dska,file=haiku-arm64-mmc.image,if=none
- La CPU que QEMU en Debian selecciona por defecto parecía ser incompatible con la implementación EFI incluida, y eso se resolvió especificando
--cpu cortex-a76
- La entrada de teclado y tableta usa dispositivos USB, y usb-tablet permite manejar la entrada sin capturar el mouse
ramfb se usa como una opción de framebuffer relativamente segura en arm64
- En Debian, la ruta del binario de Tianocore es
/usr/share/qemu-efi-aarch64/QEMU_EFI.fd cuando se instalan los paquetes necesarios
- En otros sistemas, la imagen EFI puede encontrarse en línea o extraerse de los paquetes de Debian
Entorno de desarrollo y estado de los paquetes
- La imagen nocturna actual de arm64 no es una “bootstrap image”, sino una imagen unbootstrapped, y la forma en que se construyó el conjunto inicial de paquetes es distinta
- La imagen nocturna actual no incluye
git, gcc ni paquetes de desarrollo
- Parece posible obtener el conjunto básico de paquetes necesarios para compilar paquetes descargando y configurando el archivo de lanzamiento de haikuports
- También se pueden instalar algunos paquetes con
pkgman, pero al no existir todavía haikuports builder, el conjunto disponible podría ser muy limitado
- Se ha reportado que
pkgman no puede instalar ningún paquete y muestra el error “operation not supported”
- La causa podría ser que la imagen fue compilada sin soporte de OpenSSL, lo que dificultaría hacer tareas útiles
- Si el paquete existe en el depot, se puede usar como alternativa tomar el enlace y descargarlo con
wget; al configurar haikuporter y haikuports en la imagen riscv64 también fue necesario un método similar
Transferencia de archivos entre host y guest
- Aún no se han encontrado paquetes de desarrollo precompilados para arm64 en el servidor del depot
- Para llevar archivos desde el host de QEMU al guest ARM64 de Haiku, se puede usar una imagen de disco FAT32
- El método consiste en crear una imagen de disco FAT32 con MacOS Disk Utility, montarla en Mac, copiar los archivos y luego conectarla al guest de QEMU
- El siguiente es un ejemplo de ejecución de QEMU con un disco compartido conectado
qemu-system-aarch64 \
-M virt \
-cpu max \
-m 2G \
-smp 4 \
-bios /opt/homebrew/share/qemu/edk2-aarch64-code.fd \
-device qemu-xhci,id=usb \
-drive file=haiku-master-hrev59671-arm64-mmc.image,if=none,id=drv0,format=raw \
-device usb-storage,bus=usb.0,drive=drv0 \
-device usb-kbd,bus=usb.0 \
-device usb-tablet,bus=usb.0 \
-device ramfb \
-display cocoa,zoom-to-fit=on \
-device qemu-xhci,id=usb2 \
-drive file=../shared.img,format=raw,if=none,id=usb-shared \
-device usb-storage,bus=usb2.0,drive=usb-shared \
-serial stdio
- Se plantea la posibilidad de poder compilar de forma cruzada
.hpkg para ARM64 Haiku desde Haiku x86_64 o Linux
1 comentarios
Comentarios en Hacker News
Este fin de semana instalé Haiku en una vieja Thinkpad X40, y es rápido y sorprendentemente estable
Emacs y VLC también funcionan muy bien. Para navegar por la web la computadora es demasiado lenta, pero la suite de oficina BeProductive es casi una obra maestra para una aplicación de solo 9 MB de descarga. Eso sí, no es de código abierto
Después también instalé Haiku en una XPS13 con KVM/Qemu y todo corría rapidísimo. Estoy pensando en usarlo para organizar fotos, y la función de metadatos integrada en BeFS se ve excelente para ese uso. La verdad, muy impresionante
Internamente corre más o menos al 60% de la velocidad de Linux en un sistema comparable, pero al usarlo se siente mucho más rápido que cualquier otra cosa
No significa que no se preocupen por mejorar el rendimiento, sino que siempre han garantizado que la experiencia de usuario sea la máxima prioridad
Justo le estaba contando a mi hijo que antes de que volviera Jobs, Apple había intentado adquirir Be Inc. y al final tomó el camino de comprar NeXT
Es un ciclo bastante curioso. Be portó BeOS a PowerMac, Apple dejó pasar la compra de Be, Be Inc. desapareció, nació HaikuOS, y más de 20 años después HaikuOS termina siendo portado a hardware de Apple
Sinceramente, en las laptops de Apple el problema no es el hardware sino el pésimo OS basado en XNU/Darwin/NextStep que traen de fábrica. Si HaikuOS viniera preinstalado y soportara todos los periféricos, compraría una Mac; aunque no creo que eso vaya a pasar
Como referencia, todavía tengo una PowerMac con el BeOS “de verdad” instalado. No la he arrancado en años. Cuando probé HaikuOS en una VM X86-64, manejó muy bien tareas como compilar algunos paquetes, ejecutar emacs y servir una o dos páginas web. La documentación para desarrolladores parece necesitar más trabajo, aunque hasta me dan ganas de ofrecerme como voluntario para ayudar
No conocía bien Haiku OS, pero según Wikipedia, Haiku es un proyecto comunitario que continúa BeOS, un sistema operativo descontinuado para computadoras personales
Dice que mantiene compatibilidad binaria con BeOS, y al mismo tiempo soporta sistemas modernos, protocolos, hardware y estándares web
Me da pena pensar que probablemente esto nunca podrá correr en un iPad M1/serie M
Yo diría que la época dorada del jailbreak también fue la época dorada del desarrollo móvil. Había muchísima innovación e iteración rápida; parecía que cualquier cosa que quisieras hacer era posible, y de hecho lo era
Muchas de las buenas ideas que Apple integró en iOS fueron tomadas descaradamente y sin atribución del crisol creativo que era la comunidad de jailbreak
Pero todo eso dependía de que alguien encontrara una vulnerabilidad y, ignorando el bug bounty, la publicara gratis para la comunidad. Eran verdaderos altruistas
Apple se volvió bastante buena bloqueando esos intentos como en un juego de golpear topos y pagando 100 mil dólares a la gente, y al final ese tipo de esfuerzo desapareció. La mayoría de las vulnerabilidades fáciles ya fueron descubiertas y parchadas. Ya no quedan buenas ideas que copiar, así que no sorprende que la innovación en iOS se haya estancado
¿Qué tan usable es realmente Haiku OS?
Aun así, recomiendo darse una vuelta
Aquí hay una impresión más detallada: https://kconner.com/2025/03/09/haiku-os-study-path.html
Me sorprendió ver que IntelliJ corre y que GNU core utils también viene integrado. Un programa de hello world también funcionó bien
Hace poco estaba viendo el FuriPhone, un teléfono Linux que corre Debian, y pensé que portar HaikuOS ahí podría ser un proyecto interesante
También puedes probar una demo en el navegador: https://distrosea.com/select/haiku/
Me pregunto si solo soporta M1 Mac o también otras series M. O quizá las otras series M ya estaban soportadas desde antes
Es difícil saber si esto es un gran avance o una mejora incremental