Skip to content

marceldobehere/MaslOS

Repository files navigation

Notice

Development on MaslOS has stopped and I am currently working on MaslOS 2.

MaslOS

an OS written in C++ and a bit of C. Here is a little showcase of MaslOS.

The base was made following Ponchos OS Dev Youtube Playlist

The OS is now using limine as the bootloader.

Thumbnail

Wiki and other Pages

Here is the Masl OS Wiki.

Here's the Hackaday Page for MaslOS.

Here's the MaslOS Subreddit.

Here are the Terminal Commands.

Features

  • Display
    • VGA Output
  • Desktop
    • Background Image
    • Taskbar
  • Window Manager
    • Working Window Manager with dynamic windows
    • Start Menu Window
  • GUI Framework
    • With support in MAAL!
  • Apps
    • Terminal using a scrollable Text Window
    • Connect Four Game
    • Pong Game
    • Mandelbrot renderer
    • Explorer
    • Image Viewer
    • RAM/File Hex Viewer
    • Notepad (Really Basic but works)
    • DOOM (Port from here. Mostly works though you can only run 1 instance of DOOM at the same time and relaunching is currently broken lol)
    • Music player
    • Magnifier
    • Paint (WIP but you can draw and stuff)
  • Audio
    • PC Speaker
    • AC97 Driver (Works in VM)
    • Custom Sound System (Which supports the AC97 Device and PC-Speaker and all devices I'll write drivers for)
  • Keyboard
    • PS/2 Keyboard support
  • Mouse
    • PS/2 Mouse support
  • IO
    • Disk
      • Disk Interfaces
        • SATA / SATAPI
        • RAM Disk
        • File Disk
      • Partitioning Interfaces
        • MRAPS (Marcels really awesome partitioning system)
      • Filesystem Interfaces
        • MRAFS (Marcels really awesome filesystem)
  • Memory
    • Dynamic Memory Management
    • (In planning) Paging
  • OTHER IO
    • PIT
    • AHCI
    • ACPI
    • PCI
    • RS232
    • AC97
    • PCI Serial Card
  • Other Features
    • Stack Trace
    • Crash handling
      • Crash Window showing non fatal kernel panic / crash
      • Advanced Fatal General Protection Fault Handler and recoverer
      • Emergency Kernel Panic
      • DePaST (Debug Panic Serial Terminal)
    • 4 Crash Commands!
    • BF Interpreter
    • MAAB Interpreter
    • Experimental .o runner (Still majorly WIP)
    • KernelFiles
    • Auto Disk Stuff Detection
      • Auto Disk Detection
      • Auto Partition Detection
      • Auto Filesystem Detection
    • MRAPS/MRAFS To/From Windows FS Converter Tool
    • Serial Manager (Allows "networking" with a client connected to serial) (WIP)
      • Windows Client
      • Custom "Serial"
      • Screen sharing
      • Audio sharing (TODO, Though idk how good it'll be at 10KB/S)
      • Remote Mouse/Keyboard input (TODO)
      • Possibly TCP/UDP Networking using the client computer as a proxy (DONE for tcp clients)
      • Network Drive of Client (TODO)

How to run (Linux)

Install QEMU if you haven't.

Then download/clone the repo and run the Just RUN OS.sh file.

How to run (Windows)

Install QEMU if you haven't.

Add QEMU To your PATH variable. If ya have trouble installing it and don't know how to set the PATH variable, click here

Then download/clone the repo and run the Just RUN OS (Windows).cmd file.

How to build (Linux)

Install QEMU if you haven't.

install CMAKE if you haven't.

install NASM if you haven't.

(make sure mtools is on version 4.0.27 or lower. newer versions aren't working just yet)

Go into the MaslOS Folder and run the RUN.sh file

Screenshots

The MaslOS Splashscreen The Desktop with some windows open Experimental Raytracer Demo Explorer Gif Notepad Gif Image Viewer Magnifier Music Player Paint Pong running on real hardware Doom Port MAAB Interpreter The Desktop Playing around with the Terminals A lot of windows Old Pong Gif FS Test The Crash Window The Panic screen

Importing Windows Files Importing C# Project

More Images