paint-brush
Executando o SerenityOS, uma carta de amor às interfaces de usuário dos anos 90by@ChrisChinchilla
2,517
2,517

Executando o SerenityOS, uma carta de amor às interfaces de usuário dos anos 90

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

O SerenityOS é um sistema operacional de inspiração retrô para a era moderna. Esta postagem mostra como consegui executá-lo em um Mac, bem como meus experimentos com o projeto do navegador do projeto que não usa Chromium ou WebKit.
featured image - Executando o SerenityOS, uma carta de amor às interfaces de usuário dos anos 90
Chris Chinchilla HackerNoon profile picture


Sempre adorei mexer com sistemas operacionais e ambientes de desktop. Acredito que meu primeiro sistema operacional gráfico foi o AmigaOS. Nas décadas seguintes, trabalhei com várias versões do Windows, todas as versões do macOS desde 7.0, diferentes tipos e combinações de Linux e muitos outros sistemas operacionais de nicho pequenos que esqueci em um mar de janelas e menus.


Em uma vida alternativa (talvez no futuro?), Eu gostaria de ter criado interfaces de usuário fictícias para filmes, programas de TV e jogos. Um dos meus livros favoritos é " Make it so ", que faz comparações entre interfaces de ficção científica e interfaces reais.


Qual é ou foi o seu sistema operacional favorito? Deixe-nos saber usando este prompt de escrita .


Ouvi pela primeira vez sobre o SerenityOS por meio de uma notícia no Changelog. Eles mencionaram que um punhado de programadores de código aberto estava trabalhando em um navegador alternativo e um mecanismo de navegador, o Ladybird . Esta é uma perspectiva empolgante para mim, pois estou preocupado com a hegemonia do navegador baseado no Chromium e há poucas outras opções que não são rigidamente controladas (WebKit) ou desaparecem lentamente (Firefox). O Ladybird ainda não pretende estar completo ou pronto, mas está se desenvolvendo rapidamente.


Então, ao pesquisar no Ladybird, descobri que era um navegador projetado para um sistema operacional igualmente exclusivo e fiquei intrigado! Para esclarecer, o Serenity não é outro skin Linux ou BSD. É algo construído desde o início, mas fortemente inspirado por sistemas operacionais modernos e clássicos. Ele pretende ser um sistema operacional totalmente funcional e utilizável para uso diário.


Nesta postagem, analiso a criação e a execução do Ladybird e do SerenityOS no meu M1 MacBookPro. O uso do Apple Silicon apresentou algumas complexidades, mas não muitas, e a comunidade do projeto é prestativa e comunicativa quando você enfrenta problemas.



Construindo e executando o Ladybird

Inicialmente construído como um experimento na criação de um navegador com as bibliotecas HTML do SerenityOS, recentemente, ele se transformou em algo que poderia ser uma nova opção de navegador multiplataforma.

Ele usa a biblioteca Qt UI, portanto não parece totalmente multiplataforma, mas pode ser usado em todas as plataformas que suportam Qt e significa que há muito espaço para melhorias adicionais.

Não tive problemas em seguir os pré-requisitos de compilação e as instruções para a plataforma de sua escolha . Desde a versão 6.2, o Qt oferece suporte ao Apple Silicon, então nenhum deles apresentou um problema para mim. Só que eu tive que instalar o Xcode. Houve um ponto em que apenas instalar as ferramentas de linha de comando da Apple era suficiente, mas acho que preciso cada vez mais de ferramentas fornecidas apenas pelo Xcode.


As etapas de compilação demoram um pouco e, em seguida, o navegador deve abrir. O foco inicial do navegador era ajudar as pessoas a depurar os aplicativos que estavam construindo com as bibliotecas HTML do Serenity, então há muitas ferramentas de depuração disponíveis, mas não muito para os usuários finais ainda. Inicialmente, tive um problema de renderização de fonte, provavelmente devido à minha tela Retina, mas uma pergunta no servidor Serenity Discord obteve uma resposta rápida (isso é específico para macOS).


Clique com o botão direito do mouse no binário construído em Build/ladybird e abra o arquivo Contents/info.plist (provavelmente no Xcode, mas qualquer editor serve. Altere o valor de NSHighResolutionCapable para "NO" e reinicie. A renderização do texto ainda parece um pouco estranho, mas é legível.


Percebi que o Ladybird não renderiza áudio ou vídeo. Se é porque ainda não implementou esse recurso de HTML ou devido a problemas de licenciamento, não tenho certeza.

Construindo e executando o SerenityOS

Construir e executar um navegador é uma coisa, construir e executar um sistema operacional inteiro é algo totalmente mais complexo. Como o Serenity foi projetado para sistemas X86_64, isso também significa que eu, como usuário do Apple Silicon, preciso executá-lo em um ambiente emulado. Felizmente, como o Serenity é um sistema operacional completo, a comunidade geralmente assume que você deseja executá-lo em uma máquina virtual e já forneceu etapas nos scripts de execução para usar o QEMU. Com algumas etapas extras, você também pode fazer isso funcionar ao executar no Apple Silicon, embora com uma espécie de queda no desempenho.


Primeiro, segui as instruções de pré-requisito de compilação do macOS e, para usuários do Linux, existem diferentes instruções de pré-requisito . Então você pode retornar às instruções gerais de construção . Todos funcionaram bem, mas levaram muito tempo, o que é razoável para a construção de um sistema operacional.

Inicialmente, a execução do Serenity falhou no estágio QEMU, e eu já havia experimentado alguns problemas com o QEMU para um artigo geral de virtualização e emulação do macOS no qual estou trabalhando. No entanto, outra resposta rápida no servidor Discord e eu tive uma solução.


Em run.sh na linha 256 (no momento da escrita), adicione o seguinte:


 -machine pc-i440fx-7.0


Todo esse bloco define a máquina virtual QEMU que o Serenity usará e " pc-i440fx-7.0 " define uma configuração de PC específica. Depois de adicionar isso, a execução do Serenity funcionou. É lento devido ao uso de um processador emulado, mas apenas um pouco, com um segundo de atraso cada vez que clico em algo. Não utilizável no dia-a-dia, mas aceitável para fins de teste.


O Serenity definitivamente tem as primeiras vibrações da interface do usuário do Windows, mas com uma mentalidade Linux. Não há um gerenciador de pacotes oficial, mas as portas estão disponíveis para compilar arquivos . Em vez disso, ele agrupa muitos aplicativos comuns com a compilação do sistema operacional. Há um editor de código, um navegador (não o Ladybird), jogos e muito mais.

De volta para o Futuro

Aí está. Com alguns ajustes e muita espera por downloads e compilações, você também pode executar um navegador e sistema operacional completamente novos e exclusivos! Não tenho certeza de qual é o objetivo final do projeto Serenity, pois começou como um projeto de paixão para os principais mantenedores e se tornou algo maior. Essa é uma das coisas que eu amo sobre o projeto. É criado inteiramente por pessoas que apreciam o processo de criação de algo de que se orgulham, e o mundo do código aberto precisa de mais projetos como esse.


É o mês do hacktoberfest, se você gosta de projetos de código aberto como o SerenityOS, conte-nos sobre suas experiências contribuindo para o código aberto usando este prompt .


Qual é ou foi o seu sistema operacional favorito? Deixe-nos saber usando este prompt de escrita .