sys_fork() is responsible for dispatching the request to the appropriate kernel function. sys_fork() is the system call handler function. do_fork() is the core function that performs the actual work of duplicating the process. do_fork() starts by allocating a new task_struct for the child process.