You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
Copy file name to clipboardexpand all lines: rfcs/0050-vm-syscalls-3/0050-vm-syscalls-3.md
+4-4
Original file line number
Diff line number
Diff line change
@@ -14,9 +14,9 @@ This document describes the addition of the syscalls during the CKB2023. This up
14
14
15
15
## Introduction
16
16
17
-
The design of the syscall `spawn` function draws inspiration from Unix and Linux, hence they share the same terminologies: process, pipe, and file descriptor. The `spawn` is a mechanism used in `ckb-vm` to create new processes, which can then execute a different program or command independently of the parent process.
17
+
The design of the syscall spawn function draws inspiration from Unix and Linux, hence they share the same terminologies: process, pipe, and file descriptor. The spawnmechanism is used in ckb-vm to create new processes, which can then execute a different program or command independently of the parent process.
18
18
19
-
In the context of `ckb-vm`, a process represents the active execution of a RISC-V binary. This binary can be located within a cell. Additionally, a RISC-V binary can also be found within the witness during a syscall `spawn`. A pipe is established by associating two file descriptors, each linked to one of its ends. These file descriptors cannot be duplicated and are exclusively owned by the process. Furthermore, the file descriptors can only be either read from or written to; they cannot be both read from and written to simultaneously.
19
+
In the context of ckb-vm, a process represents the active execution of a RISC-V binary. This binary can be located within a cell. Additionally, a RISC-V binary can also be found within the witness during a syscall spawn. A pipe is established by associating two file descriptors, each linked to one of its ends. These file descriptors can't be duplicated and are exclusively owned by the process. Furthermore, the file descriptors can only be either read from or written to; they can't be both read from and written to simultaneously.
20
20
21
21
We added 8 spawn-related syscalls and one block-related syscall, respectively:
22
22
@@ -68,7 +68,7 @@ The arguments used here are:
68
68
- process_id: a pointer used to save the process_id of the child process
69
69
- inherited_fds: an array representing the file descriptors passed to the child process. It must end with zero.
70
70
71
-
The arguments used here index, source, bounds, place, argc and argv follow the usage described in [EXEC].
71
+
The arguments used here - index, source, bounds, place, argc, and argv - follow the usage described in [EXEC].
72
72
73
73
### Pipe
74
74
[Pipe]: #pipe
@@ -126,7 +126,7 @@ It's not always necessary to manually close file descriptors. When a process is
126
126
### Wait
127
127
[Wait]: #wait
128
128
129
-
The syscall pauses until the execution of a process specified by `pid` has ended.
129
+
The syscall pauses until the execution of a process specified by `pid` has ended. If the process has already terminated when Wait is called, the method returns immediately.
0 commit comments