Mi primer día con Haiku: es inesperadamente buena

Mi primer día con Haiku: es inesperadamente buena

Resumen: Un principiante probó Haiku por primera vez y decidió que era impresionante. Especialmente en comparación con los entornos de trabajo disponibles en Linux.

Ya he compartido mis ideas (así como mis frustraciones) sobre #LinuxUsability (parte 1, parte 2, parte 3, parte 4, parte 5, parte 6). En esta reseña, describiré las primeras impresiones de Haiku, un sistema operativo de código abierto para computadoras personales. A veces, las primeras impresiones son útiles, pero como solo se tienen una vez, las he guardado aquí.

Mi primer día con Haiku: es inesperadamente buena
El sistema en el que estoy escribiendo esta reseña

Quizás sean útiles para los desarrolladores de Haiku y otras partes interesadas.
En algún momento puedo cometer errores, ya que simplemente describo mi experiencia personal (es decir, de forma bastante ingenua). También las personas amables en el canal #haiku en la red irc.freenode.net me ayudaron con sugerencias; las publicaré también. ¡Gracias, desarrolladores de Haiku!

Lo que quiero decir es que Haiku aún no es 100% perfecta, pero ya tiene un entorno de trabajo bien ensamblado.

Instalación

El proyecto Haiku proporciona imágenes para descargar desde CD o DVD, generadas diariamente. Utilicé una memoria USB 3. Me dijeron que el arranque desde USB 3 podría no funcionar, pero en mis dos sistemas de prueba basados en Intel, todo funciona a la perfección.

Comencé el proceso de instalación descargando la imagen de 64 bits, que luego grabé en la memoria USB utilizando el programa Etcher. El arranque funciona tanto con EFI, como sin él; mis aplausos por proporcionar dicha imagen.

Haiku utiliza su propio sistema de archivos BeFS para la partición de arranque, aunque, en principio, se declara el soporte para FAT32 y NTFS. En general, el sistema necesita 600 MB, pero se requiere más espacio para aplicaciones adicionales.

Por defecto, se crea una partición de 600 MB con BeFS y una partición FAT32 de 3 GB. En el FAT32 hay un archivo /EFI/BOOT/BOOTx64.EFI, lo que implica la posibilidad de arranque en sistemas compatibles con EFI. Desafortunadamente, no encontré programas para aumentar el tamaño de BeFS, y espero que en el futuro se implemente otro esquema de particionamiento, porque el tamaño de la imagen de la partición es fijo y puede no ser suficiente espacio libre para software adicional. Sería bueno si los paquetes adicionales de software se guardaran en la segunda partición FAT32.

Esta solución sería una ventaja para aquellos que desean acceder a archivos directamente desde otros sistemas. En Linux ya hay soporte para la lectura de BeFS, existen implementaciones de lectura y escritura de BeFS para FUSE.

Mi primer día con Haiku: es inesperadamente buena
Instalador de Haiku

Me dieron un consejo: si quieres usar una partición más grande, instala Haiku en una memoria USB diferente.
Para mí, esta etapa es, en principio, innecesaria, ya que el instalador de Haiku no puede dividir discos, simplemente lanza el programa DriveSetup, en el que debes dividir el disco manualmente, agregar una partición que luego se formateará en BeFS, después de lo cual el control regresa al instalador. También será necesario instalar manualmente el gestor de arranque, utilizando un programa separado. Desafortunadamente, no pude iniciar desde EFI con esta partición, ya que faltaba la partición FAT32 con los archivos de arranque para EFI. No vendría mal un instalador que pudiera hacer particiones automáticamente, incluyendo las características de EFI.

Mi primer día con Haiku: es inesperadamente buena
BootManager instala el gestor de arranque en el disco

El proceso de instalación tarda un poco menos de tres minutos, lo cual es bastante rápido. Durante este tiempo se copia todo el sistema, que consta de "solo" 4751 archivos. La razón de esto es el hecho de que la mayoría del software está empaquetado en forma de archivos hpkg (algo similar a los paquetes Snap en sistemas Linux), que nunca se instalan, sino que simplemente se montan. Lo curioso es que hay bastante archivos "libres", por ejemplo, png. ¿Por qué no están empaquetados?

