mirror of
https://github.com/LadybirdBrowser/ladybird.git
synced 2025-01-25 18:52:22 -05:00
8accc92c3c
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.
28 lines
777 B
Bash
Executable file
28 lines
777 B
Bash
Executable file
rm -f _fs_contents.lock
|
|
rm -f _fs_contents
|
|
cp -p _fs_contents.stock _fs_contents
|
|
mkdir -p mnt
|
|
mount -o loop _fs_contents mnt/
|
|
cp -R ../Base/* mnt/
|
|
cp ../Userland/sh mnt/bin/sh
|
|
cp ../Userland/id mnt/bin/id
|
|
cp ../Userland/ps mnt/bin/ps
|
|
cp ../Userland/ls mnt/bin/ls
|
|
cp ../Userland/pwd mnt/bin/pwd
|
|
cp ../Userland/sleep mnt/bin/sleep
|
|
cp ../Userland/date mnt/bin/date
|
|
cp ../Userland/true mnt/bin/true
|
|
cp ../Userland/false mnt/bin/false
|
|
cp ../Userland/hostname mnt/bin/hostname
|
|
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
|
|
sh sync-local.sh
|
|
cp kernel.map mnt/
|
|
umount mnt
|
|
sync
|