操作系统设计/初始化/硬件
通常,当CPU启动时,它会进行一些内部一致性检查,并将控制权转移到包含永久编码的PROM或EPROM设备,这些编码旨在保留电源损失。在一些计算机中,这是他们需要的全部代码。但是,在许多通用计算设备中,此只读内存定义了BIOS或基本输入输出系统,能够在标准辅助存储设备上找到引导扇区。在一些盒式磁带类型的游戏机中,BIOS在进行一些初步测试以确保机器正常工作后,将控制权转移到盒式磁带。在其他机器(如PC和Mac)上,BIOS会从只读内存调用一个实用程序,并让它检查机器。
POST,或开机自检,会触发外围设备和计算机内存的初始化,并且如果预设参数设置为允许,它可能会进行初步的内存检查。它还会设置内存底部,以便操作系统知道它可以使用多少内存。
开机自检完成后,计算机尝试将控制权传递给辅助存储设备的引导扇区。在像PC这样的情况下,你可能有多个辅助存储设备,它可以根据标准模式或根据电池保护的静态RAM设备中设置的参数,依次采样每个设备。引导扇区是引导系统的组成部分,它加载特定的操作系统。
在引导扇区之前,操作系统必须完全加载才能运行。引导程序的实用性在于它使用类似于为攀爬开发的技术:攀爬者的备用靴子用作重量,将一根叫做引导绳的轻绳扔到悬崖上,然后将引导绳系在一条更重的绳子上,然后拉动轻绳,最终让攀爬者能够将他的更重的攀爬绳扔到悬崖上。
引导程序的作用是允许一个小型的扇区大小程序加载一个加载程序,该加载程序最终加载操作系统。所需的中间加载程序的确切数量取决于操作系统。在DOS中,引导扇区加载IO.sys和Msdos.sys,它们加载config.sys来配置计算机,然后加载command.com,并在其上运行Autoexec.bat。扇区大小程序称为引导扇区。
内核完全加载后,初始化的下一步是设置内核参数和选项,并添加在内核设置文件中选择的任何模块。内核完全初始化后,它将接管计算机的控制权,并继续初始化文件系统和进程。
内核启动进程,并加载文件系统。主文件系统随后包含初始化文件,这些文件可用于设置操作系统的环境,并初始化所有服务、守护程序和应用程序。
即插即用的理念是,在初始化期间,系统构建一个设备数据库,之后应用程序可以访问该数据库,以了解系统上任何设备的详细信息。这种初始化方式伴随着设备上的扩展BIOS,它允许设备检测操作系统并将参数设置为与该操作系统更加兼容。这种组合特别有用,尤其是在需要初始化应用程序(如Windows)以接受该设备的驱动程序的二次初始化中。
这个概念的进一步扩展是为通用串行总线开发的,它允许设备在计算机运行时进行热插拔,或安装。USB总线与新设备接触,并从设备中学习必要的信息,以将其与驱动程序匹配。此信息将被放入数据库中,并且无论何时再次插入该设备,都会找到相同的驱动程序。当设备被拔出时,驱动程序会关闭自身并从活动设备列表中删除自身。它可以这样做,因为它可以监控USB控制器,以确保其设备仍然连接。