大家好,我是良旭。无论我们使用什么操作系统,无论是Windows、macOS还是Linux,里面都安装了很多软件、驱动程序和固件。但这三个概念有什么区别呢?我在朋友圈做了个小调查,发现很多人不知道他们的关系,所以写这篇文章给大家简单科普一下。文字描述太抽象了,直接上漫画吧。好了,看完漫画,我们来看正式的解说。简而言之,固件、驱动程序和软件之间的根本区别在于它们的设计目的。固件是赋予设备硬件生命的程序。驱动程序是操作系统和硬件组件之间的中间人。软件可以间接操作硬件。最基本最底层的工作,直接控制硬件,比如BIOS,电脑开机后启动的第一个程序,可以和硬件交互,检查硬件是否有错误。BIOS调用另一个称为引导加载程序的程序,该程序负责唤醒在硬盘驱动器内休眠的操作系统并将其放入随机存取存储器(RAM)。我们可以在很多设备上看到固件,包括电脑、手机、遥控器、游戏机、智能手表、U盘,以及各种嵌入式系统。甚至电视遥控器也有预装的固件,可以让电视在您按下按钮时切换频道。2.驱动:驱动程序是添加到操作系统中的一小段代码,其中包含有关硬件设备的信息。当计算机程序请求与特定硬件设备交互时,设备驱动程序充当硬件设备和使用它的程序之间的指令翻译器。操作系统并不支持机器上的所有硬件,所以一般来说,硬件厂商都得为自己的硬件编写驱动程序。每个驱动程序都设计用于特定设备或一组设备。在计算机上,驱动程序使用各种总线接口与设备进行通信。另外,司机一般不直接与用户互动,所以很多用户完全不知道他们的存在。驱动程序开发需要非常小心,因为它直接与硬件打交道,但也与操作系统打交道。如果设备驱动程序出现问题,可能会导致系统崩溃,这就是为什么需要专业人员或团队为设备编写驱动程序的原因。但是,为什么不使固件完美,没有驱动程序支持呢?因为有不同的操作系统,而这些操作系统对硬件的操作方式完全不同。所以,不同操作系统的驱动是不兼容的,原因是驱动是为操作系统服务的。3.软件不同于硬件。软件在计算机上运行,??看不见摸不着。操作系统也是一种软件,并为操作系统上安装的其他软件提供工作空间。上面说的设备驱动其实也是一种软件,只不过它还有一种更细分的类型叫系统软件。如果用户编写了一个软件,想要操作硬件(如光驱、U盘等),必须通过操作系统提供的接口来实现,不能直接与硬件进行交互。值得注意的一件事是,软件是一个广义的术语。我们日常所指的“软件”一般指的是应用软件,比如微信、QQ、浏览器等,有什么不懂的欢迎评论区交流~原创不易,欢迎点赞,转发朋友圈,谢谢!最后,最近有很多朋友找我要一份Linux学习路线图,所以我结合自己的经验,利用业余时间熬夜一个月,整理了一本电子书。无论你是面试还是自我提升,相信都会对你有所帮助!免费送给大家,只求大家给我点个赞!电子书|LinuxDevelopmentLearningRoadmap也希望有小伙伴可以和我一起把这本电子书做得更完美!获得?希望老铁们来个三连击,让更多人看到这篇文章。推荐阅读:干货|程序员进阶架构师必备资源免费书单|程序员必读经典书籍清单(高清PDF版))欢迎关注我的博客:良序Linux教程网,干货满满!
