Linux001 Linux简介

Linux 简介

本篇教程主要讲述Linux的历史背景。linux如何由来,又经过了怎样的发展,最终达到了今天这样的世界地位。

Well,既然是甩在Blog的教程,篇幅的话,我也不管了,为了让大家能从根本上对Unix至Linux这类系统出现的意义何在 有一定的了解,so,我们不如从盘古开天地说起。

话说那天( 我也不知道是哪天:) 也别来问我..请出门左转bing),盘古一斧子给劈出了个天和地,渐渐的,天越升越高,地越沉越低,于是就出现了处于天地之间的人间…few years later…计算机就出现了(中间略)
所以说盘古还是挺重要的,于是我觉得有必要在这儿提一提他。此致,敬礼

计算机的前世今生

计算机软件和硬件

众所周知:) 计算机大致可以分成两大部分,硬件软件

  • 只有硬件没有软件的计算机系统被称之为“裸机”,我们很难用“裸机”来完成计算机日常的工作(如存储和运算)
  • 只有软件没有硬件的计算机…好像这都不叫计算机了,:sweat_smile:pass…

所以必须用 特定的软件 来控制硬件的工作。最靠近计算机硬件的软件是系统软件,其中最为重要的就是 操作系统

操作系统是控制和管理整个计算机系统的硬件和软件资源,合理的分配资源和调配任务,为系统用户和其他软件提供接口和环境的程序的集合 的软件。

最早的人机交互

最初为了实现人机交互,是一种用打孔纸带往计算机传送0和1数据的方法。纸带如下图,具体操作过程请自行脑补…
打孔纸带
如果都这样写你的c语言作业的话,那么 霸王 都不能拯救你的发际线了 :pensive:

于是,最早秃头的一群人,他们设计出了批处理系统

批处理系统

又到了我们最喜欢的ctrl-c ctrl-v的时候了 :sunglasses:

首先启动计算机上的一个监督程序,在监督程序的控制下,计算机能够自动的、成批的处理一个或多个用户的作业。完成一批作业后,监督程度又从输入机读取作业存入磁带机。按照上面的步骤重复处理任务。监督程序不停的处理各个作业,实现了作业的自动转接,减少了作业的建立时间和手工操作时间,提高了计算机资源的利用率。 批处理系统又可以分为单道批处理系统、多道批处理系统、联机批处理系统、脱机批处理系统。

批处理系统已经提高了很多计算机的执行效率,终于让我们有了一点自动自动机器的感觉了。不过他们还并不满意,他们还想再让秃头的日子延迟几年,于是又出现了下一个更牛逼的东西

分时系统和实时系统

据说程序员的键盘掉漆最快的是ctrl、c和v键 :no_mouth:

分时系统是把处理器的运行时间分成很短的时间片,按时间片轮流把处理机分配给各联机作业使用。 若某个作业在分配给它的时间片内不能完成其计算,则该作业暂时中断,把处理机让给另一作业使用,等待下一轮调度时再继续其运行。

由于计算机速度很快,作业运行轮转得很快,给每个用户的感觉是他独占了一台计算机。而每个用户可以通过自己的终端向系统发出各种操作控制命令,在充分的人机交互情况下,完成作业的运行。为了解决分时系统不能及时响应用户指令的情况,又出现了能够在在严格的时间范围内完成事件处理,及时响应随机外部事件的实时系统。

这才是现代计算机该有的样子嘛:grin:

至此,对计算机的历史的简单梳理之后,计算机基本部分也该告一段落了,接下来的就该我们这一系列教程的主角 :sparkles:Linux:sparkles: 上场了。

Linux的老前辈Unix

Unix诞生之前

Unix之前的计算机大部分是采用批处理的方式。那时, 美国电话及电报公司(AT&T)、通用电器公司(G。E。)及麻省理工学院(MIT) 计划合作开发一个多用途、分时及多用户的操作系统,也就是MULTICS

不过,这个项目由于太过复杂,整个目标过于庞大,糅合了太多的特性,进展太慢,几年下来都没有任何成果,而且性能都很低。于是到了1969年2月,贝尔实验室决定退出这个项目。

Unix 的诞生与发展

