嵌入式Linux系统的如何进行初始化

嵌入式Linux系统的如何进行初始化,第1张

LINUX系统的初始化可以分为两部分:内核部分和init程序部分。内核主要完成系统的硬件检测和初始化,init程序则主要完成系统的各项配置。

主要流程是:CPU自身初始化-->加载BIOS-->BIOS加载内核引导程序(也就是ubuntu我们常说的GRUB)-->内核引导程序加载内核映像(这里的内核代码是压缩过的)-->内核映像获得CPU控制权并开始工作-->内核映像自己解压缩,开始运行init/main.c中的start_kernel()函数,这时候内核就启动了,系统初始化,系统的父进程init进程执行起来了,这时候整个系统初始化完毕,接下来只是调用一些UI界面的进程执行。

这是我的一点浅陋简介,希望对你有所帮助,谢谢!

Linux内核初始化sp设置方法是sp只要指向远大于512偏移处都可以。linux在初始的时候会调用fork系统调用来创建第一个进程,他被成为零号进程,创建后会一直存在并且零号进程是所有进程的父进程。

Linux内核初始化的设置方法

首先看任务的结构体,前面是进程的状态时间片,优先级信号打开文件等等,重要的是最后TSS结构体,TSS段存放的是进程的一些寄存器的状态标识,当CPU运行某个进程时,需要将这个进程的TSS段放入CPU中。

TSS实际就是CPU在运行时产生的一些结果会放到这些寄存器中,当再次调用这个进程时再把TSS段放进CPU中,需要将linux的信息从硬盘中移到内存里,之后进行内存向量等的初始化,在内核初始化的过程中,会手动创建0号进程。


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/yw/8919488.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-04-23
下一篇 2023-04-23

发表评论

登录后才能评论

评论列表(0条)

保存