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、OpenSuSEDebian、B2DGentoo

下面列出几个主要的 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)

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/578425.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

使用代码生成器生成代码 mybatis-plus-generator

1、将相关依赖导入到项目中 <dependency><groupId>com.baomidou</groupId><artifactId>mybatis-plus-generator</artifactId><version>3.4.1</version></dependency><dependency><groupId>org.apache.velocity<…

猫头虎博主第六期赠书活动:《手机摄影短视频和后期从小白到高手》

&#x1f337;&#x1f341; 博主猫头虎 带您 Go to New World.✨&#x1f341; &#x1f984; 博客首页——猫头虎的博客&#x1f390; &#x1f433;《面试题大全专栏》 文章图文并茂&#x1f995;生动形象&#x1f996;简单易学&#xff01;欢迎大家来踩踩~&#x1f33a; &a…

移动应用专项测试:确保用户体验的全方位保障

引言&#xff1a; 随着移动应用的普及和功能的不断增加&#xff0c;开发者需要对应用进行全面的测试&#xff0c;以确保其在不同场景下的稳定性、安全性和用户体验。本文将介绍一些常见的移动应用专项测试&#xff0c;包括安装测试、卸载测试、特殊操作测试、交互测试、通知测试…

MySQL中varchar和int隐式转换的注意事项!

一、前言 在一个阳光明媚的下午&#xff0c;我们的测试在运行SQL是发现了一个灵异事件。 别着急&#xff0c;等我慢慢说来&#xff0c;是一个查询库存的SQL&#xff0c;控制台打印了&#xff0c;查询为0条记录。 想着不太信&#xff0c;自己把SQL粘出来执行一下&#xff0c;刚…

【美团大数据面试】Java面试题附答案

目录 1.多线程代码示例 2.单例代码示例 3.LinkedBlockingQueue原理解析 4.模板设计模式讲解 5.生产者-消费者队列设计方法 6.堆内存和栈内存的区别 7.ThreadLocal底层机制 8.synchronized原理&#xff0c;存在的问题&#xff0c;解决方案 9.volatile使用场景和原理&am…

解析动态规划

本文由 简悦 SimpRead 转码&#xff0c; 原文地址 juejin.cn 前言 我们刷 leetcode 的时候&#xff0c;经常会遇到动态规划类型题目。动态规划问题非常非常经典&#xff0c;也很有技巧性&#xff0c;一般大厂都非常喜欢问。今天跟大家一起来学习动态规划的套路&#xff0c;文章…

突破PHP disable_functions方法

1. 利用 LD_PRELOAD 环境变量 知识扫盲 LD_PRELOAD&#xff1a;是Linux系统的一个环境变量&#xff0c;它指定的*.so文件会在程序本身的*.so文件之前被加载。putenv()&#xff1a;PHP函数&#xff0c;可以设置环境变量mail()&#xff0c;error_log()&#xff1a;PHP函数&…

Tekton

一. 概念 Tekton 官网 Github Tekton 是一种用于构建 CI/CD 管道的云原生解决方案&#xff0c;它由提供构建块的 Tekton Pipelines&#xff0c;Tekton 作为 Kubernetes 集群上的扩展安装和运行&#xff0c;包含一组 Kubernetes 自定义资源&#xff0c;这些资源定义了您可以为…

redis-连接数占满解决

作者 马文斌 时间 2023-12-12 标签 redis 连接风暴 连接数占满 背景 近期有redis 数据库连不上&#xff0c;起初以为是redis的连接数满了&#xff0c;排查到后面发现问题不简单啊&#xff0c;下面看看具体的排查过程。 连不上的原有有哪些 密码不对 网络不好,丢包 原来…

Google模拟面试【面试】

Google模拟面试【面试】 2023-12-25 16:00:42 Google代码面试 Prompt #1 给一个二叉树&#xff0c;定义深度为结点到根&#xff1b;所要遍历的边的数量。 示例二叉树中8的深度为3&#xff0c;1的深度为0。 编写函数返回这个二叉树的所有结点的深度和。 示例二叉树答案是16 …

