SerenityOS - um OS Unix-like implementado com GUI dos anos 90
(serenityos.org)-
Um sistema operacional com a sensação de misturar a UI do Windows/Mac do fim dos anos 1990 com um núcleo *nix do fim dos anos 2000
-
Começou como um projeto de uma pessoa só e vem crescendo há 3 anos com o apoio da comunidade
-
Do kernel ao navegador web/IDE, tudo foi "desenvolvido manualmente do zero, sem bibliotecas externas"
-
O próprio sistema é desenvolvido em Serenity C++.
→ uma variação de C++ moderno com sua própria biblioteca padrão
Repo : https://github.com/SerenityOS/serenity
- Recursos do kernel
→ kernel x86 (32bit) / x86_64 (64bit) com suporte a multithreading preemptivo
→ pilha IPv4 (ARP, TCP, UDP, ICMP)
→ sistema de arquivos ext2
→ suporte a sinais POSIX
→ suporte ao sistema de arquivos /proc
- Serviços do sistema
→ Daemon de inicialização/sessão (SystemServer)
→ Servidor de janelas com composição (WindowServer)
→ Gerenciador de console de texto (TTYServer)
→ Cliente DNS (LookupServer)
→ Servidor de protocolos de rede (RequestServer and WebSocket)
→ Daemon de som com mixagem por software (AudioServer)
→ Notificações da área de trabalho (NotificationServer)
→ Servidor HTTP (WebServer)
→ Servidor Telnet (TelnetServer)
→ Cliente DHCP (DHCPClient)
- Bibliotecas
→ Templates e contêineres C++ (AK)
→ Loop de eventos e utilitários (LibCore)
→ Biblioteca gráfica 2D (LibGfx)
→ Biblioteca compatível com OpenGL 1.x (LibGL)
→ Toolkit de GUI (LibGUI)
→ Biblioteca de comunicação entre processos (LibIPC)
→ Engine de HTML/CSS (LibWeb)
→ Engine de JavaScript (LibJS)
→ Markdown (LibMarkdown)
→ Áudio (LibAudio)
→ Cadeias de processamento de sinal digital/sintetizador (LibDSP)
→ Banco de dados PCI (LibPCIDB)
→ Emulação de terminal (LibVT)
→ E/S de protocolo de rede fora do processo (LibProtocol)
→ Funções matemáticas (LibM)
→ Manipulação de arquivos ELF (LibELF)
→ Threading POSIX (LibPthread)
→ Threading de nível mais alto (LibThreading)
→ Segurança da Camada de Transporte (LibTLS)
→ HTTP e HTTPS (LibHTTP)
→ IMAP (LibIMAP)
- Recursos do userland
→ libc e userland estilo Unix
→ Shell com pipes e redirecionamento de I/O
→ Sistema de ajuda online (tanto em variante terminal quanto GUI)
→ Navegador web (Browser)
→ IDE C++ (HackStudio)
→ Sintetizador desktop (Piano)
→ Cliente de e-mail (Mail)
→ Vários aplicativos desktop & jogos
→ Temas de cores
1 comentários
Acho que, entre os sistemas operacionais feitos por hobby, este parece um dos mais únicos. Também é impressionante terem implementado e incluído tantas bibliotecas e aplicativos.
O projeto foi iniciado pelo criador original, Andreas Kling, em 2018, depois de concluir um programa de reabilitação de três meses por dependência química e passar a ter mais tempo livre para ocupar.
Antes disso, ele era um desenvolvedor que trabalhou com WebKit na Apple e na Nokia. Dizem que, por causa da experiência que teve na Apple, ele prefere desenvolver tudo por conta própria, sem depender de pacotes externos.
Desde maio deste ano, as doações passaram a ser suficientes, então ele agora está desenvolvendo o SerenityOS em tempo integral.
Atualmente, 232 pessoas apoiam o projeto pelo GitHub Sponsors. https://github.com/sponsors/awesomekling
No Patreon, são 279 pessoas. https://www.patreon.com/serenityos
O projeto já passou de 500 contribuidores, e no canal do YouTube ele publica atualizações mensais do sistema operacional.
https://youtube.com/playlist/?list=PLMOpZvQB55bfp6ykOLayLqLrjcpv_Sw3P
No começo de 2019, esses vídeos tinham cerca de 10 minutos, mas hoje em dia as atualizações passaram a ter entre 30 e 40 minutos.
Também ficou famoso o vídeo em que ele portou em apenas uma hora o Devilution, uma reengenharia reversa de Diablo 1, para rodar no SerenityOS.
https://github.com/diasurgical/devilution
https://www.youtube.com/watch?v=ZOzZ8R4gphE