jD91mZM2
7fc49eed74
ptrace: Allow stopping on fexec
2020-06-22 13:11:32 +02:00
jD91mZM2
9c891384ea
Fix ptrace returning ENODEV when process exists
2020-06-16 13:42:04 +02:00
jD91mZM2
12f632837a
Misc proc code cleanup
2020-06-16 10:08:49 +02:00
4lDO2
e7d00d4735
Fix various kernel warnings.
2020-06-11 12:58:03 +02:00
Jeremy Soller
3c86af57b7
Allow contexts sharing process space to run on different CPUs
2020-04-19 08:46:50 -06:00
Jeremy Soller
fdf46d8043
Fix multi_core livelocks and add livelock debugging
2020-04-19 08:46:50 -06:00
Jeremy Soller
d4d14c78c3
Ensure page table locking at runtime
2020-02-12 20:34:49 -07:00
Jeremy Soller
7721a0a4c6
Fix assignment of cpu_id
2020-02-09 11:05:02 -07:00
Jeremy Soller
388ab2c87d
option -> opt
2020-02-09 09:50:40 -07:00
Jeremy Soller
72ea559da4
Do not log mprotects
2019-12-06 19:59:18 -07:00
Jeremy Soller
63e2a835e0
Fix clippy.sh script and fix a number of clippy warnings
2019-10-06 11:04:06 -06:00
jD91mZM2
cf0a7620df
Add ptrace exit breakpoint
...
This will let you stop at process exit and inspect it right before the
process dies.
2019-08-15 14:23:54 +02:00
jD91mZM2
62cd298202
Merge ProtFlags with MapFlags
2019-07-30 11:45:54 +02:00
jD91mZM2
538ca49ee2
Suggestion: Switch to bitflags
2019-07-26 12:23:21 +02:00
jD91mZM2
3ac1416dba
First step for ptrace overhaul
2019-07-24 21:42:33 +02:00
jD91mZM2
a7da393cf5
WIP(ptrace): Better support for signals
...
Signals now cause an event, and there's a way to continue until the
next signal. I can see this being used for detection of `int3`
although I'm not entirely sure as it may prove being too late to stop
abortion of process.
2019-07-21 19:58:32 +02:00
jD91mZM2
be867ae5f1
WIP(ptrace): Add ptrace event system for catching child forks
2019-07-20 09:45:07 +02:00
jD91mZM2
e3d8f23c71
WIP(ptrace): Add dbg! macro and fix waitpid immediately after exit
2019-07-20 09:45:01 +02:00
Jeremy Soller
788526a3b3
Bare-bones ptracing functionality
...
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 ;)
2019-07-02 07:38:26 -06:00
Jeremy Soller
45ea634798
Revert "Merge branch 'ptrace' into 'master'"
...
This reverts merge request !103
2019-07-02 11:56:11 +00:00
jD91mZM2
effe02bd45
Remove change I am faaairly certain I did NOT add :O
...
I'm guessing it's some issue after a rebase or something...
2019-07-01 22:50:19 +00:00
Jeremy Soller
42f977e7da
Disable debug messages
2019-06-27 16:29:28 -06:00
Jeremy Soller
144ac70b12
Allow access to other thread's TLS with pointers
2019-06-23 20:21:22 -06:00
jD91mZM2
fe705d9b63
Switch to 2018 edition
...
Most of this was generated by the absolutely extraordinary `cargo fix`
subcommand. There were still 2 errors and a few warnings to patch up,
but compared to the normal 600+ errors, I'd say the fixer did a damn
good job! I'm also amazed that I could still start the VM after this,
I half expected some kinds of runtime failure...
2019-06-21 12:12:01 +02:00
Jeremy Soller
1be77c2ab4
Store sigmask
2019-06-02 18:45:06 -06:00
Jeremy Soller
126009f83c
Keep process name when using interpreter
2019-04-15 21:00:42 -06:00
Jeremy Soller
b66fef0479
Copy TCB if it was not initialized using kernel-allocated TLS
2019-04-15 20:47:27 -06:00
Jeremy Soller
6da3ab283e
Clone grants
2019-04-15 20:47:03 -06:00
Jeremy Soller
339d68ac8d
Remove debugging messages
2019-04-14 19:12:13 -06:00
Jeremy Soller
434e799f2a
Place TCB at thread-specific location to avoid overlapping TCBs
2019-04-14 19:05:25 -06:00
Jeremy Soller
21e46b6a55
More cleanup of TLS mapping
2019-04-14 14:50:29 -06:00
Jeremy Soller
9762431a33
Cleanup TLS mapping
2019-04-13 22:00:27 -06:00
Jeremy Soller
8120131897
Add interpreter capability
2019-04-13 21:59:46 -06:00
Jeremy Soller
dc28023be1
Remove unnecessary clone
2019-04-13 21:58:34 -06:00
Noam Kleinburd
129d4e3ae5
Lock resources before checking if we need to clean them.
...
See the comments deleted by this commit for more details as to how
the race condition could effect the system.
2019-04-01 17:01:29 +03:00
Jeremy Soller
e5cf6efa64
Support specification of stack with clone system call and CLONE_STACK flag
2019-03-31 14:35:45 -06:00
Jeremy Soller
8fcbf152eb
Add mprotect
2018-12-31 21:04:21 -07:00
Jeremy Soller
b18e322c3f
WIP: itimer and sigprocmask
2018-12-28 21:53:40 -07:00
Jeremy Soller
0df93423a2
Add no_execute to heap now that mmap prot_exec is working
2018-12-28 19:57:51 -07:00
Jeremy Soller
69cbb548fb
Mark heap executable for mesa (temporary)
2018-12-11 21:03:57 -07:00
Jeremy Soller
4c38107055
Add umask
2018-11-16 19:43:37 -07:00
Jeremy Soller
5b31bf57be
Update to latest rust
2018-11-08 17:25:57 -07:00
Jeremy Soller
1b091d3c9f
Set name of process using full path of executable
2018-10-26 10:31:47 -06:00
Jeremy Soller
e867326df1
Attempt to schedule other processors more often by waking them up with a context switch when a process is created
2018-09-25 18:01:38 -06:00
jD91mZM2
1d817fa41d
Push null after argv
2018-08-13 12:14:29 +02:00
Jeremy Soller
1718d28d39
Push null pointer to indicate end of environment
2018-08-12 08:30:12 -06:00
Jeremy Soller
23f4c76ebb
Fixes for launching init
2018-08-11 11:51:58 -06:00
Jeremy Soller
30e68f917e
Remove env scheme and env field on context, fix all warnings
2018-08-11 11:34:32 -06:00
Jeremy Soller
fe90664e33
Copy variables to USER_ARG_OFFSET
2018-08-11 11:18:45 -06:00
Jeremy Soller
c7b3765d6f
Remove execve, replace with fexec
2018-08-11 11:14:32 -06:00