mirror of
https://github.com/RGBCube/serenity
synced 2025-07-26 11:27:34 +00:00
Implement fork()!
This is quite cool! The syscall entry point plumbs the register dump down to sys$fork(), which uses it to set up the child process's TSS in order to resume execution right after the int 0x80 fork() call. :^) This works pretty well, although there is some problem with the kernel alias mappings used to clone the parent process's regions. If I disable the MM::release_page_directory() code, there's no problem. Probably there's a premature freeing of a physical page somehow.
This commit is contained in:
parent
10b666f69a
commit
8accc92c3c
16 changed files with 228 additions and 78 deletions
|
@ -18,6 +18,7 @@ cp ../Userland/cat mnt/bin/cat
|
|||
cp ../Userland/uname mnt/bin/uname
|
||||
cp ../Userland/clear mnt/bin/clear
|
||||
cp ../Userland/tst mnt/bin/tst
|
||||
cp ../Userland/ft mnt/bin/ft
|
||||
cp ../Userland/mm mnt/bin/mm
|
||||
cp ../Userland/kill mnt/bin/kill
|
||||
cp ../Userland/tty mnt/bin/tty
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue