<p>- Un OS qui donne l’impression de combiner l’interface de Windows/Mac de la fin des années 1990 avec un cœur *nix de la fin des années 2000 <br />
- Démarré comme un projet solo, il continue de grandir depuis 3 ans grâce au soutien de la communauté <br />
- Du noyau au navigateur web et à l’IDE, tout est « développé à la main depuis zéro, sans bibliothèques externes »<br />
- Le système lui-même est développé en Serenity C++. <br />
→ une variante moderne du C++ avec sa propre bibliothèque standard<br />
<br />
Repo : https://github.com/SerenityOS/serenity<br />
<br />
- Fonctionnalités du noyau <br />
→ noyau x86 (32 bits) / x86_64 (64 bits) prenant en charge le multithreading préemptif <br />
→ pile IPv4 (ARP, TCP, UDP, ICMP)<br />
→ système de fichiers ext2 <br />
→ prise en charge des signaux POSIX <br />
→ prise en charge du système de fichiers /proc <br />
<br />
- Services système <br />
→ daemon de lancement/session (SystemServer)<br />
→ serveur de fenêtres avec composition (WindowServer)<br />
→ gestionnaire de console texte (TTYServer)<br />
→ client DNS (LookupServer)<br />
→ serveur de protocoles réseau (RequestServer and WebSocket)<br />
→ daemon audio avec mixage logiciel (AudioServer)<br />
→ notifications de bureau (NotificationServer)<br />
→ serveur HTTP (WebServer)<br />
→ serveur Telnet (TelnetServer)<br />
→ client DHCP (DHCPClient)<br />
<br />
- Bibliothèques<br />
→ templates et conteneurs C++ (AK)<br />
→ boucle d’événements et utilitaires (LibCore)<br />
→ bibliothèque graphique 2D (LibGfx)<br />
→ bibliothèque compatible OpenGL 1.x (LibGL)<br />
→ toolkit GUI (LibGUI)<br />
→ bibliothèque de communication interprocessus (LibIPC)<br />
→ moteur HTML/CSS (LibWeb)<br />
→ moteur JavaScript (LibJS)<br />
→ Markdown (LibMarkdown)<br />
→ audio (LibAudio)<br />
→ chaînes de traitement du signal numérique/synthétiseur (LibDSP)<br />
→ base de données PCI (LibPCIDB)<br />
→ émulation de terminal (LibVT)<br />
→ E/S de protocoles réseau hors processus (LibProtocol)<br />
→ fonctions mathématiques (LibM)<br />
→ gestion des fichiers ELF (LibELF)<br />
→ threading POSIX (LibPthread)<br />
→ threading de plus haut niveau (LibThreading)<br />
→ sécurité de la couche transport (LibTLS)<br />
→ HTTP et HTTPS (LibHTTP)<br />
→ IMAP (LibIMAP)<br />
<br />
- Fonctionnalités userland<br />
→ libc et userland de type Unix<br />
→ shell avec pipes et redirection d’E/S<br />
→ système d’aide en ligne (versions terminal et GUI)<br />
→ navigateur web (Browser)<br />
→ IDE C++ (HackStudio)<br />
→ synthétiseur de bureau (Piano)<br />
→ client e-mail (Mail)<br />
→ diverses applications desktop et jeux<br />
→ thèmes de couleurs</p>
1 commentaires