Como mencioné, incluso el núcleo del sistema operativo se proporciona en forma de archivo hpkg. (mencioné 4751 archivos, ya que ejecuté HaikuDepot antes de la instalación, que descargó un montón de cosas. La instalación limpia, aparentemente, no los contiene todos y puede instalarse más rápido con unos 200 paquetes. ¡Genial! Como me dijeron, los archivos descargados no se ignoran durante la instalación, esto es un error de software. Vaya, parece que aquí está el primer informe de error, escrito gracias a mi sugerencia).

Primera carga

El sistema se inicia, mostrando una bonita pantalla de inicio, y luego se detiene: después de la carga, mi tarjeta gráfica (Radeon) muestra una pantalla negra.

Me recomendaron iniciar en modo seguro con una resolución de 1024x768 en un monitor FullHD. En principio, podría haberme complicado con el gestor de arranque para obtener funcionalidad en FullHD, pero en otra computadora con una tarjeta Intel todo funcionó sin problemas.

El sistema funciona de manera receptiva desde una unidad flash, aparentemente porque no se escribe nada en la unidad durante su funcionamiento, por lo que espero usar la unidad flash como el sistema operativo principal. Obtendrás un sistema real al arrancar desde USB, a diferencia de las lentas imágenes de Linux "live".

Durante el arranque, la pantalla no parpadea, no se ven mensajes del núcleo, no se siente que Xorg esté atado al núcleo con cinta adhesiva azul. A diferencia de las distribuciones típicas de Linux, el núcleo y la GUI aquí están creados y ajustados entre sí.

No hay solicitud de inicio de sesión, ya que el sistema está diseñado para un solo usuario. Es simple, justo lo que se necesita para una computadora personal.

Se necesita soporte para varios usuarios: regálales una unidad flash, cada una de las cuales cuesta no más de $5.

Las primeras impresiones del entorno de trabajo

Si comparamos la primera sensación, se parece más a un Mac que, por ejemplo, a Linux con Gnome. La tecla "command" funciona de la misma manera que en Mac. ¡Bien!

Mi primer día con Haiku: es inesperadamente buena
Nada se compara con un gestor de archivos espacial, se siente como el viejo y querido Mac.

El gestor de archivos por defecto es espacial (como Macintosh System 1.0), desafortunadamente, cada ventana no recuerda sus configuraciones (por ejemplo, la vista en lista o en iconos). Como me dijeron, es un error que creo que no será difícil de corregir. (Desafortunadamente, es complicado escribir informes al "mimokrokodil" en el bugtracker para Haiku ya que utiliza un sistema original que no está basado en GitLab o GitHub, y con el que tampoco se puede acceder). Los archivos obtienen sus iconos, no hay problemas con los archivos individuales en el escritorio y los iconos.
¡Bien! Mucho mejor que los entornos de trabajo para Linux, se siente la simplicidad.

Rendimiento

El sistema operativo funciona rápidamente incluso en hardware de bajo rendimiento como una netbook con Atom. No se sienten capas de software infladas. ¡Bien!

Lunduke dijo que LibreOffice, en términos de sensación, funciona más rápido que en otros sistemas operativos, pero aún no lo he comprobado.

Reproducir video

Bryan Lunduke. Haiku OS Beta - reseña e impresiones

Línea de comandos

Incluye un terminal. En general, a pesar de las pequeñas diferencias con Linux, me adapté de inmediato, en realidad es un bash común, lo que me alegró mucho.

Bienvenido a la shell de Haiku.
En ella, puedes iniciar fácilmente aplicaciones que están en el $PATH:
~> Touchpad
~> echo $PATH
.: /boot/home/config/non-packaged/bin:/boot/home/config/bin:/boot/system/non-packaged/bin:/bin:/boot/system/apps:/boot/system/preferences

¡Vaya! «.» en $PATH! Esto significa que puedes ejecutar comandos directamente desde el directorio actual (los usuarios de Linux una vez me dijeron que el mundo explotaría si trato de hacerlo). ¡Genial!

Mi primer día con Haiku: es inesperadamente buena
bash, ejecutado en el terminal de Haiku

Otra cosa genial en el terminal: puedes presionar ctrl + c para copiar, al igual que en otras aplicaciones, a diferencia de los entornos de trabajo de Linux, donde debes presionar ctrl + shift + c en el terminal.
Detalles que muestran la integridad de todo el sistema.

