NVIDIA 初创加速计划,免费加速您的创业启动 了解详情
写点什么

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

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

关注

评论

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

直播预告|Apache APISIX x KubeSphere 在线 Meetup 来袭

API7.ai 技术团队

APISIX KubeSphere

在DAYU200上实现OpenHarmony视频播放器

OpenHarmony开发者

OpenHarmony

阿里前端高频vue面试题(边面边更)

bb_xiaxia1998

Vue

vue这些原理你都知道吗?(面试版)

bb_xiaxia1998

Vue

堡垒机推荐厂商当属哪家?为什么?咨询电话多少?

行云管家

网络安全 信息安全 数据安全 堡垒机

STM32L051测试 (五、串口测试 — 与Enocean模块通讯问题)

矜辰所致

stm32 串口通信 STM32L051 10月月更

从零开始实现一个Promise

helloworld1024fd

JavaScript

手撕常见JS面试题

helloworld1024fd

JavaScript

ctk流程

留白的艺术

都说复盘能力很重要,如何复盘更有效?Superset你值得拥有

王中阳Go

Code Review BI 分析工具 项目复盘 Superset 10月月更

数据结构学习,串篇(顺序串及算法)

IC00

学习 数据结构 算法 学习笔记 10月月更

灵雀云全栈云原生开放平台ACP登陆VMware云市场

York

容器 云原生 数字化转型 虚拟化 应用现代化

vue面试之Composition-API响应式包装对象原理

bb_xiaxia1998

Vue

堡垒主机是堡垒机吗?两者有什么关系?

行云管家

网络安全 信息安全 堡垒机 堡垒机主机

springboot + redis多数据源 + jedis集群模式

try catch

redis springboot spring Boot Starter redis cluster redis多数据源

电子表格也能做购物车?简单三步就能实现

葡萄城技术团队

前端 在线excel 应用系统 控件

【Go微服务】开发gRPC总共分三步

王中阳Go

微服务 gRPC RPC #go 10月月更

全息投影正在威胁LED显示屏在舞台的地位

Dylan

LED显示屏 led显示屏厂家

公网对讲SDK| 快速搭建公网对讲应用

anyRTC开发者

音视频 监听 快对讲 AI降噪 录音

喜迎华诞,openEuler 22.09 正式发布,与1265名开发者共建面向数字基础设施的开源操作系统

openEuler

开源 开源操作系统 open Euler

重磅 ! Redis+Nginx+JVM+设计模式+Spring全家桶+Dubbo

程序知音

Java 数据库 spring JVM 后端技术

真机调试设备不够?荣耀云调试帮你忙

荣耀开发者服务平台

开发者 手机 云服务 荣耀 honor

开奖啦!看看 9 月月更获奖名单有没有你?

InfoQ写作社区官方

热门活动

Hashtable、HashMap、TreeMap的区别

zarmnosaj

10月月更

NFT 数据基础设施 NFTScan 的产品介绍【科普】

NFT Research

区块链 NFT 数据基础设施

2022互联网母婴行业用户洞察

易观分析

互联网 母婴

写个JS深拷贝,面试备用

helloworld1024fd

JavaScript

synchronized 和 ReentrantLock 的区别

zarmnosaj

10月月更

行业大咖秀,第二期开播!

浪潮云

云计算

一条 SQL 语句是如何执行的

说故事的五公子

MySQL 数据库 sql

C# ref用法,实现引用传递(地址传递)

IC00

C# 学习 程序员 上位机 10月月更

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