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

相关推荐

  • ansible基础应用

    ansible基础 一、运维主要工作 ansible聚集以上功能于一身,能够完整轻易的实现应用部署和批量命令功能,适用于主机数量不太多,再大的用puppet。 二、ansible特性 (1)模块化:调用特定的模块,完成特定任务; (2)基于python语言实现,由paramiko,PYYAML和JINJa2三个关键模块组成 (3)部署简单:agentless…

    Linux干货 2017-01-04
  • 文件查找命令find详解

    文件的查找命令 find 用法 功能:实时查找工具,通过遍历指定路径完成文件查找 工作特点: •  查找速度略慢•  精确查找•  实时查找•  可能只搜索用户具备读取和执行权限的目录 语法:   find [OPTION]… [查找路径] [查找条件] [处理动作] 查找路径:指定具体目标路径;默认为当前目录查找条件…

    Linux干货 2016-11-07
  • mongodb的复制集实现

    简介:  mongodb有两种类型的复制,第一种是同于MySQL的主从复制模式,第二种是复制集,提供了自动故障转移的主从复制集群。其中复制集没有固定的主节点,当一个主机的故障后从节点会重新“选举”出一个新的主节点,从而提高的系统的可用性 一、实验环境: (1)各节点信息: node1: 172.16.2.12 node2: 172.16.2.13 …

    Linux干货 2015-09-05
  • 计算机的组成及其功能

    计算机系统由硬件系统和软件系统两大部分组成。冯诺依曼奠定了现代计算机的基本结构。 冯诺依曼体系的计算机,必须具有如下功能: #1 把需要的程序和数据送至计算机中; #2 具有长期记忆程序、数据、中间结果及最终运算结果的能力; #3 能够完成各种算术运算、逻辑运算和数据传送等数据加工处理的能力; #4 能够根据需要控制程序走向,并能根据指令控制机器的各部件协调…

    Linux干货 2016-08-15
  • 推荐-HA专题: 编译安装并配置DRBD

    HA专题: 编译安装并配置DRBD 前言 实验环境 DRBD介绍 安装前准备工作 获取并编译安装DRBD 配置DRBD 分区 配置文件 启动并设置DRBD 格式化并挂载 验证冗余性 总结 前言 上篇我们讲到使用corosync+pacemaker实现MySQL高可用, 但是NFS容易成为单点故障从而导致数据丢失等严重问题, 我们可以使用drbd来实现MySQ…

    Linux干货 2016-04-12

评论列表(1条)

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

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