Linux发行版及哲学思想

Linux各发行版以及哲学思想

  1. 什么是Linux

  2. 为什么会有不同的Linux发行版

  3. 现有主流发行版,及其他们之间相互关系

  4. Linux所遵循的哲学思想

什么是Linux

Linux是一种自由和开放源代码的Unix-like操作系统,由当时就读于芬兰赫尔辛基大学的Linus Torvalds于1991年10月5日首次发布于互联网。Linux遵循第二版GNU通用公共许可证(GPL)。严格意义上Linux只表示操作系统内核本身,但通常用Linux Kernel来表达该意思。Linux则常用来指基于Linux内核的完整操作系统,包括GUI组件和许多其他实用工具。

最早商用大型机上主要采用批处理操作系统,随后创建了分时概念,即将大型机珍贵的时间资源适当分配到所有用户身上,用户有独占整部机器的感觉。1964年由贝尔实验室、麻省理工大学及美国通用电气公司共同参与研发了一套分时多任务操作系统——Multics。

由于MULTICS项目进展过于缓慢,1969年贝尔实验室退出该项目。随后贝尔实验室的Ken Thompson花费一个月时间研发了全新的操作系统UNICS具有多任务、多用户的特征,运行于由DEC公司生产的迷你小型机PDP-7,后改名为Unix。第一版的Unix基于在开发Multic时期Thompson创造的Bon语言,由于B语言在进行系统编程时不够强大,Thompson与Dennis Ritchie对其进行了改造,于1971年共同发明了著名的C语言。1973年Thompson和Ritchie用C语言重写了Unix,安装于PDP-11的机器之上。

贝尔实验室隶属美国AT&T公司,因此Unix版权归AT&T。根据AT&T于1958年与美国司法部签署的和解协议,AT&T同意不进入计算机业,同时也不销售任何与计算机有关的产品,以避免司法部起诉其违反《反垄断法》。但同时,任何机构要求得到Unix源代码,AT&T必须无偿提供。

加州大学伯克利分校的到Unix源代码后,将其安装在PDP-11机器上,用作扩展研究。期间,伯克利的研究生Bill Joy以及伯克利系统研究小组(BSRG)为Unix添加了许多功能。1977年,Bill Joy将程序整理都磁带上,作为firt Berkeley Software Distribution(1BSD)发行。

1982年AT&T再次进入计算机业,并于次年发布了自己的付费Unix操作系统System V,并且要求用户不得随意传播其代码。BSD虽然本身免费,但其中包含一部分AT&T代码。为了减少纠纷,伯克利只能将BSD提供给持有AT&T源码许可的公司,并且立即着手将AT&T专有代码逐渐除去。由于源码许可但是非常昂贵,几个其他组织对单独的网络代码感兴趣,完全独立于AT&T,这样就可不受许可证限制。因此,1989年6月Networking Release 1(Net/1)诞生,没有AT&T也能使用,可遵照BSD许可进行再发布。18个月后,所有AT&T的工具都被替换,只剩下留在内核的一些AT&T文件。残余文件被剔除后,1991年6月,Net/2一个全新的操作系统诞生,可以自由发布。

Net/2成为Intel 80386构架上两种移植的主要组成,包括由William Jolitz负责,自由的386BSD;以及专属的BSD/OS,由Berkeley Software Design(BSDi)负责。386BSD本身虽然短命,但在不久之后成为了NetBSD和FreeBSD原始代码的基础。

BSDi很快就与AT&T的UNIX Systems Laboratories(USL)附属公司产生了法律纠纷,后者将拥有System V版权,以及Unix商标。1992年,USL正式对BSDi提起诉讼,这导致Net/2发布被中止,直到其源码能够被鉴定为符合USL的版权。由于最后判决悬而未决,这桩法律诉讼将BSD后裔的开发,特别是自由软件,延迟了两年,这导致没有法律问题的Linux内核获得了极大的支持。

Linux跟386BSD的开发几乎同时起步,Linux内核最早是有芬兰黑客Linus Torvalds为尝试在自己的英特尔x86架构计算机上提供自由免费的Unix-like而开发的。该计划始于1911年,Linus Torvalds当时在Usenet新闻组comp.os.minix登载帖子,这份注明的帖子标识着Linux内核计划的正式开始。单独来看,从技术上说Linux只是一个内核,是一个提供硬件抽象层、磁盘及文件系统控制、多任务功能的系统软件。

为什么会有不同发行版的Linux

