1.2.6 Linux distributions

2023-05-16

《鸟哥的Linux私房菜 基础学习篇(第三版)》第1章Linux是什么,本章介绍为何Linux可以免除专利软件之争,并且了解到Linux为何可以同时在个人计算机与大型主机上面大放光彩。本节为大家介绍Linux distributions。


1.2.6 Linux distributions

好了,经过上面的说明,我们知道了Linux其实就是一个操作系统最底层的内核及其提供的内核工具。它是GNU GPL授权模式,所以,任何人均可取得源码与可执行这个内核程序,并且可以修改。此外,因为Linux参考POSIX设计规范,因此兼容于UNIX操作系统,故亦可称之为UNIX Like的一种。

鸟哥曾在上课的时候问过同学:"什么是UNIX Like啊"?可爱的同学们回答是:"就是很喜欢(Like)UNIX啦!"囧rz……那个like是"很像"啦!所以UNIX Like是"很像UNIX的操作系统"。

可完全安装的Linux发布套件

Linux的出现让GNU项目开发者放下了心里的一块大石头,因为GNU一直以来就是缺乏了内核程序,导致他们的GNU自由软件只能在其他的UNIX上运行。既然目前有Linux出现了,且Linux也用了很多的GNU相关软件,所以Stallman认为Linux的全名应该为GNU/Linux呢!不管怎么说,Linux实在很不错,让GNU软件大多以Linux为主要操作系统来进行开发,此外,很多其他的自由软件团队,例如sendmail, wu-ftp, apache等也都有以Linux为开发测试平台的项目出现!如此一来,Linux除了主要的内核程序外,可以在Linux上运行的软件也越来越多,如果有心,就能够将一个完整的Linux操作系统搞定了!

虽然由Torvalds负责开发的Linux仅具有Kernel与Kernel提供的工具,不过,如上所述,很多的软件已经可以在Linux上运行了,因此,"Linux + 各种软件"就可以完成一个相当完整的操作系统了。不过,要完成这样的操作系统还真难,因为Linux早期都是由黑客工程师所开发维护的,他们并没有考虑到一般用户的能力。

为了让用户能够接触到Linux,于是很多的商业公司或非营利团体就将Linux Kernel(含tools)与可运行的软件集成起来,加上自己具有创意的工具程序,这个工具程序可以让用户以光盘、DVD或者通过网络直接安装/管理Linux系统。这个"Kernel + Softwares + Tools"的可完全安装的系统,我们称之为Linux distribution,一般中文翻译成可完全安装套件,或者Linux发布商套件等,如图1-4所示。

 
图1-4 Linux可完全安装发布套件

由于Linux内核是由黑客工程师写的,要由源码安装到x86计算机上面成为可以执行的二进制文件,这个过程可不是人人都会的,所以早期确实只有工程师对Linux有兴趣。一直到一些团队与商业公司将Linux内核配合自由软件,并提供完整的安装程序,且制成光盘/DVD后,对于一般用户来说,Linux才越来越具有吸引力,因为只要一直单击"下一步"就可以将Linux安装完成。

由于GNU的GPL授权并非不能从事商业行为,于是很多商业公司便专门来销售Linux distribution。而鉴于Linux的GPL版权声明,因此,商业公司所销售的Linux distributions通常也都可以从Internet上来下载。此外,如果你想要其他商业公司的服务,那么直接向该公司购买光盘来安装,也是一个很不错的方式。

各大Linux Distributions的主要异同:支持标准

不过,由于开发Linux distributions的团队与公司实在太多了,例如在中国有名的Red Hat, SuSE, Ubuntu, Fedora, Debian等,所以很多人都很担心,如此一来每个distribution是否都不相同呢?这就不需要担心了,因为每个Linux distributions使用的kernel都是http://www.kernel.org所发布的,而他们所选择的软件几乎都是目前很知名的软件,重复性相当高,例如网页服务器的Apache、电子邮件服务器的Postfix/sendmail、文件服务器的Samba等。

