像 linux/windows 这样的操作系统的一个副本如何在不同的硬件上运行?

像 linux/windows 这样的操作系统的一个副本如何在不同的硬件上运行?

我是一名嵌入式系统开发人员,目前正在使用 PIC 16 位 uC。每当我开始使用不同的 uC(也是 PIC 16 位)时,外设寄存器都会发生相当大的变化,并且根据外部引脚映射,我需要主要更改引脚初始化代码、外设代码和时钟设置以及其他一些小事情。

编辑:操作系统安装的典型过程是下载 ISO 映像、使用 Rufus 之类的软件、创建可启动的 USB 驱动器,最后从实时 USB 安装操作系统。

我的问题是:
i)像 linux/windows 这样的软件(在这种情况下是操作系统)作为一个文件(ISO 映像)如何能够在具有不同处理器(Intel/AMD)和不同网络、音频、视频、硬盘、USB 等控制器芯片的不同主板上运行?

ii) 首先,操作系统如何知道它正在与哪个处理器对话?其次,操作系统和微处理器之间交换什么样的信息来了解所有当前硬件配置,以便它可以定制其安装软件(假设这是操作系统了解不同硬件配置的方式)?

答案1

据我所知,你不能只是热插拔两组硬件之间已安装的图像。

最近尝试将笔记本电脑图像移动到我的桌面,但失败了,这是我的经验和理论

当您第一次在一组硬件上运行 Windows 安装程序时 - 安装程序本身将具有使大多数硬件启动和运行的基本、最低要求;只有与您安装的硬件相关的内容才会被复制到您的本地磁盘 - 更复杂的驱动程序和更新将在您连接到网络后通过 Windows 更新进行更新。

简单地将图像交换到一组新的硬件上是行不通的;因为所有的支持库和配置都是为不同的硬件组定义的——所以你很可能无法轻松启动它。

相关内容