内核源码--------debug_objects_early_init()

来源:互联网 发布:100 7 js是什么意思 编辑:程序博客网 时间:2024/05/20 07:32

回到start_kernel,进入到debug_objects_early_init()

void __init debug_objects_early_init(void)
{
int i;


for (i = 0; i < ODEBUG_HASH_SIZE; i++)
raw_spin_lock_init(&obj_hash[i].lock);


for (i = 0; i < ODEBUG_POOL_SIZE; i++)
hlist_add_head(&obj_static_pool[i].node, &obj_pool);
}

该函数的作用是初始化obj_hash、obj_static_pool这2个全局变量,这2个全局变量会在调试的时候用到。

继续往下走,来到函数boot_init_stack_canary(),这个函数的作用主要就是就是动态分配的堆中,不按照本来分配的大小进行设置,而是使用某种方法,设置变量分配大小之外的数据。

继续往下看,来到cgroup_init_early();这个函数的作用是提供一种机制区分不同的进程,如父进程、子进程等等。

接着就是local_irq_disable();从这个函数我们可以看出内核在初始化过程中,不允许中断,不允许发生资源抢占情况的发生。

原创粉丝点击