Skip to content

sebastiansiedlarz409/OSikGUI

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

84 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

General info

It is simple operating system for x86 CPUs. This time the main goal was draw window based UI.

Details

What works (or works in some part):

  • Boot (Real Mode > Protected Mode > Long Mode)
  • VESA Graphic Mode (1600x1200 256 colors)
  • Drawing
    • Windows (window with title bar)
    • Text Fields
    • Buttons with label
    • Progress bars
    • Basic shapes such as circles, rectangles, lines
  • Each window and window element has own context structure so OS can manage it
  • Window focus swiching and closing
  • System place in memory at 0x800000 struct with API so it can be used in external apps
  • System contains PE file loader so its posible to write external apps base on API
  • Interrupts
  • Keyboard (keys are catch to STDIN and what happends depends on active app)
  • Heap
  • BSOD :D

Memory map is available in memmap.txt and here below screenshot. Whole system use 130 pages(2MB each). Every page is map 1:1 expect last two.

Requirements

  • GCC 64bits
  • NASM
  • Python 3
  • QEMU

All this stuff should be added to PATH so that the build script can execute.

Run

To run this project:

$ git clone [...]
$ python build.py

How it looks like?

Memory map

//OSIK MAP MEMORY ADDRESSES TO VIRTUAL MEMORY ADDRESSES 1:1

TOTAL MEMORY: 128*2MB+4MB

------------------ 0x00007C00 (F) //bios boot entry point
|                |
|   bootsector   |
|                |
------------------ 0x00010000 (F) //bootloader is loaded here
|                |
|   bootloader   |
|       +        |
|     kernel     |
|     image      |
|       +        |
|      apps      |
|     images     |
|                |
------------------ 0x003FFE00 (V) //app table
------------------ 0x00400000 (V) //kernel base address
|                |
|     kernel     |
|                |
|                |
------------------ 0x00600000 (V) //heap
|                |
|     heap       |
|                |
|                |
------------------ 0x00800000 (V) //system api
|                |
|   system api   |
|                |
|                |
------------------ 0x00A00000 (V) //stack
|                |
|     stack      |
|                |
-----------------| 0x01000000 (V) //apps (+0x00200000 for every app)
|                |
|      apps      |
|                |
~~~~~~~~~~~~~~~~~~
|                |
|                |
------------------ 0x10000000 (V) //video ram
|                |
|   video ram    |
|                |
|                |
------------------ 0x10400000 (V) //end of ram

About

Operating system for x86 with GUI

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published