Cosmos (operating system)

Cosmos
Screenshot of an OS made with Cosmos, AuraOS, presenting a GUI creation possibility
DeveloperCosmos Project
Written inC#, X#
Working stateActive
Source modelOpen source
Latest releaseRelease 20221121 / 21 November 2022; 23 months ago (2022-11-21)
Repositorygithub.com/CosmosOS
Available inEnglish
Platformsx86
Kernel typeMonolithic
LicenseBSD
Official websitewww.gocosmos.org

C# Open Source Managed Operating System (Cosmos) is a toolkit for building GUI and command-line based operating systems, written mostly in the programming language C# and small amounts of a high-level assembly language named X#. Cosmos is a backronym,[1] in that the acronym was chosen before the meaning. It is open-source software released under a BSD license.

As of 2022, Cosmos encompasses an ahead-of-time (AOT) compiler named IL2CPU to translate Common Intermediate Language (CIL) into native instructions. Cosmos compiles user-made programs and associated libraries using IL2CPU to create a bootable native executable that can run independently. The resulting output can be booted from a USB flash drive, CD-ROM, over a network via Preboot Execution Environment (PXE), or inside a virtual machine. Recent releases also allow deploying to certain x86 embedded devices over Universal Serial Bus (USB). While C# is the primary language used by developers (both on the backend and by end users of Cosmos), many CLI languages can be used, provided they compile to pure CIL without the use of Platform Invocation Services (P/Invokes). Cosmos is mainly intended for use with .NET.

Cosmos does not aim to become a full operating system, but rather a toolkit to allow other developers to simply and easily build their own operating systems using .NET. It also functions as an abstraction layer, hiding much of the inner workings of the hardware from the eventual developer.

Older versions of Cosmos were released in Milestones, with the last being Milestone 5 (released August 2010). More recently, the project switched to simply naming new releases after the latest commit number.

Releases of Cosmos are divided into two types: the Userkit, and the Devkit. The Userkit is a pre-packaged release that is updated irregularly, as new and improved features are added. Userkits are generally considered stable, but do not include recent changes and may lack features. The Devkits, which refers to the source code of Cosmos, are usually stable but may have some bugs. They can be acquired on GitHub and must be built manually.[1] Git is used for source control management.

Most work on Cosmos is currently aimed at improving debugger functionality and Microsoft Visual Studio integration. Kernel work is focused on implementing file systems, memory management, and developing a reliable network interface. Limine serves as the project's bootloader; in older versions of the toolkit, GRUB was used instead.[2]

  1. ^ a b Cosmos website: project repository at GitHub
  2. ^ "Change bootloader to Limine · Pull Request #2521 · CosmosOS/Cosmos · GitHub". GitHub.