然而,有个叫Ken Thompson的人,他为MULTICS这个操作系统写游戏了个叫“Space Travel”的游戏,不过太贵了,运行一次要:moneybag:$75(现在想想steam的游戏还真是良心)他为了让这个游戏能玩,所以他找来Dennis Ritchie为这个游戏开发一个极其简单的操作系统。这就是后来的 Unix。当时完成Unix第一版是在1969年8月。也就是这一年,一个叫 Linus Torvalds:baby:在芬兰出生了。

到了1973年的时候,Ken Thompson 与Dennis Ritchie感到用汇编语言做移植太过于头痛,他们想用高级语言来完成第三版,对于当时完全以汇编语言来开发程序的年代,他们的想法算是相当的疯狂。一开始他们想尝试用Fortran,可是失败了。后来他们用一个叫BCPL的语言开发,他们整合了BCPL形成 B语言 ,后来Dennis Ritchie觉得B语言还是不能满足要求,于是就改良了B语言,这就是今天的大名鼎鼎的 C语言
Then , Ken Thompson 与Dennis Ritchie成功地用C语言重写了Unix的第三版内核。至此,Unix这个操作系统修改、移植相当便利,为Unix日后的普及打下了坚实的基础。而Unix和C完美地结合成为一个统一体,C与Unix很快成为世界的主导。

emmm,内核,他是操作系统的一部分,你就简单地把它理解为操作系统的核心的东西,他很重要很重要很重要,不能没有,而且内核对电脑性能有很大的影响。

后来,Unix系统被越来越多的个人,组织,公司,大学使用。可是后来AT&T公司决定收回Unix的版权,因为他们看到了商机,然而 :smiling_imp:他的好景不长了

Linux强健的四肢和肌肉 :muscle: GNU软件

就如前面所说,一些人对于贝尔实验室对Unix收取版权费的行为非常不满:rage:,于是乎,Richard Stallman和一群人联合起来在1984年成立了一个组织,叫做GNU(GNU is Not Unix的缩写),名字里都饱含对Unix的嘲讽。并且开始了他们的GNU工程,做的就是写一堆电脑软件,few weeks later 大部分软件他们都写好了,然而还差了一个最重要的东西,系统内核。这时候,一个巨巨巨巨佬就登场了。

Linux高效智慧的大脑 :mortar_board: Linux内核

紧接上文,GNU他们把什么都写好了,就差一个系统内核,这时候,一个人站出来了。
:boom:Linus Torvalds:boom:,他完成了Linux这一历史上具有里程碑意义的操作系统的最后一环 给GNU工程的软件写一个内核。

有所不同的是,这内核和GNU工程是处于世界各地的众多高水平的黑客们通过计算机网络来加入到Linux的开发的,并致力于把Linux打造成一个黑客操作系统。由于这些高水平的黑客的加入,Linux的发展速度空前的快:zap:,很快便发布了Linux 1.0.0版本。

Linus Torvalds

Linux 1.0.0

Linux 1.0.0功能完整,而且内核写得紧凑高效,可以充分发挥硬件的性能:computer:

Linux的发展不像传统的软件工程,它完全是通过网络,集合世界各地的高手而成的一套操作系统,在这里我们也可以见识到网络快速传播的威力。Linux初次让整个世界感觉到了开源力量和网络力量的如此强大。

Linux 的标志和吉祥物是一只名字叫做 Tux 的 企鹅,标志的由来是因为Linus在澳洲时曾被一只动物园里的企鹅咬了一口,便选择了企鹅作为Linux的标志。
Tux
(emmm 图有点大,实际还是挺小挺可爱的)

Linux 的历史是和GNU紧密联系在一起的。

从1983年开始的GNU计划致力于开发一个自由并且完整的类Unix操作系统,包括软件开发工具和各种应用程序。到1991年 Linux 内核发布的时候,GNU已经几乎完成了除了系统内核之外的各种必备软件的开发。在 Linus Torvalds 和其它开发人员的努力下,GNU组件可以运行于Linux内核之上。整个内核是基于 GNU 通用公共许可,也就是GPL(GNU General Public License,GNU通用公共许可证)的,但是Linux内核并不是GNU 计划的一部分。1994年3月,Linux1。0版正式发布,Marc Ewing成立了 Red Hat 软件公司,成为最著名的 Linux 分销商之一。

The Whole Linux :penguin:

综上所述,现在通常意义的Linux就是就是遵守GPL开源协议的 GNU project的各种software和Linux内核组成的 GNU/Linux system。简称 Linux 系统。


开源思想

可以说是开源思想的前辈—-黑客文化:man_technologist:

