补充知识点`makefile`、`config`、`GLP协议` 3/3 ——《驱动篇》《Linux历史发展》

文章目录

前言

这个是什么东西呢,用大白话来讲,Linux开始的时候,本身是有一个协议的,这个协议太局限了,后面就统一用成了GPL,所以这个东西和linux本身的历史离不开关系,想要了解的话,笔者也总结了一下,放到这里,给大家参考学习。

GPL协议

GPL 协议‌(GNU General Public License)是由自由软件基金会(FSF)发布的‌GNU 通用公共许可协议‌,是开源领域最具影响力的许可证之一 。 要求使用 GPL 代码的衍生作品必须同样开源并采用 GPL 协议,具有强"传染性"。‌

GNU 通用公共许可证(GPL)是自由软件基金会发行的‌计算机软件协议证书‌ ,核心在于通过‌Copyleft 机制‌保障用户自由复制、修改和发布软件的权利,要求衍生作品必须沿用相同许可并公开源代码

  1. 传染性条款:只要软件中包含 GPL 代码,该软件整体必须开源免费,不允许闭源商业发布 。
  2. 主要版本:
    • GPLv2:1991 年发布,Linux 内核采用此版本 。
    • GPLv3:2007 年发布,增加专利授权条款,禁止硬件锁定(Tivoization)。
  3. 商业使用:允许销售软件副本或提供服务收费,但必须向用户提供源代码 。

GPL的历史也算是Linux的一部分历史了。所以要了解GPL还是从Linux历史出发。

GPL与Linux的历史关联

关系非常大:GPL 协议可以说是 Linux 能活下来、能长成今天这样的根本原因。

用最简单的话讲:
Linux 内核选择使用 GPL 协议 → 决定了它整个历史走向和生态模式。


1. 历史上的关键节点:1992 年

  • 1991 年:Linus 写出 Linux 0.01,最初用的是自己写的许可证(禁止商用)。
  • 1992 年:Linus 把 Linux 改成了 GNU GPLv2 协议

这一步直接改变了一切:

为什么必须是 GPL?

当时 GNU 项目已经有了:

  • GCC 编译器
  • Bash 终端
  • 很多系统工具

缺一个内核,GNU 自己的 Hurd 内核一直没做好。

Linux 一用上 GPL

  1. Linux 可以合法绑定 GNU 工具,直接拼成一个完整可用的自由操作系统
  2. 其他人可以自由修改、分发 ,但必须开源修改后的代码

→ 这就是 GNU/Linux 的由来。


2. GPL 如何塑造 Linux 历史?

(1)防止被"偷走闭源"

GPL 核心规则:

  • 你可以用、改、打包卖
  • 只要分发二进制,就必须公开源代码

如果没有 GPL:

  • 早期很多公司会拿 Linux 改一改,闭源发售
  • 社区贡献无法回流,内核很快会分裂、死掉

历史上确实有公司尝试绕过 GPL,都被社区依法怼回去了,保证了 Linux 不会变成私有软件

(2)吸引全世界开发者

GPL 给所有人安全感:

  • 我写的代码不会被某家公司独占
  • 大家一起共建,成果永远属于社区

所以才有了后来:

  • 全球几千名开发者共同开发内核
  • IBM、英特尔、谷歌、华为等企业愿意持续贡献代码

(3)决定了 Linux 发行版生态

Red Hat、Debian、Ubuntu、Android 底层都是 Linux,它们:

  • 可以自由分发
  • 可以收费
  • 不能把 Linux 内核闭源

这就是为什么 Linux 既自由、又能商业化,还不会分裂成一堆互不兼容的私有系统。


3. 一句话总结历史关系

  • GNU 项目提供了思想和工具
  • Linux 提供了内核
  • GPL 协议提供了法律框架,保证它永远开源、不会被私有化

可以说:
没有 GPL,就没有今天的 Linux;Linux 的历史,就是一部在 GPL 保护下成长的历史。

Linux 内核采用 GPLv2 开源协议,使其能够与 GNU 项目结合形成完整操作系统,并保证任何修改与分发必须开源,避免被商业公司闭源独占,从而吸引全球开发者共同维护,推动 Linux 不断发展壮大。

Linux 发展史·精简时间线

一、前传(1969--1990)

  • 1969:贝尔实验室推出 Unix
  • 1983:Richard Stallman 启动 GNU 项目
  • 1987:Andrew Tanenbaum 发布教学用 Minix
  • 1989:GPL 许可证诞生

二、诞生(1991)

  • 1991.08.25:Linus Torvalds 公开宣布开发新操作系统
  • 1991.09.17:发布 Linux 0.01 内核
  • 1992:Linux 改用 GPLv2 开源协议

三、走向成熟(1994--2000)

  • 1994:Linux 1.0 正式版发布
  • 1996:吉祥物 Tux 企鹅 确定,内核 2.0 支持多处理器
  • 1998:IBM、Oracle 等巨头支持 Linux
  • 1999:Red Hat 上市,Linux 进入企业市场

四、全面崛起(2001--2010)

  • 2003:Linux 2.6 发布,服务器性能大幅提升
  • 2004:Ubuntu 发布,桌面 Linux 普及
  • 2005:Linus 开发 Git
  • 2007:Android 基于 Linux 发布
  • 2008:Linux 占据超算市场绝大多数份额

五、现代统治(2011--至今)

  • 2011:Linux 3.0
  • 2015:Linux 4.0,支持内核热补丁
  • 2019:Linux 5.0,加强 ARM、IoT、RISC-V 支持
  • 2022:Linux 6.0
  • 现状:服务器、云、安卓、超算、嵌入式核心系统

结束

本节大致列举了一下Linux的历史,大致就是你用内核GPL代码,你的代码也必须使用GPL协议开源。

相关推荐
我星期八休息1 小时前
Linux 进程核心原理全解:从冯诺依曼体系到进程控制全链路深度剖析
大数据·linux·服务器·开发语言·数据结构·c++·散列表
.柒宇.1 小时前
prometheus-入门与安装
运维·服务器·prometheus·监控
Cando学算法2 小时前
回声服务器项目
linux·开发语言·c++·计算机网络·ubuntu
cui_ruicheng2 小时前
Linux库制作与使用(三):ELF加载与动态链接机制
linux·运维·服务器
seabirdssss2 小时前
闲置笔记本改造成 Ubuntu 开发测试服务器
linux·服务器·ubuntu
拾贰_C2 小时前
【OpenAI | Ubuntu | environment | env configuration】Ubuntu 怎么/如何配置环境变量
linux·运维·ubuntu
同聘云2 小时前
阿里云国际站服务器DNS服务器设置成什么?服务器dns怎么填写?
服务器·阿里云·云计算·云小强
小此方2 小时前
Re:Linux系统篇(六)权限篇 · 一:用户切换与进程嵌套&&sudo提权与sudoers设置精讲
linux·运维·服务器
原来是猿2 小时前
Linux线程同步与互斥(五):线程池的全面实现
linux·服务器·开发语言