当前位置: 首页 > news >正文

专有软件使用Linux内核的用户头文件违反GPL吗?| 开源合规场景

问题:专有软件使用Linux内核的用户头文件违反GPL吗?

某芯片客户的研发团队咨询了我们这样一个场景:他们的软件操作系统采购了一家某商用的linux操作系统(商业许可),在构建时,从开源组件kernel-lpae-devel中引入了一个头文件dma-heap.h,这个头文件是GPL-2.0许可,咨询我们这样做是否有合规风险?

律师解答:

一、Linux内核及用户头文件的GPL例外

Linux内核按照GPLv2许可证进行授权,但同时包含系统调用的例外,即:通过正常系统调用使用Linux内核服务的用户程序,不属于GPLv2的“衍生作品”范畴,因此不需要按照GPLv2进行开源,可以按照其它许可证开源,也可以闭源作为专有软件。

一般情况下,如果某软件使用了GPL软件的头文件,该软件即被视为 GPL 软件的“衍生作品”,应当适用GPL。

Linux内核用户空间API(UAPI)头文件属于一种特殊情况——这些文件用于描述用户空间程序与内核之间的交互接口。根据内核COPYING文件中的说明,系统调用接口构成了一个明确的界限:使用该接口与内核进行通信的任何软件,都不需要遵守GPL许可证的相关规定。

由于UAPI头文件必须被包含在所有能够生成可在Linux内核上运行的可执行文件的源代码中,因此,这种例外情况必须通过专门的许可条款来明确说明,一般是在许可证名称后添加“WITH Linux-syscall-note”的字样。

二、dma-heap.h文件适用的许可证

kernel-lpae-devel 组件包含用于编译内核模块和进行内核开发所需的头文件、配置文件和构建脚本,这些文件专门针对启用了 LPAE 的 Linux 内核版本。

dma-heap.h 是一个与 Linux 内核DMA-BUF堆(DMA-BUF Heaps)框架相关的头文件,它为用户空间程序提供了必要的接口,以便从特定的DMA堆中申请和共享缓冲区。

根据github社区中该文件源代码头部的许可证声明,dma-heap.h适用的许可证为“ GPL-2.0 WITH Linux-syscall-note”,属于前述第一条描述的GPL例外情况。

三、律师合规意见

本案中,该企业在构建操作系统时引入dma-heap.h文件,如果目的是方便包含这些文件的用户程序通过正常系统调用使用内核的,则属于上述例外情况,该做法不违反GPL的规定。

如目的是以系统调用以外的其它方式使用内核,则需要结合该头文件的具体使用场景、文件中的代码信息(除结构定义、类型定义、枚举常量,是否还包括内联函数、具有实体的宏),并结合美国最高法院在甲骨文与谷歌案件中关于调用API是否构成合理使用的判决思路综合评估。

「开源合规场景100问」是软安科技联合广东信达律师事务所邹良城律师团队出品的栏目,以解析实际案例来解答开源许可合规的各种需求,以实战角度输出干货。本栏目长期连载,每期问题均来自用户真实案例,欢迎大家参与交流与探讨。

http://www.dtcms.com/a/520483.html

相关文章:

  • Python 实现 Pelco-D 协议云台控制(win与ubuntu)
  • MEMS结构光在3D人脸识别中的系统优化
  • 东莞网站建设流程响应式网站制作价格
  • 做网站优化的好处做网站客户总是要退款
  • [人工智能-大模型-51]:Transformer、大模型、Copilot、具身智能、多模态、空间智能、世界模型,什么意思,它们不同点和联系
  • 鸿蒙:简单实现列表下拉刷新+上拉加载
  • [nanoGPT] ChatGPT 的 LLM 的全栈实现 | 快速上手
  • 公司公司手机网站制作互联网营销的特点
  • 做网站苏州营销型网站有什么特点
  • 【计算机网络】408计算机网络高分指南:物理层编码与调制技术精讲
  • 怎样做一个企业的网站建站个人网站备案 网站名称
  • AR巡检系统:打开工业智能运维的下一幕
  • wang域名注册网站厚瑜网站建设
  • 网站建设夬金手指花总南昌做网站哪家好
  • 洪梅网站建设微信 host 微网站模版
  • 网站建设要用到的技术有哪些行业网站建设报价
  • 建网站所需材料生物信息网站建设
  • 【EE初阶】JVM
  • 深度学习------YOLOv5《第一篇》
  • 手机网站无法访问的解决方法文字图片制作网站
  • 叙述一个网站开发流程住房建设和城乡管理局官网
  • HarmonyOS 分布式与 AI 集成:构建智能协同应用的进阶实践
  • Trae x 图片素描MCP一键将普通图片转换为多风格素描效果
  • 游艇网站建设方案网页给别人做的 网站后续收费
  • UE5 外轮廓线,边缘,边界
  • Jackson 序列化的隐性成本
  • ProcDump 学习笔记(6.5):指定转储文件路径与命名策略
  • STM32项目分享:智能植物灌溉系统
  • 高级软考-系统架构设计师知识点1
  • 东城企业网站建设潍坊网站优化培训