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
secXsQuared
06a8250d48
renaming avl tree entry to node
2016-05-23 13:45:03 -07:00
secXsQuared
6133063fb0
AVL tree apocalypse test
2016-05-23 12:36:41 -07:00
secXsQuared
05695f2626
Test Driver
...
Got a test driver for module tests. Gotta make sure the basic building blocks work first lol.
Will add salloc test soon.
2016-05-22 20:19:56 -07:00
secXsQuared
dddcd487a2
AVL Tree Test
...
1. Added test for avl insertion and deletion (core functionalities).
2. Suppressed GCC's retarded multiline comment warnings.
3. Increased kernel heap size from 4k to 8k.
TODO:
1. Write test for salloc.
2016-05-22 01:24:08 -07:00
secXsQuared
44602ecf29
1. Refactored the file structure.
...
2. Refactored all include directories.
3. The Integrated linked_list and salloc are working. Need to write test for AVL tree and salloc.
2016-05-21 18:54:29 -07:00
secXsQuared
cd5d08fa1d
Refactoring AVL tree to accept duplicate values so that it can be actually used as a priority queue.
2016-05-20 12:07:11 -07:00
secXsQuared
3bfa585967
Test now cleans up memory. Got rid of a redef of a macro.
2016-05-19 17:34:55 -07:00
secXsQuared
13843b16bc
Added linked_list_search API. Refactored linked list implementation and testing (now much better).
2016-05-19 17:18:27 -07:00
secXsQuared
d6f2342d05
Rewrite linked list library. Much more APIs, more graceful code and better test cases.
2016-05-17 22:43:48 -07:00
Siyao Zhao
9ca5b1aa16
Development:
...
1. Intergrated my salloc allocator
2. hal.c: Got rid of some gcc warnings, mainly int -> pointer.
3. entry.asm: 64-bit int immediate moved to a reg first then anded with another reg.
Refactoring:
1. Got rid of kernel_status_t, IN, OUT, OPT. secX does not have to be Windows does it?
2. Renamed _KERNEL_ABI to SAPI.
3. Refactored library functions / interfaces to as "static" and "_" as possible
4. Restructured "common" folder
2016-05-17 12:03:18 -07:00
secXsQuared
fc241dc76f
Fixed 2 bugs in alloc library. Now should be working.
2016-05-17 01:09:52 -07:00
secXsQuared
9e96b66a08
Proc control block
...
Primitive code for the allocation library
2016-05-16 00:34:41 -07:00
secXsQuared
1ba3afd68a
Update ReadMe
2016-05-11 15:40:02 -07:00
hyperassembler
d85a005411
ffff
2016-03-04 20:49:36 -05:00
hyperassembler
6088802c06
Linked list interface change
2016-03-04 17:20:48 -05:00
hyperassembler
93cd12690c
[IN PROGRESS] Added hal_interlocked_exchange and implemented spin locks in C code. Reverted some kernel_status_t changes.
2015-11-14 17:53:30 -05:00