Code Monkey home page Code Monkey logo

qsos's Introduction

Quick Simple Operating System (QSOS)

This is my (very old) attempt to create an operating system.

It is actually very simple kernel written in x86 assembly and C. In order to run it, it must be stored on 3,5" floppy disk. It uses custom file system (QFS). The system can run COM programs and allows to chat with single person through RS-232.

It is the result of my learning of assembly and C in the past (1999-2005).

Features

  • it can run user programs, offers just one system call (interrupt 21h) which causes the user program to exit
  • it has custom filesystem, called QFS (Quick File System) with directories with unlimited nesting
  • it has 2 "consoles" - one command console, accessible through F1 key, and a "chat" console, accessible with F2 key
  • chat console can communicate with another QSS instance through RS-232 port, allows just one another instance (not multiple ones)

How to run

In the past, I used VMWare Player, but nowadays I use qemu. The operating system itself has to be on a floppy disk, which is prepared in QSS/bin/floppy.flp file. We need to pass it to qemu:

qemu-system-i386 -boot order=a -fda floppy.flp -no-fd-bootchk

NOTE: This command is without RS-232 support. I didn't have time so far to work it out in qemu.

The command above will start asking you a "nickname":

In order to load local files onto a floppy disk, you require QFS emulator, which is a DOS program understanding the QSS filesystem. Yes, this OS uses custom filesystem, called QFS (Quick File System). In order to run it, I use DOSBox:

> dosbox

C:\> cd QSS\bin
C:\QSS\bin> imgmount A floppy.flp -t floppy
C:\QSS\bin> QFSEMU.EXE

You will see the following screen:

In order to write some files in the floppy, it is a 2-phase process:

  1. "Create file" -> creates empty file in the floppy
  2. "Write file" -> First enter target file in the floppy, then source file in local filesystem. Better if it is in the current dir.

Compilation

Prerequisities are:

  • Borland C++ 3.1
  • Turbo Assembler 3.0

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.