Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 0 additions & 3 deletions Kernel/Core/Kernel.c
Original file line number Diff line number Diff line change
Expand Up @@ -268,8 +268,6 @@ void AsciiSplash(void) {
ConsoleSetColor(VGA_COLOR_DEFAULT);
}

// Enhanced kernel initialization with better error handling


static InitResultT SystemInitialize(void) {
// Initialize GDT
Expand Down Expand Up @@ -323,7 +321,6 @@ void KernelMain(uint32_t magic, uint32_t info) {
PrintKernelSuccess("[KERNEL] Security manager created with PID: ");
PrintKernelInt(security_pid);
PrintKernel("\n");

PrintKernelSuccess("[KERNEL] Core system modules loaded\n");
PrintKernelSuccess("[KERNEL] Kernel initialization complete\n");
PrintKernelSuccess("[SYSTEM] Transferring control to SecureKernelIntegritySubsystem...\n\n");
Expand Down
8 changes: 4 additions & 4 deletions Kernel/Drivers/Interrupts.c
Original file line number Diff line number Diff line change
Expand Up @@ -68,7 +68,7 @@ static void FastDisplayTicks(uint64_t ticks) {
}


static void HandleFatalException(const char* message, uint64_t interrupt_number) {
static void FatalExceptionHandler(const char* message, uint64_t interrupt_number) {
PrintKernelWarning(message);
PrintKernelWarning(" at interrupt: ");
PrintKernelInt(interrupt_number);
Expand All @@ -89,17 +89,17 @@ void InterruptHandler(struct Registers* regs) {
ASSERT(regs != NULL);
if (regs->interrupt_number == 32) {
tick_count++;
FastDisplayTicks(tick_count);
// FastDisplayTicks(tick_count);
FastSchedule(regs);
outb(0x20, 0x20);
return;
}
if (regs->interrupt_number == 13) {
HandleFatalException("FATAL EXCEPTION - Page fault (GPF handler)", regs->interrupt_number);
FatalExceptionHandler("FATAL EXCEPTION - Page fault (GPF handler)", regs->interrupt_number);
return;
}
if (regs->interrupt_number >= 255) {
HandleFatalException("FATAL EXCEPTION - OVERFLOWING - Cannot handle interrupt. (>256)", regs->interrupt_number);
FatalExceptionHandler("FATAL EXCEPTION - OVERFLOWING - Cannot handle interrupt. (>256)", regs->interrupt_number);
return;
}

Expand Down
2 changes: 1 addition & 1 deletion Kernel/Drivers/Pic.h
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
#ifndef PIC_H
#define PIC_H

#define PIT_FREQUENCY_HZ 5000 // Default PIT frequency in Hz (1000Hz = 1ms intervals)
#define PIT_FREQUENCY_HZ 1000

int PicInstall();
void PitInstall();
Expand Down
10 changes: 7 additions & 3 deletions Kernel/Process/Process.c
Original file line number Diff line number Diff line change
Expand Up @@ -469,25 +469,29 @@ void RegisterSecurityManager(uint32_t pid) {
security_manager_pid = pid;
}

void SystemService(void) {
void SystemTracer(void) {
PrintKernelSuccess("[SYSTEM] SystemTracer() has started. Scanning...\n");
while (1) {
CleanupTerminatedProcesses();
Yield();
__asm__ __volatile__("hlt");
}
}

void SecureKernelIntegritySubsystem(void) {
PrintKernelSuccess("[SYSTEM] MLFQ scheduler initializing...\n");
PrintKernelSuccess("[SYSTEM] SecureKernelIntegritySubsystem() initializing...\n");
Process* current = GetCurrentProcess();
RegisterSecurityManager(current->pid);

PrintKernelSuccess("[SYSTEM] Creating system service...\n");
uint32_t service_pid = CreateSecureProcess(SystemService, PROC_PRIV_SYSTEM);
uint32_t service_pid = CreateSecureProcess(SystemTracer, PROC_PRIV_SYSTEM);
if (service_pid) {
PrintKernelSuccess("[SYSTEM] System now under SecureKernelIntegritySubsystem() control.\n");
} else {
Panic("[SYSTEM] Failed to create system service.\n");
}
PrintKernelSuccess("[SYSTEM] SecureKernelIntegritySubsystem() deploying...");
PrintKernelSuccess("[SYSTEM] SecureKernelIntegritySubsystem() deploying...\n");
while (1) {
Yield();
for (int i = 0; i < MAX_PROCESSES; i++) {
Expand Down