Commit Graph

254 Commits

Author SHA1 Message Date
Oscar e263f26b6b Moving to higher half KRNL 2017-02-03 19:10:51 -08:00
secXsQuared1995 ce06ee6bbd A naked and clean cross compiler has been created. Fixed a push qword issue that caused relocation truncation. 2017-02-02 23:08:43 -08:00
Oscar 6ce50485be Updated the build tool for the cross compiler 2017-02-02 18:53:17 -08:00
Oscar adaca1d72e Compiled + linked with the given cross compiler. Now I need to build a cross compiler myself 2017-02-02 17:14:23 -08:00
Oscar 3a88034c22 Linker LD Madness. 2017-02-01 18:04:07 -08:00
secXsQuared1995 1788338f10 Does not link. After moving to the virtual address space, the linker is freaking out at all the defined 32 bit symbols for the multiboot loader. 2017-02-01 01:58:21 -08:00
Oscar 53195f144d Compiled but does not link 2017-01-31 19:26:08 -08:00
secXsQuared1995 97fe8bbe9e busy busy busy 2016-10-17 02:05:34 -04:00
secXsQuared 1f080a6b80 BROKEN AF 2016-09-13 00:41:09 -04:00
secXsQuared f412efdbfd hmmm? 2016-08-29 13:06:57 -04:00
secXsQuared ba7672dd00 Fixing stuff. Still broken 2016-08-28 02:14:22 -07:00
secXsQuared e6bbba7b60 Still broken 2016-08-27 17:20:38 -07:00
secXsQuared 5a3d467dbd BROKEN 2016-08-26 22:13:54 -07:00
secXsQuared 4032174150 huh 2016-08-05 22:55:55 -07:00
secXsQuared e797cc29c2 Ref MGR 2016-07-23 17:54:54 -07:00
secXsQuared 03d3d4ab70 Everything compiled again, with a lot of changes to the design of HAL.
Although a lot of things are not working yet. It's getting closer.
2016-07-08 20:01:33 -07:00
secXsQuared bfd0595926 Slowly continuing the work 2016-07-08 17:57:09 -07:00
secXsQuared 38775a235f CHEC 2016-07-01 02:15:07 -07:00
secXsQuared 7a164ce92a [MH] 2016-06-26 00:00:35 -07:00
secXsQuared f9b3df8b60 VMM half-done. PMM refactored. Haven't got a chance to touch the HAL yet. 2016-06-25 14:40:47 -07:00
secXsQuared 8da028f518 Eventually went with not using in-place linked list for PMM (Don't really want to mix up PMM and VMM).
So yeah, now keep trace of those physical pages on kernel heap, Windows does that, linux does that, I have to do that since there are more attributes(paged/non-paged) that the kernel requires.
Hmm finished PMM alpha and redefined all those PMM/VMM interfaces.
The code is still broken right now.
2016-06-25 00:25:54 -07:00
secXsQuared be746b4f6f Figuring out PMM/VMM and ASM. 2016-06-24 18:47:29 -07:00
secXsQuared af7401a7ed Keep it up 2016-06-23 18:48:34 -07:00
secXsQuared 86c042c927 Merge commit '92782893f0753cd429db6179724a7638407ce9e5' 2016-06-22 21:50:47 -07:00
secXsQuared 6a971cc650 Implementing H-K interface according to the wiki. 2016-06-22 21:50:29 -07:00
secXsQuared 92782893f0 Update Readme 2016-06-22 18:40:27 -07:00
secXsQuared 59bac9bf2c We don't need buddy allocator... 2016-06-19 21:11:06 -07:00
secXsQuared 8ef4b18684 Actually buddy allocator is good.... 2016-06-17 02:18:07 -07:00
secXsQuared 0b6b0a46b4 not quite working stuff. Rethinking memory allocator. Maybe not buddy allocator. Basically use salloc for heap for now and talloc with O(log n) for system page allocation. A linear external allocator is not necessarily needed. Todo: finish talloc and add lock/alignment to salloc 2016-06-16 18:13:57 -07:00
secXsQuared 95bb791d71 LALLOC coming. Need to make salloc and lalloc thread-safe. 2016-06-16 00:23:06 -07:00
secXsQuared 22ad3c25c2 Restructure kernel (separate modules to be shared + private) and defined/implemented more HAL interrupt APIs. 2016-06-15 00:29:46 -07:00
secXsQuared 0188fe66a5 Push missing write/read ports w/ diff operand sizes. 2016-06-13 23:57:38 -07:00
secXsQuared b2254e207d Interrupt working (Except that I need to remap PIC).
1. Fix a stupid mistake in idt dispatch table (IDT_ENTRY_NUM instead of IDT_ENTRY_SIZE)!
2. Figured out that before enabling APIC, the PIC is not completely disabled/remapped. Took hours to debug why immediately after enabling interrupt, a double fault happens when executing "mov eax, 0". Turned out that PIC maps timer interrupt to int vet 8, which is double fault in the vector table. The double fault normally pushes an error code 0, the ISR is expecting the error code but the timer interrupt does not push an error code thereby screwing up the interrupt stack completely. The kernel runs normally after "sti" after changing the int 8 vector to just "iretq". (Remapping the PIC: http://wiki.osdev.org/I_Cant_Get_Interrupts_Working#I.27m_receiving_EXC9_instead_of_IRQ1_when_striking_a_key_.3F.21). Oh FML, hours wasted..
2016-06-13 23:33:31 -07:00
secXsQuared bc49a854dd Set up interrupt dispatching
Set up APIC. Timer setup atrociously close.
Bochs keeps giving the god damn triple fault (IDT broken)??
2016-06-12 21:11:38 -07:00
secXsQuared 8d7590ace4 NOT WORKING 2016-06-10 21:16:51 -07:00
secXsQuared 41aecc69f1 NOT WORKinG 2016-06-05 16:37:29 -07:00
secXsQuared 8ebd691e1a FIX bochs 2016-06-05 01:20:39 -07:00
secXsQuared a3b0d89139 Python please fk off 2016-06-05 01:09:01 -07:00
secXsQuared c98c7c6c98 Added information request 2016-06-04 22:33:14 -07:00
secXsQuared 32259f3dc7 Added boots compilation stuff. Although bochs keeps seg faulting (lol wut)
Now makefile generates disasm for debugging
2016-06-04 16:14:50 -07:00
secXsQuared 2139c367d9 Fixed x86 2016-06-04 13:50:53 -07:00
secXsQuared ac875806d6 Structural Change 2016-06-04 02:51:14 -07:00
secXsQuared e53e396556 [RUNNING] Structural and boot change:
1. Changed to multiboot2 complaint
2. Separated modules (hal, kernel, test, common)
3. Rewrite makefile/linker script/ grub.cfg to adapt changes.
2016-06-04 02:41:56 -07:00
secXsQuared 2475039543 NOT WORKING!!!! 2016-06-01 19:16:20 -07:00
secXsQuared 24a458858d Not working.... A lot more to go 2016-06-01 00:43:52 -07:00
secXsQuared eb88af7d33 NOT QUITE WORKING YET 2016-05-31 22:00:29 -07:00
secXsQuared 4410fb50fa NOT working balloc 2016-05-26 14:00:48 -07:00
secXsQuared f6e21df5d2 GPL v3 2016-05-24 00:27:26 -07:00
secXsQuared 0c48e9fa1c salloc test cases added and passed. 2016-05-24 00:10:32 -07:00
secXsQuared bd204b40f2 Refactored avl tree delete sucessor implementation and entry->node 2016-05-23 17:57:38 -07:00