win10 为什么可以秒开机?(附实战源码,真机操作)_为什么电脑公司装机的可以秒开

取消自检流程确实缩短了启动时间,这也是 win10 开机快的原因之一。

UEFI 优势

作为 Legacy BIOS 的继任者,UEFI 拥有前辈所不具备的诸多功能,比如图形化界面、多种多样的操作方式、允许植入硬件驱动等等。这些特性让 UEFI 更加易用、更多功能、更加方便。
加上UEFI本身的开发语言已经从汇编转变成 C 语言,高级语言的加入让厂商深度开发UEFI变为可能。

Legacy BIOS 在读取磁盘时,每次只能读 64KB,非常低效,而 UEFI 每次可读 1MB,载入更快,此外,win8/win10
更是进一步优化了 UEFI 的支持,号称可以实现瞬时开机。

UEFI 和 BIOS 的区别

BIOS 方式在启动操作系统前,必须从硬盘上指定扇区读取系统启动代码(包含在主引导记录中),然后从活动分区中引导操作系统。

而 UEFI 已经具备文件系统的支持,能够直接读取 FAT 分区中的文件。

对扇区的操作远比不上对分区中文件的操作更直观更简单。

实战

光说不练假把式,下面我们就来实战一把,感受下 UEFI 的启动方式。

大致流程是,我们把 PC 设置为 UEFI 启动方式,优先从 U 盘启动,而 U 盘又被我们事先格式化为 FAT32 格式,里面存放有我们的 UEFI 应用程序。
最终就是 UEFI 固件,将我们编写的 UEFI 应用程序给启动起来。
在这里插入图片描述

源码

main.c

struct EFI_SYSTEM_TABLE {
    char _buf[60];
    struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL {
        unsigned long long _buf;
        unsigned long long (\*OutputString)(
            struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL \*This,
            unsigned short \*String);
        unsigned long long _buf2[4];
        unsigned long long (\*ClearScreen)(
             struct EFI_SIMPLE_TEXT_OUTPUT_PROTOCOL \*This);
    } \*ConOut;
};
  
void efi\_main(void \*ImageHandle __attribute__ ((unused)),
    struct EFI_SYSTEM_TABLE \*SystemTable)
{
    SystemTable->ConOut->ClearScreen(SystemTable->ConOut);
    SystemTable->ConOut->OutputString(SystemTable->ConOut, L"Hello UEFI!\n");
    while (1);
}

编译

$ x86_64-w64-mingw32-gcc -Wall -Wextra -e efi_main -nostdinc -nostdlib -fno-builtin -Wl,--subsystem,10 -o main.efi main.c

制作启动盘

最近我根据上述的技术体系图搜集了几十套腾讯、头条、阿里、美团等公司21年的面试题,把技术点整理成了视频(实际上比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

比预期多花了不少精力),包含知识脉络 + 诸多细节,由于篇幅有限,这里以图片的形式给大家展示一部分

[外链图片转存中…(img-b3lCyvZ0-1714480650228)]

本文已被CODING开源项目:【一线大厂Java面试题解析+核心总结学习笔记+最新讲解视频+实战项目源码】收录

  • 5
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值