kernel.c (1741B)
1 #include <stdint.h> 2 #include "../include/print.h" 3 #include "../include/kernel.h" 4 #include "../include/gdt.h" 5 #include "../include/io.h" 6 #include "../include/commands.h" 7 #include "../include/keyboard.h" 8 // #include "../include/idt.h" 9 10 #define MODE "black" 11 12 //extern void idt_handler_0(); 13 //extern void idt_handler_13(); 14 15 int isInit = -1; 16 17 void kernel (uint32_t *f_base, uint64_t f_size, uint64_t pp_line, uint64_t maxX, uint64_t maxY) { 18 load_gdt(); 19 20 k_init(MODE); 21 uint64_t x = 0; 22 uint64_t y = 0; 23 24 k_print(MODE, " $$\\ $$\\ $$\\ $$$$$$\\ $$$$$$\\ \n"); 25 k_print(MODE, " $$ | $$ | $$ | $$ __$$\\ $$ __$$\\\n"); 26 k_print(MODE, " $$ |$$ / $$$$$$\\ $$ | $$\\ $$$$$$\\ $$ / $$ |$$ / \\__|\n"); 27 k_print(MODE, " $$$$$ / \\____$$\\ $$ | $$ |\\____$$\\ $$ | $$ |\\$$$$$$\\ \n"); 28 k_print(MODE, " $$ $$< $$$$$$$ |$$$$$$ / $$$$$$$ |$$ | $$ | \\____$$\\ \n"); 29 k_print(MODE, " $$ |\\$$\\ $$ __$$ |$$ _$$< $$ __$$ |$$ | $$ |$$\\ $$ |\n"); 30 k_print(MODE, " $$ | \\$$\\\\$$$$$$$ |$$ | \\$$\\\\$$$$$$$ | $$$$$$ |\\$$$$$$ |\n"); 31 k_print(MODE, " \\__| \\__|\\_______|\\__| \\__|\\_______| \\______/ \\______/ \n"); 32 33 k_print(MODE, "\n"); 34 k_print(MODE, "\n"); 35 k_print(MODE, "\n"); 36 37 k_print(MODE, "Welcome to KakaOS! \n"); 38 k_info(MODE, "[INFO] Loading GDT... \n"); 39 k_info(MODE, "[INFO] Loading kernel drivers... \n"); 40 k_info(MODE, "[INFO] Loading PS/2 driver... \n"); 41 k_warn(MODE, "[WARNING] You are currently in ring 0 kernel mode. You are solely responsible for any harm to your hardware. Operate at own risk. \n"); 42 k_print(MODE, "KakaOS > "); 43 44 // __asm__ volatile("int $0"); 45 46 keyboard(); 47 }