/KokOS

very basic text-mode operating system

Primary LanguageC++GNU General Public License v3.0GPL-3.0

KokOS

very basic text-mode operating system

Disclaimer

KokOS is meant to be executed in virtual environment (such as VMWare Workstation or Oracle VirtualBox) only.

I do NOT take any responsibility whatsoever for any harm caused to your data or your hardware as you have been warned that the code may be dangerous.

By running the code on your machine it you implicitly agree with this statement and take full responsibility for the outcode.

Branches

  • master - should always be relatively stable and safe to run (at your own risk!)
  • unstable - the latest version that is known to run somewhat properly, but may contain potentially dangerous code (you should avoid running this version and remain particularly cautious when doing so)
  • dev - meant for development only, often contains unstable code which may seriously harm your device upon execution (please NEVER run this code on a physical machine regardless of the circumstances)
  • dev_xxx - sub-branch of dev with a specified development topic waiting to be pulled to unstable, used to separate bigger chunks of changes done on the dev branch without having to modify the unstable branch

Features

  • simple text-mode shell interface
  • standard keyboard input (using port polling) (removed due to redundancy / obsolescence)
  • keyboard input using interrupts
  • simple memory management (malloc, free,..)
  • basic cstring operations
  • partial C <stdlib.h> implementation
  • partial C <stdio.h> implementation
  • C++ <string> implementation
  • C++ <vector> implementation
  • basic internal shell commands (help, clear)
  • basic file/directory operation commands (mkfile, mkdir, delete, copy, move, rename)
  • prevents you from deleting a non-empty directory
  • shell supports both absolute and relative path addressing
  • shell command history (using up/down arrows, up to 16 commands)
  • currently up-to-date help command
  • repetitive validity checks should prevent unexpected behavior
  • FAT file system support
  • basic text file editor (selections and copy-pasting may be implemented later)
  • OS-specific programming language called Kok (based on Fortran, BASIC and C)

In progress

  • Kok programming language (adding new features, fixing whatever bugs I can find)

TODO

  • documentation for Kok programming language
  • documentation for the text editor
  • moving shell cursor using arrow keys (to allow command edits without having to delete portions of the entered command)

On Hold

  • AHCI driver (I wasn't able to make it work and it's not of high importance to me)
  • implement more C/C++ libraries (it doesn't seem necessary at the moment)

Links

Inspiration / based upon: OSDev Wiki