深入剖析 fork 内核实现(Linux kernel 2.6.11)

    xiaoxiao2022-07-03  169

    本文基于 Linux Kernel 2.6.11 分析进程复制系统调用 do_fork函数的实现过程。

    详细分析了其中的 copy_process()、dup_task_struct()、copy_file()、copy_mm()、copy_thread()等一系列辅助函数的实现过程。

    并详细讲解了进程描述符task_struct、小型进程描述符/内核栈 thread_info、内存描述符mm_struct中的主要字段含义。

    讲解了线性区的概念和线性区对象 vm_area_struct、以及线性区数据结构的相关内容。并简单描述了写时拷贝机制的底层实现原理。

    文章目录

    进程复制概述 do_fork执行过程综述 do_fork函数执行过程的详细分析 函数原型 执行过程

    进程复制概述

    在Linux系统中,进程的产生通常是调用fork系统调用的结果,该系统调用通过复制一个现有的进程来创建一个全新的进程,在调用结束时,在返回点父进程恢复执行,子进程开始执行(执行点就是父进程调用fork()系统调用之后)。

    fork函数返回了两次:

    最新回复(0)