黑客的文化和Unix的商业化存在着必然的联系。自从Unix出现,黑客文化就与之而来。

  • 1993初,一个悲观的观察家撰文指出,已经有理由认为Unix的传奇故事连同他带有黑客文明将一同破产。许多人预测,从那时起Unix将在六月内死亡。他们很清楚,十年的Unix商业化,使自由跨平台的Unix梦以失败告终。Unix允诺的跨平台可移植性,在一打大公司专有的Unix版本之间不停地斗嘴中丢失,一个完美的操作系统最终沦为多种版本的一团乱麻,这应该说是人类文明史上的一个重大悲剧。

  • 在专有软件社会中,只有像微软一样的“集权制,大教堂”生产方式才能成功。那个时代的人悲观地相信,技术世界的个人英雄主义时代已经结束,软件工业和发展中的互联网络将逐渐地由像微软一样的巨型企业支配,再也没有“佐罗”,世界是恺撒大帝的世界,计算机文明将进入黑暗的帝国时代。黑客已经死了,自由不付存在.

  • 就在黑客文化日渐衰落之时,美国新闻周刊的资深记者Steven Levy完成了著名的《黑客列传》一书,书中着力介绍了一个人物:Richard M Stallman的故事,他是麻省理工学院(MIT)人工智能实验室领袖人物,坚决反对实验室的研究成果商业化。他是商业软件社会中坚强的一员,决不随波逐流,建立了全新的黑客文化。

  • 只有痴迷的“黑客”和具有创造力的怪人结成的反叛联盟才能把我们从愚蠢中拯救出来——他们接着教导我们,真正的专业和奉献精神,正是我们在屈服于世俗观念的“合理商业做法”之前的所作所为。 ——《The Art of Unix Programming》

  • RMS让世界上所有的人都知道,入侵电脑系统只是低级不入流的黑客干的事,真正的黑客,是为了自由,为了软件的自由,为了挑战计算机世界中的霸权主义而斗争。他们不是街头小混混,他们更像是绿林好汉,更像是罗宾汉,更像是佐罗。就像渴望民主的人民同专制的政府斗争一样。RMS领导着许多的黑客通过互联网向专有软件发出宣战。

而这些也不可否认地对后来的开源文化有很大的启发。

开源文化

事到如今,开源文化已经传播到世界各地,对整个世界的经济乃至思想都造成了很大的影响。
自 Linus Torvalds 创建 Linux 以来,开源思想在软件界可谓盛极一时。发展到今天,开源思想传播到了软件界之外的地方,开源也不再只是开放了源代码的程序的代言词,更是一种 分享互助的精神 。他吸收了黑客文化那种团结互助和免费分享的精神,却也不是RMS那样一言否定收费,就如同Linus所说:“用自由软件是因为它运行得更好”而不是“用自由软件是因为所有软件都该是 :two_men_holding_hands:自由:two_men_holding_hands: 的”。

今天,我们也说不清楚是GNU Linux还是Linux GNU。Linux既不排斥开源,也不排斥商业化,Linus认为好的软件是需要免费和商业化共同推进的。正是这种革命性的想法,造就了今天的Linux火红的局面(参看《谁写了Linux》、《Linux基金会的广告》、《Linux Distribution Timeline》)。Linux就像一股清泉流入了所有人的心中,引发了很多的启迪和思考。

全新的软件开发方式

X Windows是首批由服务于全球各地不同组织的许多个人以团队形式开发的大规模开源项目之一。电子邮件:e-mail:使创意得以在这个群体中快速传播,问题由此得以快速解决,而开发者可以人尽其才。软件更新可以在数小时之内发送到位,使得每个节点在整个开发过程中步调一致。网络改变了软件的开发模式。

而这也给正在蓬勃发展的开源文化创造了绝佳的机会。事情又要从Linus创造Linux的过程说起。

Git Yes

在Linus开发Linux的时候,为了和其他人共同开发(每人分工做不同的部分)而不造成源码、版本混乱,用了一个叫做BitKeeper的版本控制系统。

然而他们这群人之中的有些人 闲着没事干?去破解Bitkeeper的源码(看看人大佬的业余爱好,还在为Linux上没有lol而不装Linux找借口?),然而被发现了(大佬也有翻车的时候),Bitkeeper公司就威胁不再给他们免费使用,于是…Linus就去给他们道歉并保证要严管小弟…自己用过了2周写了一个分布式版本控制系统,这就是git。(看看人巨巨巨佬的工作效率)并在一月内就把Linux的源码全部搬到Git上去了。

