被Linux之父力挺的软件,开源后倒下了...

DIY等离子环:从Class-E电路到七彩辉光,手把手教你打造炫酷科学玩具 本文手把手教你DIY一个炫酷的等离子环科学玩具。从解析等离子体辉光放电原理入手,详细介绍了核心的Class-E自激振荡电路设计、关键元件选型与参数计算,并提供了从物料准备、电路搭建、腔体密封到上电调试的全流程指南。通过调制电路或填充不同气体,还能实现七彩变换与交互效果,是学习高频电路与电磁场知识的绝佳实践项目。 阅读详情

上世纪90年代,Sun公司是程序员最向往的公司之一。

4d5ab0cac07352052b8634a6f9b7bc0a.png

它拥有同时代最好的CPU,最好的操作系统,最好的编程语言,可谓如日中天。

但是有个年仅三十岁出头的年轻人却看到了其中的危机,他说:如果我们不开源操作系统,将来市场将会被Linux所抢占。

事实证明他是对的,免费的Linux,搭配廉价的x86 CPU很快把Sun公司的高端服务器打得溃不成军。

这个人就是Larry McVoy。

2dd0dff8838f35a4aff2d7f41cced9fa.png

但是谁也没有想到的是,仅仅五年以后,这个开源拥护者就走到了开源的对立面,更是在十年之后和世界上最大的开源社区决裂了。

01

开源先锋

1994年,Larry离开Sun公司,转身投入Linux的怀抱,他开发了著名的性能分析工具LMbench,这是 Linus 和其他一些内核黑客喜欢的基准测试套件。

从此他成为Linus的亲密盟友。

当时的Linus,还是依靠邮件列表和文件diff来维护Linux内核,刚开始还好,到了1998年,繁重的工作让他疲惫不堪。

市面上有CVS和Subvision这样的SCM(Source Code Management ),但Linus不喜欢,认为是垃圾,因为它们无法匹配Linux那全球分布式的开发模式和流程。

正好,Larry在Sun公司开发过一个叫做Teamware的软件,这是个分布式的源码管理系统,不但在Sun内部存储Solaris和Java的源代码树,在外部也有很多客户在使用。

b18482bee2799b9e7f7c202260308eb9.png

一天晚上,Larry邀请Linus、Dave Miller 等内核大神到家里吃晚饭,一起讨论新的SCM应该是什么样子。

Larry在白板上画了三四个小时,给他们讲了自己对分布式SCM的想法。

Linus被打动了:“嗯,这很酷,如果你能把它搞出来,我肯定会用它。”

Larry说道:“没问题啊,我以前做过,6个月估计就差不多了。”

Larry显然过于乐观了,新SCM两年以后才开发出来,这就是鼎鼎大名的BitKeeper。

242aa3b5d4d383b38463dbdcf5f4c005.png

02

和开源决裂

软件开发出来了,但是Larry的理念发生了重大的变化:“开源作为一种孤立的商业模式几乎是不可持续的!”

Larry认为:对于开源项目来说,在开始的时候是有趣的,程序员愿意在上面花费时间。随着时间推移,就不那么好玩了,苦力活越来越多,没有收入作为动力,就没人愿意维护了,这个项目就可能死掉。

如果收费的话,才有可能让这个项目继续下去,fix bug,开发新功能。

于是,Larry决定:BitKeeper不开放源码,收费。

一个不开源的软件,Linux社区会用吗?

答案是:会的。

2002年,Linus做了一个让人震惊的决定,选择BitKeeper来进行内核开发。

一个重要原因就是BitKeeper这个分布式的SCM可以轻松地支持分叉和合并,以前完全压在 Linus 肩上的大部分工作就可以分配给他信任的副手。

9988dba6c7d49223cbb0f35ed494cfad.jpeg

BitKeeper搞了个社区版让大家使用,附加两个重大限制:

1.使用社区版的程序员不能参与其他竞争工具的开发,不论竞争工具是开源的还是私有的。

2.BitKeeper公司 将控制与内核项目相关的某些元数据,以便发现任何滥用许可证的情况

这在Linux社区引发了轩然大波,让Linus和其他开发人员的关系搞得非常紧张。

Linux社区的人也不服:我们不能开发一个开源的?直接把BitKeeper替换掉吗!

