查看设备固件与驱动程序的差异,我真的不明白为什么我们在技术上需要区分。我知道固件不容易更改,它负责低级别的设备操作,而驱动程序在那里与主机操作系统进行通信。
问题是,为什么我们不能将这两层合二为一。只是一个知道如何与操作系统通信并将所有请求直接转换为低级设备操作的驱动程序。是为了便于开发(即减少开发该软件所需的开发人员知识)吗?是否可以使用不在闪存中的软件与设备通信?
查看设备固件与驱动程序的差异,我真的不明白为什么我们在技术上需要区分。我知道固件不容易更改,它负责低级别的设备操作,而驱动程序在那里与主机操作系统进行通信。
问题是,为什么我们不能将这两层合二为一。只是一个知道如何与操作系统通信并将所有请求直接转换为低级设备操作的驱动程序。是为了便于开发(即减少开发该软件所需的开发人员知识)吗?是否可以使用不在闪存中的软件与设备通信?
我在一台新机器上并安装了 Windows Terminal [Microsoft Store] 和 Git Bash [latest]。我运行了一个构建脚本来记录它的进度,每当出现换行符时(可能还有其他字符?),我会得到奇怪的字符,所有内容都打印在同一行:
←[1A←[1m> Connecting to Daemon←[m←[22D←[1B←[2A←[1m<←[0;1m-------------> 0% INITIALIZING [73ms]←[m←[38D←[1B←[1m> Evaluating settings←[m←[0K←
它应该是:
Connecting to Daemon
<-------------> 0% INITIALIZING [73ms]
Evaluating settings
这种行为的根源是什么,如何解决?