Estructura de sistemas de archivos

La partición desde donde se inicia la carga está montada en /boot. ¡Qué fácil!
Sin desorden /etc, /usr, /bin... Simplemente /home y /system. Limpio, simple, claro. ¡Bien! (No exactamente: están ahí, pero ocultos. ¿Por qué? Porque /bin este /system/bin, no hay necesidad de mostrar esto en el Tracker, pero los scripts todavía lo utilizan. Creo que los desarrolladores deberían deshacerse de cosas obsoletas hechas por compatibilidad, ya que eso solo complica la comprensión.)

packagefs

Ya mencioné antes los archivos hpkg, que se parecen a los paquetes en Linux, pero no se instalan, sino que simplemente se montan (similar a los paquetes snap). El sistema de archivos que hace esta magia se llama packagefs. Muntea archivos hpkg sobre otros, creando así todo el directorio /system.

El comando mount, desafortunadamente, no muestra lo que está montado.

~> mount
uso: mount [-ro] [-t fstype] [-p parameter] [device] directory
-ro monta el volumen solo lectura
-t especifica el sistema de archivos a usar (predeterminado es el reconocimiento automático)
-p especifica parámetros a pasar al sistema de archivos (-o también aceptado)
si no se especifica el dispositivo, se pasa NULL (para sistemas de archivos en memoria)

Me recomendaron intentar mountvolume, que mostrará las particiones montadas, pero, desafortunadamente, tampoco muestra los puntos de montaje con packagefs (solo mostrará los relacionados con particiones o imágenes de disco). [Afortunadamente, si ejecutas mount o df en algún lugar en el host con docker, ¡puedes hacer scroll por un par de pantallas! — nota del traductor] Pero puedes hacer un truco con df :

~> df -h

Tipo de Montaje Total Libre Flags Dispositivo
----------------------------------
/boot bfs 600.0 MiB 6.0 KiB QAM-P-W /dev/disk/usb/0/0/0
/boot/system packagefs 4.0 KiB 4.0 KiB QAM-P -
/boot/home/config packagefs 4.0 KiB 4.0 KiB QAM-P -
/no name fat 2.8 MiB 2.3 MiB - M-PRW /dev/disk/usb/0/0/1

Como se puede ver, /system y /home/config dentro /boot esto es precisamente packagefs.
Los que me conocen saben que soy fanático del soporte de arrastrar y soltar en los administradores de archivos: por ejemplo, uso conjuntos de aplicaciones al estilo NeXT, o AppImages.
De todos modos, existen desventajas en este formato de distribución de software. ¿Podrá packagefs combinar lo mejor?

Como se puede ver, en mi caso (la partición del sistema está llena, pero quiero instalar aplicaciones) sería más elegante descargar las aplicaciones a algún lugar, utilizando el navegador, justo como lo hago con los archivos. .dmg para Mac o AppImage. packagefs vive en el núcleo, por lo que no es un sistema de archivos para FUSE (aunque sé que FUSE también está en Haiku). También me dijeron que, quizás en el futuro, se crearán "zonas packagefs" adicionales, lo que probablemente significa que podré indicarle a packagefs que guarde paquetes, por ejemplo, en particiones de disco separadas. Eso me parece bien, ya que si la partición está en un medio extraíble, puedo usar otro ordenador y obtener allí aplicaciones funcionales.

También se mencionó que la instalación de paquetes funciona mediante un método de arrastrar y soltar: solo hay que arrastrar el archivo a /system/packages o en /home/config/packages para la instalación, y si se arrastra el archivo desde allí, será eliminado. Si se arrastra un paquete con dependencias insatisfechas, el sistema solicitará la instalación de estas primero.

Al principio no entendía cómo packagefs maneja múltiples versiones del mismo paquete, ¿qué pasaría si quisiera instalar diferentes versiones de gcc, por ejemplo, o de otros programas GUI? (Uno de los desarrolladores dijo, cito: "packagefs en sí no contiene nada que impida la instalación de múltiples paquetes con el mismo nombre, pero como se utiliza libsolv de OpenSuse para resolver las dependencias, que no permite hacer esto, se ha prohíbido también hacerlo en la configuración de HaikuDepot". Puedo explicar por qué me gusta la idea de los paquetes .app, AppDir y AppImages).

