# SerenityOS

SerenityOS és un sistema operatiu de programari lliure i codi obert creat per Andreas Kling. Ha estat dissenyat per ser un Sistema Operatiu Unix-like inspirant-se en les interfícies gràfiques d'usuari dels anys 90. A causa de ser un sistema operatiu relativament nou, el seu desenvolupament de programari creix a un ritme ràpid. Algunes d'aquestes noves funcionalitats inclouen un entorn de desenvolupament integrat, un depurador visual, un navegador web amb un motor de Javascript, i un Shell gràfic orientat a l'ús d'escriptori.

## Història

Un antic desenvolupador d'Apple anomenat Andreas Kling començà a inicis de l'any 2019 un projecte personal de "teràpia" que esdevindria tot un nou sistema operatiu UNIX anomenat SerenityOS. Kling és un exaddicte que, després de sortir d'una clínica de desintoxicació, va decidir crear un sistema operatiu per enfocar la seva ment i fer profitós el seu temps, i per això anomenà al seu sistema operatiu SerenityOS en referència a la Pregària de la serenitat.
La primera amotivació fou que Kling tenia la inquietud de poder tenir el seu propi sistema operatiu d'ús diari creat de zero, fet per ell mateix i per a ell mateix, tot i que acceptaria idees i aportacions d'altres desenvolupadors. La segona motivació és que seria un procés de teràpia en el qual Kling es recuperaria de la seva addicció construint un sistema operatiu com a projecte a llarg termini per focalitzar la seva ment i ocupar el seu temps, d'una manera similar a qui decideix construir-se un cotxe o una casa. Però a mesura que el projecte anà creixent canvià la visió personal del projecte de "per qui era", i ja no es referiria només "a mi mateix" sinó al "nosaltres" en el que "vosaltres" respondria a tota la gent que col·laboraria a fer créixer el projecte, que donés suport al projecte i que decidís donar-hi suport.
Andreas va començar a escriure SerenityOS en el seu temps lliure mentre gravava el seu desenvolupament usant un programari de captura de pantalla per després pujar aquestes sessions a YouTube. A mitjan 2019 Andreas va crear un repositori a GitHub per compartir el seu projecte amb altra gent interessada a ajudar. Molta gent de tot el món va començar a contribuir a SerenityOS i en aquell moment rebé millores substancials de persones alienes a Andreas cada setmana. Andreas declarà que estava sorprès de tot les contribucions al desenvolupament i que en aquest moment té problemes amb prou feines revisant i publicant el treball d'altres contribuïdors.
Segons declaracions a la web oficial del projecte:
| « | (anglès) SerenityOS is a love letter to '90s user interfaces with a custom Unix-like core. It flatters with sincerity by stealing beautiful ideas from various other systems. Roughly speaking, the goal is a marriage between the aesthetic of late-1990s productivity software and the power-user accessibility of late-2000s *nix. This is a system by us, for us, based on the things we like. | (català) SerenityOS és una carta d'amor a les interfícies d'usuari dels anys 90 amb un nucli personalitzat semblant a Unix. Afalaga amb sinceritat robant idees belles de diversos altres sistemes. En termes generals, l'objectiu és un matrimoni entre l'estètica del programari de productivitat de finals dels anys noranta i l'accessibilitat dels usuaris avançats de finals dels anys 2000 * nix. Per a nosaltres, aquest és un sistema basat en les coses que ens agraden. | » |
| — SerenityOS ||||
En base SerenityOS és un sistema Unix, però que no pertany a les subfamílies GNU/Linux o *BSD tot i que com a llicència s'aculli a BSD), i està dotat d'una interfície gràfica vintage pensada per equips x86 d'escriptori. Compta amb el seu propi nucli multitasca, el seu propi gestor de finestres, una pila de xarxa IPv4 (protocols ARP, TCP, UDP i ICMP), sistema de fitxers Ext2, un conjunt d'eines gràfiques (LibGUI) i un altre conjunt de llibreries gràfiques 2D (LibGfx). Tot ha estat desenvolupat de zero amb llenguatge C++, experimentant lliurement, ja que no ha hagut de preocupar-se per compatibilitats futures dels clients ni per la retrocompatibilitat. Per exemple el sistema inclou una aplicació de full de càlcul que les fórmules s'escriuen usant JavaScript.
Segons explicaria Kling:
| « | (anglès) When we started, we imported four or five C standard library functions from NetBSD or something like that. But those were gotten rid of over time. We're free of third-party code now, with the exception of the build process. | (català) Quan vam començar, vam importar quatre o cinc funcions de biblioteca estàndard C de NetBSD o alguna cosa semblant. Però es van eliminar amb el pas del temps. Ara estem lliures de codi de tercers, a excepció del procés de compilació. | » |
| — Not-a-Linux distro review: SerenityOS is a Unix-y love letter to the ’90s (Ars Technica) ||||
Entre els ports de programes i videojocs disponibles podem trobar exemples com Quake, Doom o VVVVVV. I és tal l'èxit del projecte que el maig de 2021 per dedicar-se per complet al projecte gràcies al qual ingressava uns 2000 dòlars mensuals a través dels diversos canals de finançament.

## Característiques

SerenityOS està dissenyat per ser un sistema operatiu Unix simple, inspirat per les interfícies d'usuari populars en els ordinadors d'escriptori dels anys 90. Encara que està sent dissenyat en l'actualitat com una imatge per a màquina virtual, disposa d'un kernel de 32-bit amb multitasca apropiativa, una pila de xarxa IPv4, sistema d'arxius ext2, un conjunt d'eines per a creació d'interfícies gràfiques i un gestor de composició de finestres. Moltes noves funcionalitats estan sent afegides veloçment i Andreas té l'objectiu de poder executar SerenityOS fora d'una màquina virtual en algun moment encara no determinat.

## Referències

* ↑ «Ohjelmoija kehitti c++:lla uuden käyttöjärjestelmän, joka jäljittelee 1990-lukua». Tivi, 11-10-2019 [Consulta: 19 agost 2021].
* ↑ By. «Reaching Serenity: Porting Git To A Homebrew Operating System» (en anglès americà), 24-02-2020. [Consulta: 1r maig 2020].
* ↑ Jamsek, Mark. «SerenityOS: A Graphical Unix-like Operating System» (en anglès). jamsek, 18-10-2019. [Consulta: 1r maig 2020].
* 1 2 3 Merino, Marcos «SerenityOS, el sistema Unix con aspecto de Windows de los 90 creado desde cero por un solo hombre como proyecto terapéutico». Genbeta, 18-08-2021 [Consulta: 19 agost 2021].
* 1 2 Salter, Jim «Not-a-Linux distro review: SerenityOS is a Unix-y love letter to the ’90s». Ars Technica, 18-08-2021 [Consulta: 19 agost 2021].
* ↑ «SerenityOS». [Consulta: 19 agost 2021].
* ↑ Kling, Andreas «I quit my job to focus on SerenityOS full time». I like computers!, 28-05-2021 [Consulta: 19 agost 2021].
* ↑ «Serenity OS - Graphical Unix-like Operating System» (en anglès americà). HackersOnlineClub, 21-10-2019. [Consulta: 1r maig 2020].