BIOS是否被视为操作系统?[关闭]


11

处理RAID阵列时会想到此问题,但不一定适用于该主题。

当许多操作系统需要驱动程序才能执行相同的操作时,BIOS如何从硬盘驱动器读取以有效地加载操作系统? BIOS是否具有像Windows或Linux这样的主流OS一样从中拉出的驱动程序列表?


2
SU管理员不是建设性的
Stumbler

Answers:


10

首先,BIOS是基本输入/输出系统,而不是技术上来说是操作系统...至于加载RAID等,在引导过程中发生的情况是计算机查询任何附加卡,询问它们是否要加载BIOS。RAID卡先生大喊“是的,我首先要做的事”,然后启动“ BIOS”(在这种情况下为OS),自己进行一些计算,然后将控制权交还给主BIOS(“嘿,我完成了,这里是您需要知道的所有信息,知道吗?”)。

一旦主BIOS重新获得控制,它就可以说“啊,我看到RAID先生有一个可引导的卷,如果可能,我将循环遍历,然后尝试其他技巧”。

因此,BIOS不是“技术上”的操作系统,而是为实际操作系统做准备的输入/输出系统。


11
他启动了他的“ BIOS”(在本例中为OS) “-BIOS或BIOS扩展名根本不是OS。 操作系统的主要目的是资源管理。BIOS作为独立的引导程序,不会费心维护任何资源分配信息。BIOS没有提供open()或close()例程来限制对硬件的访问。任何执行代码都可以利用BIOS读/写功能。BIOS无法满足操作系统的基本目的。
锯末

@sawdust如何启用或禁用板载设备?那将限制对硬件的访问。
Bon Gart 2012年

@BonGart-通过BIOS启用/禁用只是一种配置工具,可以代替物理安装或卸下设备。这是系统范围的操作,直到重新配置或设备故障后才生效。我实际上指的是用于同步和排除的OS概念,例如互斥量和信号量,它们可以在进程和/或线程级别上进行控制/限制。或例如后台打印程序;OS的假脱机程序拥有打印机,并且不允许直接使用该打印机。您必须将打印作业提交到后台处理程序,该程序将打印请求排队。
锯末

10

BIOS,逐字地“基本输入/输出系统”,是一组小程序硬编码到计算机主板(通常存储在一个EEPROM)。这些程序包括修改设置,写入文本以及从基本 I / O设备获取用户输入的能力(主板必须为高级VGA和USB鼠标/键盘设备模拟它们),最重要的是,它提供了查找和引导功能。任何受攻击的存储设备上存在的操作系统。

BIOS本身不是操作系统。BIOS是一个小程序,可以实际加载操作系统。尽管在某些操作系统中可以调用各种BIOS子系统,但这需要CPU切换回实模式,因为BIOS不提供虚拟内存支持,任务切换(因此不能运行程序) )或设备驱动程序支持(因此,无法直接访问Direct-Map可访问范围之外的硬件,也无法访问BIOS中断调用中未涵盖的任何内容)。

正如Linus Torvalds所说

并不是说我也曾经说过BIOS很棒,但是至少每个人都知道BIOS只是一个引导程序,并且不会尝试做其他任何事情。

BIOS的绝对最大优点是它是如此 不便且显然过时,以至于您必须疯狂地对它进行认真的处理,不要对它成为任何其他宏伟框架的想法有所了解。而不是“仅加载操作系统并摆脱困境”。

