首页 > 系统相关 >1.Linux是什么与如何学习

1.Linux是什么与如何学习

时间:2023-12-25 20:22:40浏览次数:54  
标签:www http 版本 学习 如何 内核 发行版 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 发行版除了架构的严谨度与选择的套件内容外, 其实差异并不太大。大家可以选择自己喜好的发行版来安装即可。

事实上鸟哥认为发行版主要分为两大系统,一种是使用 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 发行版官网:

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 里面的基础文章,相当的实用。

标签:www,http,版本,学习,如何,内核,发行版,Linux
From: https://www.cnblogs.com/AncilunKiang/p/17926903.html

相关文章

  • 软件测试面试——如何提高测试用例覆盖率?
    如何提高测试用例覆盖率?在项目的初期,我们参与到需求评审中1.覆盖显性需求需求文档或原型图上已经标注清楚的功能一定要全部覆盖,通过思维导图工具进行梳理一般都能保证。2.获取隐含需求隐含需求的获取是一大难点,但需求就像冰山,露在水面的始终只是极少的一部分。3.合理使用合适的......
  • Linux收包之数据L3层是如何流转的
    一、环境说明内核版本:Linux3.10内核源码地址:https://elixir.bootlin.com/linux/v3.10/source(包含各个版本内核源码,且网页可全局搜索函数)网卡:Intel的igb网卡网卡驱动源码目录:drivers/net/ethernet/intel/igb/二、L3层概览 本章主要介绍收包的流程,在L3层是如何处理的。......
  • AI爆文写作变现:如何让自己的文章减少AI味,提升写作质量
    利用AI实现自媒体写作变现,核心就是爆文写作提示词(Prompt)对新手来说,缺少好用的爆文提示词,这无疑是大家碰到的一个难点。如何创建属于自己的高效AI指令,无疑是大家最关心的问题。本篇文章将一步一步带你打造一个高质量的提示词。成为AI指令高手。前提准备:1.GPTS神器:名字:Prompt......
  • linux 用户注销
    1.先用w命令查看当前登录系统的用户:[root@centos~]#w11:48:09up 3:13, 2users, loadaverage:0.00,0.01,0.00USER  TTY   FROM       LOGIN@ IDLE JCPU PCPUWHATroot  pts/0  218.17.167.82  11:47  0.00s......
  • Markdown学习
    Markdown学习标题control+1-6字体Hello,World!两个星号Hello,World!两侧一个星号Hello,World!三个Hello,World!两个波浪线引用可爱小宝最可爱!箭头符号空格分割线三个星号/减号图片超链接点击跳转到coco鸭的博客列表ABC有序列表减......
  • 软件测试/测试开发|如何定位bug,一篇文章告诉你
    简介在我们对软件进行测试时,遇见bug是无法避免的,但是我们如何对出现的bug进行定位呢?bug究竟是哪个原因引起的就是我们解决bug的关键所在了,本文就来介绍一下如何定位bug。定位问题的重要性很多测试人员可能会说,测试的职责就是找到bug,至于找原因并修复,那是开发的事情,关我什么事?好,我的......
  • linux生成ssh的一对公钥和私钥
    1.首先进入.SSH目录中Linux中,每个用户的根目录下都有一个.ssh目录,保存了ssh相关的key和一些记录文件。例如:cd~/ll-a 2. 使用ssh-keygen生成keyssh-keygen可以生成ssh协议所需要的公钥和私钥,例如:ssh-keygen-trsa然后回提示让你输入一些文件名啥的,别管那些,一路按E......
  • linux-DNS服务器
    一、1、理解区域(zone)DNS的每一个区域都是一个域---一个区域可以管辖多个子域、2、解析正向解析:通过域名解析出ip地址反向解析:根据ip地址解析出dns名称解析过程客户端dns(host文件)本地dns区域dns服务器缓存3、部署dns服务器一般使用传统BIND软件包或者unbound、......
  • linux编译器:gcc/g++的使用
    原文连接:https://blog.csdn.net/weixin_72060925/article/details/131274627原文链接:https://blog.csdn.net/qq_65207641/article/details/128629904一、编辑器与编译器的区别vim是代码编辑器,代码编辑器的功能是让我们输入代码的。所以从这个角度出发,我们常见的记事本也可以......
  • Docker专题学习之相关概述
    前言其实第一次听说Docker还是好几年前,但是一直满足于当前的技术栈,无法突破自己的舒适圈,导致技术栈有些落后。今天正式开启一个新的专题学习,Docker容器技术~......