一、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

初始化硬件设备

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

挂载根文件系统

执行用户空间的程序

相关推荐
梓䈑28 分钟前
【Linux系统】详解Linux权限
linux·运维·bash
小茬粥41 分钟前
kvm网卡发现的采集信息脚本COLT_CMDB_KVM_NETDISC.sh
linux·kvm
Mr_sun.1 小时前
Day23-Web开发——Linux
linux·运维·服务器
星雨流星天的笔记本1 小时前
1、Linux操作系统下,ubuntu22.04版本切换中英文界面
linux·学习
muxue1781 小时前
centos 7 网络配置(2):ping命令出现问题
linux·网络·centos
唐僧洗头爱飘柔95272 小时前
(云计算HCIP)HCIP全笔记(九)本篇介绍操作系统基础,内容包含:操作系统组成、分类和定义,Linux的特性结构和Linux版本分类
linux·笔记·华为云·云计算·hcip·openeuler·操作系统概述
电鱼智能的电小鱼2 小时前
EFISH-SBC-RK3588 —— 厘米级定位 × 旗舰算力 × 工业级可靠‌
linux·人工智能·嵌入式硬件·边缘计算
yuanlaile2 小时前
Go全栈_Golang、Gin实战、Gorm实战、Go_Socket、Redis、Elasticsearch、微服务、K8s、RabbitMQ全家桶
linux·redis·golang·k8s·rabbitmq·gin
程序员JerrySUN3 小时前
驱动开发硬核特训 · Day 22(上篇): 电源管理体系完整梳理:I2C、Regulator、PMIC与Power-Domain框架
linux·驱动开发·嵌入式硬件
IT运维爱好者3 小时前
Ubuntu 22.04.4操作系统初始化详细配置
linux·运维·服务器·ubuntu