-
-
Notifications
You must be signed in to change notification settings - Fork 0
/
Copy pathkernel.c
executable file
·44 lines (41 loc) · 1.13 KB
/
kernel.c
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
#include <vga.h>
#include <kb.h>
#include <sys.h>
#include <gdt.h>
#include <idt.h>
#include <isr.h>
#include <timer.h>
#include <serial.h>
uint32_t cpuCode[4];
#if defined(__cplusplus)
extern "C"
#endif
void kernel_main(void){
terminal_initialize();
gdt_install();
idt_install();
isrs_install();
irq_install();
keyboard_install();
serial_install();
terminal_setcolor(VGA_COLOR_GREEN);
terminal_writestring("Ken");
terminal_setcolor(VGA_COLOR_RED);
terminal_writestring("OS ");
terminal_setcolor(VGA_COLOR_LIGHT_GREY);
terminal_writestring("ver 0.001 booted up!\n");
terminal_setcolor(VGA_COLOR_LIGHT_CYAN);
terminal_writestring("Welcome, Hoshi!\n");
terminal_setcolor(VGA_COLOR_LIGHT_BLUE);
terminal_writestring("Hardware info: ");
terminal_writestring((const char*)cpuid_string(0, cpuCode));
terminal_writestring("\n");
terminal_setcolor(VGA_COLOR_WHITE);
terminal_writestring("[@Hoshi]>");
terminal_setcolor(VGA_COLOR_LIGHT_GREY);
write_serialstring("kenOS 0.001 serial debugger\n");
__asm__ __volatile__ ("sti");
for(;;) {
asm("hlt");
}
}