后来的GitHub也是用的git分布式管理系统。这是全球最大的 同性交友网站 面向开源及私有软件项目的托管平台。

Git Vs SVN ,分布式VS集中式

emmm,自从入了冬,整个人越来越懒了(其实是马上要上数据结构课了..),连ctrl c v都不想按了,大家自行跳转吧,这也算是尊重大佬的劳动成果吧。PS:那个网站真的不错,推荐大家在上面学习的。

我们协会之后的什么项目啊,都会放在GitHub上的,请牢记我们的账号地址 github.com/OSA-NULL
我们这Linux系列的教程在后续也会有git+github的使用方式,敬请期待。

一抹多的Linux distros (Linux 发行版)

众所周知,由于其遵循GPL协议。你可以任意更改linux系统,更改Linux内核,换不同的Windows manager和常用的各种工具,你都可以任意组合,没有固定的搭配(除非是因为软件之间的依赖性)。这也就直接决定了Linux注定比windows更加自由,你不用再用Windows那个万年不变的window manager,资源管理器之类的。

在Linux上,有成千上万的window manager可供你免费下载使用,而且可供你任意修改任意一个细节。这对于喜欢自己动手的人来说,简直就是天堂,同时对于那些不怎么喜欢自己动手配置桌面环境的,在社区内也有一大堆别人开源出来的主题,总有一个你喜欢的。

也是因为Linux系统的这种给用户的极大的自由和权力 ,才有今天的各个发行版。发行版就是别人集成了一些东西,封装好再开源出来给别人使用的Linux系统,有开箱即用的,如 ManjaroUbuntu等等,也有从头开始自己配置的,如ArchGentoo等等。这也就给新手带来了最让人头疼的问题————我该用哪一个呢???

选择的关键在于

  1. 适合自己目前的水平
    比如我有一点bash命令的基础,或者我是一个什么都不知道的小白,那么我们在选择distros的时候就要考虑避开arch或者gentoo这样连安装系统都需要很多基础的发行版
  2. 选择我想要达到哪种水平所对应的发行版
    比如,我用Linux并不需要知道Linux更深层次的东西,而是只需要使用Linux上面的优秀的软件,我也不必去追求精通Linux内核及其深层次的工作原理,那么选择一个简单上手,不用花太多的精力去配置系统的发行版比如ubuntu;相反,如果我想要去了解Linux系统的根本原理,然后我想自己配置一个完全属于自己专属的Linux系统,那么我就会去选择那些需要自己一步一步配置的发行版,比如arch。
  3. (一个很重要的点)那个发行版的社区是否活跃
    发行版对应的Wiki是否全面,开发组是否会随时跟进修复bug以及更新。一个好的发行版的社区很活跃,如果在使用过程中遇到了很多问题,那么一个比 百度一下 更好的方法就是~~Google it~~ 去查官方wiki或者上对应社区寻求帮助。

每个发行版不存在谁更好,谁更差。各有各的特点,大家也不要跟风,说他用的arch更高级,我就也要去用arch,殊不知别人是用Linux 2年的大佬了,而自己是个刚接触Linux的newbie。也不要试图去引战,大家都是Linux大家庭的一员,谁也不想搞内斗,还是共同联合发展壮大更为重要! 乌拉!!!

至于具体各个版本的推荐,网上已经有好多了,我也就不在这儿重复了,大家自行跳转.
我在此也不去列举几个推荐的系统,因为我更推荐大家自己动手去了解各个发行版的哲学。

不要人云亦云,跟风,要学会自己去判断,做个崇尚科学和逻辑的现代人,不要无脑喷,不做键盘侠


emmm,第一次教学内容大致就是这些,下一步,去实操吧,可以在windows上的虚拟机装Linux试试手,然后在真机上实操。温馨提示:数据无价,请在真机操作的时候注意备份个人重要文件。当然虚拟机的话,就随你乱玩了。

:vulcan_salute:祝君安:vulcan_salute:

  • Copyright: Copyright is owned by the author. For commercial reprints, please contact the author for authorization. For non-commercial reprints, please indicate the source.
  • Copyrights © 2020 OSA-NULL

请我喝杯咖啡吧~

支付宝
微信