1.Linux是什么与如何学习

第 1 章 Linux 是什么与如何学习

历史部分略过。

1.2.5 Linux的内核版本

Linux的内核版本编号有点类似如下的样子:

3.10.0-123.el7.x86_64
主版本.次版本.发布版本-修改版本

虽然编号就是如上的方式来编的,不过依据 Linux 内核的发展期程,内核版本的定义有点不太相同

  • 奇数、偶数版本分类

    在 2.6.x 版本以前,Torvalds 将内核的发展方向分为两类,并根据这两类内核的发展分别给予不同的内核编号,那就是:

    • 主、次版本为奇数开发中版本(development)

      如 2.5.xx,这种内核版本主要用在测试与发展新功能,所以通常这种版本仅有内核开发工程师会使用。 如果有新增的内核程序代码,会加到这种版本当中,等到众多工程师测试没问题后,才加入下一版的稳定内核中;

    • 主、次版本为偶数稳定版本(stable)

      如 2.6.xx,等到内核功能发展成熟后会加到这类的版本中,主要用在一般家用计算机以及企业版本中。 重点在于提供使用者一个相对稳定的 Linux 作业环境平台。

      至于发布版本则是在主、次版本架构不变的情况下,新增的功能累积到一定的程度后所新发布的内核版本。 而由于 Linux 内核是使用 GPL 的授权,因此大家都能够进行内核程序码的修改。因此,如果你有针对某个版本的内核修改过部分的程序码, 那么那个被修改过的新的内核版本就可以加上所谓的修改版本了。

  • 主线版本、长期维护版本(longterm version)

    不过,这种奇数、偶数的编号格式在 3.0 推出之后就失效了。从 3.0 版开始,内核主要依据主线版本 (MainLine) 来开发,开发完毕后会往下一个主线版本进行。 例如 3.10 就是在 3.9 的架构下继续开发出来的新的主线版本。通常新一版的主线版本大约在 2~3 个月会被提出,之所以会有新的主线版本,是因为有加入新功能之故。现在 (2016/08) 最新的主线版本已经是 4.7 版了。

    而旧的版本在新的主线版本出现之后,会有两种机制来处理,一种机制为结束开发 (End of Live, EOL),亦即该程序码已经结束,不会有继续维护的状态。 另外一种机制为保持该版本的持续维护,亦即为长期维护版本 (Longterm)。例如 3.10 即为一个长期维护版本,这个版本的程序码会被持续维护,若程序码有 bug 或其他问题, 内核维护者会持续进行程序码的更新维护。

    所以,如果你想要使用 Linux 内核来开发你的系统,那么当然要选择长期支持的版本才行。要判断你的 Linux 内核是否为长期支持的版本, 可以使用“ uname -r ” 来查阅内核版本,然后对照下列链接来了解其对应值。

  • Linux 内核版本与 Linux 发布商版本

    Linux 内核版本与发行版(distribution)的版本并不相同,很多朋友常常上网问到:“我的 Linux 是 7.x 版,请问…”之类的留言, 这是不对的提问方式,因为所谓的 Linux 版本指的应该是内核版本, 而目前最新的内核版本应该是 4.7.2(2016/08) 才对,并不会有 7.x 的版本出现的。

    你常用的 Linux 系统则应该说明为发行版。因此,如果以 CentOS 这个发行版来说, 你应该说:“我用的 Linux 是 CentOS 这个发行版,版本为 7.x ,请问…”才对。

1.2.6 Linux 发行版

各大 Linux 发行版的主要异同:支持标准

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

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

  • FHS: http://www.pathname.com/fhs/
  • LSB: http://www.linuxbase.org/

事实上鸟哥认为发行版主要分为两大系统,一种是使用 RPM 方式安装软件的系统,包括 Red Hat, Fedora, SuSE 等都是这类; 一种则是使用 Debian 的 dpkg 方式安装软件的系统,包括 Debian, Ubuntu, B2D 等等。若是加上商业公司或社群单位的分类,那么我们可以简单的用下表来做个说明。

RPM 软件管理 DPKG 软件管理 其他未分类
商业公司 RHEL(Red Hat 公司)、SuSE(Micro Focus) Ubuntu(Canonical Ltd.)
社群单位 Fedora、CentOS、OpenSuSE Debian、B2D Gentoo

下面列出几个主要的 Linux 发行版官网:

  • Red Hat: http://www.redhat.com
  • SuSE: https://www.suse.com
  • Fedora: https://getfedora.org/
  • CentOS: http://www.centos.org/
  • Debian: http://www.debian.org/
  • Ubuntu: http://www.ubuntu.com/
  • Gentoo: http://www.gentoo.org/

1.4.1 从头学习 Linux 基础

所以,鸟哥希望大家能够更了解 Linux,好让他可以为你做更多的事情,而且这些基础知识是学习更深入的技巧的必备条件,因此建议:

  1. 计算机概论与硬件相关知识

    因为既然想要走 Linux 这门路,信息技术相关的基础技能也不能没有,所以先理解一下基础的硬件知识,不用一定要全懂。又不是真的要你去组计算机,但是至少要“听过、有概念”即可;

  2. 先从 Linux 的安装与指令学起

    没有 Linux 怎么学习 Linux 呢?所以好好的安装起一套你需要的 Linux 吧!虽然说 Linux 发行版很多,不过基本上架构都是大同小异的,差别在于接口的友好度与软件的选择不同罢了。选择一套你喜欢的就好了,倒是没有哪一套特别好一说。

  3. Linux 操作系统的基础技能

    这些包含了“用户、用户组的概念”、“权限的观念”,“程序的定义”等等,尤其是权限的概念, 由于不同的权限设置会妨碍你的使用者的便利性,但是太过于便利又会导致入侵的可能,所以这里需要了解一下你的系统。

  4. 务必学会 vi 文本编辑器

    Linux 的文本编辑器多到会让你数到生气,不过,vi 却是强烈建议要先学习的,这是因为 vi 会被很多软件所调用,加上所有的 UNIX-like 系统上面都有 vi,所以你一定要学会才好。

  5. Shell 与 Shell 脚本的学习

    其实鸟哥上面一直谈到的“命令行模式”说穿了就是一个名为 Shell 的软件。既然要玩命令行模式,当然就是要会使用 Shell 的意思。 但是 Shell 上面的知识太多了,包括“正则表达式”、“管道命令”与“数据流重定向”等等,真的需要了解比较好。 此外,为了帮助你未来的管理服务器的便利性,Shell 脚本也是挺重要的,要学!

  6. 一定要会软件管理

    因为玩 Linux 常常会面临得要自己安装驱动程序或者是安装额外软件的时候,尤其是嵌入式设备或者是学术研究单位等。 这个时候了解 Tarball、RPM、DPKG、YUM、APT 等软件管理员的安装方式,对你来说就非常重要。

  7. 网络基础的建立

    如果上面你都通过了,那么网络的基础就是下一阶段要接触的东西,这部份包含了“IP概念”、“路由概念”等。

  8. 如果连网络基础都通过了,那么网站的搭建对你来说,简直就是“太简单啦!”

在一些基础知识上,可能的话当然得去书店找书来读。 如果您想要由网络上面阅读的话,那么这里推荐一下由 Netman 大哥评论员的 Study-Area 里面的基础文章,相当的实用。

  • 计算机基础(http://www.study-area.org/compu/compu.htm)
  • 网络基础(http://www.study-area.org/network/network.htm)

你可能感兴趣的:(Linux学习笔记,linux,运维,centos)