paint-brush
Ejecutando SerenityOS, una carta de amor a las interfaces de usuario de los 90por@ChrisChinchilla
2,705 lecturas
2,705 lecturas

Ejecutando SerenityOS, una carta de amor a las interfaces de usuario de los 90

por Chris Chinchilla5m2022/10/20
Read on Terminal Reader
Read this story w/o Javascript

Demasiado Largo; Para Leer

SerenityOS es un sistema operativo de inspiración retro para la era moderna. Esta publicación muestra cómo lo hice funcionar en una Mac, así como mis experimentos con el proyecto del navegador del proyecto que no usa Chromium o WebKit.
featured image - Ejecutando SerenityOS, una carta de amor a las interfaces de usuario de los 90
Chris Chinchilla HackerNoon profile picture


Siempre me ha gustado jugar con los sistemas operativos y los entornos de escritorio. Creo que mi primer sistema operativo gráfico fue AmigaOS. En las décadas posteriores, he trabajado con varias versiones de Windows, cada versión de macOS desde 7.0, diferentes sabores y combinaciones de Linux, y muchos otros sistemas operativos de nicho pequeños que me he olvidado en un mar de ventanas y menús.


En una vida alternativa (¿tal vez futura?), me gustaría haber creado interfaces de usuario ficticias para películas, programas de televisión y juegos. Uno de mis libros favoritos es " Make it so ", que establece comparaciones entre las interfaces de la ciencia ficción y las interfaces reales.


¿Cuál es o fue tu sistema operativo favorito? Háganos saber utilizando este mensaje de escritura .


Escuché por primera vez sobre SerenityOS a través de una noticia en el registro de cambios. Mencionaron que un puñado de programadores de código abierto estaban trabajando en un navegador y un motor de navegador alternativos, Ladybird . Esta es una perspectiva emocionante para mí, ya que me preocupa la hegemonía de los navegadores basados en Chromium, y hay algunas otras opciones que no están estrictamente controladas (WebKit) o que están desapareciendo lentamente (Firefox). Ladybird no pretende tener todas las funciones o estar lista todavía, pero se está desarrollando rápidamente.


Luego, mientras investigaba Ladybird, descubrí que era un navegador diseñado para un sistema operativo igualmente único, ¡y estaba intrigado! Para aclarar, Serenity no es otra máscara de Linux o BSD. Es algo construido desde cero pero fuertemente inspirado por los sistemas operativos modernos y clásicos por igual. Su objetivo es ser un sistema operativo totalmente funcional y utilizable para el uso diario.


En esta publicación, analizo la creación y ejecución de Ladybird y SerenityOS en mi MacBookPro M1. El uso de Apple Silicon planteó algunas complejidades, pero no demasiadas, y la comunidad del proyecto es útil y comunicativa cuando experimenta problemas.



Construyendo y ejecutando Ladybird

Construido inicialmente como un experimento para crear un navegador con las bibliotecas HTML de SerenityOS, recientemente se convirtió en algo que podría ser una nueva opción de navegador multiplataforma.

Utiliza la biblioteca Qt UI, por lo que no parece completamente multiplataforma, pero se puede usar en todas las plataformas que admiten Qt y significa que hay mucho margen para mejoras adicionales.

No tuve problemas para seguir los requisitos previos de compilación y las instrucciones para la plataforma de su elección . Desde la versión 6.2, Qt es compatible con Apple Silicon, por lo que ninguno de estos me presentó un problema. Solo que tuve que instalar Xcode. Hubo un punto en el que bastaba con instalar las herramientas de línea de comandos de Apple, pero creo que cada vez necesito más herramientas que solo proporciona Xcode.


Los pasos de compilación demoran un poco y luego se debe abrir el navegador. El enfoque inicial del navegador era ayudar a las personas a depurar las aplicaciones que estaban creando con las bibliotecas HTML de Serenity, por lo que hay muchas herramientas de depuración disponibles, pero aún no demasiadas para los usuarios finales. Inicialmente experimenté un problema de representación de fuentes, probablemente debido a mi pantalla Retina, pero una pregunta en el servidor Serenity Discord obtuvo una respuesta rápida (esto es específico de macOS).


Haga clic con el botón derecho en el binario creado en Build/ladybird y abra el archivo Contents/info.plist (probablemente en Xcode, pero cualquier editor servirá. Cambie el valor de NSHighResolutionCapable a "NO" y reinícielo. La representación del texto aún se ve un poco extraño, pero es legible.


Me di cuenta de que Ladybird no reproduce audio ni video. Si esto se debe a que aún no ha implementado esa función de HTML o debido a problemas de licencia, no estoy seguro.

Construyendo y ejecutando SerenityOS

Construir y ejecutar un navegador es una cosa, construir y ejecutar un sistema operativo completo es algo completamente más complejo. Como Serenity está diseñado para sistemas X86_64, esto también significa que yo, como usuario de Apple Silicon, necesito ejecutarlo en un entorno emulado. Afortunadamente, como Serenity es un sistema operativo completo, la comunidad generalmente asume que desea ejecutarlo en una máquina virtual y ya proporcionó pasos en los scripts de ejecución para usar QEMU. Con un par de pasos adicionales, también puede hacer que esto funcione cuando se ejecuta en Apple Silicon, aunque con algo de rendimiento.


Primero, seguí las instrucciones de requisitos previos de compilación de macOS y, para los usuarios de Linux, existen diferentes instrucciones de requisitos previos . Luego puede volver a las instrucciones generales de compilación . Todos estos funcionaron bien, pero tomaron mucho tiempo, lo cual es razonable para construir un sistema operativo.

Inicialmente, la ejecución de Serenity falló en la etapa de QEMU, y anteriormente había experimentado algunos problemas con QEMU para un artículo general de emulación y virtualización de macOS en el que estoy trabajando. Sin embargo, otra respuesta rápida en el servidor Discord y tuve una solución.


En run.sh en la línea 256 (al momento de escribir), agregue lo siguiente:


 -machine pc-i440fx-7.0


Ese bloque completo define la máquina virtual QEMU que utilizará Serenity, y " pc-i440fx-7.0 " define una configuración de PC particular. Después de agregar esto, la ejecución de Serenity funcionó. Es lento debido al uso de un procesador emulado, pero solo un poco, con un segundo de retraso cada vez que hago clic en algo. No se puede utilizar en el día a día, pero es aceptable para fines de prueba.


Serenity definitivamente tiene las primeras vibraciones de la interfaz de usuario de Windows pero con una mentalidad de Linux. No hay un administrador de paquetes oficial, pero los puertos están disponibles para compilar . En cambio, incluye muchas aplicaciones comunes con la compilación del sistema operativo. Hay un editor de código, un navegador (no Ladybird), juegos y más.

Regreso al futuro

Ahí tienes. ¡Con algunos ajustes y mucha espera para descargas y compilaciones, usted también puede ejecutar un navegador y un sistema operativo completamente nuevos y únicos! No estoy del todo seguro de cuál es el objetivo final del proyecto Serenity, ya que comenzó como un proyecto de pasión para los principales mantenedores y se convirtió en algo más grande. Esa es una de las cosas que me encantan del proyecto. Está creado en su totalidad por personas que disfrutan el proceso de crear algo de lo que están orgullosos, y el mundo del código abierto necesita más proyectos como ese.


Es el mes del hacktoberfest, si te encantan los proyectos de código abierto como SerenityOS, cuéntanos sobre tus experiencias contribuyendo al código abierto usando este aviso .


¿Cuál es o fue tu sistema operativo favorito? Háganos saber utilizando este mensaje de escritura .