{{Short description|Hobbyist desktop computing operating system}} {{Infobox OS | name = SerenityOS | logo = File:LadyBall-SerenityOS.png | logo size = 64px | logo caption = | logo alt = LadyBall | screenshot = File:SerenityOS 2023-07-14.png | caption = The SerenityOS Desktop | screenshot_alt = The SerenityOS Desktop as it was on October 22, 2022. In the screenshot you can see the Text Editor, the File Manager, the Terminal emulator and the Ladybird web browser. A CatDog is sitting on the text editor. | collapsible = | version of = <!-- For articles about releases of operating systems ONLY --> <!--| author = Andreas Kling-->| developer = the SerenityOS community<!-- Name of main developer or sponsor--> | family = [[Unix-like]]<!-- "Unix-like" or "Microsoft Windows" --> | working state = Current<!-- "Current", "Discontinued" (operating systems), or "No longer supported" (releases) --> | source model = [[Open-source software|Open source]]<!-- "[[Open-source software|Open source]]", "Closed-source", or "Source-available" --> | released = {{Start date and age|2018|10|10}}<!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | discontinued = <!-- DON'T use this for articles about releases of operating systems. --> | RTM date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} ONLY for articles about OS releases --> | GA date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} ONLY for articles about OS releases --> | latest release version = | latest release date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | latest preview version = | latest preview date = <!-- {{Start date and age|YYYY|MM|DD|df=yes/no}} --> | repo = <!-- {{URL|https://example.com}} --> | marketing target = | programmed in = Serenity [[C++]] | language = [[English language|English]]<!-- Supported human languages (English, French, Italian, Arabic, ...) --> | language count = | language footnote = | update model = <!-- APT, Windows Update, etc. --> | package manager = [https://github.com/SerenityOS/serenity/tree/master/Ports Ports] (as part of the build system) | supported platforms = [[x86-64]], [[ARM architecture|ARM]], [[RISC-V]] <!-- [[IA-32]], [[x86-64]], [[Itanium]], [[ARM architecture|ARM]], etc. --> | kernel type = Monolithic<!-- Hybrid, Monolithic, Microkernel, Exokernel, Nanokernel, etc. --> | userland = [[POSIX]] | ui = [[GUI]] | license = [[BSD-2-Clause]] | influenced_by = | influenced = | preceded by = | succeeded by = | website = {{URL|https://www.serenityos.org}}<!-- {{URL|www.example.org}} --> | support status = <!-- For articles about releases of operating systems ONLY --> | other articles = }}
'''SerenityOS''' is a [[free and open source]] desktop [[operating system]]. It features a [[Kernel preemption|preemptive kernel]], currently supports [[x86-64]], [[ARM architecture family|ARM]], and [[RISC-V]]<ref name="dec2022">{{cite web |title=SerenityOS update (December 2022) |url=https://www.youtube.com/watch?v=Q3PyN2Ctrpg |website=[[YouTube]]}}</ref><ref>{{Cite web |title=serenity/README.md at master · SerenityOS/serenity |url=https://github.com/SerenityOS/serenity/blob/master/README.md |access-date=2025-01-29 |website=GitHub |language=en}}</ref> based computers, and hosts multiple complex applications including its own [[web browser]] and [[integrated development environment]] (IDE).<ref name="serenity">{{cite web |last=Kling |first=Andreas |title=SerenityOS |url=https://www.serenityos.org/ |access-date=2021-08-26}}</ref><ref name="ars21"> {{Cite web |last=Salter |first=Jim |date=2021-08-18 |title=Not-a-Linux distro review: SerenityOS is a Unix-y love letter to the '90s |url=https://arstechnica.com/gadgets/2021/08/not-a-linux-distro-review-serenityos-is-a-unix-y-love-letter-to-the-90s/ |url-status=live |archive-url=https://web.archive.org/web/20210821122700/https://arstechnica.com/gadgets/2021/08/not-a-linux-distro-review-serenityos-is-a-unix-y-love-letter-to-the-90s/ |archive-date=2021-08-21 |access-date=2021-08-18 |website=[[Ars Technica]] |language=en-us}} </ref>
SerenityOS began development in 2018 as a solo project by Swedish programmer Andreas Kling. It is maintained by a community of [[Hobbyist operating system|hobbyists]] on [[GitHub]] where it is described as "a love letter to '90s user interfaces with a custom Unix-like core"<ref>{{Cite web |title=The Serenity Operating System 🐞 |url=https://github.com/SerenityOS/serenity?tab=readme-ov-file#about |website=GitHub}}</ref> that "does not cater to non-technical users".<ref>{{Cite web |title=serenity/Documentation/FAQ.md at master · SerenityOS/serenity |url=https://github.com/SerenityOS/serenity/blob/master/Documentation/FAQ.md |access-date=2024-12-04 |website=GitHub |language=en}}</ref>
== History == [[File:Buggie-SerenityOS.png|thumb|264x264px|Buggie, the SerenityOS mascot]] Andreas Kling previously worked at [[Nokia]] and later at [[Apple Inc.|Apple]] on the [[WebKit]] team.<ref>{{Cite web |last=Proven |first=Liam |title=SerenityOS: A remarkable achievement for a small project |url=https://www.theregister.com/2022/03/31/serenityos/ |access-date=2023-05-19 |website=[[The Register]] |language=en}}</ref> He began developing the project in part to aid his recovery from [[Substance use disorder|addiction]], and as such the name of the project derives from the [[Serenity Prayer]].<ref name="kling21"/> Starting in 2021, Kling began working full-time on SerenityOS, supported by community donations.<ref name="kling21">{{Cite web|last=Kling|first=Andreas|date=2021-05-28|title=I quit my job to focus on SerenityOS full time|url=https://awesomekling.github.io/I-quit-my-job-to-focus-on-SerenityOS-full-time/|language=en-GB}}</ref> On June 3rd, 2024, he stepped down as a project lead from the project (keeping his role as a maintainer) to work on the [[Ladybird (web browser)|Ladybird browser]].<ref name=":0">{{Cite web |last=Kling |first=Andreas |date=2024-06-03 |title=I'm forking Ladybird and stepping down as SerenityOS BDFL |url=https://awesomekling.substack.com/p/forking-ladybird-and-stepping-down-serenityos |access-date=2024-06-04 |website=Andreas Kling}}</ref> Three months later, on October 4th, 2024, he removed himself from a maintainer list in the SerenityOS repository,<ref>{{Cite web |last=Kling |first=Andreas |date=2024-10-04 |title=Meta: Remove myself from maintainer list |url=https://github.com/SerenityOS/serenity/commit/44c9fafbe4356966569c5d8ee8061e923e5c5515 |access-date=2024-10-10 |website=GitHub}}</ref> and updated his mail mapping alias from <code>kling</code> at <code>serenityos.org</code> to <code>andreas</code> at <code>ladybird.org</code> in the forked Ladybird repository.<ref>{{Cite web |last=Kling |first=Andreas |date=2024-10-04 |title=Meta: Update my e-mail address everywhere |url=https://github.com/LadybirdBrowser/ladybird/commit/cc4b3cbaccdaa8f89c492f3fa3a4e909fb839fd9 |access-date=2024-10-10 |website=GitHub}}</ref>
== Features and development == SerenityOS aims to be a modern [[Unix-like]] operating system, with a [[look and feel]] that emulates 1990s operating systems such as [[Windows 9x|Microsoft Windows]] and [[Classic Mac OS|Mac OS]].<ref name="tivi20"> {{Cite web|last=TIVI|title=Ohjelmoija kehitti c++:lla uuden käyttöjärjestelmän, joka jäljittelee 1990-lukua|url=https://www.tivi.fi/uutiset/ohjelmoija-kehitti-clla-uuden-kayttojarjestelman-joka-jaljittelee-1990-lukua/4c5511d2-0dc5-4a0a-a0b6-ec6d12f83b7c|access-date=2021-08-18|website=Tivi|language=fi|archive-date=2020-05-16|archive-url=https://web.archive.org/web/20200516163131/https://www.tivi.fi/uutiset/ohjelmoija-kehitti-clla-uuden-kayttojarjestelman-joka-jaljittelee-1990-lukua/4c5511d2-0dc5-4a0a-a0b6-ec6d12f83b7c|url-status=live}} </ref> Incorporating third-party code into the system is discouraged. The web browser, for instance, does not use a pre-existing [[Browser engine|web engine]] such as [[WebKit]], instead using its own Browser (built on LibWeb engine). There is a collection of ported software, such as [[GCC (software)|GCC]], [[Git]] and [[Doom (1993 video game)|Doom]], with varying levels of functionality.<ref>{{Cite web|title=serenity/Ports at master · SerenityOS/serenity|url=https://github.com/SerenityOS/serenity|access-date=2021-10-07|website=GitHub|language=en}}</ref>
Development does not adhere to a [[Software release life cycle|release cycle]]; as such, there are no releases.<ref>{{Cite web|title=Releases · SerenityOS/serenity|url=https://github.com/SerenityOS/serenity|access-date=2021-10-07|website=GitHub|language=en}}</ref> Additionally, no [[Software distribution|binary distributions]] are provided and prospects are expected to build the system from [[Source code|source]].<ref>{{Citation|title="Where are the ISO images?" in: serenity/FAQ.md|date=2021-10-07|url=https://github.com/SerenityOS/serenity/blob/350c5a751dfaa36a5f67cb32472da32c2842572a/Documentation/FAQ.md|publisher=SerenityOS|access-date=2021-10-07}}</ref> The system is written in what the authors call "Serenity C++",<ref>{{Citation|title=Documentation/CodingStyle.md|date=2021-10-07|url=https://github.com/SerenityOS/serenity/blob/49259777efd6e1db22ee9ff6a89f373fa5f8b5d6/Documentation/CodingStyle.md|publisher=SerenityOS|access-date=2021-10-07}}</ref> a [[C++]] [[programming style|coding style]] that avoids [[Exception handling|exceptions]] and features its own [[standard library]].<ref>{{cite web |url=https://blog.jetbrains.com/clion/2021/11/talking-to-serenityos-contributors/ |date=2021-11-12 |access-date=2024-01-13 |website=blog.jetbrains.com |title=Talking to SerenityOS Contributors About a Scratch-built C++ Developer's Playground in Modern C++|language=en |last=Kazakova |first=Anastasia |archive-url=https://web.archive.org/web/20231222105349/https://blog.jetbrains.com/clion/2021/11/talking-to-serenityos-contributors/ |archive-date=2023-12-22 |url-status=live}}</ref>
The relative popularity of SerenityOS compared to other hobbyist systems is in part due to the modest success of Kling's YouTube channel, where he uploaded videos of himself developing parts of the system alongside demos and monthly progress updates (until April 2024, where the last update was hosted by Andrew Kaster, the project’s core developer).<ref name="hackaday20"> {{Cite web|last=Gregori|first=Sven|date=2020-02-24|title=Reaching Serenity: Porting Git To A Homebrew Operating System|url=https://hackaday.com/2020/02/23/reaching-serenity-porting-git-to-a-homebrew-operating-system/|url-status=live|access-date=2021-08-18|website=[[Hackaday]]|language=en-US|archive-date=2020-02-24|archive-url=https://web.archive.org/web/20200224150611/https://hackaday.com/2020/02/23/reaching-serenity-porting-git-to-a-homebrew-operating-system/}}</ref>
Work is currently at the early stages to support [[AArch64]] and [[RISC-V]] based processors.<ref name="may2024">{{cite web |title=SerenityOS update (April 2024) |url=https://www.youtube.com/watch?v=nWjAxNHXd_8 |website=[[YouTube]]}}</ref>
=== Web browser === {{Main|Ladybird (web browser)}} SerenityOS includes a version of the Ladybird web browser, built from the ground up using its internal libraries LibWeb, LibJS and LibWasm.<ref>{{Cite web |last=Proven |first=Liam |title=Serenity OS browser, Ladybird, now cross-platform |url=https://www.theregister.com/2023/10/17/serenity_os_turns_five/ |access-date=2024-04-06 |website=[[The Register]] |language=en}}</ref><ref>{{Cite web |last=By |date=2023-10-10 |title=Jenny's Daily Drivers: SerenityOS, And In Particular, Ladybird |url=https://hackaday.com/2023/10/10/jennys-daily-drivers-serenityos-and-in-particular-ladybird/ |access-date=2024-04-06 |website=Hackaday |language=en-US}}</ref><ref>{{Citation |title=LadybirdBrowser/ladybird |date=2024-07-17 |url=https://github.com/LadybirdBrowser/ladybird?tab=readme-ov-file#features |access-date=2024-07-17 |publisher=Ladybird}}</ref> Andreas Kling develops it alongside paid and volunteer contributors.<ref>{{Cite web |title=Ladybird |url=https://ladybird.org/ |access-date=2024-07-17 |website=ladybird.org |language=en}}</ref> On June 3rd, 2024, Kling announced his plans to fork Ladybird and begin development on the browser as a separate project.<ref name=":0" /> On July 1, 2024, in collaboration with [[Chris Wanstrath]], Kling announced the founding of the Ladybird Browser Initiative, a 501(c)(3) nonprofit to support the development of the browser.<ref>{{Cite web |title=Announcing the Ladybird Browser Initiative |url=https://ladybird.org/announcement.html |access-date=2024-07-01 |website=ladybird.org |language=en}}</ref><ref>{{Cite AV media |url=https://www.youtube.com/watch?v=k9edTqPMX_k |title=Ladybird announcement |date=2024-07-01 |last=Andreas Kling |access-date=2024-07-01 |via=YouTube}}</ref>
As of July 2024, development of Ladybird mostly occurs in its own repository, with changes sometimes being synced to the SerenityOS version.<ref>{{Cite web |title=Pull requests · SerenityOS/serenity |url=https://github.com/SerenityOS/serenity/pulls?q=is%3Apr+Cherry-pick |access-date=2024-07-17 |website=GitHub |language=en}}</ref>
== Reception ==
Jim Salter of ''[[Ars Technica]]'' regarded the use of the [[ext2|ext2 file system]] as his least favorite feature of the operating system. Compared to [[TempleOS]] (another operating system well known in the hobbyist community), he considered SerenityOS more accessible.<ref name="ars21"/> For less technical users that are looking for a mid–to–late 90s reminiscent visual style, the [[Xfce]] Chicago95 theme as well as the Redmond Project have been recommended instead.<ref>{{Cite web|last=Beschizza|first=Rob|date=2021-08-17|title=A refined 90s-style operating system you can actually use|url=https://boingboing.net/2021/08/17/a-refined-90s-style-operating-system-you-can-actually-use.html|url-status=live|access-date=2021-08-18|website=[[Boing Boing]]|language=en-US|archive-date=2021-08-21|archive-url=https://web.archive.org/web/20210821122700/https://boingboing.net/2021/08/17/a-refined-90s-style-operating-system-you-can-actually-use.html}}</ref>
== References == {{reflist|30em}}
== External links == {{Commons category|SerenityOS}} * {{Official website|https://www.serenityos.org}}
{{Hobbyist operating systems}} {{Unix}}
[[Category:Hobbyist operating systems]] [[Category:Unix variants]] [[Category:Free software programmed in C++]] [[Category:Free software operating systems]] [[Category:Software using the BSD license]] [[Category:2018 software]] [[Category:X86-64 operating systems]]