最后,应该注意的是,BIOS 与UEFI(统一可扩展固件接口明显不同,后者更接近于提供基本的操作系统接口(提供设备驱动程序和应用程序支持)。尽管UEFI远比BIOS更能被视为OS,但对于UEFI是否可被视为真正的操作系统仍存在疑问。


2

为了处理提出的许多评论和要点,我再次编辑了答案。

BIOS是操作系统吗?

好吧,如果将操作系统定义为允许用户与“计算机”的硬件进行交互的软件,那么从技术上和字面上看,它都是一个操作系统。

任务切换是否定义了操作系统的组成部分?

考虑到MS-DOS是一个有效的操作系统,并且直到不支持版本5任务切换,任务切换不会影响软件或操作系统。

内存虚拟化是否定义了操作系统的组成部分?

同样,以MS-DOS为例,尽管可以通过在加载过程中运行扩展程序来添加对内存虚拟化的支持,但是并不需要使用它们。因此,内存虚拟化也不是构成操作系统的先决条件。

如果存储在固件中,那么它是操作系统吗?

有人会认为路由器不使用操作系统。例如,似乎对于DD-WRT是否被视为操作系统存在争议。是否有在固件中存储操作系统的设备?现代电话,iPod等存储了复杂的操作系统,可以在固件中添加程序。因此,仅因为操作系统已加载到固件中,并不排除所讨论的软件被视为操作系统。

如果您无法添加程序,则它不是操作系统。

远离现代智能手机。看看便宜的一次性手机。它具有存储在固件中的操作系统,但是您不能添加程序。它按原样运行,并且仅具有所提供的功能。您可以像浏览其他任何操作系统一样浏览菜单,选择想要做的事情(玩游戏等),几年前有很多这样的菜单,它们没有添加任何其他软件的能力。

如果不是现代的,那不是操作系统吗?

创建和启动OS的历史点与它是否是操作系统无关。

因此,BIOS可能并不漂亮,并且可能无法为您提供出色的功能。但是,它仍然是一个操作系统。


3
维基百科上操作系统的定义本身值得商question。(我听过其他人的话)但是无论如何,您完全会错过为计算机程序提供通用服务的服务,我认为这对于操作系统至关重要。
巴恩

1
我比OS更倾向于固件。BIOS没有智能,它仅以非常低的级别与硬件通信,并将该信息传递给OS。UEFI正在改变游戏规则。
摩押

1
它是固件和操作系统之间的一条细线,主观是地狱。
摩押

1
好吧,我同意了,它是一个biOS,您现在可能会低下头.. ;-)
Moab

2
@BonGart BIOS缺乏虚拟内存支持和任务调度-因此,缺乏运行程序的能力(即,它不能与其他任何东西同时运行)。虽然我同意它提供基本的I / O支持,但这只是一个小程序,而不是操作系统...或者您可以在我的微控制器上对接收密码并打开LED的一小段代码进行分类(因此提供基本的I / O支持)以及操作系统?
突破

2

什么是“操作系统”或不是操作系统是一个判断问题。可以说(我在1980年提出了争论),原始的PC / MS DOS并不是“操作系统”(尽管名称如此),因为它仅提供I / O服务(和原始命令分析器),而没有提供真正的系统管理工具。 。

OTOH,许多BIOS实现现在都包含某种程度的管理程序功能,该功能可以以相当复杂的方式管理系统资源。

关于BIOS如何在没有驱动程序的情况下从磁盘等中进行加载,按照惯例/标准,“可启动”设备包括一组操作,这些操作可以在不建立复杂的管理基础结构的情况下使用。在某些情况下,这仅是在相对固定的位置读取几个扇区的能力,但这就是大多数情况下所需要的。


因此,您将打开计算机,加载MS-DOS,然后能够运行程序。您说MS-DOS不是一个操作系统...那么该操作系统在哪里?听起来您似乎在说MS-DOS并不是您真正的操作系统,即使它在技术上可以作为一个操作系统使用(因此也是这样)。
Bon Gart 2012年

1
过去有很多计算机没有“操作系统”,而只有“运行时执行程序”或提供文件服务和命令分析器的计算机。他们从来没有称它们为“操作系统”。
Daniel R Hicks

2
@bonGart“ 然后操作系统在哪里? ”不需要具有操作系统(即资源分配器/管理器)来在计算机上执行程序。早期(或简单)的计算机(包括运行CP / M的微型计算机)仅具有驻留的加载程序,并且加载的程序可以完全访问所有计算机资源。无需争用资源,因此不需要操作系统。
木屑

@sawdust-正确。而从“驻留程序加载器”升级的是驻留运行时库(纸带,软盘和键盘/显示功能-可能是打印机)和一个“监视器”或“执行程序”,或一些可以检测到何时程序的程序结束加载下一个。DOS并不比这些复杂得多。
Daniel R Hicks
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.