Desing & Implementation

Bootloader

  • Disable interrupts (all inc. NMI's)
  • Stores system information in a buffer on the RAM
    • Memorymap (cleaned and optimized version)
    • Keys pressed by the user
  • Enables A20
  • Loads the bootimage
    • Disable floppy simulation
    • Load data
    • Check consistency
    • If checksum isn't valid, reload the data
  • Initializes the system
      • Copy IDT, GDT...
      • Page Directory and Page Tables
  • Execute the kernel
    • Far jump to the location given in the bootimage

 Kernel

  • Physical memory management
    • The application is provided with a memory map
    • If it tries to write to pages it is not allowed to it gets an error messages, passed to the app's error handler
    • The app has to log all memory allocations it does before it acctually uses that memory, else an error is, again, passed to the error handler of the app
  • Virtual memory management
    • The app's memory space is always like this, only it's own + free + shared memory are there together with the memory mapped devices
  • Multitasking algorithm
    • Extended Round Robin
    • Whenever inserting an object in to the list, put it in several times according to it's priority
    • Just go trough the list
    • The current object gets as much time to run as is neccecairy according to fit it's priority
      • This is only an adjustment to the base time provided
  • Multiprocessing algorithm
    • Sort the list from higest to lowest load
    • Give the core with the least load the object first object in the list
    • Go on until the end of the list is reached
    • The load is calculated by the priority and he CPU usage of it
  • I/O Management
    • Whatever object has control over the CPU controlls the I/O and can chooche to lock it for it's own use
    • An automatic timer is set to unlock after a time given by the system
    • This will improve soon...

Software Envoirement

  • The “System” LibOS
    • Gives absractions to the kernels services, the kernels services are
    • Provides additional system services
  • CoreDL (LibOS)
    • Provides data abstraction
    • Also provides simplified direct acces
    • Includes filesystem acces, database manager, settings storage, object storage et cetera...
  • CoreGL (LibOS)
    • Runs on OpenGL, DirectX and VGA hardware
    • Is the main graphics library
    • OpenGL and DirectX acces is trough this LibOS (they're part of it)
  • CoreAL (LibOS)
    • Works with SoundBlaster, OpenAL and OpenSL hardware
    • Main audio library
    • Again OpenAL and OpenSL acces trough this LibOS (they're part of it)
  • CoreUI
    • UI of Cloudium
    • Verry new
    • More comming soon...