SerenityOS - un SO tipo Unix con una GUI de los 90
(serenityos.org)-
Un SO con la sensación de combinar la UI de Windows/Mac de finales de los 90 con un núcleo *nix de finales de los 2000
-
Empezó como un proyecto de una sola persona y lleva 3 años creciendo con el apoyo de la comunidad
-
Desde el kernel hasta el navegador web y el IDE, todo fue "desarrollado a mano desde cero, sin librerías externas"
→ una variante de C++ moderno con su propia biblioteca estándar
Repo: https://github.com/SerenityOS/serenity
- Funciones del kernel
→ kernel x86 (32 bits) / x86_64 (64 bits) con soporte para multihilo preventivo
→ stack IPv4 (ARP, TCP, UDP, ICMP)
→ sistema de archivos ext2
→ soporte para señales POSIX
→ soporte para el sistema de archivos /proc
- Servicios del sistema
→ daemon de inicio/sesión (SystemServer)
→ servidor de ventanas con composición (WindowServer)
→ administrador de consola de texto (TTYServer)
→ cliente DNS (LookupServer)
→ servidor de protocolos de red (RequestServer y WebSocket)
→ daemon de sonido con mezcla por software (AudioServer)
→ notificaciones de escritorio (NotificationServer)
→ servidor HTTP (WebServer)
→ servidor Telnet (TelnetServer)
→ cliente DHCP (DHCPClient)
- Bibliotecas
→ plantillas y contenedores de C++ (AK)
→ bucle de eventos y utilidades (LibCore)
→ biblioteca de gráficos 2D (LibGfx)
→ biblioteca compatible con OpenGL 1.x (LibGL)
→ toolkit GUI (LibGUI)
→ biblioteca de comunicación entre procesos (LibIPC)
→ motor HTML/CSS (LibWeb)
→ motor de JavaScript (LibJS)
→ Markdown (LibMarkdown)
→ audio (LibAudio)
→ procesamiento digital de señales/cadenas de sintetizador (LibDSP)
→ base de datos PCI (LibPCIDB)
→ emulación de terminal (LibVT)
→ E/S de protocolos de red fuera de proceso (LibProtocol)
→ funciones matemáticas (LibM)
→ manejo de archivos ELF (LibELF)
→ hilos POSIX (LibPthread)
→ hilos de más alto nivel (LibThreading)
→ seguridad de la capa de transporte (LibTLS)
→ HTTP y HTTPS (LibHTTP)
→ IMAP (LibIMAP)
- Funciones de userland
→ libc y userland tipo Unix
→ shell con pipes y redirección de E/S
→ sistema de ayuda en línea (tanto en terminal como en variantes GUI)
→ navegador web (Browser)
→ IDE de C++ (HackStudio)
→ sintetizador de escritorio (Piano)
→ cliente de correo electrónico (Mail)
→ varias apps de escritorio y juegos
→ temas de color
1 comentarios
Creo que es uno de los OS hechos como hobby más singulares que he visto. También impresiona que hayan implementado e incluido todas esas bibliotecas y aplicaciones.
El creador original, Andreas Kling, comenzó este proyecto en 2018 después de terminar un programa de rehabilitación de tres meses por adicción a las drogas, y como de pronto tenía mucho tiempo libre, lo empezó para ocupar el tiempo.
Antes había trabajado como desarrollador de WebKit en Apple y Nokia. Dicen que, por su experiencia trabajando en Apple, apunta a desarrollar todo por su cuenta sin depender de paquetes externos.
Desde mayo de este año, los aportes ya son lo bastante altos como para que ahora esté desarrollando SerenityOS a tiempo completo.
Actualmente tiene 232 patrocinadores en GitHub Sponsors. https://github.com/sponsors/awesomekling
Y en Patreon son 279: https://www.patreon.com/serenityos
Ya superó los 500 contribuidores, y en su canal de YouTube también sube actualizaciones mensuales del OS.
https://youtube.com/playlist/?list=PLMOpZvQB55bfp6ykOLayLqLrjcpv_Sw3P
A comienzos de 2019 eran videos de 10 minutos, pero últimamente las actualizaciones se han alargado a 30 o 40 minutos.
También es famoso el video en el que portó en una hora Devilution, una reingeniería inversa de Diablo 1, para que corriera en SerenityOS.
https://github.com/diasurgical/devilution
https://www.youtube.com/watch?v=ZOzZ8R4gphE