• 2019-2020-1 20199328《Linux内核原理与分析》第七周作业


    分析Linux内核创建一个新进程的过程

    2019/10/28 18:34:58

    笔记部分

    • 首先是查看进程描述符(用来描述进程,其代码比较庞大)的一些内容

    • 系统调用回顾

      fork、vfork、clone三个系统调用都可以创建一个新进程,而且都通过do_fork来实现进程。Linux通过复制父进程来创建新的进程,并设置pid,在thread中设置eip,esp。

    • 浏览创建进程的相关代码

    实验部分

    - 跟踪内核中fork函数的处理过程

    1. 首先删除menu,并且clone一个新的,然后覆盖掉test.c文件,以不受前面实验的影响,然后进行编译。
    2. 利用help命令查看,发现多了一个fork函数,执行后会创建一个子进程,可以看到父进程和子进程都输出信息了。
    3. 开始调试,加载内核,加载内核符号表并连接。
    4. 设置断点,依次停在do_fork,copy_process,dup_task_struct,copy_thread,ret_from_fork,直到sys_call无法再跟踪

  • 相关阅读:
    sqlserver中的锁与事务
    策略模式
    异步编程
    并行聚合操作
    EF中的自动追踪与代理
    C#6.0语法糖
    EF中使用SqlQuery进行参数化查询时抛出异常
    乐观并发
    为什么那么多公司不用 .NET
    sqlserver 更改跟踪相关知识
  • 原文地址:https://www.cnblogs.com/llj76720197/p/11754253.html
Copyright © 2020-2023  润新知