Skip to content

Toy Operating System created during Ensimag project

License

Notifications You must be signed in to change notification settings

CalmSystem/CalmOS

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

49 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

CalmOS

About The Project

Shell help screenshot

CalmOS is a toy operating system created during an Ensimag project. It is minimal and designed only for x86 32bit (IA32) architecture.

Built With

  • Make
  • GCC
  • Qemu
  • Love and Calm

Features

  • Priority based scheduler
  • Message queue synchronization
  • Dynamic stack allocation
  • User-space protection
  • Basic shell
  • FAT16 filesystem
  • Floppy disk drive
    • 1.44MB disk read/write
  • Mouse support
    • Click to paint on screen
  • PC Speaker music
    • Custom Music files player
      • play imperial.mbp
    • Keyboard synthesizer
      • Toggle with Ctrl+P

Getting Started

Prerequisites

  • Make
  • GCC 9+
  • qemu-system-i386
  • udisksctl (for floppy disk)

Installation

  1. Clone the repo
    git clone https://github.com/CalmSystem/CalmOS.git
  2. Compile system and user-space
    make build
  3. Compile floppy disk image
    make all

Usage

  • Start with floppy disk
    make run-now
  • Start without disk
    make run-raw
  • Compile and start
    make now

Contributors

Code template created by Ensimag teachers (Gregory Mounie et al.)

Features implemented by 3 students during a 3 weeks project.

Resources

License

Distributed under the GPLv3 License. See LICENSE for more information.