All Projects → CPL-1 → CPL-1

CPL-1 / CPL-1

Licence: GPL-3.0 license
Operating system in C written for fun and glory

Programming Languages

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

Projects that are alternatives of or similar to CPL-1

scaraOS
A 32bit multiboot OS kernel for IA32 (PC/AT) systems.
Stars: ✭ 31 (-6.06%)
Mutual labels:  kernel, operating-system, operating-systems, i386
TravorOS
A simple OS running on Intel x86 architecture | No longer updating
Stars: ✭ 24 (-27.27%)
Mutual labels:  kernel, operating-system, i386
LudOS
A toy monolithic kernel written in C++
Stars: ✭ 38 (+15.15%)
Mutual labels:  kernel, operating-system, operating-systems
Toaru Nih
NOTICE: The ToaruOS-NIH Project has been MERGED UPSTREAM. This repository is now archived.
Stars: ✭ 66 (+100%)
Mutual labels:  kernel, operating-system, operating-systems
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 (+14103.03%)
Mutual labels:  kernel, operating-system, operating-systems
Libhermit Rs
libhermit-rs: A Rust-based library operating system
Stars: ✭ 558 (+1590.91%)
Mutual labels:  kernel, operating-system, operating-systems
Tofita
🍬 All-new kernel for @GreenteaOS
Stars: ✭ 112 (+239.39%)
Mutual labels:  kernel, operating-system, operating-systems
Willos
💾 A minimal kernel (just a hobby, won't be big and professional). // Work In Progress
Stars: ✭ 163 (+393.94%)
Mutual labels:  kernel, operating-system
Hdk
(unofficial) Hyper-V® Development Kit
Stars: ✭ 166 (+403.03%)
Mutual labels:  kernel, operating-systems
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 (-30.3%)
Mutual labels:  operating-system, i386
Cyjon
A simple, clean code, multi-tasking operating system written in pure assembly language for 64-bit processors from the AMD64 family.
Stars: ✭ 184 (+457.58%)
Mutual labels:  kernel, operating-system
Synestiaos
The Synestia Operating System
Stars: ✭ 159 (+381.82%)
Mutual labels:  kernel, operating-system
Neu Os
Based on linux0.11, break it down, then reassemble (For NEU Lab use)
Stars: ✭ 143 (+333.33%)
Mutual labels:  kernel, operating-system
Zen
Experimental operating system written in Zig
Stars: ✭ 177 (+436.36%)
Mutual labels:  kernel, operating-system
Os One
一个自制的树莓派操作系统
Stars: ✭ 132 (+300%)
Mutual labels:  kernel, operating-system
Pebble
Microkernel and userspace written in Rust exploring modern ideas
Stars: ✭ 184 (+457.58%)
Mutual labels:  kernel, operating-system
Build
Armbian Linux build framework
Stars: ✭ 1,827 (+5436.36%)
Mutual labels:  kernel, operating-system
Pluto
An x86 kernel written in Zig
Stars: ✭ 172 (+421.21%)
Mutual labels:  kernel, operating-system
Ultra
An operating system that doesn't try to be UNIX. Made completely from scratch with its own bootloader. 😊
Stars: ✭ 48 (+45.45%)
Mutual labels:  operating-system, i386
Frosted
Frosted: Free POSIX OS for tiny embedded devices
Stars: ✭ 194 (+487.88%)
Mutual labels:  kernel, operating-system

CPL-1 Operating System

Process Test image

CPL-1 kernel init log on i686 CPUs

What is CPL-1

CPL-1 Operating System is a hobby operating system project with the goal of creating lightweight and portable operating system that can build itself. It is called like that as the kernel for i686 target runs in ring 1 to avoid variable length interrupt frames (previously CPL-1 was only for i686 processors, so that was quite influential).

What targets are supported by CPL-1

Currently there is only support for i686 CPUS with PIC 8259 interrupt controller and PCI configuration space access mechianism v1.0

Features

  • Process Subsystem
  • Virtual File System
  • NVMe controllers driver
  • FAT32 readonly filesystem support
  • Basic userspace support
  • PS/2 keyboard driver
  • VBE framebuffer driver
  • Custom C standard library (very WIP)
  • Basic shell and utilities

What I need to build CPL-1?

To build CPL-1 kernel for i686 target, you need to build GCC cross-compiler for i686-elf target (don't forget to add to PATH) and install NASM. Additionally, util-linux and mtools are needed to create FAT32 partition.

How I build CPL-1?

Step 1. Configure the system. To generate the default config, run

python3 build-manager.py configure

Step 2. Build system

python3 build-manager.py build

Step 3. Run system

python3 build-manager.py run

Step 4. Clean up

python3 build-manager.py clean

Contributing

While the code is a bit messy in places, PRs are more than welcome! A few things to note:

  • Format your code with clang-format using .clang-format config in the repo. If you are using vscode, you can just install vscode extensions
  • When comitting, use the following format for commit names: subsystem: Description.
  • Join discord if you have any questions with regards to how to contribute etc

Licensing

CPL-1 was relicensed to GPLv3.

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