All Projects → Arignir → chaos-2

Arignir / chaos-2

Licence: GPL-2.0 license
A hand-made SMP-aware kernel

Programming Languages

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

Projects that are alternatives of or similar to chaos-2

Aqeous
(Inactive, Checkout AvanaOS, Rewrite of this) This is a New Operating System (Kernel right now). Made completely from scratch, We aim to make a complete OS for Learning purpose
Stars: ✭ 23 (+15%)
Mutual labels:  os, osdev, operating-system, qemu, smp
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 (+1150%)
Mutual labels:  kernel, os, osdev, operating-system, unix-like
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 (+23335%)
Mutual labels:  kernel, os, osdev, operating-system, smp
Mbp Fedora
Stars: ✭ 129 (+545%)
Mutual labels:  kernel, iso, os, operating-system
LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (+90%)
Mutual labels:  kernel, os, osdev, operating-system
Wingos
a little 64bit operating system written in c++ with smp support
Stars: ✭ 361 (+1705%)
Mutual labels:  kernel, os, osdev, operating-system
nightingale
A small operating system where I experiment and learn osdev.
Stars: ✭ 86 (+330%)
Mutual labels:  kernel, os, osdev, operating-system
Emerald
An operating system written in C
Stars: ✭ 118 (+490%)
Mutual labels:  kernel, os, osdev, operating-system
Aquila
AquilaOS: UNIX-like Operating System
Stars: ✭ 413 (+1965%)
Mutual labels:  kernel, os, osdev, operating-system
Cardinal
Operating system designed to be fast and secure.
Stars: ✭ 20 (+0%)
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 (+230%)
Mutual labels:  kernel, os, osdev, operating-system
Dgos
Operating System
Stars: ✭ 90 (+350%)
Mutual labels:  kernel, osdev, operating-system, qemu
Unikraft
Unikraft is an automated system for building specialized POSIX-compliant OSes known as unikernels. (Core repository)
Stars: ✭ 183 (+815%)
Mutual labels:  kernel, os, osdev, operating-system
RocketOS
RocketOS is a Unix based OS that uses legacy BIOS and GRUB and is written in C17. It is being developed for educational purposes primarily, but it still is a serious project. It is currently in its infancy.
Stars: ✭ 23 (+15%)
Mutual labels:  kernel, os, osdev, operating-system
MandelbrotOS
A community driven OS by the youth
Stars: ✭ 172 (+760%)
Mutual labels:  kernel, os, osdev, operating-system
Floppybird
Floppy Bird (OS)
Stars: ✭ 836 (+4080%)
Mutual labels:  kernel, iso, os, qemu
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (+460%)
Mutual labels:  kernel, os, osdev, operating-system
poplar
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 217 (+985%)
Mutual labels:  kernel, os, osdev, operating-system
KnutOS
An x86_64 hobbyist OS written in C and Assembly
Stars: ✭ 16 (-20%)
Mutual labels:  kernel, os, osdev, operating-system
Dennix
Dennix is a unix-like hobbyist operating system written from scratch.
Stars: ✭ 53 (+165%)
Mutual labels:  kernel, os, osdev, operating-system

ChaOS is an SMP-aware kernel that we are doing as a part of our studies at Epitech.

Build Dependencies

  • make
  • gcc or clang (latest version, ideally)
  • grub-mkrescue and libisoburn (usually packed with other binaries as grub)
  • mtools
  • dialog
  • qemu (cpu emulator) optional

If you are using apt-get as your package manager (Debian, Ubuntu etc.), you can use this command to install all dependencies:

apt-get install qemu grub-pc-bin xorriso mtools

If you are using pacman as your package manager (ArchLinux, Manjaro etc.), you can use this command:

pacman -S dialog qemu grub libisoburn mtools

If you are using portage as your package manager (Gentoo), you can use this command instead:

emerge --ask sys-boot/libisoburn sys-fs/dosfstools sys-fs/mtools

If you are using an other package manager, well... Good luck! :p

Building an iso

First, tune as you wish the kernel's configuration with

make config

Then, build the kernel:

make kernel

To build a complete iso with grub installed (suitable for USB flash drives or virtual machines), run

make iso

Running with QEMU

If you want to run ChaOS through QEMU even if it's boring & useless right now, run

make run

Roadmap

  • Kernel options
  • Kernel architecture
  • Kernel placed in high-addresses
  • Boot
    • Multiboot
    • Paging setup
    • GDT setup
    • IDT setup
    • TSS setup
    • SMP setup
  • Basic drivers
    • VGA
    • PS/2 Keyboard
  • Memory
    • Physical Memory Management
    • Virtual Memory Management (mmap(), munmap() etc.)
    • Virtual segments of memory
    • Kernel heap (kalloc(), kfree(), krealloc())
  • ELF Program execution (exec())
  • Syscall interface and userspace (ring 3)
  • Multi process / threads
    • Scheduling
    • User Threads
    • Kernel threads
    • Processes (mix of clone(), exec() and exit())
  • Initrd loading, reading and writing
  • Device abstraction
  • Filesystem
    • Directory listing (opendir(), readdir(), closedir())
    • Creating and removing files/directories (mkfile(), mkdir(), remove())
    • File basic IO operations (open(), read(), write(), close())
    • File advanced IO operations (pipe(), dup())
    • File informations (stat())
  • User space programs (init, tty, shell, basic binaries such as echo, ls, rm, mkdir etc.)
  • Virtual filesystems (/proc, /dev)

🚀 Wanna participate?

Fork me!

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].