Android培训班(109)start_kernel函数6

本文深入探讨了内核启动过程中几个核心初始化函数的作用:从命令行保存与解析到SMP系统的CPU准备与调度初始化,全面揭示内核启动机制。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

setup_command_line(command_line)

这个函数主要作用是保存命令行,以便后面可以使用。



unwind_setup()

这个函数主要作用是对调用栈的调试功能进一步初始化。在ARM系统里是空函数。



setup_per_cpu_areas()

这个函数主要作用是设置SMP体系每个CPU使用的内存空间,同时拷贝初始化段里数据。



setup_nr_cpu_ids()

这个函数主要作用是设置最多有多少个nr_cpu_ids结构。



smp_prepare_boot_cpu()

这个函数主要作用是为SMP系统里引导CPU进行准备工作。在ARM系统单核里是空函数。



sched_init()

这个函数主要作用是对进程调度器进行初始化,比如分配调度器占用的内存,初始化任务队列,设置当前任务的空线程,当前任务的调度策略为CFS调度器。



preempt_disable()

这个函数主要作用是关闭优先级调度。由于每个进程任务都有优先级,目前系统还没有完全初始化,还不能打开优先级调度。



build_all_zonelists()

这个函数主要作用是初始化所有内存管理节点列表,以便后面进行内存管理初始化。



page_alloc_init()

这个函数主要作用是设置内存页分配通知器。



printk(KERN_NOTICE"Kernel command line: %s\n", boot_command_line)

这行代码主要作用是输出命令参数到显示终端。



parse_early_param()

这个函数主要作用是分析命令行最早使用的参数。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值