linux init_task 的初始化

本文详细介绍了Linux内核中init_task的初始化过程,包括init_task的栈针sp的设置,以及系统栈的初始化。当mmu启用后,sp指向init_task的栈顶,后续start_kernel中的操作都在此栈上进行。此外,还探讨了init_task如何影响子进程的userspace栈大小,其默认限制在8MB。
摘要由CSDN通过智能技术生成

linux init_task 的初始化

日期

内核版本

架构

作者

2017-03-17

Linux-3.4.0

arm

jlovej

 

前言:

Init_task 是系统的0号进程,又称swapper进程,又称idle任务。它是所有进程、线程的祖宗,包括1号进程init,2号内核线程kthreadd。

Init_task的栈针sp:

进入start_kernel,可以说就已经运行在init_task的上下文了,因为此时栈针sp已经指向init_task的栈了。

Init_task的栈:

linux/arch/arm/kernel/init_task.c中:

structtask_struct init_task = INIT_TASK(init_task);

unionthread_union init_thread_union __init_task_data =

                { INIT_THREAD_INFO(init_task) };

init_thread_union即为init_tas

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值