https://github.com/matcool/mat-os
MAT os - a hobby x86_64 operating system
https://github.com/matcool/mat-os
limine osdev
Last synced: about 2 months ago
JSON representation
MAT os - a hobby x86_64 operating system
- Host: GitHub
- URL: https://github.com/matcool/mat-os
- Owner: matcool
- Created: 2021-12-11T14:36:52.000Z (over 3 years ago)
- Default Branch: limine
- Last Pushed: 2025-02-22T16:19:54.000Z (3 months ago)
- Last Synced: 2025-03-26T13:45:44.375Z (2 months ago)
- Topics: limine, osdev
- Language: C++
- Homepage:
- Size: 431 KB
- Stars: 8
- Watchers: 1
- Forks: 1
- Open Issues: 1
-
Metadata Files:
- Readme: README.md
Awesome Lists containing this project
README
# mat-os
its mat-os again. this time using limine on x86_64 because it does most of the boring work

*screenshot of the system as of [`b8c5541`](https://github.com/matcool/mat-os/commit/b8c5541e895e965b56acf68b913e72c4bd11475e)*## Build
To build the project the following packages are required, along with either gcc or clang
```
git make cmake xorriso
```
Then run the following
```bash
./setup.sh
cmake -B build
cmake --build build
```## Goals
- [ ] ~~Use C++20 modules~~ doesn't work with clangd :(
- [X] Use CMake
- [X] Serial output
- [X] Working IDT
- [X] Physical page allocator (very inefficient)
- - [ ] A better Physical page allocator
- [X] Paging (though basic)
- [X] Virtual page allocator (bump allocator, can't free)
- - [ ] A better virtual page allocator
- [X] PS/2 keyboard input
- - [ ] Some way to get key events out of the interrupt
- [X] Working timer (PIT)
- - [ ] Events? Scheduling?
- [X] Working screen
- [X] Basic on screen "terminal"
- - [ ] Proper terminal interface with commands and such
- [X] Drawing to the screen
- [X] Kernel heap allocator
- [X] Begin windowing system
- - [X] Fix that paint trail bug
- - [ ] Proper GUI system
- [X] PS/2 mouse input
- [X] Threads
- [ ] Processes
- [ ] A basic in-memory filesystem
- [ ] Begin user-space### Apps
- [ ] Use ELF for apps?
- [ ] A simple text editor
- [ ] File explorer app### Misc
- [ ] QOI image support