Advertisement

内核启动网络协议栈堆栈

阅读量:

kernel的网络初始化顺序如下:

  1. core_initcall : sock_init
  2. fs_initcall : inet_init
  3. subsys_initcall : net_dev_init
  4. device_initcall : 设备驱动初始化

网络基础系统初始化过程的第一步,是通过core_initcall宏对sock_init函数进行修饰,该宏将sock_init函数安排在优先级为1的代码段中,意味着该函数将在整个初始化流程中率先被执行。此函数的主要功能是分配部分内存资源,并构建一个名为sock_fs_type的文件系统。在do_basic_setup函数中,sock_init会被调用,并且其执行时间早于internet协议的注册过程。因此,在所有TCP/IP子协议能够注册到socket层之前,必须首先完成基本的socket初始化工作。

复制代码
    static int __init sock_init(void)
    {
    /* * Initialize sock SLAB cache.
     */
    sk_init();
    /* * Initialize skbuff SLAB cache
     */
    skb_init();
    /* * Initialize the proto

全部评论 (0)

还没有任何评论哟~