谢邀。有用。

电脑启动过程中BIOS的服务和存储内容包括两种:Boottime Service(bs)和Boottime数据,和Runtime Service(RS)和Runtime数据。

1.Boot time的代码和数据是只在启动过程需要的。包括几乎所有的协议栈、UEFI driver model的代码等;数据包括代码需要的数据和page table等。在启动完毕后会被释放,操作系统可以重用。

2.Runtime的代码和数据在启动阶段也有可能会用到,但更多的是留个尾巴到操作系统启动后。包括UEFI Runtime Service(UEFI Spec定义,其中有variable存储,RTC等)、SMM代码和ACPI的AML代码等;数据包括各种ACPI table和一些预留的内容(Reserved)。它的内容是不会释放给操作系统的,也就是操作系统看起来神秘消失的内存。

如果比较两者的大小的话,用一句名人的话讲,是一个指头和九个指头的关系。BIOS中Boot time的内容占据绝大多数,而这些内容都会被清掉而不会再起作用,而Runtime的东西在OS起来后还在不知不觉的为大家服务。

欢迎大家关注本专栏和用微信扫描下方二维码加入微信公众号"UEFIBlog",在那里有最新的文章。

用微信扫描二维码加入UEFIBlog公众号

有用。

DOS里就用BIOS中断,DOS算不算操作系统?也算吧,Win95,Win98时代也是会用BIOS中断的。

另外,也要看你怎么定义系统启动的概念。

Windows 2000 ~ Windows 7这个范围上,如果使用NTLDR来启动,那么NTLDR也是用BIOS的INT13中断的。原因是bootloader没办法包含太多驱动,只能依赖BIOS的中断服务来访问磁碟,操作系统的启动代码要从实模式到保护模式之间来回切换,在系统启动的过程中BIOS中断时可以被使用的,这个阶段实际上也是有输入输出的(就是多系统启动菜单)。但如果系统完全起来,就不用INT13这么低效的介面了。

ACPI的介面是BIOS提供的,保护模式下也会用。MMIO里有一堆东西,有些也是BIOS初始化的,算BIOS的东西,也不算。

很多计算机专业的操作系统作业,都是拿BIOS中断来操作硬体的,毕竟让一个学生自己实现一套完整的驱动还是挺困难的,这些操作系统作业,也算是操作系统吧。


有,有次在win下bios刷错了,可以开机但是死活关不了机,,重启后卡logo.


重启再进


有 比如超频


bios是基本输入输出系统,只起引导作用,引导完成进入操作系统之后就不会在运行了


pci汇流排的一些数据会一直保留比如acpi table之类,其它好像就真没啥用了。

对于efi系统,里面那些variable是一直可用的,不过除了一些特定的场景,别的时候好像也没啥用。


bios启动时做了两件事情,初始化bios中断体系以及bios数据区;

而bios中断体系中的中断处理程序在之后载入操作系统的bootsect、setup、system模块都是有用到~

详细的可以看这篇博客,从按下开机键开始讲起,操作系统是如何载入进内存的~

https://juejin.im/entry/5e92cf806fb9a03c957ffa46


系统启动后调度权给了操作系统,但是BIOS里实现的一些底层功能还存在内存里,操作系统有需要的时候会来运行这些代码。


推荐阅读:
相关文章