嵌入式Linux文件系统启动脚本及过程分析
- 格式:ppt
- 大小:181.50 KB
- 文档页数:26


嵌入式启动流程:汇编代码解析1.加载引导程序嵌入式系统在加电后,第一个执行的程序通常是引导程序(Bootloader)。
它负责从存储设备中加载并执行后续的程序。
引导程序通常在启动时进行硬件设备的自检,然后从特定的存储位置(如闪存或RAM)加载后续程序。
引导程序通常使用汇编语言编写,因为它需要在硬件级别进行操作。
它负责初始化CPU、内存、硬盘等硬件设备,并确保系统环境满足后续程序的要求。
2.初始化硬件设备在引导程序之后,接下来的任务是初始化硬件设备。
这包括初始化CPU、内存、硬盘、显示器等设备。
初始化硬件设备的过程包括设置设备的寄存器、配置设备的接口等。
在这个过程中,硬件设备被配置为适合后续程序运行的状态。
3.设置内存管理器在硬件设备初始化完成后,接下来需要设置内存管理器。
内存管理器负责管理系统的内存资源,包括内存的分配、释放和保护。
内存管理器通常由操作系统内核提供,因此在加载操作系统内核之前,需要先初始化内存管理器。
4.加载操作系统内核在内存管理器初始化完成后,可以加载操作系统内核。
操作系统内核是系统的核心部分,负责管理系统资源、调度应用程序的运行等。
操作系统内核通常被压缩并保存在存储设备中,因此需要先解压缩并加载到内存中。
然后,内核会进行自身的初始化,包括设置系统时钟、配置设备驱动等。
5.启动内核并初始化系统服务在操作系统内核加载并初始化完成后,可以启动内核并初始化系统服务。
系统服务是指为应用程序提供支持的底层服务,如文件系统、网络服务等。
启动内核后,会执行一系列的系统初始化过程,包括设置系统环境变量、加载系统服务等。
这些过程完成后,系统就可以接受应用程序的请求并为其提供服务。
6.加载文件系统和应用程序在系统服务初始化完成后,可以加载文件系统和应用程序。
文件系统是存储和管理文件数据的系统,应用程序则是为用户提供服务的程序。
文件系统通常被加载到内存中,并初始化为可用的状态。
然后,可以按需加载应用程序到内存中并执行。
Linux—添加开机启动(服务脚本)系统启动时需要加载的配置⽂件/etc/profile、/root/.bash_profile/etc/bashrc、/root/.bashrc/etc/profile.d/*.sh、/etc/profile.d/lang.sh/etc/sysconfig/i18n、/etc/rc.local(/etc/rc.d/rc.local)⼀、修改开机启动⽂件:/etc/rc.local(或者/etc/rc.d/rc.local)# 1.编辑rc.local⽂件[root@localhost ~]# vi /etc/rc.local# 2.修改rc.local⽂件,在 exit 0前⾯加⼊以下命令。
保存并退出。
/etc/init.d/mysqld start # mysql开机启动/etc/init.d/nginx start # nginx开机启动supervisord -c /etc/supervisor/supervisord.conf # supervisord开机启动/bin/bash /server/scripts/test.sh >/dev/null2>/dev/null# 3.最后修改rc.local⽂件的执⾏权限[root@localhost ~]# chmod +x /etc/rc.local[root@localhost ~]# chmod755 /etc/rc.local⼆、⾃⼰写⼀个shell脚本将写好的脚本(.sh⽂件)放到⽬录 /etc/profile.d/ 下,系统启动后就会⾃动执⾏该⽬录下的所有shell脚本。
三、通过chkconfig命令设置# 1.将(脚本)启动⽂件移动到 /etc/init.d/或者/etc/rc.d/init.d/⽬录下。
(前者是后者的软连接)mv /www/wwwroot/test.sh /etc/rc.d/init.d# 2.启动⽂件前⾯务必添加如下三⾏代码,否侧会提⽰chkconfig不⽀持。
嵌入式linux系统的启动流程
嵌入式Linux系统的启动流程一般包括以下几个步骤:
1.硬件初始化:首先会对硬件进行初始化,例如设置时钟、中
断控制等。
这一步骤通常是由硬件自身进行初始化,也受到系统的BIOS或Bootloader的控制。
2.Bootloader引导:接下来,系统会从存储介质(如闪存、SD
卡等)的Bootloader区域读取引导程序。
Bootloader是一段程序,可以从存储介质中加载内核镜像和根文件系统,它负责进行硬件初始化、进行引导选项的选择,以及加载内核到内存中。
3.Linux内核加载:Bootloader会将内核镜像从存储介质中加载到系统内存中。
内核镜像是包含操作系统核心的一个二进制文件,它由开发者编译并与设备硬件特定的驱动程序进行连接。
4.内核初始化:一旦内核被加载到内存中,系统会进入内核初
始化阶段。
在这个阶段,内核会初始化设备驱动程序、文件系统、网络协议栈等系统核心。
5.启动用户空间:在内核初始化完毕后,系统将启动第一个用
户空间进程(init进程)。
init进程会读取并解析配置文件(如
/etc/inittab)来决定如何启动其他系统服务和应用程序。
6.启动其他系统服务和应用程序:在用户空间启动后,init进
程会根据配置文件启动其他系统服务和应用程序。
这些服务和应用程序通常运行在用户空间,提供各种功能和服务。
以上是嵌入式Linux系统的基本启动流程,不同的嵌入式系统可能会有一些差异。
同时,一些特定的系统也可以添加其他的启动流程步骤,如初始化设备树、加载设备固件文件等。