exectos/xtoskrnl
belliash d72002187d
All checks were successful
ci/woodpecker/push/build Pipeline was successful
Partially implement ArpIdentifyProcessor()
2023-02-10 17:23:47 +01:00
..
ar Partially implement ArpIdentifyProcessor() 2023-02-10 17:23:47 +01:00
hl Introduce architecture library as new kernel subsystem and move selected routines into new subsystem 2023-01-28 10:34:55 +01:00
includes Implement KeGetCurrentThread() routine 2023-02-08 23:58:24 +01:00
ke Implement KeGetCurrentThread() routine 2023-02-08 23:58:24 +01:00
rtl Add endian conversion routines 2023-02-08 16:33:57 +01:00
CMakeLists.txt Implement KeGetCurrentProcessorBlock() and KeGetCurrentProcessorControlBlock() routines for both amd64 and i686 2023-02-08 16:39:05 +01:00
README.md Import kernel readme 2023-01-27 22:59:53 +01:00
xtoskrnl.spec Export HlIoPortInShort(), HlIoPortInLong(), HlIoPortOutShort() and HlIoPortOutLong() routines 2022-12-27 22:48:10 +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
  • 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.

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.