一、linux系统启动过程操作记录

一、linux系统启动过程

经历:

上电-->uboot-->加载内核-->挂载根文件系统-->执行应用程序

uboot等效bootloader,启动过程进行了

跳转到固定的位置执行相应的代码

初始化硬件设备,如:cpu初始化 ,看门狗,时钟,内存,存储设备等。

加载内核代码到内存中。

跳转到内核代码起始位置执行。

uboot下常见指令

printenv 查看环境参数

如串口,网络,boot配置参数等

set bootdelay x 设置uboot停留等待时间

save

reset

配置uboot启动的位置,以及内核的位置

bootcmd=ext4load mmc 2:1 0x48000000 uImage;bootm 0x48000000

set ipaddr 192.168.x.x 设置当前设备的ip

set serverip 192.168.x,x+1 设置提供文件的设备ip

set gatewayipp 192.168.x.1 设置网关

set netmask 255.255.255.0 设置子网掩码

saveenv 保存

使用tftp通过网络对文件进行传输传输

tftp 内存地址 文件名

指定内存地址开始运行

go 内存地址

当进行裸机程序测试时:

arm-linux-gcc -c demo.o -nostdlib -O2 编译时不添加标准库,提高优化等级

arm-linux-ld -Ttext 地址 -o demo.elf demo.o 将.o文件链接到对应指定程序运行的地址,输出.elf执行文件

arm-linux-objcopy -O binary demo.elf demo.bin 无操作系统所以,将.elf转为可执行的bin文件

裸机编辑入口函数时为_start(),且需要要放到文件的首位置,否则会终止运行。

反汇编

arm-linux-xxx-objdump -D demo.elf >demo.dis

linux内核的功能与本质

功能:

进程管理

文件系统

设备管理

网络协议

本质:

c语言的函数合集

对硬件的管理与维护

给应用程序提供服务

在linux内核中进行了

解压uImage

初始化硬件设备

静态编译进内核的驱动模块

挂载根文件系统

执行用户空间的程序

相关推荐
虾..11 小时前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙11 小时前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
hkhkhkhkh12313 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen14 小时前
Linux字符串处理
linux·string
张童瑶14 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功12314 小时前
什么是SELinux
linux
石小千14 小时前
Linux安装OpenProject
linux·运维
柏木乃一14 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程
Lime-309014 小时前
制作Ubuntu 24.04-GPU服务器测试系统盘
linux·运维·ubuntu
百年渔翁_肯肯15 小时前
Linux 与 Unix 的核心区别(清晰对比版)
linux·运维·unix