Mac OS X 启动过程

本文详细介绍了Mac OS X的启动过程,从BIOS和EFI的区别开始,重点解析了EFI服务的引导服务和运行时服务。接着,深入探讨了Boot.efi的执行流程,包括设备树的初始化、内存分配、内核加载等关键步骤,以及内核如何使用EFI的运行时服务。最后,讨论了内核启动后的回调机制。

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

一.BIOS EFI 的区别:

BIOS是一个固定的程序,通常都是封闭的;EFI 是一套接口,像是一个运行时环境,规范了一组应用程序编程接口,基于EFI 的程序可以利用这些接口实现功能。目前大部分的PC 机使用BIOS 进行引导,Mac OS X使用EFI 进行引导,他们的目的都是一样的加载一些自举程序代码给CPU执行,自举程序负责POST(上电自检)阶段,CPU探测各种硬件总线,查明安装了哪些设备,BIOS或固件定位这些引导设备,执行引导加载程序,将所有必要的命令行参数传递给操作系统内核。固件接口,包括用户接口和处理器接口,比BIOS 更为丰富,相比之下,BIOS存在很多局限性:分区方案不扩展;无法和强大的图形设备进行接口操作;没有可扩展性,没有插件式的驱动程。

二.EFI服务

EFI服务分为两类:引导服务和运行时服务。引导服务只能在FEI模式下使用,运行时服务在退出EFI模式,在加载操作系统以后也能使用。

引导服务:通常情况下,当控制权转交到操作系统之前会调用ExitBootServices()这个函数,当系统还在EFI环境中,而且还没有调用ExitBootServices()函数之前,可以访问引导服务。引导环境提供的内容特别丰富,支持带抢占的多任务、事务通知、内存管理以及硬件访问。其中特别重要的服务就是提供对硬件的访问,

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值