Skip to content
MistWorksPublic

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

🌫️ Mist 🌫️

logo

License: MIT Language: C & ASM Architecture: x86_64


EN RU


Mist is a simple x86_64 operating system made from scratch, that can work on real hardware (in combination with Minit; Checked on Acer Aspire E5-532)

This training project made for learning how the PC works. Every bug fix and improvement are welcome, so don't be shy to contribute. It uses MIT license so you can do anything with this code!



What can it do?

  • Boot with own bootloader - Minit
  • Control physical memory using PMM
  • Manage virtual memory using VMM
  • Handle interrupts using IDT
  • Listen keyboard using keyboard and PIC drivers
  • Output anything to VGA using VGA driver
  • Process basic shell commands
  • etc..

It uses Mistic - own freestanding C standard library

There is documentation to explain you every function in code

In future...

  • PIT driver
  • Multitasking
  • Disk driver
  • Own VERY simple ext-like FS
  • Third-party programs starting
  • Ring 3 and userspace

All new features and changes will be posted first to my Telegram channel

Gallery


Demo
PF Error
IDT init error


Get started

Requirements:


You can start with 2 ways:

  1. Compile by yourself:
Details
- Clone depended [Mistic](https://github.com/MistWorks/Mistic) and [Minit](https://github.com/MistWorks/Minit) repos:
mkdir MistWorks && cd MistWorks
git clone https://github.com/MistWorks/Minit
git clone https://github.com/MistWorks/Mistic
  • Clone Mist repo:
git clone https://github.com/MistWorks/Mist
  • Compile (Clang):
cd Mist
make
  • Run with QEMU:
make run

  1. Use already compiled Mist.img from releases:
Details
  • Copy Mist.img:
wget https://github.com/MistWorks/Mist/releases/download/v0.11/Mist.img
  • Run with QEMU:
qemu-system-x86_64 -drive format=raw,file=Mist.img -no-reboot

Issues

Mist - young hobby project

It may contain bugs and errors

If you have one of these, you can visit the issues

Also you can do pull requests with your code. You're welcome!

Releases

Contributors

Languages