写点什么

Richard Stallman 谈软件专利对开发社区的影响

  • 2012-11-10
  • 本文字数:2234 字

    阅读完需:约 7 分钟

自由软件基金会(Free Software Foundation)主席 Richard Stallman 最近在杂志上撰文分析了软件专利对开发社区的影响,批评了专利体系的弊端,同时呼吁限制软件专利的效力。

软件专利的官司在今年愈发频繁,最受人关注的莫过于 Oracle 与 Google 走上法庭

Oracle 收购 Sun Microsystems 的一个目的就是控制 Java 语言,而更为重要的则是其专利。在众多的大公司中,Oracle 的一个眼中钉就是 Google,其针对 Android(及其 Dalvik VM)的类 Java 编程语言导致其被 Oracle 指控,控告其违背了 Oracle 的专利与版权,甚至发现 Oracle 测试套件中的测试代码出现在了 Google 的仓库中。这场争论由来已久,从最开始的 132 个声明降到了 3 个,接下来又进一步降到了仅仅 2 个专利,其中一个专利将于今年 12 月到期。

法官 Paul Grewal让这两家公司尝试通过协商来解决问题。如果Oracle 能够证明Google 侵犯了其专利,那么Google 将会支付280 万美金。然而Oracle 拒绝了,认为Google 支付的太少。这个数字是根据到今年底( RE38104 到期日)Android 收益的 0.5% 及到 2018 年 4 月(专利 6061520 的到期日)Android 收益的 0.015% 计算出来的。值得注意的是,USPTO 已经判定 RE38104无效,但 Oracle 还会继续上诉。

最后一个专利(6061520)被 USPTO 判定为有效。由于这两家公司无法达成和解,因此 Oracle 期望证明 Android 违背了该专利,如果证实确实如此,那么 Oracle 会要求法庭确定赔偿额。该专利涉及到静态数组初始化的性能改进:该专利表示了对传统的静态数组初始化的改进,这是通过减少虚拟机执行的代码量以静态地初始化数组来实现的。为了实现代码量的减少,在联合类文件时,预加载器会识别出所有方法并执行这些方法以确定他们所执行的静态初始化。接下来,预加载器会创建出一个表达式以标明方法所执行的静态初始化并将该表达式存储到.mclass 文件中,然后替换掉该方法。这样,该方法的代码(包含了很多指令)就会被一个单独的表达式所替代,该表达式会指示虚拟机执行静态初始化,这样就会节省大量内存。虚拟机会被修改以识别出该表达式并对数组执行恰当的静态初始化。

Richard Stallman 首先指出某些软件专利并不是针对特定的应用程序,而是描述的一些想法、创意:

专利威胁着每一位软件开发人员,如你所见,我们担心已久的专利战争已经爆发。不论是软件开发人员还是软件用户都应该让软件不受专利约束。

威胁我们的专利称为“软件专利”(software patents),但是这个词会让人误解。实际上,这种专利不是针对某一个具体的应用程序,而是描述了一些想法和创意,如果有人未经授权使用了该创意,那么就会被起诉。所以,比较清楚地叫法应该是“计算性想法专利”。

美国的专利体系没有说明哪些是软件专利,哪些不是。软件开发社区应该区分对我们不利的专利,如果有一些物理方面或者化学方面的专利,那么不会威胁到软件领域,但是如果是描述的计算思想,那么可能会影响到开发社区。

Richard Stallman 引用了公共专利基金会 Dan Ravicher 对 Linux 系统的研究数据指出,一个程序不经意间会涉及到大量的专利威胁:

Dan Ravicher 在研究 Linux 时发现,该程序源代码中涉及到的计算思想涉及到 283 项美国专利,而估计 Linux 只占整个 GNU/Linux 系统的 0.25%,所以由此可以看出问题的严重性,该系统收到大约 10 万项专利的威胁。即使其中有半数专利被取消,情况也不会发生根本好转,无论是 10 万还是 5 万,都是噩梦。

他认为应该从整体解决这个问题:

我们需要从根本上解决这个问题。通常的建议是修改专利标准,比如,禁止颁发计算方法和系统方面的专利。但这种方式有两大缺点。
首先,专利律师非常擅长重新描述专利,使其适合任何标准的规定。他们将限制专利实质的任何尝试变成仅仅是形式的需要。例如,许多美国计算想法专利描述了一种执行特定计算的系统,它包括一个算术单元、一个指令顺序器、一个存储器加上一些控制组件。这是一种描述计算机的特殊方式,该计算机运行执行特定计算的软件。它设计成使专利申请符合美国专利系统的标准。
其次,美国已经拥有数千种计算想法专利,修改标准避免颁发更多专利解决不了现有专利的问题。我们需要等近 20 年,直到这些专利过期后才能完全解决这一问题。立法废除现有专利可能违反宪法。

