50万奖金+官方证书,深圳国际金融科技大赛正式启动,点击报名 了解详情
写点什么

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:341564
用户头像

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

关注

评论

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

全国首批“持证上岗”的区块链应用操作员来了

CECBC

vue指令-3

小恺

6月月更

客户之声|携程基于 OceanBase 读写分离方案的探索与优化

OceanBase 数据库

数据库 oceanbase

端午节的咸鸭蛋

红毛丹

前端 6月月更

数值转换

Jason199

js 数据转换 6月月更

面向艺术家的Web3商业生态,由OKALEIDO的NFT聚合交易赋能

西柚子

当Spring邂逅Kafka,有趣的知识增加了

Geek_rze78a

kafka spring 6月月更

G7与E6宣布完成合并

极客天地

数据库每日一题---第5天:变更性别

知心宝贝

数据库 前端 后端 6月月更

每日一题 | LeetCode977 有序数组的平方

武师叔

Leet Code 6月月更

在 GitHub 上玩转开源项目的 Code Review

胡说云原生

GitHub 开源 DevOps Code Review DevStream

Hoo首发上线CloudChat(CC) 推出空投5,000 USDT活动

区块链前沿News

Hoo

建立java和jin函数之间的关系

北洋

6月月更

GameFi新的契机,AQUANEE市场近状一览

西柚子

华为云鲲鹏代码迁移工具的功能与特性

乌龟哥哥

6月月更

模块三作业

NFT市场进入聚合时代,OKALEIDO成BNB Chain上的首个聚合平台

小哈区块

洞见科技承建国家工信安全中心「隐私计算平台」,筑基互联互通生态底座

洞见科技

隐私计算 数据要素

NFT市场进入聚合时代,OKALEIDO成BNB Chain上的首个聚合平台

西柚子

太卷了!腾讯一面被问到内存满了,会发生什么?

Java全栈架构师

Java Linux 程序员 面试 操作系统

【LeetCode】马戏团人塔Java题解

Albert

LeetCode 6月月更

通用池化框架GenericKeyedObjectPool性能测试

FunTester

同步屏障CyclicBarrier

急需上岸的小谢

6月月更

NFT市场进入聚合时代,OKALEIDO成BNB Chain上的首个聚合平台

BlockChain先知

网络整体设计思路

阿泽🧸

6月月更 网络设计

Spark Shuffle 原理

丛培欣

大数据 spark

寻找 Web3 的灵魂

CECBC

引入区块链技术 是开展碳信息审计的有效举措

CECBC

linux中同时移动多种格式文件

入门小站

Linux

盘点:2022年10款比较火的项目管理软件

优秀

项目管理软件

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