对Linus来说,他并不为使用商业软件而烦恼,所以替代方案一定得是对BitKeeper的重大改进。

三年过去了,那些开源大牛们折腾了无数的SCM,没有一个能满足Linus的要求。

到了2005年,Samba 的创建者Andrew Tridgell尝试替代方案时,对BitKeeper 网络协议进行了逆向工程。

这下子惹恼了Larry,他宣布将停止向社区免费提供 BitKeeper 版本。

这该怎么办?难道Linus要回到邮件列表和文件diff的时代?

自1991年以来头一遭,Linus暂停了Linux的开发,卷起袖子准备自己开发一个SCM。

2005 年 6 月,开始该项目开工后的几天内,Linus 的 Git已实现自托管。

几周之内,它就准备好host Linux 的内核。

几个月之内,Git就达到了完整的功能。

Linus 将项目的维护工作交给了最热情的贡献者 Junio Hamano,并再次全职投入 Linux 开发。

大神就是大神。

03

走上“绝路”

失去了Linux这个最大的“活广告”之后,BitKeeper走上了一条稳定发展的“羊肠小道”。

BitKeeper公司有20来人,年收入几百万美元。

说实话,活得不错。

但是人比人气死人,BitKeeper最大竞争对手是Rational的ClearCase,每年营收高达3.5亿美元。

时间来到2016年,Git已经统治世界,BitKeeper终于宣布开源,但一切都晚了。

2020年,撑不下去的BitKeeper停止了开发。

65ae94152ac68a204792c024603a188e.png

2015年,Git诞生10周年之际,有人问Larry:“当年你没有开源BitKeeper,是否后悔?”

Larry说:“后悔?当然了,如果我当时能搞清楚开源的作用,我毫不犹豫地就去做了......”

如今的Larry已经退休,生活滋润,他最喜欢的事情就是驾驶自己心爱的小船,出海钓鱼。

b0a29bc1a24aaebd37a2c95b6416fb8f.png

d08cdd5aeb7b618369c187f3d0ae6a6d.png

我的新书《码农翻身2》近期正式出版,这本书开启了5折优惠,全彩印刷,用故事给技术加点料,原价118元,现在仅需59元,第一批仅有5000册,赶紧抄底!

“深入浅出而又幽默无比”,这是读者对《码农翻身2》的最高评价。

这本书不会讲How(技术细节,安装配置),而主要讲Why(技术原理),而且是用故事的方式。

你会看到著名的张大胖又会遇到各种各样的挑战,不得不“重新发明”各种知名软件和技术。

编程语言王国之间依然争斗得你死我活,今天Java向Python渗透,明天JavaScript就向Java猛烈进攻。

而C语言春节回家,发现只有自己没有对象,十分悲催。

MySQL和Redis互相看不顺眼,不断向对方使绊子。

......

当你理解了一个又一个计算机的原理和本质之后,慢慢地就会融会贯通,织成一张网,上帝视角就会开启,对于出现的任何新技术,都能迅速理解和掌握。

why 要比 how 重要得多!这是这本书最大的价值所在。

数据分析是什么? 说道“数据分析”一词,大家应该并不陌生,数据分析从字面上来理解,就是对数据做出分析然后得出一个结论,看起来浅显易懂,下面我们把这个词语分开得到的是“数据”与“分析”。“数据”的范围就很广泛了,小到一个计量数字,大到成亿级别的数据汇总,都可以称为数据;“分析”一词并不难理解,以智慧思维的方法对某一事物做出合理的解释,给出结论是为分析,一般会用到数学上的分析方法,比如统计学或者概率论等等。 1. 什么是数据分析 1) 数据分析发展背景 进入到 21 世纪以后,伴随着互联网的迅速发展,大数据应运而生,越来越多的数 阅读详情

相关推荐

Zabbix华为交换机光衰告警

zabbix使用自动发现监控huawei网络设备光衰

qq_31651649的博客 4530

Linux之父盟友分道扬镳 直言开源模式软肋(ZT)