因为一个问题:先有蛋还是先有鸡? GNU组织对外发布的只是程序及Linux内核的源代码,而这些程序及Linux内核要运行在硬件上需要编译成二进制的机器语言。但编译器又需要运行在操作系统上。因此从源码编译并拼装一个具有主要功能的Linux操作系统需要的技术过于困难。 因为上述问题,有一些商业或者非商业组织或者公司,根据Linux内核源码和GNU组织对外发布的程序源码编译并拼装一套操作系统对外发售或置于互联网供使用者免费下载。由于不同组织对操作系统的理解或或者想要面对的受众不同,因此在拼装后所具备的特点也不一而同。这样就有了各式各样上百种Linux发行版。

现有主流发行版

现有比较主流的发行版分支有:Debian、Slackware、RedHat等。

  • Debian: Debian在发展过程中,各种功能的限制相对其他版本较小。但同时带来的操作使用难度也随之升高,需要使用者有较强的使用能力。基于Debian的二次发行版还有比较流行的Ubuntu,以及knopix

  • Slackware:该分支中的S.u.S.E比较著名,其面对企业级的发行版SLES在欧洲地区使用较多。

  • RedHat:RedHat在北美市场以及大陆较为流行,基于其的二次发行版有CentOS、Fedora Core,RHEL是发行的企业级发行版。值得注意的是CentOS,基本取用了RedHat的所有特点,只是修改了RedHat公司的商标等,又因为其免费的特点被一写具有独立维护能力的公司广泛使用。

其他的目前比较著名的还有Gentoo、ArchLinux、Kali等。Kali也是被认为超越《权利的游戏》的另一神剧的《黑客军团》中男主角使用的系统,其中包含了大量的渗透性测试工具。

Linux所遵循的哲学思想

  1. 一切皆文件,把几乎所有资源统统抽象为文件形式:包括硬件设备,甚至通信结构等。这样访问任何文件都可以用统一的访问接口来实现;

  2. 由众多功能单一的程序组成。系统中每一个程序通常只做一个一件事,并且做好。这样通过组合小程序就可以更加自由丰富地完成复杂任务,同时也有利于编程方式实现自动化任务。

  3. 尽量避免与用户交互。这样也是为了易于以编程方式实现自动化任务。

  4. 使用文本文件保存配置信息。这样可以通过简单的文本文件的修改就可以实现软件的不同配置,更为简洁灵活。

原创文章,作者:N24_fynl,如若转载,请注明出处:http://www.178linux.com/55587

(0)
N24_fynlN24_fynl
上一篇 2016-10-29 19:17
下一篇 2016-10-29 19:57

相关推荐

  • 马哥教育网络班22期+第1周课程练习 忍者乱太郎喻成

    1.计算机组成:  根据冯诺依曼的计算机结构分为四大块:控制器,运算器, 存储器,输入输出设备 控制器:对其他的组件进行控制 运算器:用于处理计算工作,不控制输入和输出 储存器:用于暂时或长期存储数据 输入输出:与外界进行交互 个人延伸: 我的理解这是一个在计算机研发之前的一个理论假象, 相对现在真实的计算机体系,这个分类会比较模糊。 运算器:cp…

    Linux干货 2016-08-15
  • echo address

    echo address

    Linux干货 2016-08-08
  • Linux常用命令使用方法

    下面以一些常用的Linux命令为例讲解一下Linux命令的使用方法。 1.  ifconfig – 配置网络接口 | 对象 | 参数 | 含义 || —— | —— | —— |网卡名 | / | 查看指定网卡IP的地址,不指定默认查看所有网卡地址网卡名 | up …

    Linux干货 2017-09-01
  • 马哥教育网络班20期+第2周课程练习

    马哥教育网络班20期+第2周课程练习 练习题: 1、Linux上的文件管理类命令都有哪些,其常用的使用方法及其相关示例演示。2、bash的工作特性之命令执行状态返回值和命令行展开所涉及的内容及其示例演示。3、请使用命令行展开功能来完成以下练习:   (1)、创建/tmp目录下的:a_c, a_d, b_c, b_d  …

    Linux干货 2016-06-23
  • linux的tty

    原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 、作者信息和本声明。否则将追究法律责任。http://jeffyyko.blog.51cto.com/28563/140012 最近做了一个小测试,得到了以下结论 测试linux发行版本:rhel AS4.0 环境:VMware 5.0 目的:修改 vi /etc/initt…

    Linux干货 2015-03-26
  • CentOS系统启动

    Linux组成 Linux: kernel+rootfs kernel:  进程管理、内存管理、网络管理、驱动程序、文件系统、安全功能 rootfs: 程序和glibc 库:函数集合, function,  调用接口(头文件负责描述) 过程调用:procedure ,无返回值 函数调用:function 程序:二进制执行文件 内核设计流派…

    2017-05-15

评论列表(1条)

  • 马哥教育
    马哥教育 2016-11-02 17:15

    总结的不错,希望能熟知Linux的哲学思想,加油!