鸿蒙初劈----Linux的传奇历史
Linux历史
历史上,Linux操作系统内核以其不断的发展为特点。它的源代码已经从1991年初次发布的几个C语言文件扩展到2007年的290MB源文件;发布许可也从禁止商业化发布,变为在通用公共许可证GPL下发布。
鸿蒙初劈
开辟鸿蒙,谁为情种?都只为风月情浓。
奈何天,伤怀日,寂寥时,试遣愚衷。
因此上,演出这怀金悼玉的《红楼梦》。
《红楼梦》仙曲十二支之引子
缘起
Unix操作系统在20世纪60年代构思完成并实现,并在1970年首次发布。它因容易获取与可移植性高而广泛被学术机构和工商企业采用、复制和修改。它的设计对其他系统的作者影响很大。
在20世纪80年代还有另外一个关于自由操作系统的项目,伯克利软件套件。这是由UC Berkeley从AT&T的第六版Unix开发而来的。因为它包含了AT&T所拥有的的Unix代码,所以AT&T在20世纪90年代初对加利福尼亚大学提起了法律诉讼。这严重限制了BSD的发展与应用。
MINIX是安德鲁·斯图尔特·塔能鲍姆在1987年发布一个用于教学的微内核架构的类Unix系统。虽然系统的源代码容易得到,但是对源代码的修改与再发布却受到了限制。另外,MINIX的16位的设计与当时日渐便宜及受欢迎的、个人电脑的Intel80386架构兼容得不好。
安德鲁·斯图尔特·塔能鲍姆,老教授
这些因素使得Torvalds开始了他的项目。他曾说过,如果那时候有可用的GNU或者386BSD内核的话,他很可能就不会去写他自己的内核了。
Linux 有个牛逼的爸爸
要说Linux得先介绍下它爸爸,林纳斯·本纳第克特·托瓦兹(Linus Benedict Torvalds)
My name is Linus Torvalds and I am your god.
我的名字是林纳斯·托瓦兹,我是你们的上帝。
(在1998 Linux大会上的自我介绍)
一般人,要是这么介绍,马上会炸开锅。但是作为Linux 和 Git 的缔造者,确实是咱程序员的上帝。当然老哥口放狂言的时候,Linux的弟弟Git还没出生。整了一个Linux就很厉害了,后来随手又整了个git(全球最大同性交友网站也都是基于git打造的)。这个上帝确实很牛逼,感觉就像大儿子是牛顿,二儿子是爱因斯坦。现在全球几千万程序猿都靠他吃饭。性格也当然是桀骜不驯。
青涩如我:)
啤酒和炸鸡!
年轻时代的我们,也跟linus一样,但是后来就是一个天上一个地下。
豪放如我:)
赤身裸体,头发如鸡窝,小酒喝起。
信仰如我:)
Linus,一生只为寻找欢笑。
优秀的程序员,编程只为乐趣。
斯文如我:)
给程序猿们一个小提醒:胡须刮干净,仍是少年。
暴躁如我:(
在2015年的一次演讲中,Torvalds讨论了Nvidia公司,对着摄像机说了一句“So NVIDIA, Fxxk you.”同时给了一个中指。
大爷永远是你大爷!如果不如Linus大爷牛逼,就还是低调点好,免得挨揍。
自信如我:)
自信人生两百年,会当击水三千里!
被赞誉为“手握因特网未来的人”。人说,卧龙和凤雏得一可以安天下,Linux和Git得一可以名垂青史。Linus说:我左牵Linux,右擎Git,锦帽貂裘,千骑卷平冈。
2002年摄,中年大叔Linus,志得意满
不小心造了个OS内核
当我们还在大学宿舍打游戏聊天撩妹的时候,赫尔辛基的那个少年开始自己造操作系统内核了。
1991年,在赫尔辛基,Linus Torvalds开始那个后面成为了Linux内核的项目。最初它只是一个Torvalds用来访问大学里的大型的Unix服务器的虚拟终端。他专门写了一个用于他当时正在用的硬件的,与操作系统无关的程序,因为他要用他那用80386处理器的新PC机的功能。开发是在Minix上,用至今仍为首选的编译器——GCC——来完成的。
Torvalds在他的书《只为欢乐]》中说过,他最后才意识到自己写了一个操作系统内核。一不小心造了个内核。
1991年8月25日,他在发布到新闻组“comp.os.minix.”的Usenet上发布了这个系统:
“使用minix操作系统的各位,大家好!我正在为386(486)AT clones写一个(自由的)操作系统(只是爱好而已,不会和GNU一样成为广泛且专业的操作系统)。这个计划从4月份开始酝酿,现在已做好准备。我希望得到人们关于minix优缺点的任何反馈意见,因为我的操作系统和它有类似的方面(因为可行性方面的原因,两者的文件系统物理布局相同)。 我刚刚把bash(1.08)和gcc(1.40)移植到了系统上,而且看来运行得很好。这意味着我可以在几个月内我就可以把它变得有实用性了。我想知道大家想要些什么特色。欢迎提任何的建议,但是我不保证我会实现你的建议:-)Linus (torvalds@kruuna.helsinki.fi)另:是的,它没有包含任何minix的代码;它的文件系统还是一个多线程的。它没有可移植性(它利用了386的任务调度算法等),而且它很可能永远只会支持AT的硬盘(我只有这种硬盘:-( )”
取名也是艺术
我以前有个历史老师,他的名字也很有历史味道,叫文革。生于新中国长在红旗下,像50年代生人,很多叫“建国”、“解放”、“援朝”。80后的,都是读着琼瑶的小说长大的,给娃取名很琼瑶。90后生娃,就更有意思了。
琼瑶风:
另类风:王者荣耀:)
史诗王爵:)
王子拼拼:)
哦,爸爸Linus,儿子Linux
嗯,Linux是Linus一手打造的,儿子跟爸爸姓也是可以的啊。
少年Linus Torvalds不愧是个钢铁直男,给刚出生的内核取了个“土得掉渣”的名字:Freax。Freax——“fread”,“free”和“x”(暗指Unix)的合成词。在开发系统的前半年里,他把文件以文件名“Freax”存储。Torvalds考虑过Linux这个名字,但是因为觉得它过于自我本位而放弃了使用它。嗯,少年还是比较谦虚,成名之后另说,一些比较拽的言论,譬如“我就是永远正确。这次我比平时还要更正确一些。”
为便于开发,在1991年9月,他把那些文件上传到了赫尔辛基工业大学(HUT)的FTP服务器(ftp.funet.fi)。Torvalds在HUT负责管理那个服务器的同事Ari Lemmke,觉得“Freax”这个名字不是很好,就在不咨询Torvalds的情况下,把项目的名字改成了“Linux”。但是之后,Torvalds也同意“Linux”这个名字了:“经过多次讨论,他承认Linux这个名字更好。在0.01版本Linux的源代码的makefile里仍然使用‘Freax'这个名字,在之后‘Linux'这个名字才被使用。所以,Linux这个名字并不是预先想好的,只是它被广泛接受了而已”。
嗯,不知道为什么,看到这个总让我想起了宋太祖“黄袍加身”的故事,宋太祖:我做皇帝也是迫不得已啊!!!
你不是一个人在战斗,大佬理查德·斯托曼(Richard Stallman)
开源运动领袖:查德·斯托曼
邋里邋遢的糟老头子,有木有:)
其实年轻时候也还是很帅的!这放电的眼神这披肩长发像不像电影明星?!所以说一胖毁所有!
照片来自《Free as in Freedom理查德·斯托曼的自由软件志业》一书的封面
在1983年,理查德·斯托曼创建了一个自由软件,类Unix,与POSIX兼容的操作系统为目标的GNU计划。作为这个计划其中的一部分,他又写了GNU通用公共许可证(GPL)。20世纪90年代初,已经有足够的软件去创建一个完整的操作系统。但因为在1987年时,理查德·斯托曼决定以Mach微内核进行开发,认为可以借此加速操作系统的开发,但因为一直不确定卡内基梅隆大学何时要将核心源代码发布,造成项目三年进展缓慢。GNU的内核,GNU Mach和GNU Hurd没能够充分吸引开发者,这导致了GNU的未能完成。GNU的差一块补天顽石。Linux才堪大任。
站在巨人GNU 肩膀上的Linux
牛顿曾经说过:“如果说我看得比别人更远些,那是因为我站在巨人的肩膀上。”
嗯,你以为牛顿是在谦虚?NO!他只是在嘲笑竞争对手胡克。
但这一次,Torvalds是真的要借助巨人的力量才行。
Torvalds先是在它自己的许可下发布Linux内核的,即限制它用于商业活动。和这个内核一起使用的软件是发布在GPL这个自由软件许可下,属于GNU计划一部分的软件。第一次发布的Linux内核,版本0.01,包含了GNU的Bash的二进制版本。 在版本0.01的备注中,Torvalds列出了运行Linux所需的GNU软件:
很不幸,单单一个内核是什么都做不了的。要让一个系统能够工作,还需要一个shell,编译器,函数库等等。这些各是独立的部分,它们有着或松或紧的著作权限制。与linux一起使用的大多是GNU的软件,而这些软件是非盈利著作权限制的。在Linux的发布版本里没有包含这些工作——你可以向我(或者GNU)索取更多的信息。
1992年,他建议在GPL下发布内核。他先在版本0.12中宣布了这个决定。1992年12月中,他在GNU GPL下发布了0.99版。Linux和GNU的开发者一起把GNU的部件和Linux集成起来,使它成为一个可运行的自由操作系统。Torvalds说,“把Linux发布在GPL下是我所做过的最好的事。”
确实如此,没有GNU,就没有Linux的今天,没有Linux就没有云计算,没有云计算,XX生活就不能自理。
GNU集齐了七龙珠,特别是中间最大一颗Linux,于是召唤了神龙成就了一统信息时代的霸业。
道可道非常道名可名非常名
“道可道,非常道。名可名,非常名。无,名天地之始;有,名万物之母。故常无,欲以观其妙;常有,欲以观其徼。此两者,同出而异名,同谓之玄。玄之又玄,众妙之门。“ --------老子
关于GNU/Linux命名方式的争议。
“Linux”这个名称一开始只被Torvalds用于Linux内核。但是这个内核却常和其他软件一起使用,尤其是GNU计划的软件。这很快就成为最受欢迎的GNU软件。1994年六月,在GNU的期刊中,Linux被称作“自由Unix克隆版”,Debian计划也开始把它的产品叫做“Debian GNU/Linux”。1996年5月,Richard Stallman发布了编辑器Emacs的19.31版本,其中系统的名称从Linux变成了Lignux。这种拼法为的是明确指出GNU和Linux的结合。但是这不久就被“GNU/Linux”所代替了。
对这个名称,不同人有不同的反应。GNU和Debian项目使用那个名字,但是,多数开发者仍然简单地用“Linux”来指代它们的结合。其实叫什么名字不重要,大家都”懂“就好了。
腾讯致敬Linux
官方吉祥物
1996年,Torvalds为Linux选定了企鹅作为它的吉祥物。Larry Ewing提供了吉祥物的初稿。现在正在使用的著名的吉祥物就是基于这份初稿的。James Hughes根据“Torvalds's Unix”为它取了名字Tux。
对于我们中国人而言,另外一只著名企鹅是小马哥的,嗯,你们都知道的“鹅厂“。
QQ初稿:
腾讯初创员工,徐钢武:
其实这也是鹅厂对Linux的致敬:
据徐钢武表示:“腾讯早期在服务器不够的情况下能支持大量用户同时在线,一个系统功不可没——Linux。当时的OICQ后台,都是架在这个不是程序员可能甚少人知道的系统上,因为Linux的开源及开放性,使得我们能够深入内核进行底层优化,当别的企业同样拥有了服务器储存好友功能,却被大量的数据硬生生拖垮时,OICQ的一台服务器却能支持对手数十倍的用户同时在线,并给用户更稳定的通讯效果。”
是的,没有Linux就没有鹅厂。
好风凭借力,送我上青云
临江仙·柳絮
--------《红楼梦》曹雪芹
白玉堂前春解舞,东风卷得均匀。蜂围蝶阵乱纷纷。几曾随逝水,岂必委芳尘。
万缕千丝终不改,任他随聚随分。韶华休笑本无根。好风凭借力,送我上青云。
内核
什么是内核
内核处于应用程序和硬件之间
内核代码量指数曲线增长
枝繁叶茂子孙满堂
发行版本
众人拾柴火焰高
社区
关于Linux的大部分工作都是由社区完成的:世界各地使用Linux的程序员都把建议的改进发给维护员。很多公司还不但参与内核的开发,还参与了一些随Linux一起发布的辅助软件的编写。
Linux的版本当中,既有像Debian那样由自发组织发布的,又有像openSUSE和Fedora那样直接和一些公司相关的。为了交换意见,各个项目的成员常在各种会议交流会上会面。其中最大的交流会是在德国(当前是柏林)举行的LinuxTag。每年有大约10,000人聚集在一起讨论Linux以及与Linux相关的项目。
开源发展实验室和Linux基金会
开源码发展实验室(Open Source Development Lab)创立于2000年。它是一个独立的非营利性组织。它的目标是优化Linux以应用于数据中心和运营商的领域。它是Linus Torvalds和Andrew Morton工作的赞助来源。2006年年中,Morton去了Google(Google也是使用Linux内核的);Torvalds全职为OSDL开发Linux内核。非商业性运营机制的资金主要来源于Red Hat,Novell,三菱,英特尔,IBM,戴尔和惠普等几家大公司。
2007年1月22日,OSDL和自由标准组织合并为Linux基金会,把它们的工作焦点集中在改进GNU/Linux以与Windows竞争[14]。
相关公司
虽然是开源项目,但是还是有一些公司从中获取了利益。这些公司大多也是开源发展实验室的成员。它们在Linux的改进与开发中投入了许多资源以使其能够适应不同领域的应用。其中包括驱动程序捐赠的硬件,对开发Linux软件的人员现金的捐赠,以及对Linux程序员的雇用。例如IBM和HP,它们首先在它们的服务器上使用了Linux;又如Red Hat,它维护着它自己的版本。同样,Trolltech通过对Qt的开发和把它GPL许可化,以及启用一些X和KDE开发人员来支持Linux。前者更使得开发KDE成为了可能。
名称的商标
Linux是Linus Torvalds的注册商标。
商标权
在1994和1995年,有多个来自不同国家的人想把Linux注册为商标,从而一些Linux公司可以从中收取特许使用金。很多Linux的开发人员和用户都不同意此举。Torvalds在Linux国际的帮助下得到了Linux这个商标,然后他把这个商标转让给了Linux国际。对这个商标的保护后来就由一个专门的基金会——非营利性的Linux标识协会——来管理。2000年,Linus Torvalds指定了分配许可权的基本规则。这意味着任何要想以Linux的名义发布产品和服务的人,都要拥有许可证。而许可证要通过购买获得。
大事年表
1983:Richard Stallman发起以创建一个自由的操作系统为目标的GNU计划。
1989:Richard Stallman撰写第一版的GNUGPL。
1991:Linux内核在8月25日由21岁的芬兰学生Linus Benedict Torvalds公开发布。
1992:在GNU GPL下Linux内核被重新授权使用,产生第一个“Linux发行版本”。
1993:超过100个开发者致力于Linux内核开发。在他们的努力下,内核逐渐适应GNU的环境,这个为Linux创造巨大的应用空间的广阔环境。Slackware首次发布。后来在同一年,Debian项目设立,现已成为最大的社区发布项目。
1994: 3月, Torvalds认为内核的所有组件已经完全成熟,他放出了Linux的1.0版本。XFree86项目组提供了一个图形化用户界面(GUI).同年Red Hat公司和SUSE发行他们各自的Linux 1.0分发版本。
1995: Linux被移植到DEC Alpha和Sun公司的SPARC平台上,而在接下来的几年里它又被广泛地移植到更多的平台上。
1996: Linux内核2.0版本发布。此时内核已经支持多处理器,因而成为各大公司的绝佳选择。
1998:很多大公司,诸如IBM、Compaq ,Oracle表示支持Linux系统。另外,一部分程序员开始图形化用户界面KDE的开发。
1999:一些程序员开始致力于开发图形化环境GNOME,它可以替代依靠Qt工具包才能工作的KDE。在这一年里IBM宣布一项支持Linux的浩大的工程。
2004:XFree86小组分裂,同现有的X Windows标准组织 共同成立X.Org基金会,促使了X Window ServerLinux版本极其快速而迅猛的发展。
大神 Linus Torvalds 语录
My name is Linus Torvalds and I am your god.
我的名字是Linus Torvalds,我是你们的上帝。
(在1998 Linux大会上的自我介绍)
If you still don’t like it, that’s OK: that’s why I’m boss. I simply know better than you do.
如果你还是不喜欢Linux,没关系,这就是为什么我在当家的原因:因为我对技术的理解比你更深。
“Regression testing”? What’s that? If it compiles, it is good; if it boots up, it is perfect.
“回归测试”?这是什么东西?如果代码能编译就是好的,如果它启动了,那就是完美的。
Talk is cheap. Show me the code.
空谈是不值钱的。给我看你的代码就好。
Those that can, do. Those that can’t, complain.
有能力的人一直在干活,没能力的人一直在抱怨。
Really, I’m not out to destroy Microsoft. That will just be a completely unintentional side effect.
真的,我没打算要摧毁微软。这种结果将会是完全无意中产生的副作用。
I’m always right. This time I’m just even more right than usual.
我就是永远正确。这次我比平时还要更正确一些。
Nobody actually creates perfect code the first time around, except me. But there’s only one of me.
实际上没人能一次就写出完美的代码,除了我。但是世界上只有一个我。
If you need more than 3 levels of indentation, you’re screwed anyway, and should fix your program.
如果你的代码里需要有超过三层的缩进,那么你已经搞砸了,应该修改你的代码。
Real quality means making sure that people are proud of the code they write, that they’re involved and taking it personally.
真正的质量意味着让程序员为他们写的代码自豪,参与到编写代码之中并把它当做自己个人的事情。
Standards are paper. I use paper to wipe my butt every day. That’s how much that paper is worth.
标准就是纸张。我每天都用纸张擦屁股。这就是这些纸张的价值所在。
I like offending people, because I think people who get offended should be offended.
我喜欢埋汰人,因为我觉得那些被埋汰的人活该被埋汰。
Portability is for people who cannot write new programs.
“可移植性”的概念是为那些不会写新程序的人准备的。
理查德·马修·斯托曼
(英语:Richard Matthew Stallman,简称rms**,有时也用大写的RMS[1],1953年3月16日-),美国程序员,自由软件活动家。他发起自由软件运动,倡导软件用户能够对软件自由进行使用、学习、共享和修改,确保了这些软件被称作自由软件。斯托曼发起了GNU项目,并成立了自由软件基金会。他开发了**GCC、GDB、GNU Emacs,**同时编写了GNU通用公共许可协议。
为了创建一个完全由免费软件组成的类Unix计算机操作系统,斯托曼在1983年9月推出了GNU项目。借此又发起了自由软件运动。他迄今为止一直是GNU项目的组织者,作为主要开发者的他开发了一些被广泛使用的GNU软件,其中包括GCC、GDB、GNU Emacs。在1985年10月他创立了自由软件基金会。
斯托曼开创了Copyleft的概念,它使用著作权法的原则来保护使用、修改和分发自由软件的权利,并且是描述这些术语的自由软件许可证的主要作者。最为人所称道的是GPL(最广泛使用的自由软件协议)。
1989年,他和别人一起创立了自由程序设计联盟。自20世纪90年代中期以来,斯托曼花他大部分时间组织参与宣传自由软件,反对软件专利和数字版权管理的以及他认为剥夺用户自由的其他法律和技术系统运动。这包括最终用户许可协议、保密协议、产品激活、加密狗、软件复制保护、专有格式、二进制软件包(没有源代码的可执行文件)。
截至2016年,他获得了十五个荣誉博士及教授称号。
2019年,由于在MIT计算机科学与人工智能实验室的邮件列表中,指出在对杰弗里·爱泼斯坦案和马文·闵斯基的关联的表述中的用词隐含对在马文·闵斯基面前受害少女受迫表现为自愿且未受马文·闵斯基虐待,在网络上引起某些人不满,斯托曼遂宣布辞去麻省理工CSAIL的职位[2][3]以及自由软件基金会主席一职[4]。他的主要观点是,在不同的国家与地区对于未成年的定义有所不同,在这个地区的法律认为17岁成年,另一个地区则是19岁成年,以这种没有给出任何理由的数字来判断一个人的行为是否道德是难以理解的。
安德鲁·斯图尔特·特南鲍姆
(Andrew Stuart "Andy" Tanenbaum,1944年3月16日-),昵称**“安迪”**,网络上的代号为“ast”[1],生于美国纽约市,计算机科学家,专长于操作系统,为荷兰阿姆斯特丹自由大学的计算机科学教授。他最早以Minix(一个免费用于教学目的的类Unix操作系统)作者的身份以及所编写的计算机科学教科书而为人熟知。他把教学视作自己最重要的一项工作。[2]
著作
特南鲍姆著有多本受到赞誉的计算机课本,其中主要涉及计算机系统原理和计算机网络原理等偏底层的技术主题。其代表著作包括:
Computer Networks[计算机网络] 4.ISBN 0-13-066102-3(英语)
第四版 简体中译ISBN 7-302-07815-7
第四版 繁体中译ISBN 957-483-227-9
第四版 复印版ISBN 7-302-08977-9
第三版 简体中译ISBN 7-302-03035-9
第三版 繁体中译ISBN 957-636-888-X
第三版 复印版ISBN 7-302-02410-3
Operating Systems: Design and Implementation[操作系统:设计及实现] 3.ISBN 0-13-142938-8(英语). (第二版ISBN 0-13-638677-6)
第二版 复印版ISBN 7-302-02714-5
Modern Operating Systems[现代操作系统] 2.ISBN 0-13-031358-0(英语).
Structured Computer Organization[计算机组成:结构化方法] 5.ISBN 0-13-148521-0(英语)
第五版 简体中译ISBN 7-115-14891-0
第五版 复印版ISBN 7-111-18368-1
第四版 简体中译ISBN 7-111-08902-2
第四版 复印版 (名称为《结构化计算机组成》)ISBN 7-111-09287-2
第三版 繁体中译 957-220-588-9
Distributed Systems: Principles and Paradigms[分布式系统:原理与范型] 1.ISBN 0-13-088893-1(英语)
复印版 (名称为《分布式系统:原理与范例》)ISBN 7-302-05827-X
Distributed Operating Systems[分布式操作系统].ISBN 0-13-219908-4(英语).
《操作系统:设计及实现》一书和书中示例的Minix操作系统给予了林纳斯·托瓦兹创造知名操作系统内核Linux的灵感。在他的自传《只是为了好玩》(Just For Fun)中,托瓦兹把这本书描述为“引领我到达新高度的一本书籍”。特南鲍姆还继而完全使用微内核理念来编写阿米巴分布式操作系统(Amoeba distributed operating system)。
荣誉
ACM会士(Fellow)
IEEE会士(Fellow)
荷兰皇家艺术与科学院院士
荷兰自由大学的计算机系统系的学术首席教授(Academy Professor)
2006年IEEE普及计算大会最佳高影响力论文的合著者之一
2003年美国教科书与高等院校作者协会(TAA)的麦格菲奖(McGuffey Award)(授予经典教材)获得者
2002年美国教科书与高等院校作者协会的教材奖(Texty Award)(授予新教材)获得者
1997年ACM计算机科学教育专业小组(Special Interest Group)计算机科学教育杰出贡献奖获得者
1994年ACM Karl V. Karlstrom杰出教育家奖获得者。
1984年ACM操作系统规范研讨会议(SOSP)杰出论文奖的合著者之一
关于必果学院
言必行,行必果,是我们必果学院的宗旨 我们学院专注于把零基础的IT学习人员培养为高级IT工程师 致力于专业C/C++/Python培训 涉及领域客户端/服务器开发,嵌入式、数字图像处理、音视频、linux、windows、物联网、逆向、区块链 每个领域都有大量实际和完整的项目 在项目实战中提升学员。
加群索取资料:
技术资料:
1、linux相关技术资料
2、区块链相关资料
3、C/C++ QT/UI 相关资料
4、软件工程资料