<> 博客简介:Linux、rtos系统,arm、stm32等芯片,嵌入式高级工程师、面试官、架构师,日常技术干货、个人总结、职场经验分享
<> 公众号:嵌入式技术部落
<> 系列专栏:C/C++、Linux、rtos、嵌入式开发、流媒体、数据结构、网络协议、开源库、CMake、Makefile、架构设计模式等
本系列系统性总结和梳理git相关内容。对开发者而言,了解 git 产生的背景和设计理念,有助于更好地理解和使用 git;对管理者而言,则能更好地对企业项目开展有效的管理。
1969 年,Linus Torvalds 生于芬兰赫尔辛基市。父亲 Nils Torvalds 毕业于赫尔辛基大学,是一名活跃的共产主义者及电台记者。母亲 Anna Torvalds 同样毕业于赫尔辛基大学,也是一名记者。有趣的是,他的祖父奥 Ole Torvalds 也是一名记者。除此之外,Torvalds 的外祖父 Leo Tornqvist 是芬兰第一批统计学教授。优秀的家庭背景为 Torvalds 奠定了接受良好教育的基础。Torvalds 在 11 岁时,应其外祖父要求用 BASIC 语言编写一些统计学方面的小程序。大众普遍认为,这是他编程经历之始。
1988年,Torvalds 进入赫尔辛基大学计算机科学系就读。在兴趣的趋势下,Torvalds 创造并发布了自制的操作系统,并将其命名为 Linux。1996 年硕士毕业并移居美国,后拥有美国国籍。2003 年,为专心维护 Linux 从全职公司辞职。
在2002年以前,Linux内核的版本控制一直是Linus自己。具体流程如下:开发人员将tarballs和补丁提交给几个Linus信任的助手。助手们通过审核后,将补丁发送给Linus。最后,Linus亲手将它们合并到自己的源代码树中,然后发布。
当然,Linus本人并不是一个“完美的版本控制服务”。1998年,知名程序员Larry McVoy通过Linux内核邮件列表首次提出了BitKeeper的想法,他写道:“很明显,我们的领袖[Linus]目前有点超负荷,补丁可能会丢失。”
尽管如今看来,这种手动的工作流程也未免太原始了,但在当时,Linus认为这种工作流程比其他选择(主要是CVS)更好。
Linus认为CVS的核心问题在于其集中化的性质。由于Linux开发人员有数百名之多,所以Linus认为每个人都拥有自己独立的代码库副本至关重要,因为只有这样他们才能在自己的分支上开发。这不仅对线下的工作有帮助,而且对内部管理也很有帮助。每位开发人员都可以自由地向自己的代码库提交任何代码,而且他们有机会说服社区他们的变更是有价值的。这样可以防止拥有提交权限的贡献者成为唯一的代码库的守门人。
最终Linus选择了商业的版本控制系统BitKeeper,BitKeeper的东家BitMover公司出于人道主义精神,授权Linux社区免费使用这个版本控制系统。后来,Linus对BitKeeper表示了极大的赞赏,认为BitKeeper改变了他的看法,而Git的灵感也来源于此。
安定团结的大好局面在2005年被打破了,原因是Linux内核开发人员Andrew Tridgell违反了许可,并实施了逆向工程。他能够提取BitKeeper代码而不需要遵循BitKeeper许可(这么干的其实也不只他一个),被BitMover公司发现了(监控工作做得不错!),于是BitMover公司怒了,要收回Linux社区的免费使用权。
Linus充当了三个月的调停,但最终未能达成和解。合作未能成功,这对Linux内核的开发产生了重大影响。因为必须找到一套工具来代替BitKeeper的功能。2005年4月6日Linus通过邮件列表公布了双方合作失败的消息,但实际上他已经展开了紧张的工作。就在2.6.12-rc2发布的三天前,他停止了Linux内核的工作,并全力寻找BitKeeper的替代方案。
Linus花了两周时间自己用C写了一个分布式版本控制系统,这就是Git!一个月之内,Linux系统的源码已经由Git管理了!即2005年4月17日,他发了一封邮件:“第一次真正的内核Git合并!”牛B是怎么定义的呢?大家可以体会一下。
Git迅速成为最流行的分布式版本控制系统,尤其是2008年,GitHub网站上线了,它为开源项目免费提供Git存储,无数开源项目开始迁移至GitHub,包括jQuery,PHP,Ruby等等。
历史就是这么偶然,如果不是当年BitMover公司威胁Linux社区,可能现在我们就没有免费而超级好用的Git了。
Linus目前受聘于开放源代码开发实验室(OSDL,Open Source Development Labs),全身心的开发Linux内核。尽管这人看上去毫不起眼,比如Linus曾在他的自传《乐者为王》(Just for Fun)中自嘲:“我是一个长相丑陋的孩子,凡是见过我小时候照片的人,都会觉得我的相貌酷似河狸。再想象一下我不修边幅的衣着,以及一个托瓦兹家族祖祖辈辈遗传下来的大鼻子,这样,在你脑海中我的模样就形成了。”但这丝毫也影响不了林纳斯对整个商业社会的巨大价值—Linux代表着网络时代新形式的开放知识产权形态,这将从根基上颠覆以Windows为代表的封闭式软件产权的传统商业模式。更重要的是,这样的颠覆早已悄悄的出现在了商业社会的各个角落。