最后,Richard Stallman 提出,应该限制软件专利的效力来解决这个问题:

我的建议是修改专利的效力。我们应该立法规定,在通常使用的计算设备上开发、分发或运行应用程序不会构成专利侵权。这种方式有以下优点:

  • 它无需将专利申请分为“软件”或者“非软件”。
  • 它防止开发者和用户受到现有或未来可能出现的计算想法专利威胁。
  • 专利律师不能通过换种方式填写申请战胜预期效力。

这种方式不完全废除现有的计算想法专利,因此它们将继续适用于使用特定用途的硬件的实现。这是一大优点,因为它避免了该计划的合法性争议。几年前,美国出台了一部法律,保护外科医生遭遇法律诉讼。即便外科手术步骤已经申请专利,外科医生也是安全的。这为该解决方案提供了先例。

有 Oracle 和 Googl 的官司的最新进展可以查看 InfoQ 的相关新闻:

提到软件专利,有人就会想到另一个方面——开源,笔者推荐庄表伟在 InfoQ 中文站发表的文章《当我谈开源时,我谈些什么?》,相信会让读者有所收获。

2012-11-10 01:341396
用户头像

发布了 501 篇内容, 共 272.2 次阅读, 收获喜欢 62 次。

关注

评论

发布
暂无评论
发现更多内容

“天翼云杯”厦门软件开发大赛开赛 为开发者提供“沃土”

极客天地

腾讯云大神亲码“redis深度笔记”,不讲一句废话,全是精华

钟奕礼

Java 程序员 java面试 java编程

AI机器学习模型部署的典型策略

Baihai IDP

人工智能 AI MLOps 模型部署

鲲鹏开发者创享日杭州站:你想知道的所有精彩都在这里了

极客天地

LeetCode题解:938. 二叉搜索树的范围和,递归,JavaScript,详细注释

Lee Chen

JavaScript 算法 LeetCode

中国互联网大会天翼云展区大揭秘!

天翼云开发者社区

瓴羊Quick BI在线电子表格,数据分析人员高效工作“神器”

巷子

源自双11混部实战,Koordinator 如何保障应用服务质量?

阿里技术

云原生 混部技术

Serverless 架构下的 AI 应用开发

阿里巴巴云原生

阿里云 Serverless 云原生

如何平衡客户和用户的诉求冲突?

QualityFocus

产品经理 需求 产品需求

Linux中安装/部署docker-compose

A-刘晨阳

Docker Linux 运维 Docker-compose 11月月更

数字先锋| 随时随地云端阅片,“云胶片”时代来啦!

天翼云开发者社区

栈简介、手撸顺序栈、手撸链栈和栈的应用

C++后台开发

数据结构 后端开发 linux开发 C++开发

二面美团,有惊无险已拿offer,不得不说“太难了”

钟奕礼

Java 程序员 java编程 Java 面试题

【C语言】return 关键字

謓泽

11月月更

行业首个测试开发技术大赛开始报名啦~ 10万现金奖励等你来挑战

霍格沃兹测试开发学社

把Mybatis Generator生成的代码加上想要的注释

京东科技开发者

maven IDEA 代码注释 MyBatis标签 Generator

涨薪跳槽利器!清华大佬总结的Java核心突击讲,一应俱全

钟奕礼

Java java程序员 java面试 java编程

双机热备与集群的区别分析-行云管家

行云管家

高可用 双机热备 双机

南京等保测评公司有哪些?一共有几家?

行云管家

等保测评 等保备案 等保整改 南京等保测评

2022年中国母婴新消费市场专题分析

易观分析

母婴 消费市场

背完这3套Java面试题,年后offer接不停

钟奕礼

Java java面试 java编程 程序员java

热门资讯:超大规模数字产业生态正在加快构建!

优秀

数字化转型

一步一图带你深入理解 Linux 物理内存管理

bin的技术小屋

内存 内存管理 Linux Kenel 内核 内核源码

java面试之经典算法篇

钟奕礼

Java java面试 java编程 程序员 java

Linux中基于Docker搭建harbor私有镜像仓库(超级详细)

A-刘晨阳

Docker Linux 运维 Harbor 11月月更

Docker搭建harbor私有镜像仓库(命令行模式)

A-刘晨阳

Docker Linux 运维 11月月更

【iOS逆向与安全】frida-trace命令大全

小陈

iOS逆向 ios安全 Frida ios 开发

Jenkins + Docker 一键自动化部署 Spring Boot 项目

小小怪下士

Java Docker jenkins springboot

PID和TID的区别

源字节1号

APP开发 低代码开发 小程序开发 网站开发

从 NASL 说开:低代码编程语言能饭否

石臻臻的杂货铺

11月月更

Richard Stallman谈软件专利对开发社区的影响_Oracle_崔康_InfoQ精选文章