A poorly written OS for the x86 arch. (WIP)
You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
eOS/kernel/kernel.c

63 lines
1.4 KiB

#include "kernel.h"
3 years ago
#include "memory.h"
3 years ago
#include "paging.h"
#include "../drivers/vga.h"
3 years ago
#include "../lib/str.h"
3 years ago
#include "../lib/conv.h"
void init() {
3 years ago
vga_init(); // Initialize the screen first
// i.e. clear the screen et cetera.
3 years ago
println("Kernel loaded", SUCCESS_COLOR);
3 years ago
// enable_paging();
3 years ago
println("");
3 years ago
char* title = "eOS Version 0.4 2022";
println(title, DEFAULT_COLOR);
char* subtitle = "A x86 operating system, licenced under GPL-2.0";
println(subtitle, DEFAULT_COLOR);
3 years ago
/*
print("Kernel offset: ", DEFAULT_COLOR);
println("0x1000", DEFAULT_COLOR);
*/
3 years ago
char* malloctest = pm_malloc(1); // allocate two blocks
3 years ago
3 years ago
char* intbuf = "xxxx";
int num = 1234;
intbuf = int_to_str(num, intbuf);
print("TEST NUM: ", DEFAULT_COLOR);
println(intbuf, DEFAULT_COLOR);
/*
// Memory allocation testing
printalign("-- PMM Tests --", DEFAULT_COLOR, MIDDLE);
println("THESE ALLOC SHOULD WORK:", 0xa0);
for(int i=0; i < 4; i++) {
block_alloc(i);
}
println("(2) THIS ALLOC SHOULD FAIL:", 0xc0);
block_alloc(2); // this should fail
3 years ago
3 years ago
println("(2) Freeing 2nd block, alloc after should succeed", DEFAULT_COLOR);
3 years ago
block_free(2); // after this, allocation of 2nd block should work
3 years ago
block_alloc(2);
printalign("-- End of PMM Tests --", DEFAULT_COLOR, MIDDLE);
3 years ago
char* strbuf = "Concat test: ";
char* str2 = "Works!";
3 years ago
strbuf = strcat(strbuf, str2);
println(strbuf, DEFAULT_COLOR);
3 years ago
*/
}