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
下一篇 2016-10-29

相关推荐

  • Linux Sysadmin–part3

    1、写一个脚本,判断当前系统上所有用户的shell是否为可登录shell(即用户的shell不是/sbin/nologin);分别这两类用户的个数;通过字符串比较来实现 #!/bin/bash for i in `cut -d’:’ -f7 /etc/passwd`;do if [ $i == “/sbin/nologin…

    2017-09-19
  • 部署LAMP之WordPress, PMA(https), Discuz

    一、环境介绍     系统:CentOS 6.7     软件:httpd-2.2, mysql-5.3, wordpress-4.3, pma4.0     网络:       …

    Linux干货 2016-03-24
  • 深入解析:分布式系统的事务处理经典问题及模型(转载分享)

    摘要:分布式系统需要在数据完整、一致性和性能间做平衡。本文系统介绍了处理分布式数据一致性的技术模型,如:Master-Slave,Master-Master,2PC/3PC,经典的将军问题,Paxos,以及Dynamo的NRW和VectorClock的模型。 编者按:数据服务的高可用是所有企业都想拥有的,但是要想让数据有高可用性,就需要冗余数据写多份。写多份…

    Linux干货 2015-04-04
  • VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证]

    VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] VSFTPD+PAM+[基于文件虚拟用户认证 | 基于MYSQL虚拟用户认证] 一、实验环境 二、实验步骤 1、通过mysql数据库方式虚拟用户认证 1.1数据库配置 1.2FTP配置 1.3测试 2、通过文件方式进行虚拟用户认证 一、实验环境 CentOS 6.7+vsftpd…

    Linux干货 2016-04-18
  • 网络相关命令

    网络相关命令 常用命令 ifcfg家族:   ifconfig:配置IP,NETMASK   route :路由   netstat : 状态及统计数据查看 iproute2家族     ip  系列 &nbs…

    Linux干货 2016-09-07

评论列表(1条)

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

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