https://github.com/aaravmalani/cogos
A 32-bit Operating System
https://github.com/aaravmalani/cogos
assembly c operating-system operating-systems osdev x86
Last synced: 14 days ago
JSON representation
A 32-bit Operating System
- Host: GitHub
- URL: https://github.com/aaravmalani/cogos
- Owner: AaravMalani
- License: mit
- Created: 2023-02-25T13:19:49.000Z (about 3 years ago)
- Default Branch: main
- Last Pushed: 2025-03-30T20:02:00.000Z (12 months ago)
- Last Synced: 2025-04-10T01:58:37.598Z (12 months ago)
- Topics: assembly, c, operating-system, operating-systems, osdev, x86
- Language: C
- Homepage:
- Size: 18.6 KB
- Stars: 3
- Watchers: 1
- Forks: 0
- Open Issues: 0
-
Metadata Files:
- Readme: README.md
- License: LICENSE
Awesome Lists containing this project
README
# CogOS: A 32 bit Operating System
## Features
- PS/2 keyboard support (via 8042 keyboard controller)
- Custom bootloader using BIOS (or CSM in the case of newer CPUs)
## Running
1. Install the required tools (`sudo apt install nasm gcc qemu-system-x86 make`)
2. Create a [GCC cross-compiler](https://wiki.osdev.org/GCC_Cross-Compiler) for the `i386-elf` target architecture (i486, i586 and i686 work too, but use `qemu-system-x86_64` in the Makefile)
3. Set the `PREFIX` in the Makefile to `bin-location/ix86-elf`, for example `$HOME/opt/cross/bin/i686-elf` following the previous tutorial
4. Execute `make run`
## Goals
- Reaching userland (setting up paging, building a page frame allocator, etc.)
- Creating a process scheduler
- Filesystem support (probably FAT12 or FAT32 at first)
- Networking
- Adding mouse support
- Reaching long mode