作者:nah   从1993年起,Larry McVoy就一直是Linux之父Linus Torvalds最忠实的盟友之一。  然而经历了这些年后,McVoy开始相信,开源这种风靡一时、纷纷被惠普和IBM这种大企业所采用的商业模式,是不足以产生足够的金钱来支持真正创新的软件程序的开发。“开源作为一种商业模式,单独地来说,是相当不切实际的。”BitMover的创办者及首席执行官McVoy表示。Bit

tianyu的专栏 - Linux site:blog.youkuaiyun.com/wishfly 1970

UCOS-III 系统移植

UCOSIII系统移植到GD32F303详细过程 工程代码:https://github.com/jslaobing/techIot_ucosiii_porting

TechIoT - 探索物联网与嵌入式系统 2088

漫画 | Linux之父力挺的软件,开源后倒下了......

而BitKeeper,在失去了Linux这个最大的“活广告”之后,走上了一条稳定发展的“羊肠小道”。时间来到2016年,Git已经统治世界。BitKeeper终于宣布开源,但一切都晚了。2020年,撑不下去的BitKeeper停止了开发。。。后记我用过微软的Visual SourceSafe,这版本控制系统某人一旦check out 文件,就被锁定了,别人不能修改了,只有等他check in以后才...

码农翻身 1020

手把手教你用certificate-manager修复Vcenter证书过期问题(附密码重置技巧)

本文详细解析了Vcenter证书过期引发的503服务不可用、密码错误等典型故障现象,并提供了使用certificate-manager工具进行系统性修复的完整步骤。文章重点阐述了证书体系原理、精准诊断方法,并分享了在SSO验证失败时通过vdcadmintool重置密码的关键技巧,帮助管理员快速恢复平台并建立预防性运维策略。

swift5iosmith的博客 461

Vivado实战:AXI转PCIe IP核配置全流程(含性能优化技巧)

本文详细介绍了在Vivado环境中配置AXI转PCIe IP核的全流程,包括工程准备、IP核参数设置、BAR空间配置、中断系统优化以及TLP传输效率提升等关键步骤。特别分享了经过验证的性能优化技巧,帮助开发者显著提升PCIe链路的吞吐量和稳定性,适用于视频采集、高速数据记录等应用场景。

weixin_30892037的博客 552

unix网络编程卷2:进程间通信

管道没有名字,只能有亲缘关系使用。 FIFO也叫有名管道,有名所以没有了这个限制。 管道提供一个单向数据流,创建函数返回两个文件描述符。一个用来读,一个用来写。 宏S_ISFIFO可用于确定一个描述符或文件是管道还是FIFO。 转载于:...

dew0927的博客 216

