🎨

CEST OS. Your modern simple operating system from scratch.

Overview

📍
Our goal is to make a modern simple kernel for learning purposes, not a fully optimized state-of-art operating system such as Ubuntu, Arch Linux, etc.

Demo

https://cest.sanchezcarlosjr.com/

Code

https://github.com/sanchezcarlosjr/cest

Keywords

operating system, kernel

Introduction

Background

Goals

Domain understanding

Functional requirements

Non-Functional Requirements

The Open Group Base Specifications Issue 7, 2018 edition. (2022, September 11). Retrieved from https://pubs.opengroup.org/onlinepubs/9699919799.2018edition

Design

cest
│
└───boot # uefi boot
   startup.h
└───lib # libraries such that users can build on top of them
   └───libc # standard C library
      stdio.h
      stdlib.h
      string.h
└───kernel # load arquitechture specific interfaces
  └───interrupt
  └───memory
  └───proc

Lessons

Step 0 Install tools

We suppose you know how to install the docker.

  1. Clone repository
git clone [email protected]:sanchezcarlosjr/cest.git
  1. docker compose up

Assignment

Process

References

https://rua.ua.es/dspace/bitstream/10045/124698/1/Desarrollo_de_un_kernel_academico_para_arquitecturas_Martinez_Garcia_Ernesto.pdf

ecomaikgolf. (2022, October 29). alma. Retrieved from https://github.com/ecomaikgolf/alma

https://forum.osdev.org/viewtopic.php?f=1&t=32412

Absurdponcho. (2022, October 29). PonchoOS. Retrieved from https://github.com/Absurdponcho/PonchoOS/tree/main

[edk2] Handling hardware interrupts in EFI. (2022, October 29). Retrieved from https://edk2-devel.narkive.com/ht2Bda8v/edk2-handling-hardware-interrupts-in-efi

JSLinux. (2021, January 09). Retrieved from https://bellard.org/jslinux

AT&T assembly