All Projects → MandelbrotOS → MandelbrotOS

MandelbrotOS / MandelbrotOS

Licence: MPL-2.0 License
A community driven OS by the youth

Programming Languages

c
50402 projects - #5 most used programming language
Makefile
30231 projects
assembly
5116 projects

Projects that are alternatives of or similar to MandelbrotOS

LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (-77.91%)
Mutual labels:  kernel, asm, os, osdev, operating-system
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (+6.98%)
Mutual labels:  kernel, asm, os, osdev, operating-system
beeos
A simple "Unix-like" kernel trying to be POSIX compliant
Stars: ✭ 103 (-40.12%)
Mutual labels:  kernel, os, osdev, operating-system
Emerald
An operating system written in C
Stars: ✭ 118 (-31.4%)
Mutual labels:  kernel, os, osdev, operating-system
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-90.7%)
Mutual labels:  kernel, os, osdev, operating-system
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (-34.88%)
Mutual labels:  kernel, os, osdev, operating-system
DentOS
Experimental Stand-alone 32-bit Kernel with Bootloader written in AT&T Assembly and Freestanding C
Stars: ✭ 32 (-81.4%)
Mutual labels:  kernel, os, osdev, operating-system
duckOS
Yet another hobby x86 UNIX-like operating system written in C and C++. Features a dynamically linked userspace, an in-house c standard library, and more! And yes, it runs DOOM.
Stars: ✭ 250 (+45.35%)
Mutual labels:  kernel, os, osdev, operating-system
Aquila
AquilaOS: UNIX-like Operating System
Stars: ✭ 413 (+140.12%)
Mutual labels:  kernel, os, osdev, operating-system
chaos-2
A hand-made SMP-aware kernel
Stars: ✭ 20 (-88.37%)
Mutual labels:  kernel, os, osdev, operating-system
Cardinal
Operating system designed to be fast and secure.
Stars: ✭ 20 (-88.37%)
Mutual labels:  kernel, os, osdev, operating-system
biefircate
Running x86-16 or x86-32 code from x86-64 UEFI; _very experimental_ • mirror of https://gitlab.com/tkchia/biefircate • developer notes at https://gitlab.com/tkchia/biefircate/-/blob/main/doc/NOTES.asciidoc
Stars: ✭ 47 (-72.67%)
Mutual labels:  kernel, os, osdev, operating-system
Reactos
A free Windows-compatible Operating System
Stars: ✭ 10,216 (+5839.53%)
Mutual labels:  kernel, os, osdev, operating-system
Toaru Nih
NOTICE: The ToaruOS-NIH Project has been MERGED UPSTREAM. This repository is now archived.
Stars: ✭ 66 (-61.63%)
Mutual labels:  kernel, os, osdev, operating-system
nightingale
A small operating system where I experiment and learn osdev.
Stars: ✭ 86 (-50%)
Mutual labels:  kernel, os, osdev, operating-system
Dennix
Dennix is a unix-like hobbyist operating system written from scratch.
Stars: ✭ 53 (-69.19%)
Mutual labels:  kernel, os, osdev, operating-system
SnowFlake
Technology is free, SnowFlakeOS
Stars: ✭ 38 (-77.91%)
Mutual labels:  kernel, os, osdev, operating-system
Toaruos
A completely-from-scratch hobby operating system: bootloader, kernel, drivers, C library, and userspace including a composited graphical UI, dynamic linker, syntax-highlighting text editor, network stack, etc.
Stars: ✭ 4,687 (+2625%)
Mutual labels:  kernel, os, osdev, operating-system
Wingos
a little 64bit operating system written in c++ with smp support
Stars: ✭ 361 (+109.88%)
Mutual labels:  kernel, os, osdev, operating-system
Unikraft
Unikraft is an automated system for building specialized POSIX-compliant OSes known as unikernels. (Core repository)
Stars: ✭ 183 (+6.4%)
Mutual labels:  kernel, os, osdev, operating-system

Welcome

Welcome to the Mandelbrot Operating System, a community driven OS by the youth. This OS is built by a humble (Or not so humble idk) group of teenagers over at Discord. We do this solely to have fun and to learn. We are not organized and are here to enjoy ourselves. Sounds appealing? Create a pull request!

About

This project is made for fun and learning. It's like tracing OS history, but with modern knowledge and without a lot of budget lol

Build Requirements

Arch/Manjaro

  • sudo pacman -S base-devel qemu nasm mtools

Debian/Ubuntu

  • sudo apt-get install build-essential qemu nasm mtools

Building the Toolchain

Mandelbrot depends on some tools, like the limine bootloader and the GNU Toolchain. To get these, run:

make toolchain

After it's done, you can head over to Building and Running.

Building and Running

To build the OS itself, make sure you have built the toolchain. After that, you can

make

It will run the QEMU emulator by default.

Using

By default the OS does nothing as we don't have a userland but stuff can be added to the kernel for testing purposes. There will often be remaining test code that is left over.

Notes

MandelbrotOS uses / as a root drive and all things are to be mounted on there.

Commiting

Mandelbrot is coded to some specific standards. They are

  • Use snake_case for all variables and functions
  • Use SCREAMING_SNAKE_CASE for all constants
  • Use include guards in all header files and make sure they follow the following format:
#ifndef __FILENAME_H__
#define __FILENAME_H__

// Code here

#endif
  • Try to structure the file so that you include everything first, declare all variables second and then write all functions last
  • Code in GNU99 compatible C and NASM compatible assembler
  • Use stdint.h and stddef.h variable declerations for standard number sizes
  • Make sure all custom typedefs end it _t
  • Once everything is done, clang format with the command bash -c 'find src/. -type f \\( -iname \\*.h -o -iname \\*.c \\) -exec clang-format -i -style="{IndentWidth: 2,TabWidth: 2,IndentGotoLabels: true,IndentCaseLabels: true,KeepEmptyLinesAtTheStartOfBlocks: true}" {} \\;'

Extern code

Mandelbrot uses code that is not it's own. You can see a list of this code and their authors at AUTHORS.md

Using code

This is an open source project. Reuse code. Just follow the license terms and we are good. :)

Note that the project description data, including the texts, logos, images, and/or trademarks, for each open source project belongs to its rightful owner. If you wish to add or remove any projects, please contact us at [email protected].