uniapp(安卓 | 苹果) - 最新详细实现App打包发布教程,uni-app苹果IOS软件应用上架App Store软件商店,uni-app打包发布安卓Android软件到各大应用商店(详细教程

uni-app,安卓android,苹果ios,uniapp App软件,Uniapp上架发布应用,打包构建,apk、app软件,应用商店,应用市场,app store,uni-app安卓苹果app上架应用商店,app应用从创建到上架_uniapp打包app的流程和上架,uniapp打包上架ios Appstore 最全流程,苹果应用商店上架教程,uniapp生成的app怎么上架到iphone的app store,uni-app打包到上架Android , ios完整详细流程,审核一直不通过,软件商店审核失

✅ 精选推荐文章 1万+

USB 技术系列 11 · USB Linux 驱动框架

本文系统解析Linux USB驱动框架,涵盖USB Core、HCD(xhci-hcd/dwc3)、类驱动(CDC/HID/Mass Storage)分层架构,详解usb_device_id匹配、probe/disconnect生命周期及Device Tree配置。结合RISC-V N300实战,揭示Host/Device双模式驱动开发核心逻辑,助力嵌入式BSP开发者掌握USB子系统全栈能力。

peter_pan_study的博客 274

RK3588部署实战:利用RGA硬件加速单元优化YOLOv5的图像预处理与推理性能

摘要:本文探讨了在Rockchip芯片上使用RGA(Rockchip图形加速器)实现YOLOv5图像预处理的过程。通过对比RGA和OpenCV两种方式处理图像的速度,发现RGA加速效果不明显且不稳定(13-17fps),分析原因可能是图片尺寸过小和内存操作消耗时间。文章详细介绍了RGA版本的resize和letterbox实现代码,包括图像缩放、边缘填充等功能,并提供了预处理流程和性能监控方法。结果表明在当前场景下RGA尚未达到预期加速效果,可能与官方代码下架和实现细节有关。

know_F0727的博客 294

【Arduino+ESP32专题】CP2102串口自动下载电路

CP2102串口自动下载电路原理是什么?

一点硬件 2959

Linux 服务器性能排查手册(2026):CPU、内存、磁盘IO、网络四大瓶颈定位

iptables 四表五链模型、firewalld zone 信任级别、云安全组与主机防火墙的关系与优先级,避坑改了防火墙把自己挡在服务器外面的翻车事故。

2502_91473995的博客 344

Floyd (弗洛伊德)算法简述

Floyd在1962年由Robert Floyd以其当前公认的形式出版。算法作为三个嵌套for循环的现代公式首先由Peter Ingerman在1962年描述。Floyd 算法是解决图论问题的比较经典的算法,是解决给定的加权图中顶点间的最短路径的一种算法,可以正确处理有向图的最短路径问题。

慕羽★的博客 2万+

Linux rm 误删文件恢复实操教程

Linux使用rm删除文件时,并不会直接抹除磁盘上的数据,只是移除文件索引,让系统不再识别这块空间。只要没有写入新数据,原有扇区内容就会保留。新文件写入才有可能覆盖这些区域,一旦覆盖就很难找回。恢复的本质就是扫描磁盘,找到这些还存在、但索引丢失的数据条目,再把它们导出保存到其他分区。越早停止写入,恢复成功的概率越高。

海天数据恢复-winhex数据恢复教程 243

OV9734 DATASHEET,完整规格书

OV9734完整规格书,包括电气参数,尺寸规格,寄存器配置表等

文档:亲测可用解决vnc灰屏,黑屏,鼠标大黑叉情况

主要解决vnc-viewer灰屏,黑屏,鼠标大黑叉等现象,详细见文档。

Linux 常用命令 + GCC 编译全流程详解

本文为Linux与C语言初学者打造的实战指南,涵盖命令行核心技能:从文件操作、权限管理到查找、进程控制、打包压缩,最终深入剖析GCC编译四阶段(预处理、编译、汇编、链接),揭示gcc hello.c -o hello背后的完整流程。通过建立“一切皆文件”“命令即程序”等心智模型,帮助读者在纯命令行下完成代码开发全闭环,真正理解底层机制,适用于面试准备、跨平台开发及服务器部署场景。

2401_88413914的博客 284

TMS_WebGMaps_1.9.8.0_Full_Source

TMS_WebGMaps_1.9.8.0_Full_Source 全源码 delphi cbuilder

嵌入式 Linux OOM Killer 触发逻辑与防误杀实战指南

本文深入解析嵌入式 Linux 下 OOM Killer 的触发机制,结合工业网关真实工程场景,提供从日志排查、内核参数调优到关键进程保护的完整落地方案,解决核心进程被误杀导致的业务中断问题。

嵌入式扫地僧 406

汉书HE8,好用的汇编代码编写工具

汉书HE8,好用的汇编代码编写工具早期编写汇编代码所用功能强大

Linux FFmpeg深度解析之swr_convert调用流程与实战(四十六)

本篇目的:理解如何使用已初始化的SwrContext读取输入音频样本、生成输出样本并保留重采样延迟。音频转换不一定能在一次调用中输出与输入采样数按采样率比例换算出的全部样本。重采样器可能需要等待滤波数据,也可能因输出Buffer容量不足而暂存输入。会在内部维护转换状态,调用者需要按返回值处理实际输出,并在输入结束后刷新延迟数据。fill:#333;important;important;fill:none;color:#333;color:#333;important;fill:none;

Android系统攻城狮 238

Linux epoll 一篇讲透:从 select/poll 到红黑树、LT/ET,再到完整 TCP 服务器

一万个客户端已经连上服务器,眼下只有十个客户端发来了数据。服务器怎样把时间花在这十个连接上?理解这个问题,就抓住了 epoll 的主线。接下来,我们沿着“为什么需要它 → 接口怎么用 → 内核如何实现 → LT/ET 怎么写 → 完整服务器怎么运行”的顺序,把知识连起来。**阅读基础:**了解socketbindlistenaccept的基本用途即可。本文示例面向 Linux,服务器使用 C++17,实验脚本使用 Python 3。

2601_94861874的博客 452

深入浅出聊聊 Linux 的 PageCache 与系统极致性能

本文深入浅出解析了 Linux PageCache 的核心机制,揭示其如何通过“延迟写、预读读”提升系统性能。以监控告警为切入点,阐明 free -h 中 buff/cache 并非真正占用,真正可用内存由 available 决定。结合 Kafka、Elasticsearch、MySQL 等实战场景,说明中间件如何依赖 PageCache 实现极致性能。强调不可手动清理缓存,并建议合理调优脏页参数,避免卡顿。最终指出:内存满≠危机,而是系统高效运行的体现。

小小默:进无止境 516

【Linux 命令实战(06):Linux 文件权限管理,掌握 chmod、chown、chgrp】

chmod:修改文件和目录权限。chown:修改文件所有者,也可以修改所属用户组。chgrp:修改文件所属用户组。r:读取。w:写入。x:执行,对于目录则表示进入和访问能力。ugo:分别代表所有者、所属组和其他用户。我认为,权限管理最重要的不是记住755644这些数字,而是先弄清楚谁需要访问文件、需要执行什么操作,再给出恰当的权限。尤其是在测试服务器和生产服务器上,不要为了图方便直接使用chmod 777。权限开放得越大,并不代表问题解决得越好。

一些微不足道的见解、希望能帮助各位 347

Linux篇(五)

本文系统梳理了Linux常用终端快捷键、软件包管理(yum/apt)、服务管理(systemctl)、软链接(ln)、时间与IP配置、域名解析、固定IP设置及网络命令(ping/wget/curl),涵盖日常运维核心操作,助力高效管理Linux环境。

wykyzdq的博客 208

Linux 基础指令(下):查看、查找、打包与权限

本文系统讲解Linux中文件查看、查找、打包与权限管理的核心指令。通过cat、more、less、head、tail实现高效内容浏览,掌握find、grep等查找工具,利用tar、zip完成文件打包,结合chmod、chown等控制权限。重点解析重定向与管道机制,揭示命令组合的威力,助力用户从“管文件”迈向“用文件”的进阶实践。

2501_94464498的博客 504

【Linux】进程间通信的基础概念及基于匿名管道的进程池

前面我们介绍了进程的创建、退出和等待,接下来看看进程之间怎样传递数据。这篇从匿名管道入手,再用管道把父子进程联系起来,写一个简单的进程池小demo。而且我把发行版从CentOS切换成Ubuntu了,主要是CentOS已经不维护了,可惜了。。。

qeen87的博客 337

Linux的渲染与显示系统链路

Linux渲染与显示链路核心为DRM/KMS + EGL直连模式,绕过传统X11/Wayland中间层,实现低延迟、高效率的直接帧提交。相比X11的粗粒度权限控制与Wayland的合成开销,该方案链路短、资源消耗低,但仅支持单进程独占显示,缺乏窗口管理与系统级兜底。EGL作为跨平台桥梁,连接OpenGL ES与原生显示系统,通过Display、Surface、Context三要素构建渲染环境。内核层DRM管理GPU资源,KMS配置显示模式,用户态GDM负责登录会话,共同构成从硬件到应用的完整图形栈。

微小的鱼的博客 444

Linux 启动流程与故障修复:GRUB、systemd 与救援模式实战

密钥登录配置替代密码、sshd_config 禁 root 禁密码改端口、fail2ban 自动封爆破 IP、端口改不改的权衡,服务器被扫描爆破时的完整加固方案。

2502_91473995的博客 463

Linux 存储

架构定义:不再依赖一对专用双控机头;由多台普通 x86 服务器组成集群,统一管理所有磁盘,控制面、数据面分散在集群节点。这是唯一一个架构,可以同时对外交付:块、文件、对象三种形态。

fengliyang_的博客 368
上一篇: 生个三胎真不容易啊!
下一篇: 如果这个人出门被车撞了,互联网就崩溃了...
码农翻身
码农翻身 《码农翻身》作者 《码农翻身》作者
博客等级 码龄8年 3万+粉丝 1084原创
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

个

红包个数最小为10个

元

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00元
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付元
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值