Linux驱动bootloader之UEFI系统二——再看UEFI

本文介绍了UEFI作为BIOS的替代者,其主要目标是提供一致的启动服务,增强安全性。UEFI用C语言实现,模块化设计,支持更大内存和磁盘空间。在Linux加载过程中,重点探讨了入口函数LinuxLoaderEntry()的查找方法,包括通过main函数和分析串口日志。文章还提及了按键读取程序和UEFI API接口的使用。

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


一、再识UEFI

之前把UEFI 简单的理解为是一种Bootloader,其功能与LK类似,就是引导加载内核镜像程序,将整个系统launch起来,随着与UEFI 更多的接触,以及在网上查找资料,UEFI是由BIOS 演变而来,将会替代掉BIOS近 二十年的统治地位。

UEFI: 可扩展固件接口(Extensible FirmwareInterface,EFI)是 Intel 为 PC 固件的体系结构、接口和服务提出的建议标准。其主要目的是为了提供一组在 OS 加载之前(启动前)在所有平台上一致的、正确指定的启动服务,被看做是有近20多年历史的 BIOS 的继任者。并且security有所加强

UEFI相比BIOS而言,其优势在于:简单易读,可移植性高,并由高安全性。

BIOS是汇编实现的,采用的是16bit 实模式寻址方式,最大支持的内存只有1M,代码易读性以及实现的功能都受到限制,而且移植起来不方便。BIOS支持的最大磁盘空间不超过2TB。

UEFI克服了上述的所有缺点,采用C语言实现,分层,模块化设计,实现了CPU以及驱动的无关性。UEFI可以理解为一个完整的系统,包含了上电时序,驱动实现,os环境建立(这个os可以理解为UEFI运行独有的os,非linux,windows),应用程序。其中应用程序支持网络配置,类shell环境,fastboot,linux loader等。


二、Linux加载入口函数LinuxLoaderEntry()

下面来看bootloader 的程序,拿到代码之后,面对成千上万行的代码,该从何看起呢?

是main函数?还是打印log 之后,查找log中出现的关键字?

以上都是手段。

首先直接上来撸代码是很懵懂的,会接触到很多专业术语以及相关的知识应用,这些也是需要慢慢了解和积累的。否则怎么可能别人学不会,你就能学会呢??!!

其一、看搜索main函数,为什么可查看如下链接的文章:

https://blog.csdn.net/clam_zxf/article/details/79772508

其二、分析串口log——最终走的方法,比较简单明了。

截取我的部分串口log如下==>最终

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值