https://github.com/Tix3Dev/apoptOS
A modern x86_64 UNIX-like microkernel-based operating system
https://github.com/Tix3Dev/apoptOS
assembly c hobby-kernel hobby-os limine microkernel operating-system os osdev x86-64
Last synced: 3 months ago
JSON representation
A modern x86_64 UNIX-like microkernel-based operating system
- Host: GitHub
- URL: https://github.com/Tix3Dev/apoptOS
- Owner: Tix3Dev
- License: gpl-3.0
- Created: 2022-04-15T12:51:57.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2022-09-25T20:03:35.000Z (over 2 years ago)
- Last Synced: 2024-07-29T19:26:19.378Z (10 months ago)
- Topics: assembly, c, hobby-kernel, hobby-os, limine, microkernel, operating-system, os, osdev, x86-64
- Language: C
- Homepage:
- Size: 7.05 MB
- Stars: 57
- Watchers: 1
- Forks: 3
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
apoptOS
A modern x86_64 UNIX-like microkernel-based operating system written in C and Assembly
## Features
- Higher half kernel
- Limine bootloader
- Stivale2 boot protocol
- Serial communication
- GDT and TSS
- IDT and ISR's
- Physical memory management -> Bitmap based allocator & Slab allocator
- Virtual memory management -> 4-level paging support
- Heap memory -> `malloc` and `free`
- Basic kernel library
- ACPI table parsing
- LAPIC and IOAPIC
- LAPIC timer and HPET
- SMP## Goals
- Understand:
- Microkernels
- UNIX-like systems
- Scheduling
- Messaging (IPC)
- Syscalls
- Userland
- ELF
- Filesystems- Write:
- Clean code
- A [blog](https://tix3dev.github.io/apoptos-series-1), documenting learning process## Dependencies
**NOTE: Depending on your Linux Distribution the package names might be different (supposing you are using Linux)**
- x86_64-elf-binutils
- x86_64-elf-gcc
- nasm-git
- make
- xorriso
- qemu## Installation
- Install the dependencies
- Get the repository
- `git clone https://github.com/Tix3Dev/apoptOS --recursive`
- `cd apoptOS`
- Build it
- `make all` (release build, for debug build use `make all_dbg`)
- Run it
- `make run` (release QEMU version, for debug QEMU version use `make run_dbg`)## Contributing
For those interested in contributing, please refer to the [contributing guidelines](https://github.com/Tix3Dev/apoptOS/blob/main/misc/CONTRIBUTING.md).