Bibliotecas dinámicas

¿Hay tecnología de bibliotecas dinámicas? Sí, se puede observar, por ejemplo, si inicias una aplicación con bibliotecas faltantes haciendo doble clic:

Mi primer día con Haiku: es inesperadamente buena
¿Puedes imaginar algo así en gnome, kde o xfce?

En Linux, un lanzamiento similar no mostraría nada. Veamos cuánto tiempo tardará en diferentes entornos:

¿Y qué hay de las verificaciones?

~> ldd
bash: ldd: comando no encontrado

Hay que usar un reemplazo:

~> objdump -x /bin/bash | grep NEEDED
NEEDED libreadline.so.7
NEEDED libhistory.so.7
NEEDED libncurses.so.6
NEEDED libintl.so.8
NEEDED libroot.so

En principio ldd sería mejor, ya que muestra también las rutas de donde se cargarán las bibliotecas.
¿Y de dónde se cargan realmente?

~> echo $LIBRARY_PATH
%A/lib:/boot/home/config/non-packaged/lib:/boot/home/config/lib:/boot/system/non-packaged/lib:/boot/system/lib

Así que puedes colocar las bibliotecas junto al archivo ejecutable, y funcionará «simplemente». ¡Qué genial! Solo necesitas conectar bibliotecas individuales a la aplicación sin lidiar con rpath o establecer la variable LD_LIBRARY_PATH como en Linux. ¡Bien!

Hay una biblioteca (horrible en Linux) /boot/system/lib/libstdc++.so.6.0.24.
¿Qué pasa si la aplicación requiere una versión más reciente que la que está en /boot/system/lib?
El usuario promedio probablemente actualizará a la última versión, porque en este sistema no hay un usuario «Administrator» con la contraseña root [el autor insinúa la simplicidad — nota del traductor].
Bueno, al menos así es como parece. (En realidad, el «usuario» es un equivalente de root. Se puede establecer una contraseña usando el comando passwd, después de lo cual se debe indicar PermitRootLogin=yes en sshd_config, y luego se podrá conectar externamente por ssh. Los desarrolladores me dijeron que por defecto todas las aplicaciones se ejecutan como root. Al final, tal vez lo mejoren… Pero no estoy seguro de que me guste.)

Dado que no hay distribuciones de Haiku, los desarrolladores de aplicaciones también no tienen acceso a versiones más nuevas que las que están disponibles para descargar en tu sistema. Resultado: menos decepciones, las cosas «simplemente funcionan». ¡Gran simplificación! Me gusta.

Recursos y registrador

Como ya se mencionó antes, las aplicaciones obtienen un tipo y un ícono, así que no tienes que lidiar con archivos en el escritorio y cosas similares. Me dijeron que hay un servicio registrador especial que conoce acerca de las aplicaciones, tipos de archivos, e íconos. Siempre es notificado al instalar un paquete o marcar un archivo para ejecución (usando el programa chmod o mimeset).
Se parece un poco a Launch Services en Mac. Y eso es algo que falta en los entornos de escritorio en Linux. ¡Genial!

Los archivos binarios reciben íconos incorporados como recursos, así que no necesitas un ícono adicional junto a los archivos en el escritorio. Casi como era en Macintosh System 1. ¡Genial!

Mi primer día con Haiku: es inesperadamente buena
Tipos de aplicaciones, tipos de documentos soportados, recursos incorporados e información de la versión

Tracker (administrador de archivos) automáticamente marca los archivos binarios como ejecutables. Esto es lo que he estado esperando de los entornos de escritorio en Linux durante más de 10 años.
Todo esto es muy agradable. ¡Es genial! La vida se vuelve tan sencilla. Es más sofisticado y se parece más a Mac que XDG en Linux. O esto...

Mi primer día con Haiku: es inesperadamente buena
Aplicación en Linux sin el bit de ejecución instalado

En Gnome eliminaron la posibilidad de ejecutar archivos ejecutables desde el gestor de archivos, pero la comunidad se quejó y todo volvió a cambiar.
También me dijeron que las aplicaciones utilizan la función find_paths() en lugar de rutas fijas /usr/bin y /usr/share (una característica común en entornos de trabajo en Linux), lo que significa que pueden moverse por el sistema de archivos. ¡Aplausos de pie! En Linux, como siempre es "complicado".

