28using namespace MaxOS::common;
29using namespace MaxOS::drivers;
30using namespace MaxOS::drivers::peripherals;
31using namespace MaxOS::drivers::video;
32using namespace MaxOS::drivers::clock;
33using namespace MaxOS::drivers::console;
34using namespace MaxOS::hardwarecommunication;
35using namespace MaxOS::gui;
36using namespace MaxOS::processes;
37using namespace MaxOS::system;
38using namespace MaxOS::memory;
39using namespace MaxOS::filesystem;
40using namespace MaxOS::tests;
51 info->activated =
true;
55 ASSERT(info->id ==
core->id,
"Current setup core isn't the core expected");
A class that handles logging messages to the console and files.
static Logger DEBUG()
Gets active logger set to DEBUG level.
static Logger INFO()
Gets active logger set to info level.
static Logger HEADER()
Gets active logger set to task level.
Stores the left, top, width and height of a rectangle.
Manages the drivers, handles the adding and removing of drivers.
A driver for the serial output.
Driver for the APIC clock.
Driver for the VESA Console during boot, handles the printing of characters and strings to the screen...
void finish() const
Cleans up the boot console.
Driver for the VESA video controller, handles the rendering of pixels to the screen using VESA.
A resource registry for both Files & Directories.
Combines all the filesystems across the partitions on each disk into a single filesystems and exposes...
Handles all interrupts and passes them to the correct handler.
Handles memory allocation and deallocation.
Manages the physical memory of the system such as what pages are allocated/free and mapping of virtua...
Manages the virtual memory of the system and provides functions to allocate and free memory in the vi...
The global scheduler that manages all processes and threads across all cores.
static void activate()
Activates each core's scheduler.
Manages the CPU and its cores.
static Core * executing_core()
Gets the core that is currently executing.
Sets up the GDT in the CPU.
Parses and provides access to Multiboot 2 information.
Provides an API for userspace applications to interact with the kernel.
Defines Central Processing Unit (CPU) structures and functions for managing CPU state and features.
struct PACKED MaxOS::system::CoreBootInfo core_boot_info_t
Alias for CoreBootInfo struct.
Defines a Desktop class for managing the GUI desktop, handling mouse and keyboard events,...
Defines a base Driver class and DriverManager for managing drivers.
Defines a InterruptManager and InterruptHandler for managing hardware and software interrupts.
uint8_t core_boot_info[]
The boot info structure for the core being started.
void kernel_main(unsigned long addr, unsigned long magic)
The main kernel entry point. Initialises all core systems and starts the scheduler.
void call_constructors()
Calls the C++ static constructors.
void core_main()
The main entry point for secondary cores. Sets up the core and waits to be scheduled.
Defines a Logger class for logging messages with different severity levels to multiple output streams...
#define ASSERT(condition, format,...)
If the specified condition is not met then the kernel will crash with the specified message.
Defines a MemoryManager class for handling memory allocation and deallocation.
Defines a PhysicalMemoryManager class for managing physical memory allocation and deallocation of pag...
Defines a GlobalScheduler and Scheduler for managing processes and threads.
Defines a SerialConsole driver for serial output.
Defines the SyscallManager class for handling system calls from userspace applications.
Defines a basic test class for MaxOS.
Defines a Video Electronics Standards Association (VESA) video driver for handling pixel rendering us...
Defines the VESABootConsole driver for handling console output during boot using an VESA framebuffer.
Defines a Virtual File System (VFS) class for managing multiple filesystems and providing a unified i...
Defines VFSResource classes for wrapping File and Directory objects as Resources in the Virtual File ...
Defines a VirtualMemoryManager class for managing virtual memory allocation and mapping to physical m...