Age | Commit message (Collapse) | Author |
|
Due to buggy edge cases it caused logic bugs which caused stack
overflows. There should be no need to make any additional checks after
the table was created anyways so it is better to just skip it.
|
|
Previously it was possible for fragmentation to occur and as a result
certain allocations would have a linear virtual address space but not a
linear physical address space. This is bad since a lot of calls to
kmalloc_align rely upon both being linear, it has now been changed such
that all allocations done by kmalloc_align now guarantee this mapping
holds for both virtual and physical addresses.
It was due to oversight and sheer luck that this had been working for so
long.
|
|
|
|
|
|
`get_page` is a horrible multipurpose function and at this point I am
unsure what behavior I expect and have expected it to produce. Refactor
should probably be done soon.
|
|
This makes use of TSC and now provides a file system interface for
userland programs to change the system time.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
The memory not being zeroed caused certain flags to be set(presumably
no-cache flag) and resulted in the OS being unusually for only certain
operations and only in certain cases.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Currently this is just a improvement of error handling but it should
also try to free up memory where it is possible.
|
|
This can significantly cut down on the search space for unallocated
frames. But it has not been benchmarked so I am unsure if it makes a big
difference.
|
|
|
|
|
|
|
|
|
|
This caused certain addreses which where not RAM memory to be assigned
to virtual addresses incorrectly. This caused a significant slowdown
when running it with KVM due to constantly having to exit the VM if the
OS writes to memory that is not RAM.
This fix increased the performance of KVM significantly and improved TCG
performance.
|
|
|
|
Now the kernel does not rely upon inline assembly which is often very
error prone. This also means that the kernel could probably be compiled
with any c99 compiler which would help future bootstrapping.
|
|
|
|
This is to reduce usage of inline assembly
|
|
|
|
|
|
|
|
This caused the tables to be cloned instead of having the pointer copied
on the new page directory creations.
This is just a solution to the symptom of having a bad design for
memory managment. Maybe I will figure out something better.
|
|
This is mainly done to test for uninitlalized memory and find bugs
faster. Therefore it does not need to be cryptographically secure or
perfectly uniform. Xoshiro256++ seems like a good fit.
|
|
Currently certain parts of the code are taken from osdev wiki as there
seems to be very little documentation that I can find on how H2D FIS is
structured. Those parts, especially some of the uglier parts of the
example code will be rewritten/changed.
|
|
|
|
This should make it easier to spot uninitalized memory being used.
|
|
|
|
The kernel would randomly crash. Turns out I did not zero out the frames
so my page allocator seemed to get into some weird state.
|
|
Previously this would be hardcoded but now it can be detected by the
bootloader and passed in via the multiboot header.
|
|
|
|
The kernel can now fully compile under O3 without any noticable
problems :)
|
|
If the string is pointed to a very exact location in memory the loop
never finishes.
|
|
This is to allow both the kernel and the userland to share certain
header files and to make the folder structure a bit more clear.
|