Lo que me sorprendió

  • Me desconcertó que /boot este es el punto de montaje de la partición desde donde se inicia el sistema. ¿Por qué no "/"? O bien /Haiku? (Пояснение: действительно, /boot este es siempre el área de arranque, se muestra en el escritorio como "Haiku", porque ese es su nombre. Consideren "/" como análogo al escritorio en Mac System 1, la raíz de la jerarquía, que realmente no existe en los discos).
  • El punto de montaje para paquetes instalados por el usuario es /home/config. ¿Por qué no simplemente /home? (Один из разработчиков пояснил мне, что они не хотят засорять домашний каталог, но мне кажется, config — название неудачное, потому что внутри есть подкаталог bin/, así que no es solo almacenamiento de configuraciones).
  • ¿Cuál es la licencia para todo? Por ejemplo, en el navegador WebPositive no hay una mención clara al ver "Acerca de". En el campo "Sobre este sistema" se indica que el código de Haiku está bajo la licencia MIT. ¡Excelente! (También me dijeron que WebPositive se incluye con el sistema operativo bajo la misma licencia, sin embargo, su motor WebKit se proporciona, en su mayoría, bajo la licencia BSD de dos cláusulas).

Lo que no funcionó como esperaba

Primero que todo, me sorprendió el nivel de soporte de hardware. En mi netbook basado en Atom, funcionó todo, incluyendo WLAN. Pero hay algunas particularidades en su funcionamiento.

  • Completamente inoperante en hardware Macintosh, sin importar el modo EFI o la emulación BIOS ("Windows"). Simplemente se congela el sistema si selecciono el ícono en el gestor de arranque de Mac. Me dijeron que esto es una característica conocida y se puede iniciar usando rEFIt, pero estas configuraciones son demasiado complicadas para mí.
  • Aceleración gráfica. Parece que no es posible usar Radeon por ahora (tenía una pantalla negra), pero tampoco todo está bien con Intel. La aceleración de video en WebPositive es solo software, incluyendo H.264. Es sorprendente, ya que la orientación original es hacia el video. Uno de los desarrolladores aclaró que el video en WebPositive funciona utilizando hacks de rendimiento.
  • ¿Sin sonido? “Los controladores de las tarjetas de sonido siguen sin funcionar”, dijo el desarrollador. Probablemente se necesita alguien que soporte el controlador HDA de manera similar a USB-3. Ahora, para obtener sonido, basta con un reinicio rápido desde otro sistema operativo, y creo que esto se solucionará de alguna manera.
  • Los botones de control de brillo y volumen no funcionan. (Ya hay una base en forma de aplicación Shortcuts: se puede vincular cualquier combinación de teclas a cualquier función que guste, pero por ahora Haiku no sabe trabajar con las teclas multimedia. ¿Quizás haya voluntarios?)
  • Control de dos dedos en el touchpad. No funciona de inmediato. Hay un panel de configuración que informa que “No se encontró touchpad, la configuración no tendrá efecto.” (Problema conocido con el dispositivo de entrada ELAN, ACPI ETD050A).
  • Con la aplicación actual para leer archivos de cámaras digitales y smartphones en Android, no pude sincronizar en los modos MTP y PTP. Sería genial si se montaran como otras particiones en el sistema.
  • Al parecer, el cierre de la tapa del portátil no se maneja. (Sé que Haiku aún no funciona con ACPI: se ha implementado soporte, pero no está habilitado por defecto; no hay reinicialización del controlador)
  • No pude crear una cuenta en el bugtracker, ya que no funciona captcha en WebPositive.

Aplicaciones

El propósito principal del sistema operativo es ejecutar aplicaciones. Temía que bajo Haiku no habría aplicaciones para un trabajo real. Afortunadamente, me equivoqué, ya que hay esperanza de mejora — cuando Haiku empiece a ser más usado.
Scribus (una aplicación para diseño visual) está disponible, lo cual es una aplicación bastante complicada basada en Qt. También está QtCreator (IDE).

Me intrigó saber si hoy en día se están escribiendo aplicaciones nativas de Be para Haiku, utilizando herramientas nativas (si es que existen), o si es suficiente usar QtCreator (lo que facilitaría la portación de aplicaciones multiplataforma). La postura de los desarrolladores de Haiku es la preferencia “explícita” por aplicaciones nativas para Haiku. ¿Es verdad? Dudo que existan aplicaciones para un trabajo real que no sean multiplataforma (todas las aplicaciones que utilizo en mi trabajo son multiplataforma).

