Skip to content

Cosmos is an operating system "construction kit". Build your own OS using managed languages such as C#, VB.NET, and more!

License

Notifications You must be signed in to change notification settings

CosmosOS/Cosmos

Folders and files

NameName
Last commit message
Last commit date

Latest commit

Jan 3, 2025
20b0880 ยท Jan 3, 2025
Sep 30, 2023
Feb 1, 2023
Mar 9, 2024
Aug 14, 2024
Oct 8, 2023
Jan 25, 2024
Jan 1, 2025
Sep 25, 2024
Jan 25, 2023
Nov 3, 2024
Apr 7, 2023
Dec 25, 2014
Sep 26, 2023
Apr 16, 2023
Mar 26, 2018
Jun 22, 2017
Mar 12, 2023
Nov 22, 2022
Mar 6, 2022
Jan 26, 2024
Dec 27, 2022
May 25, 2022
Mar 26, 2023
Jan 1, 2025
Jul 9, 2024
Mar 28, 2024
Nov 28, 2022
Oct 13, 2023
Feb 12, 2020
Nov 28, 2023


Cosmos (C# Open Source Managed Operating System) is an operating system development kit which uses .NET, alongside the custom IL2CPU compiler to convert (most) C# code into a working bare-metal OS. Despite C# in the name, any .NET-based language can be used, which includes: VB.NET, IronPython, F# and more. Cosmos itself and its kernel routines are primarily written in C#, and thus the Cosmos name.

In a project, Cosmos can be thought of as a compiler and a sort-of standard library for a project. It gives the user access to often hard to find or otherwise difficult to understand tools.


Features

The following is a non-exhaustive list of features that Cosmos offers:

  • Low level assembly access and pointer memory control
  • A basic filesystem
  • Most features found in the .NET core library
  • A CPU/FPU accelerated math library
  • A basic graphics interface
  • A basic network interface
  • A basic audio interface

Setting it up

Cosmos has an article here on how to do that.

Documentation

The Cosmos documentation can be found here.

If you still have any questions on how to use Cosmos, you can open a discussion or you can join the Discord server!

The devkit changelog can be found here.

Reporting an issue

If you think you found a bug in Cosmos, please check existing issues first before opening a new one. Do not open an issue if you need help with something in Cosmos that is not a bug, if you don't know how to code it's not a Cosmos issue for example.