The do_fork is the function that performs the actual work of duplicating the process. do_fork allocates a new task_struct for the child process. This structure, often referred to as the PCB, contains all the information about process, such as its PID, state, priority, scheduling information, and pointers to memory and file descriptor tables.