专有设备驱动程序

目录

  1. 1 专有设备驱动程序
  2. 2 开源操作系统
  1. 3 问题
  2. 4 通过包装使用
  1. 5 设备固件
  2. 6 BIOS和UEFI

    专有设备驱动程序

    专有设备驱动程序是一个封闭的源设备驱动程序只有在公开的二进制代码。在免费和开放源代码软件的上下文中,闭源设备驱动程序称为blob或二进制blob。该术语通常是指加载到开源操作系统内核中的闭源内核模块 ,有时还应用于在内核外部运行的代码,例如系统固件映像,微代码更新或用户态程序。术语 blob首先在数据库管理系统中使用,用于描述存储为单个实体的二进制数据的集合。

    当计算机硬件供应商为其产品提供完整的技术文档时,操作系统开发人员便能够编写要包含在操作系统内核中的硬件设备驱动程序。但是,某些供应商(例如Nvidia)并未提供某些产品的完整文档,而是提供了仅二进制驱动程序。对于加速图形驱动程序,无线网络设备和硬件RAID控制器,这种做法最为常见。最值得注意的是,二进制blob在非无线网络接口控制器中非常罕见,它几乎总是可以通过标准实用程序(如ifconfig) 盒子外面; OpenBSD的Theo de Raadt将其归因于单个FreeBSD开发人员所做的工作。

    专有设备驱动程序

    开源操作系统

    一些FSF认可的项目努力提供一个免费的操作系统,并且在没有硬件文档或设备驱动程序源代码以及所有适用固件的可用文档时,将删除所有二进制blob ;这些项目包括来自FSFLA、Parabola、Devuan、Trisquel和LibreCMC的Linux-libre内核封装。然而,绝大多数开源项目的只作二进制设备驱动程序和二进制固件只(不考虑斑点之间的区别),允许某些专有固件作为其内核的一部分自由分发,并且,在某些核心贡献者的不同意下,还支持使用在外部分发的专有设备驱动程序,从而为此类专有驱动程序和用户空间提供内部兼容性接口与系统配合使用的组件。遵循此策略的项目包括Linux内核本身、NetBSD、FreeBSD、DragonFly BSD和大多数Linux发行版。这些项目中的某些确实提供了构建没有专有固件的系统的选项,因此排除了按需的无源微代码。

    在OpenBSD的项目不仅具有不接受任何二进制设备驱动程序到其源代码树,也没有正式支持它的平台,任何第三方专用设备驱动器组件既可以显着的政策; 不仅指出了潜在的无法检测或无法修复的安全漏洞,而且还列举了其软件的开放性和自由性。在自由软件基金会(FSF)正积极参加反对的二进制块。FSF还认为OpenBSD的政策措辞令人困惑,因为BSD社区中的“斑点”仅指其认为的非免费驱动程序,不适用于专有固件和无源微代码。

    在Linux内核开发社区,Linus Torvalds的取得上仅二进制模块的问题强硬的声明,声称:“我拒绝,甚至考虑绑我的双手在一些只有二进制模块”,并继续说:“我希望人们知道当他们使用仅二进制模块时,这就是他们的问题。”在2008年,有176位Linux内核开发人员签署了关于Linux内核模块的立场声明,其中指出:“我们,签名不足的Linux内核开发人员,认为任何开源Linux内核模块或驱动程序都是有害的和不可取的……我们已经反复发现它们不利于Linux用户、企业和更大的Linux生态系统。”Greg Kroah-Hartman表示,为GNU通用公共许可证许可的 Linux内核重新分发封闭源模块是非法的。

    但是,Linux内核包含各种设备驱动程序所需的闭源固件。Alexandre Oliva、Linux-libre的维护者,该版本是Linux内核的一个版本,试图删除所有二进制blob,包括无源微代码,它在2011年写道:“自1996年以来,Linux就不再是自由软件, Torvalds先生接受了自1991年以来发布的Linux发行版中的xxx批非自由软件。这些年来,尽管该内核增长了14倍,但Linux驱动程序所需的非自由固件的数量却增长了10%。令人震惊的83。”

    运行Android操作系统的移动设备的大多数驱动程序均以二进制形式提供,并与特定版本的Linux内核链接。这使得升级内核版本非常困难,因为它可能需要反向工程,将专有设备驱动程序重新实现为自由软件,创建和调试包装程序,二进制修补程序或这些步骤的组合,所有这些都意味着旧版设备将永远不会获得最新的Android版本。

    问题

    二进制斑点可能有问题的原因有很多。

    首先,它们的精确操作是未知的,并且无法通过审计源代码来检测错误。通常,只有当系统开始异常运行时,才需要通过认真研究来诊断错误。这些未检测到的错误也可能使用户和系统无提示地暴露于安全隐患。因此,无法检查驾驶员的适合性,即使发现错误,也没有简便的方法来修复它。

    其次,由于源代码不可用,因此驱动程序无法被其用户轻松改进,无法移植到最初不支持的体系结构,也无法适应于硬件的细微变化,或者无法在具有以下功能的新内核中进行更新:更改了API和体系结构。

    第三,使用该软件将迫使用户信任供应商或第三方,不要将后门程序,间谍软件或恶意代码放入Blob中。同样,硬件供应商可以决定不支持给定的操作系统,可以随时放弃驱动程序维护,或者在公司停业的情况下,完全不支持该驱动程序。

    最后,二进制斑点可以被视为在信仰自由软件理想,拒绝专有软件的社区部分和出于纯粹的技术原因认为开源是可取的部分之间划清界线,而这些部分通常缺乏对二进制斑点的强烈反对“只要他们工作”。这种碎片化,以及Linux越来越多的专有组件被接受,被视为削弱了社区抵制制造商日益拒绝提供其二进制文件的趋势的能力。

    通过包装使用

    甲包装纸是软件,它允许一个操作系统以用于另一个操作系统写入二进制专用设备驱动器。包装的例子是 ndiswrapper的用于Linux和项目邪恶的的FreeBSD和NetBSD的。这些包装程序允许这些操作系统通过实现Microsoft的NDIS API使用为Microsoft Windows编写的网络驱动程序。

    另一个示例是提供兼容性层,以便可以使用外部实用程序来维修硬件。实例包括一些RAID控制器的驱动程序的FreeBSD,其中该系统管理员必须使在FreeBSD的Linux兼容层和独立地,以监测和服务的硬件直接从硬件制造商采购Linux特定的二进制块。大约在2005年,这种情况促使OpenBSD创建并推广其bio(4),bioctl和传感器驱动器概念作为RAID的替代解决方案。

    设备固件

    固件是板载微控制器所需的软件,它随某些硬件一起提供,通常不视为二进制二进制文件。在许多设备中,固件存储在非易失性板载闪存中,但是为了降低成本和简化升级,某些设备仅包含静态RAM并要求主机操作系统上载每次连接固件(尤其是USB)设备)。尽管固件因此存在于操作系统驱动程序中,但它仅被复制到设备中,而不由CPU执行,与DMA攻击相比,即使固件已存储在操作系统中,也无需担心额外的安全漏洞。装置。OpenBSD项目接受二进制固件/ 微代码映像,并在许可证允许的情况下重新分发这些映像;如果供应商不允许自由和无条件的重新分配,则可能会在端口树中提供有关获取这些图像的机器指令(这会阻止某些受累的无线设备(例如Intel Wireless)在初始安装)。

    BIOS和UEFI

    该BIOS,其功能是作为一个引导程序和支持原有的实模式的应用,是众多关键组成部分的IBM兼容电脑。BIOS始终为16位,通常具有联网功能,并且可以成为安全后门。在1990年代末期,有关EFI(可扩展固件接口)的工作开始了,目标是将传统BIOS迁移至具有模块化驱动程序模型的现代接口。EFI是开源的,最终被许多行业xxx的硬件制造商采用为UEFI(统一可扩展固件接口)。EDK(EFI开发套件)的开发是为了协助EFI固件开发项目。

    同样在1990年代后期,coreboot项目开始启动,从头开始创建一个替代传统BIOS的开源软件。coreboot开发人员社区围绕Stefan Reinauer进行组织,并由具有提交权限的固件开发人员领导。尽管封闭源代码二进制固件一直是x86体系结构的核心,但coreboot仅合并了一些专有二进制文件,这些二进制文件为用户提供了基本级别的硬件支持。BIOS和UEFI的完全开源替代品是libreboot,它是由自由软件基金会(FSF)推动的。


    专有设备驱动程序

    相关推荐

    数字协作

    目录 1 什么是数字协作 2 例子 3 背景 4 数字协作流程 ▪ 电子邮件 ▪ 社交媒体 ▪ 打开数据源 ▪ 维基 5 身份和采用什么是数字协作数字协作使用数字技术进行协作。它与传统协作截然不同,它连接了更广泛的参与者网络,这些参与者可以完成比自己完成的事情更多的事情。 例子在线会议和网络研讨会在线团队聊天室共同撰写文件和共用试算表社交媒体共享任务列... (继续浏览)

    大规模协作

    目录 1 大规模协作 2 差异 ▪ 合作 ▪ 在线论坛 ▪ 共同创作 ▪ 集体在线工具 3 讨论的作用 4 非文字大规模协作大规模协作是集体行动的一种形式,当大量人员在一个项目中独立工作时,通常会按照其本质进行模块化。此类项目通常使用社交软件和计算机支持的协作 工具(例如Wiki 技术)在Internet上进行,这些工具提供了可能位于其中的协作的潜在无限超文... (继续浏览)

    开放制造

    目录 1 开放制造 2 开放制造原理 3 开放制造视图开放制造开放制造,也称为开放生产,其口号是“全球设计,本地制造”,是一种社会经济生产的新模型,其中以开放、协作和分布式的方式生产实物并基于开放设计和开源原则。 开放制造结合了生产过程的以下要素:新的开放式生产工具和方法(例如3D打印机),新的基于价值的运动(例如制造商运动),新的制造和生产机构和网络... (继续浏览)

    初哆咪黄金搭配,让宝宝成长加倍_百科头条

    宝宝不是越胖越好!初哆咪提醒宝妈不要盲目吃好小食材大能量,初哆咪一站式解决“胖宝宝”的烦恼初为人母,最快乐的事情就是看着宝宝一天一天的长大,宝宝的一颦一笑、一举一动都牵动着妈妈的心。宝宝出生后,身体发育很快,可以说是一个月一样,老话讲“三翻六坐七滚八爬”,这么多的新技能要解锁,身体自然是需要很多的营养,可专家建议宝宝六个月前要纯母乳喂养,很多妈妈都... (继续浏览)

    模块化设计

    目录 1 模块化设计 ▪ 概述 2 在车辆中的模块化设计 3 在机器和建筑学中 4 在电视中 5 在计算机硬件中 6 将数字孪生集成到模块化设计中 7 将生命周期和能源评估整合到模块化设计中模块化设计模块化设计是一种设计理论和实践,它将系统细分为称为模块的较小部分,可以在不同系统之间独立创建、修改、替换或交换它们。 概述模块化设计的特征是可以将功能划分... (继续浏览)

    模块化智能手机

    目录 1 模块化智能手机 2 模块化智能手机历史 3 衍生物模块化智能手机模块化智能手机是智能手机使用能够独立地升级或替换作为组分制成模块。这旨在减少电子浪费,降低维修成本并提高用户舒适度。 最重要的组件是主板,其他组件(例如照相机或电池)已连接到该主板上。这些都包装在易于拆卸的模块中,可以根据需要进行更换,而无需重新进行焊接。组件可以从开源硬件商店获... (继续浏览)

    机器人软件

    目录 1 机器人软件 ▪ 简介 2 工业机器人软件 3 工业机器人编程语言示例 4 机器人应用软件机器人软件机器人软件是一组编码的命令或指令,用于告诉机械设备和电子系统(统称为机器人)执行哪些任务。机器人软件用于执行自主任务。已经提出了许多软件系统和框架来使编程机器人更容易。 一些机器人软件旨在开发智能机械设备。常见的任务包括反馈循环、控制、寻路、数据... (继续浏览)

    开源硬件

    目录 1 开源硬件 2 开源硬件的形式 ▪ 电脑 ▪ 电子产品 ▪ 机电一体化 3 发展开源硬件开源硬件(OSH)由开放设计运动设计和提供的技术物理制品组成。这两种自由和开源软件(FOSS)和开源硬件是由这创造开源文化运动和应用类似的概念,以各种不同的部件。因此,有时将它称为FOSH(自由和开源硬件)。该术语通常意味着可以很容易地识别有关硬件的信息,以便其他... (继续浏览)

    合同制造商

    目录 1 合同制造商 2 商业模式 3 使用该惯例的行业 4 目的、利益和风险 ▪ 好处 ▪ 风险合同制造商合同制造商(“CM”)是一家生产与对部件或产品公司的合同。这是一种外包形式。执行包装操作的合同制造商称为联合包装商或合同包装商。 商业模式在合同制造业务模型中,雇用公司使用设计或公式与合同制造商联系。合同制造商将根据流程,人工,工具和材料成本来报... (继续浏览)

    原始设备制造商

    目录 1 原始设备制造商 2 汽车零件 3 电脑软件 4 规模经济原始设备制造商原始设备制造商(OEM)是产生可以由另一个制造商在市场上销售的部件和设备的公司。例如, 台湾电子公司富士康为苹果、戴尔、谷歌、华为和任天堂等其他公司制造零件和设备。 汽车零件当提到汽车零件时,OEM指的是原始设备的制造商,即原始设备的制造商在新车的制造过程中组装和安装的零件... (继续浏览)

    藻类养殖

    目录 1 什么是藻类养殖 2 藻类的用途 ▪ 食物 ▪ 肥料和琼脂 ▪ 污染控制 ▪ 能源生产 ▪ 其他用途什么是藻类养殖藻类养殖是涉及养殖藻类的一种水产养殖形式。 大多数藻类被有意栽培落入类别微藻。大型藻类,也被称为海藻,也有许多商业和工业用途,但是由于其大小和需要生长的环境的特殊要求,它们不容易种植(这可能会改变,随着新型海藻中耕机的问世,它们基本... (继续浏览)

    藻类洗涤器

    目录 1 藻类洗涤器 ▪ 概念 2 现代形式藻类洗涤器藻类洗涤器是一个水过滤器(不要与一个混淆洗涤器衬垫,它使用光成长用来清洁玻璃)藻类 ; 在此过程中,从水中去除了不良的化学物质。藻类洗涤器允许海水,淡水和池塘爱好者使用初级生产形式的自然过滤来操作其水箱,就像海洋和湖泊一样。 概念藻类洗涤器通过使水在粗糙,高照度的表面上快速移动来过滤水,这导致藻类开... (继续浏览)

    热固性聚合物

    目录 1 热固性聚合物 2 化学过程 3 热固性聚合物属性 4 纤维增强材料热固性聚合物热固性聚合物,通常被称为热固化,是一种聚合物,其不可逆地硬化固化从软固体或粘稠液体预聚物或树脂。固化是由热或适当的辐射引起的,并且可以由高压或与催化剂混合促进。热量不一定要从外部施加。它通常是由树脂与固化剂(催化剂、硬化剂)反应生成的。固化会导致化学反应,从而在聚合物链之... (继续浏览)

    合成橡胶

    目录 1 什么是合成橡胶 2 天然橡胶与合成橡胶什么是合成橡胶合成橡胶是任何人造弹性体。它们是由石油副产物合成的聚合物。美国每年生产约3200万吨橡胶,其中三分之二是合成橡胶。到2020年,合成橡胶在全球范围内产生的收入可能会增长到约560亿美元。合成橡胶与天然橡胶一样,在汽车工业中广泛用于轮胎、门窗轮廓、密封条等。O型圈和垫圈、软管、皮带、垫子和地板。它们... (继续浏览)

    脱水螺旋压榨机

    目录 1 脱水螺旋压榨机 2 压榨机发展史 3 脱水螺旋压榨机设计 ▪ 选项 ▪ 容量 ▪ 压缩机制 ▪ 特殊类型 4 分类 ▪ 推进器 ▪ 去除自由液体 5 应用 ▪ 制浆造纸工业 ▪ 污水处理 ▪ 食品加工 ▪ 化学工业脱水螺旋压榨机脱水螺旋压榨机是一个螺旋压榨机分开的液体从固体。可以使用螺旋压榨机代替皮带压榨机、离心机或滤纸。它是一种简单的,缓慢移动的... (继续浏览)

    压榨机

    目录 1 什么是压榨机 ▪ 概述 2 压榨机效率 3 压榨机的设计 ▪ 连续螺丝 ▪ 螺丝断裂 ▪ 电阻齿 4 扩展应用什么是压榨机压榨机,是一种从原料中提取油的机械方法。一步一步将原料在高压下挤压。当用于提取食用油时,典型的原材料是坚果、种子和藻类,它们以连续进料的形式提供给压榨机。当原料受到挤压时,摩擦力使其发热。如果使用较硬的螺母(需要更高的压力),则... (继续浏览)

    喷墨纸

    目录 1 什么是喷墨纸 2 制造 3 与标准办公用纸比较 4 喷墨相纸 5 纸张类型 ▪ 光滑纸 ▪ 光泽纸 ▪ 金属纸什么是喷墨纸喷墨纸是专为喷墨打印机设计的特殊高级纸,通常按其重量、亮度和平滑度,有时还根据其不透明度进行分类。 制造一些喷墨纸由高质量的脱墨纸浆或化学纸浆制成。高质量的喷墨纸需要良好的尺寸稳定性,不卷曲或起皱以及良好的表面强度。对于大... (继续浏览)

    纤维素纤维

    目录 1 纤维素纤维 2 纤维素纤维类型 ▪ 天然纤维素纤维 ▪ 人造纤维素纤维 3 结构和属性 ▪ 化学成分 4 应用 ▪ 复合材料 ▪ 纺织品 ▪ 过滤 5 与其他纤维的比较 6 环境问题纤维素纤维纤维素纤维,是具有由纤维醚或酯的纤维素,可以从树皮、木材获得或植物的叶子,或来自其他植物基材料。除了纤维素之外,纤维还可以包含半纤维素和木质素,这些组分的不同... (继续浏览)

    描图纸

    目录 1 什么是描图纸 2 描述 3 描图纸的生产什么是描图纸描图纸是不透明性低的纸张,可让光线通过。它最初是为建筑师和设计工程师开发的,用于创建可以使用重氮复制工艺精确复制的图纸。然后发现了许多其他用途。绘图和追踪的原始用途已被不需要重氮复印或手动复制(通过追踪)图纸的技术所取代。 纸张的透明性是通过仔细选择原材料和用于创建透明性的过程来实现的。纤维... (继续浏览)

    油印机

    目录 1 什么是油印机 2 油印机起源 ▪ 描谱仪 ▪ 电笔 ▪ Cyclostyle 3 油印过程 ▪ 准备模版 ▪ 局限性 4 油印机耐用性 5 当代使用 6 用途和艺术什么是油印机油印机(通常缩写为油印)是一种低成本复印机该作品由通过迫使油墨蜡纸到纸上。不应将油印机过程与精神复制器过程相混淆。 油印机,用精神复印机和沿hectographs,是一... (继续浏览)