程序员的自由与黑客文化
程序员的自由与黑客文化
转自V2EX (https://v2ex.com/t/568977)
简介
- 世界上超过一大半的计算机都在运行开源软件为我们提供各种便利,它们是由谁编写的,为何要免费提供给我们?
- free software 为什么不是表示的免费软件,而是自由软件?它为何和 open source software 不同,甚至有不少分歧?
1. 信息自由与黑客文化的诞生
黑客,今天而言往往指代那些潜伏在网络背后以传播木马病毒,窃取账号,破坏系统为业的幽灵。但其实黑客早期是一种程序员之间的黑客文化(hacker culture),PostgreSQL 的开发者称之为 pgsql-hackers,FaceBook 也曾举办 Hacker Cup 让选手在特定时间解决算法问题。
最早的黑客起初只是 MIT 的一个“铁路模型技术俱乐部”(Tech Model Railroad Club, 1946 – Present )学生社团的成员,这个俱乐部的日常活动就是利用一些淘汰下来的电子元件,为他们那占据一整个房间的铁路模型设计一套能自动运行的信号和动力系统。1959 年,MIT 的 AI 实验室使用计算机开展人工智能方面的研究,并且不久后也开展了计算机课程。当时的小型计算机机 TX-0,有半个房间大小,价值 300 万美元,内存仅有 18 个 byte,每个 byte 有 18bit。它比之前的计算机更先进一点的是,它不是使用数据卡片,而是使用打字机将程序打印到纸带上,然后由读取器将纸带上的程序读入计算机。 tx-0
计算机强大的运算能力带给 TMRC 成员们巨大的震撼,他们着了迷一样的想方设法的去接触这台机器,了解它的原理,尝试用它解决数学问题。除了运行一些官方的统计分析之类的课题程序之外。其余时间,TMRC 的成员以极大的热情几乎夜以继日地扑在这台机器上。为了提高效率他们改造并且修理计算机的故障,编写了帮助用户使用计算机的系统软件。比如汇编软件,调试器(能够在程序运行期间发现和修改错误),让计算机演奏音乐程序。一代又一代年轻的学生为这些计算机编写了编译器,分时操作系统,文本编辑器,甚至还有一款历史上最早的电子游戏《太空大战》。
” hack ”一词大概最早就是由 MIT 的学生提出的,原来是用来形容本校学生的一些精心策划的恶作剧。某个在进行的项目或者构建的产品,除了完成既定目标之外,只要参与进来也会获取莫大乐趣,被称为“ hack ”。在 TMRC,一项技术要被称作为 hack 则必须有创新,有风格,有技术含量。效率最高的人称之为 hacker。在 AI 实验室,逐渐孕育出黑客道德:
- 使用计算机以及所有有助于了解这个世界本质的事务都不应该收到任何限制。任何事情都应该亲手尝试
- 信息应该全部免费
- 不信任权威,提倡去中心化
- 判断一名黑客的水平应该看他的技术能力,而不是看他的学历、年龄或地位等其他标准
- 你可以用计算机创造美和艺术
- 计算机使生活更美好
2. GNU 与 Richard Stallman
到 1979 年,AI 实验室的黑客之间正式分裂,原来的领袖之一,LISP 机之父 Richard Greenblatt 期望建立一家黑客类型公司,并且拥有公司的管理权。这与黑客文化中的平等自由有了冲突,最终黑客分裂成了两家公司 LMI 和 Symbolics。尽管他们仍然相互联系,但黑客文化中关键的要素——信息的自由流通不复存在。黑客的世界开始被外部同化。AI 实验室的黑客文化正在走向尾声。
Richard Stallman在 1971 年就来到了 MIT 的 AI 实验室,他跟随 Richard Greenblatt 和 Bill Gosper,将他们作为自己的良师,把 AI 实验室看做黑客文化的化身。在这里,他很快展现出杰出的才能。AI 实验室的黑客分裂以后,Richard Stallman 无法接受这种对于黑客文化的背叛,他自称为最后一个黑客,留在了 AI 实验室。直到 1983 年底,他一直孤身一人致力于将 LMI 和 Symbolics 开发的新功能通过自己的实现安装在 MIT 的机器上。在 1982,1983 期间,他一个人的代码量相当于十几个一流水平的黑客的工作量。 AI 实验室的新人们也没有接受过黑客文化的教育,他们虽然可以编写出像前辈一样优秀的程序,但是也产生一种新的意识——只要程序发布出来,就提出 CopyRight。 RMS 说:我就是垂死的黑客文化的唯一幸存者。他在离开 AI 实验室时,还有个没有实现的计划:编写一个操作系统 UNIX,并把这个系统免费送给那些需要的人。这就是 GNU 计划的诞生。 GNU 是“ GNU's Not Unix ”的递归缩写,发音与 canoe 发音相同。RMS 指出,闭源软件只会造成程序员之间勾心斗角,敝帚自珍的局面,无法实现工作协同和成果共享。RMS 准备开发出一套完整并且可以自由获取,包含内核以及所有相关软件包的类 UNIX 系统(这里的类就是新的系统将实现 UNIX 系统的标准 API )。GNU 的重要成果之一是制定了 GNU 通用公共许可证( GNU General Public License,GPL ),GPL 是 RMS 的自由的思想在法律上的实现。这个也是 Copyleft 的概念。GPL 的软件可以不收任何限制的修改,但是修改以后的发布也必须遵守 GPL 协议。
GNU 开发出了大量的程序,比如 Emacs 编辑器,GCC 编译器,bash shell ( Linux 的默认 shell )以及 glic ( GNU c 语言库),但却缺乏核心的环节:能够有效运转的 UNIX 内核。GNU 内核 Hurd 迟迟难以发布。1991 年 Linus Torvalds 编写出了与 UNIX 兼容的 Linux 操作系统内核并在 GPL 条款下发布,最终,Linux 成为 GNU 系统的内核。后来的事情大家都了解。另外多说一句的是,Hurd 内核现在还在开发,但仍然只支持 32 位,Debian 目前提供 32 位的以 Hurd 为内核的版本,它能够支持 75%的 Debian 软件包。
Linux 虽然通常被称为一种操作系统,但事实上 Linux 只是系统内核,它也不是 GNU 项目,它只是遵循 GPL 协议。RMS 称呼 Linux 操作系统为 GNU/Linux,这一称呼也引起一些争议。 GNU 的的标志 gnu (非洲角马,就叫 gnu ) gnu Linux 的标志 Tux(一只企鹅,全称为 tuxedo, NCIT 90916P40 Joeing Youthy 的网络 ID ) Tux
3. Free Software 和 Open Source Software
我们通常讲的开源软件( Open Source Software )与 GNU 的自由软件( Free Software )并不能等同,除了法律上的 License 区别之外,二者有在出发点上存在差别。RMS 有一篇专门的文章《Why Open Source misses the point of Free Software》讲述二者的区别( RMS 也是位网络嘴炮老手)。
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· 如何编写易于单元测试的代码
· 10年+ .NET Coder 心语,封装的思维:从隐藏、稳定开始理解其本质意义
· .NET Core 中如何实现缓存的预热?
· 从 HTTP 原因短语缺失研究 HTTP/2 和 HTTP/3 的设计差异
· AI与.NET技术实操系列:向量存储与相似性搜索在 .NET 中的实现
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】