6a9d60a8fb
Kernel: Implement somewhat functioning multithread support
...
This still uses only a single cpu, but we can now have 'parallelization'
This seems to work fine in qemu and bochs, but my own computer did not
like this when I last tried.
I have absolutely no idea how multithreading should actually be
implmemented and I just thought and implemented the most simple one I
could think of. This might not be in any way correct :D
2023-02-01 01:53:35 +02:00
7d8aafa0b5
Kernel: Add macros for current archutecture
2023-02-01 01:52:52 +02:00
337569b0ca
Kernel: Implement basic SpinLock
2023-02-01 01:52:52 +02:00
1954f223ad
Kernel: Add no sse and sse2 for kernel code
2023-01-31 18:43:09 +02:00
05b48fa71c
Kernel: add gcc option to make sure we have (r/e)bp saved on stack
2023-01-26 02:57:14 +02:00
aa0757e135
Kernel: Move dump_stacktrace from panic -> debug
2023-01-26 02:57:14 +02:00
c0bc002ac6
Kernel: Move debug printing to its own file
...
It didn't make sense that dprint was defined in Serial.h.
We also now dump dprint to tty if there is no serial and tty is initialized
2023-01-25 22:51:42 +02:00
ba53582f23
Kernel: Rewrite APIC and PIC more OOP friendly
...
x86_64 port is slowly coming together
2023-01-23 20:13:57 +02:00
54043288cb
Kernel: Move CPUID out of arch/
...
CPUID instructions behaves the same on x86 and x86_64. I am not
planning on supporting any non x86 based architectures.
2023-01-23 18:12:52 +02:00
1b9f7aa815
Kernel: Rewrite the whole VESA driver
...
We dont support vga text mode currently. I might add it later if needed.
I also removed mouse 'support' from Shell since it didn't do anything
and I didn't implement arbitary bitmap rendering to framebuffer
2023-01-23 13:21:53 +02:00
6ec4ba3dc9
Kernel: Move dump_backtrace() out of arch.
...
I discovered __builtin_frame_address()
2023-01-22 03:00:13 +02:00
6b73547989
All: edit gcc flags
2023-01-13 00:04:15 +02:00
efd8638a96
Kernel: Improve kernel panic message and rename it 'panic'->'Panic'
2023-01-09 21:57:03 +02:00
ef0b2010e0
Kernel: Add basic PS/2 Mouse driver
2022-12-30 19:38:21 +02:00
6fe0d04f07
Kernel: Implement basic VESA Graphics mode driver
...
We now support VESA Graphics mode with some bitmap fonts
2022-12-16 00:47:03 +02:00
f8224e55b1
Kernel: Force strlen compilation so BAN can use it
2022-12-13 21:33:54 +02:00
ced05ff5f2
BAN: use only memcmp when comparing string(view) with const char*
2022-12-13 21:32:51 +02:00
334abe6b27
Kernel: lol
2022-12-13 12:12:15 +02:00
e62a626b39
Kernel: Improve keyboard input by a lot
...
Seems to work on my 2 computerss
2022-12-13 10:45:06 +02:00
2938c85c1a
Kernel: Makefile formatting
2022-12-13 00:59:53 +02:00
3d3f12bd30
Kernel: Add new generic Printer class
...
kprint is now just a #define to Printer::print<terminal_putc>.
This allows us to use same print formatting for serial output :)
2022-12-10 00:57:09 +02:00
817de9f359
Kernel: Properly handle finnish keyboard layout.
...
You can now type any basic ascii character from keyboard.
Multimedia keys are not yet handled.
2022-12-08 18:05:48 +02:00
e998615253
Kernel: Move GDT and IDT files to architecture specific folder
2022-12-08 17:50:04 +02:00
4202c999fa
Kernel: IRQs are now working :)
2022-12-07 02:48:44 +02:00
c17f61611e
Improve buildsystem by making build directory
...
We now create build directory for kernel and libc so that source
directories are kept more clean.
2022-12-03 18:17:37 +02:00
f2b45ba212
Add GDT and IDT
2022-11-16 19:49:09 +02:00
b500a8a7ed
kmalloc
2022-11-16 19:48:36 +02:00
550ecbc951
Kernel panic uses kprint with parameters
2022-11-16 19:47:19 +02:00
123382eace
Fixes :)
2022-11-15 21:42:14 +02:00
9e933a5ec5
Add kernel panic function
2022-11-14 18:53:00 +02:00
b185ed4fd3
Libc is now written in C++
2022-11-14 00:31:24 +02:00
db656fe469
Implement Stack Smashing Protection
2022-11-12 23:46:33 +02:00
61609db228
Kernel is now in C++ :)
2022-11-12 21:30:26 +02:00
e6b4866ab0
Initial commit. We have a booting kernel
2022-11-12 21:04:47 +02:00