此外,为了让所有的Linux distributions开发不至于差异太大,且让这些开发商在开发的时候有所依据,还有Linux Standard Base(LSB)等标准来规范开发者,以及目录架构的File system Hierarchy Standard(FHS)标准规范,它们的唯一差别可能就是该开发者自家所开发出来的管理工具以及套件管理的模式。所以说,基本上,每个Linux distributions除了架构的严谨度与选择的套件内容外,其实差异并不太大。大家可以选择自己喜好的distribution来安装即可!

FHS: http://www.pathname.com/fhs/

LSB: http://www.linuxbase.org/

事实上鸟哥认为distributions主要分为两大系统,一种是使用RPM方式安装软件的系统,包括Red Hat, Fedora, SuSE等都是这类; 一种则是使用Debian的dpkg方式安装软件的系统,包括Debian, Ubuntu, B2D等。

下面列出几个主要的Linux distributions发行者网址:

Red Hat: http://www.redhat.com

Fedora: http://fedoraproject.org/

Mandriva: http://www.mandriva.com

Novell SuSE: http://www.novell.com/linux/

Debian: http://www.debian.org/

Slackware: http://www.slackware.com/

Gentoo: http://www.gentoo.org/

Ubuntu: http://www.ubuntu.com/

CentOS: http://www.centos.org/

到底是要买商业版还是团队版的Linux distribution呢?如果是要装在个人计算机上面作为桌面计算机用的,建议使用团队版,包括Fedora, Ubuntu, OpenSuSE等。如果是用在服务器上面的,建议使用商业版本,包括Red Hat, SuSE等。这是因为团队版通常开发者会加入最新的软件,这些软件可能会有一些bug存在。至于商业版则是经过一段时间的磨合后,才将稳定的软件放进去。

举例来说,Fedora发出来的软件套件经过一段时间的维护后,等到该软件稳定到不容易发生错误后,Red Hat才将该软件放到他们最新的释出版本中。所以,Fedora的软件经常改版,Red Hat的软件就较少改版。

Linux在中国

