- Jul 27, 2022
-
-
Jacob Lorentzon authored
Everything seems to work for the most part, but now there are tons of daemons which rely on syscall::clone, which is now implemented in relibc :(
-
Jacob Lorentzon authored
-
Jacob Lorentzon authored
Turns out the problem all along was that the ActivePageTable was never dropped in usermode_bootstrap. So as soon as any other hardware thread tried to do page table business, it deadlocked!
-
Jacob Lorentzon authored
-
- Aug 11, 2021
-
-
Jacob Lorentzon authored
Note that this is very preliminary, and I merely got my already freezing kernel branch not to triple fault, but I would probably apply this patch to upstream. What is changed here, is that rather than relying on recursive mapping for accessing page table frames, it now uses linear translation (virt=phys+KERNEL_OFFSET). The only problem is that the paging code now makes assumptions that the entire physical address space remains mapped, which is not necessarily the case on x86_64 architecturally, even though systems with RAM more than a PML4 are very rare. We'd probably lazily (but linearly) map physical address space using huge pages.
-
- May 04, 2021
-
-
Jeremy Soller authored
-
- May 03, 2021
-
-
Jeremy Soller authored
-
Jeremy Soller authored
-
- Apr 29, 2021
-
-
Jeremy Soller authored
-
- Feb 13, 2021
-
-
Jeremy Soller authored
-
- Jan 21, 2021
-
-
Robin Randhawa authored
-
- Jan 15, 2021
-
-
-
Robin Randhawa authored
-
- Jan 10, 2021
-
-
Jeremy Soller authored
-
- Jul 11, 2020
-
-
jD91mZM2 authored
Because the way we were using inline assembly was technically incorrect and breaking the laws of rust This *finally* compiles. That doesn't mean it works!
-
- Jun 16, 2020
- Jun 15, 2020
- Jun 13, 2020
-
-
jD91mZM2 authored
-
- Apr 19, 2020
-
-
Jeremy Soller authored
-
- Feb 11, 2020
-
-
Jeremy Soller authored
-
- Aug 15, 2019
- Jul 27, 2019
-
-
jD91mZM2 authored
-
- Jul 26, 2019
- Jul 24, 2019
-
-
jD91mZM2 authored
-
- Jul 21, 2019
- Jul 20, 2019
-
-
jD91mZM2 authored
This is a curious problem and it's really hard to solve it in a way that doesn't feel hacky. On one hand, of course you want to be able to modify and intercept what happens when you use a signal, right? On the other hand, changes made to the context (especially singlestepping) while a signal is handled (such as `SIGSTOP`) are not preserved since the stack is restored after the signal handler was invoked. I think what we have in this change makes sense anyway, as we don't really want users modifying registers and other data in the default signal behavior that occurs **in kernel mode**. Also trying to use `PTRACE_SINGLESTEP` will set the singlestep flag only if in a user-mode signal handler, else it will set it on the instruction after the signal handling, which I guess makes sense since it can't affect the kernel-mode code that runs the default handler. I don't know. Help. Pls.
-
jD91mZM2 authored
-
- Jul 07, 2019
-
-
- Jul 02, 2019
-
-
Jeremy Soller authored
Since even a very basic ptrace can be nice to have, I thought I would split the, perhaps rather big, ptrace project up in multiple PRs to make as few changes as necessary in each. This PR contains the initial registry modifying bits and only a very basic security measure. Letting this out to the community should be good for spotting bugs and maybe getting some hype ;)
-
Jeremy Soller authored
This reverts merge request !103
-
- Jul 01, 2019
-
-
I'm guessing it's some issue after a rebase or something...
-