exectos/xtoskrnl
belliash e41de62dab
All checks were successful
ci/woodpecker/push/build Pipeline was successful
Implement ArYieldProcessor() routine
2023-02-27 17:28:20 +01:00
..
ar Implement ArYieldProcessor() routine 2023-02-27 17:28:20 +01:00
hl Declare variable at the beginning of routine 2023-02-21 19:22:53 +01:00
includes Reorder parameters in KeInitializeThread() 2023-02-24 22:29:38 +01:00
ke First attempt on SEH usage; currently this does not take an effect due to missing exception dispatcher 2023-02-26 22:08:02 +01:00
mm Implement MmZeroPages() routine 2023-02-15 20:48:48 +01:00
rtl Add __C_specific_handler() and _except_handler3() stubs allowing to use '__try {} __except() {}' (SEH) constructions 2023-02-25 23:01:13 +01:00
CMakeLists.txt Add __C_specific_handler() and _except_handler3() stubs allowing to use '__try {} __except() {}' (SEH) constructions 2023-02-25 23:01:13 +01:00
README.md Add notes for MM 2023-02-15 23:44:10 +01:00
xtoskrnl.spec Initial Asynchronous Procedure Call (APC) support 2023-02-18 00:04:51 +01:00

XTOSKRNL

XTOSKRNL is an XT system kernel executable, providing the kernel and executive layers for XTOS kernel space. It is a fundamental part of ExectOS, responsible for various core services like hardware abstraction or memory management. This kernel, contains the scheduler (called sometimes as Dispatcher), cache, object and memory managers, security manager and other kernel executives described below.

All routines in kernel are prefixed to indicate the kernel subsystem they belong and put inside separate directory. This is a list of them:

  • Ar - Architecture library
  • Hl - Hardware Abstraction Layer (HAL)
  • Ke - Core kernel library
  • Mm - Memory manager
  • Rtl - Runtime library

AR: Architecture Library

This module contains processor architecture specific functions. This includes enabling and disabling interrupts at the processor, getting the address of a page fault, getting CPUID information, and performing very early processor initialization. This module does not contain any manufacturer or board-specific code, only CPU architecture specific code.

HL: Hardware Abstraction Layer

Hardware Abstraction Layer (HAL), is a layer between the physical hardware of the computer and the rest of the operating system. It was designed to hide differences in hardware and therefore it provides a consistent platform on which the system and applications may run.

KE: Kernel Library

The kernel implements its core functionality that everything else in the system depends upon. This includes basic low-level operations such as routing hardware interrupts.

MM: Memory Manager

Memory Manager is one of core subsystems. It manages virtual memory, controls memory protection and the paging of memory in and out of physical memory to secondary storage. It also implements a general-purpose allocator of physical memory.

RTL: Runtime Library

This is a required static copy of C runtime objects. It includes many utility functions that can be used by native applications.

Functions Naming Convention

When naming a kernel functions, certain conventions are used. The function name is usually structured with <Prefix><Operation><Object>. The prefix denotes the module to which it belongs, thus module can be identified simply by the name of the function. Additionally, the prefix identifies the function visibility as well. Thus all private functions, that should not be used from outside of the module has added "p" suffix to the prefix. For example, KepInitializeStack() routine:

  • Kep - prefix meaning this is private routine belonging to Kernel library (Ke) module,
  • Initialize - operation this function does with the object,
  • Stack - the object is stack.