Openstack开启虚拟化嵌套

好久没写东西了&#xff0c;前两天我准备在虚机上装一个vmware 的虚机&#xff0c;结果失败了&#xff0c;提示如下&#xff0c;由于我是虚机上安装虚机&#xff0c;我的宿主机肯定是开启了vt-x和vt-d的 查了一些资料&#xff0c;这个需要打开nested,先看看nested返回是否为Y&a…

Unity向量按照某一点进行旋转

Unity向量按照某一点进行旋转 一、unity的旋转二、向量按照原点进行旋转注意案例 三、向量按照指定位置进行旋转案例 一、unity的旋转 首先要知道一点就是在Unity的旋转中使用过四元数进行旋转的&#xff0c;如果对一个物体的rotation直接赋值你会发现结果不是你最终想要的结果…

1111111111111111111

11111111111111111111111111

Astro学习使用记录

Astro学习使用记录 前言Astro是什么&#xff1f;问题记录1. 使用组件库2. pages 目录下不要放 除 .astro 文件以外的文件 总结 前言 Astro的出现 为了追求前端应用的性能与速度&#xff0c;近年前端界涌现出许多的解决方案&#xff0c;像SSR、SSG解决方案再到今天的island架构…

迎新辞旧,欢度元旦

迎新辞旧&#xff0c;欢度元旦 新年钟声即将敲响&#xff0c;欢度元旦的时刻即将来临。在这个美好的时刻&#xff0c;我们纷纷辞旧迎新&#xff0c;放飞自我追逐梦想的翅膀。让羊大师带大家一起来庆祝新年的到来&#xff0c;共同创造美好的开始&#xff01; 一、迎新辞旧&…

希尔排序详解(C语言)

前言 希尔排序是一种基于插入排序的快速排序算法。所以如果还会插入排序的小伙伴可以点击链接学习一下插入排序&#xff08;点我点我&#xff01;&#xff09; &#xff0c;相较于插入排序&#xff0c;希尔排序拥有更高的效率&#xff0c;小伙伴们肯定已经迫不及待学习了吧&…

OPNET Modeler帮助文档的打开方式

前面有篇文章修改OPNET帮助文档的默认打开浏览器 & 给Edge浏览器配置IE Tab插件已经提到了打开OPNET Modeler打开帮助文档的方法&#xff0c;有时候打开时会显示如下。 界面中没有什么内容加载出来&#xff01;我是在Google浏览器中打开的&#xff0c;其他的浏览器也是一样…

10000个jpg图片文件如何按数量放在20个文件夹中的方法

日常工作中在处理大量文件时&#xff0c;如何有效地将它们分类和管理变得至关重要。在这种情况下&#xff0c;有10000个jpg图片&#xff0c;要如何把它们按数量放在20个文件夹&#xff0c;如何避免手动操作呢&#xff1f;现在一起来看看云炫文件管理器批量移动文件的具体操作吧…

智慧燃气为 “ 城市生命线 ” 打造“看得见”的安全

关键词&#xff1a;智慧燃气、智慧燃气平台、智慧燃气管网、燃气数字化、智慧燃气系统、智慧燃气解决方案 近年来&#xff0c;随着互联网技术、物联网技术、大数据、云计算技术的飞速发展&#xff0c;“互联网”已成为重要的国家战略&#xff0c;各行业都在寻求智能化转型之路…

flowable任务分配方式篇动态部门经理:固定分配、表达式分配、监听器分配

这里写自定义目录标题 1、固定分配2、表达式分配在此流程部署了之后&#xff0c;在流程定义信息表中可以看到此流程的相关信息启动流程查看我们设置的变量在task表中&#xff0c;可以看到当前分配人是张三&#xff0c;说明值表达式被解析了 完成任务在张三完成任务之后&#xf…