Se anuncia soporte para aplicaciones WxWindows.

La falta de soporte para Gtk+ es decepcionante. Eso significa que en Haiku no habrá Gimp en el futuro cercano (bueno, eso creo), ¡pero hay una alternativa en Krita!

Además, creo que se necesita una forma simple y clara de crear aplicaciones para Haiku, como esta — utilizando Travis CI y GitLab CI.

¿Hacia dónde nos dirigimos?

¿Se quedará Haiku atrapado en el concepto de la experiencia del usuario de BeOS? Me parece que, para ser atractiva, debe afinar cuidadosamente las nuevas esquemas de UX al adoptarlas, mientras se mantiene fiel a sus fundamentos.
Por ejemplo:

  • Permanecer simple, sin esas 100500 opciones que hacen que Linux sea "complicado".
  • Usar un cursor de flecha en lugar de una mano extraña.
  • ¿Habrá Dock? (Sé que hay algo parecido a un Dock llamado LaunchBox, aún más cercano al Dock LnLauncher, ¡pero el BeOS original ya tenía Dock en 1998!)
  • ¿Menú global? (Evidentemente no, ya que JLG no ve beneficios particulares).
  • ¿Cambio rápido de ventanas? (Se dijo que se podría intentar activar «Stack&Tile», manteniendo presionada la tecla Windows al arrastrar la ventana, pero eso no es intuitivo, más aún — no me funciona).
  • ¿Animación al abrir y cerrar ventanas?
  • ¿Sombras detrás de las ventanas?
  • ¿Soporte de temas como en Aqua? (Sí, se puede, hay infraestructura y herramientas, por ejemplo, HaikuThemeManager, pero alguien tiene que crear temas. Yo intentaría hacerlo, me dijeron que hay documentación en https://xref.plausible.coop/source /xref/haiku/headers/os/interface/ControlLook.h, но не сейчас).

Son matices sutiles, teniendo en cuenta que el sistema no debe perder su singularidad única.

Conclusión

Haiku realmente me abrió los ojos, me mostró cómo un entorno de trabajo "simplemente funciona".
Hace más de 10 años que hice la transición de Mac a Linux y desde entonces he buscado el mismo nivel de sofisticación y belleza, y Haiku lo cumple en muchos aspectos.

Honestamente, hay defectos, pero sorprendentemente muchas cosas, incluyendo hardware, como WLAN o impresoras, "simplemente funcionan".

Sin embargo, ante todo, el sistema tiene un concepto de entorno de trabajo, que falta en los entornos de trabajo de Linux.

La existencia de un sistema cohesivo (en lugar de un núcleo y diferentes entornos de usuario competitivos) hace que todo sea simple y coherente.

La ausencia de diferentes compilaciones (distribuciones) hace que todo sea aún más simple.

Contar con un solo usuario en el sistema reduce aún más la complejidad.

Resultado: un sistema muy simple, refinado y minimalista en muchos aspectos, creado para "mortales comunes", no para administradores de sistemas UNIX.

Hay esperanza de que cuando este sistema se vuelva más popular (lo que es inevitable), su complejidad no aumente.

Ya he escrito sobre #LinuxUsability en el ciclo de artículos anterior. Es agradable saber que Haiku está resolviendo muchos de los problemas mencionados. incluyendo los problemas de legado que afectan a los entornos de trabajo en Linux..

Me bastó un día para darme cuenta: quiero utilizar este entorno de trabajo para mi trabajo diario, y también estoy buscando formas de contribuir al desarrollo del sistema.

¡Pruébalo tú mismo! El proyecto Haiku ofrece imágenes para descargar desde DVD o USB. generadas diariamente. Para instalar, solo necesitas descargar la imagen y grabarla en un pendrive con Etcher.

Nota del autor de la traducción: este es solo el primer artículo de una serie sobre Haiku, los demás están a la espera de traducción y se publicarán más adelante.

Fuente: habr.com

Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS 🔥 Compra un hosting fiable para sitios web con protección contra DDoS, servidores VPS VDS | ProHoster