当然发行套件者不仅于此。但是值得大书特书的是中文Linux的延伸项目-CLE这个套件!早期的Linux因为是工程师开发的,而这些工程师大多以英文语系的国家为主,所以Linux对于国人的学习是比较困扰一点。中国的Linux爱好者做了很多汉化方面的工作,例如在中国台湾地区发起的CLE项目(http://cle.linux.org.tw/)开发了很多的中文套件及翻译了很多的英文文件,使得我们目前得以使用中文的Linux呢。

http://freesf.tnc.edu.tw/index.php

B2D: http://b2d.tnc.edu.cn/

此外,如果只想看看Linux的话,还可以选择可光盘开机进入Linux的Live CD版本,即是KNOPPIX这个Linux distributions呢!

http://www.knoppix.net/

中文 KNOPPIX: http://knoppix.tnc.edu.cn/

对于没有额外的硬盘或者是没有额外的主机的朋友来说,KNOPPIX这个可以利用光盘开机而进入Linux操作系统的Live CD 真的是一个不错的选择!你只要下载了KNOPPIX的镜像文件,然后将它刻录成为CD,放入你主机的光驱,并在BIOS内设置光盘为第一个开机选项,就可以使用Linux系统了呢!

如果你还想要知道更多的Linux distributions的下载与使用信息,可以参考:

http://distrowatch.com/

选择适合你的Linux distribution

那我到底应该要选择哪一个distributions?就如同我们上面提到的,其实每个distributions差异性并不大!不过,由于套件管理的方式主要分为Debian的dpkg及Red Hat系统的RPM方式,目前鸟哥的建议是,先学习以RPM套件管理为主的RHEL/Fedora/SuSE/CentOS等中国用户较多的版本,这样一来,发生问题时,可以提供解决的渠道比较多。如果你已经接触过Linux了,还想要探讨更严谨的Linux版本,那可以考虑使用Debian,如果你是以性能至上来考虑,那么Gentoo是不错的建议!

总之,版本很多,但是各版本差异其实不大,建议你一定要先选定一个版本后,从头彻尾地了解它,那再继续使用其他的版本时,就可以很快进入状况。鸟哥的网站仅提供一个版本,不过是以比较基础的方式来介绍的,因此,如果好好学习这个网站的话,哪一个distributions对你来说都不成问题!

不过,如果依据计算机主机的用途来分的话,在国内鸟哥会这样建议。

用于企业环境:建议使用商业版本,例如Red Hat的RHEL或者是Novell的SuSE都是很不错的选择!毕竟企业的环境强调的是连续的经营,你可不希望网管人员走了之后整个机房的主机都没有人管理。由于商业版本都会提供客户服务,所以可以降低企业的风险!

用于个人或教学的服务器环境:要是你的服务器所在环境如果宕机还不会造成太大的问题的话,加上你的环境是在教学的场合当中时那么可以使用"号称"完全兼容商业版RHEL的CentOS。因为CentOS是抓RHEL的源码来重新兜起来的一个Linux distribution,所以号称兼容于RHEL。这一版的软件完全与RHEL相同,改版的幅度较小,适合于服务器系统的环境。

用于个人的桌面计算机:想要尝鲜吗?建议使用很炫的Fedora/Ubuntu等Desktop(桌面环境)使用的版本!如果不想要安装Linux的话,那么Fedora或CentOS也有推出Live CD了!也很容易学习的!


本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

1.2.6 Linux distributions 的相关文章

  • 无法加载 JavaHL 库。- linux/eclipse

    在尝试安装 Subversion 插件时 当 Eclipse 启动时出现此错误 Failed to load JavaHL Library These are the errors that were encountered no libs
  • 强制卸载 NFS 安装目录 [关闭]

    Closed 这个问题不符合堆栈溢出指南 help closed questions 目前不接受答案 Locked 这个问题及其答案是locked help locked posts因为这个问题是题外话 但却具有历史意义 目前不接受新的答案
  • Linux 中的无缓冲 I/O

    我正在写入大量的数据 这些数据数周内都不会再次读取 由于我的程序运行 机器上的可用内存量 显示为 空闲 或 顶部 很快下降 我的内存量应用程序使用量不会增加 其他进程使用的内存量也不会增加 这让我相信内存正在被文件系统缓存消耗 因为我不打算
  • 仅打印“docker-container ls -la”输出中的“Names”列

    发出时docker container ls la命令 输出如下所示 CONTAINER ID IMAGE COMMAND CREATED STATUS PORTS NAMES a67f0c2b1769 busybox tail f dev
  • Linux TUN/TAP:无法从 TAP 设备读回数据

    问题是关于如何正确配置想要使用 Tun Tap 模块的 Linux 主机 My Goal 利用现有的路由软件 以下为APP1和APP2 但拦截并修改其发送和接收的所有消息 由Mediator完成 我的场景 Ubuntu 10 04 Mach
  • 为什么内核需要虚拟寻址?

    在Linux中 每个进程都有其虚拟地址空间 例如 32位系统为4GB 其中3GB为进程保留 1GB为内核保留 这种虚拟寻址机制有助于隔离每个进程的地址空间 对于流程来说这是可以理解的 因为有很多流程 但既然我们只有 1 个内核 那么为什么我
  • 大多数 Linux 系统头文件与 C++ 兼容吗?

    大多数 Linux 系统头文件 API C 兼容吗 今天我试图做这样的事情 include
  • 从 Python 调用 PARI/GP

    我想打电话PARI GP http pari math u bordeaux fr dochtml gpman html仅从Python计算函数nextprime n 对于不同的n是我定义的 不幸的是我无法得到帕里蟒蛇 http code
  • Linux 中的动态环境变量?

    Linux 中是否可以通过某种方式拥有动态环境变量 我有一个网络服务器 网站遵循以下布局 site qa production 我想要一个环境变量 例如 APPLICATION ENV 当我在 qa 目录中时设置为 qa 当我在生产目录中时
  • linux perf:如何解释和查找热点

    我尝试了linux perf https perf wiki kernel org index php Main Page今天很实用 但在解释其结果时遇到了困难 我习惯了 valgrind 的 callgrind 这当然是与基于采样的 pe
  • NPTL 和 POSIX 线程有什么区别?

    NPTL 和 POSIX 线程之间的基本区别是什么 这两者是如何演变的 POSIX 线程 pthread 不是一个实现 它是几个函数的 API 规范 纸上的标准 英文 其名称以pthread 以及定义在
  • 如何在apache 2.4.6上安装apxs模块

    我刚刚用过apt get update我的 apache 已更新为2 4 6 我想安装 apxs 来编译模块 但收到此错误 The following packages have unmet dependencies apache2 pre
  • 如何在shell中输出返回码?

    我正在尝试通过调用自定义 shell 脚本sh bin sh c myscript sh gt log txt 2 gt 1 echo 该命令的输出是创建的后台进程的 PID 我想指导 bin sh保存返回码myscript sh到某个文件
  • iptables通过注释删除特定规则

    我需要删除一些具有相同评论的规则 例如 我有带有 comment test it 的规则 所以我可以像这样获得它们的列表 sudo iptables t nat L grep test it 但是我怎样才能删除所有带有注释 测试它 的 PR
  • 有谁知道在哪里定义硬件、版本和序列号。 /proc/cpuinfo 的字段?

    我想确保我的 proc cpuinfo 是准确的 目前它输出 Hardware am335xevm Revision 0000 Serial 0000000000000000 我可以在代码中的哪里更改它以给出实际值 这取决于 Linux 的
  • 如何通过保持目录结构完整来同步路径中匹配模式的文件?

    我想将所有文件从服务器 A 复制到服务器 B 这些文件在不同级别的文件系统层次结构中具有相同的父目录名称 例如 var lib data sub1 sub2 commonname filetobecopied foo var lib dat
  • 将 jar 作为 Linux 服务运行 - init.d 脚本在启动应用程序时卡住

    我目前正在致力于在 Linux VM 上实现一个可运行的 jar 作为后台服务 我已经使用了找到的例子here https gist github com shirish4you 5089019作为工作的基础 并将 start 方法修改为
  • 在我的 index.php 中加载 CSS 和 JS 等资源时出现错误 403

    我使用的是 Linux Elementary OS 并在 opt 中安装了 lampp My CSS and JS won t load When I inspect my page through browser The console
  • ftrace:仅打印trace_printk()的输出

    是否可以只转储trace printk 输出于trace文件 我的意思是过滤掉函数跟踪器 或任何其他跟踪器 中的所有函数 一般来说 您可以在选项目录中关闭选项 sys kernel debug tracing options Use ls显
  • 如何使用 GOPATH 的 Samba 服务器位置?

    我正在尝试将 GOPATH 设置为共享网络文件夹 当我进入 export GOPATH smb path to shared folder I get go GOPATH entry is relative must be absolute

随机推荐

  • 小样本元学习论文阅读 | Few-shot Learning with Noisy Labels, Facebook, CVPR2022

    目录 1 motivation 2 contribution 3 Static alternatives to the mean 1 空间中值原型 2 相似度加权原型 4 Learning a prototype aggregator 1
  • 解决Failed to download metadata for repo ‘AppStream’

    原贴 xff1a https www cnblogs com EthanWong p 15932675 html 在CentOS 8 上执行命令 sudo yum update 时报错 xff1a span class token punc
  • WebView自动H5缓存-清除缓存ios

    iOS的Webview加载HTML时会自动缓存JS CSS等文件 xff0c 当下次加载HTML时会根据请求的缓存策略是否使用缓存本地的JS和CSS xff0c 如果本地有缓存 xff0c 那么直接返回本地资源 判断是否过期 xff1b 如
  • 小样本学习论文阅读 | Confess: A framework for single source cross-domain few-shot learning, ICLR 2022 poster

    1 motivation 目前的方法在源域和目标域存在较大域间偏差时实用性较差 本文认为 xff1a 1 无监督学习可以缓解监督崩溃问题 xff0c 并且训练得到的模型可以更好地推广到目标域中 2 因为源数据集和目标数据集之间存在很大差异
  • 将VMDK格式的镜像转成qcow2

    将VMDK格式的镜像转成qcow2格式 1 我们要通过Linux虚拟机进行格式转化工作 在虚拟机中创建单文件可以提取出来VMDK格式 这是我自己的虚拟机创建出来的文件 2 我们找到我们创建好的虚拟机 通过我们远程连接工具进行上传到我们要转为
  • 如何做好一个项目经理

    第一部分 xff1a 软件项目经理的要求 首先是一个管理者 xff0c 其次熟悉某些工具 xff0c 某几种语言 xff0c 行业背景 xff0c 项目管理技能 软件项目经理面临的恶劣环境 xff0c 我们绝大部分软件企业运行在相对混乱的状
  • Cortex-M3利用SVC中断调用系统服务的例子

    SVC xff08 系统服务调用 xff0c 亦简称系统调用 xff09 和PendSV xff08 可悬起系统调用 xff09 xff0c 它们多用在上了操作系统的软件开发中 SVC用于产生系统函数的调用请求 例如 xff0c 操作系统通
  • Nginx + Tomcat + HTTPS极速配置

    由于最近在学习微信小程序开发 xff0c 所以在阿里云申请了一个免费的https证书 xff0c 这个证书申请起来十分简单 xff0c 大约十几分钟就好 所以不再赘述 更多信息可以访问我的个人网站 xff1a https www cjluz
  • Keil uVision5软件的操作与编写基础(入门)

    目录 x1f46c 一 如何新建一个空白文档 x1f46c 二 程序编写 x1f46c 三 编译程序 Keil uVision5是一款编写单片机程序的必备软件 其图标为 xff1a 一 如何新建一个空白文档 1 打开Keil uVision
  • 【工作笔记】Mysql写入报错:Incorrect datetime value: ‘1970-01-01 08:00:00‘

    在写入Mysql的timestamp格式列时 xff0c 将默认时间赋值为1970 01 01 08 00 00 xff1a new Timestamp 0L 此时报错 xff1a Incorrect datetime value 39 1
  • 【人脸识别】L2_Softmax Loss详解

    论文题目 xff1a L2 constrained Softmax Loss for Discriminative Face Verification 论文地址 xff1a https arxiv org pdf 1703 09507 pd
  • JS 常见的 6 种继承方式

    JS 常见的 6 种继承方式 第一种 xff1a 原型链继承 原型链继承是比较常见的继承方式之一 xff0c 其中涉及的构造函数 原型和实例 xff0c 三者之间存在着一定的关系 xff0c 即每一个构造函数都有一个原型对象 xff0c 原
  • MapReduce编程小案例.9th—join算法

    MapReduce编程小案例 9th join算法 数据 xff1a 有订单数据 xff1a order001 u001 order002 u001 order003 u005 order004 u002 order005 u003 ord
  • centos7 安装qt6,安装失败

    Error during installation process qt qt6 624 gcc 64 Could not find the required QmakeOutputInstallerKey qt qt6 624 gcc 6
  • ubuntu安装chrome浏览器

    1 xff09 使用自带的firefox打开 Google Chrome 网络浏览器 点击下载 xff0c 在linux下 xff0c 下载google chrome stable current amd64 deb 2 进入下载目录 su
  • maven xsd文件

    lt xml version 61 34 1 0 34 gt lt xs schema xmlns xs 61 34 http www w3 org 2001 XMLSchema 34 elementFormDefault 61 34 qu
  • 一个电子发烧友的程序员成长之路

    回想起高考已经是7年前的事情了 xff0c 一直想在毕业之际记忆记录一下7年的历程 xff0c 懒惰始终占据着我的整个身躯 看到这个征文活动 xff0c 让我有点想提笔记录的冲动了 1 邂逅 一直在想该用什么样的语言来将我对电子制作发烧程度
  • AI与医学辅助诊断

    人工智能一词越来越频繁的出现在日常生活中 一种事物的时髦 xff0c 必然有其背后的原因 而对于这样一个大的话题 xff0c 从整体上来叙述总显得有些不接地气 作为跟AI沾过一些边的博主将以自己接触的方面来发表一点看法 首先介绍一下 xff
  • 最优传输理论与计算 ——雷娜 顾险峰 【新书发布】

    缘起 1995年秋季 第二作者刚刚来到哈佛大学开始攻读计算机科学领域的博士学位 并在数学系学习丘成桐先生的微分拓扑课程 同时在麻省理工学院人工智能实验室学习Berthold Horn教授的机器人视觉课程 Horn教授提倡从物理的角度来理解视
  • 1.2.6 Linux distributions

    鸟哥的Linux私房菜 基础学习篇 xff08 第三版 xff09 第1章Linux是什么 xff0c 本章介绍为何Linux可以免除专利软件之争 xff0c 并且了解到Linux为何可以同时在个人计算机与大型主机上面大放光彩 本节为大家介