20220803 01. Linux是什么与如何学习
1.1 Linux是什么
Linux就是一组软件
1.1.1 Linux是什么?操作系统/应用程序?
Linux就是一套操作系统
Linux就是核心与系统调用接口那两层
早期的Linux是针对386来开发 的
Torvalds先生在 1991 年写出Linux 核心的时候,其实该核心仅能“驱动386所有的硬件”而 已, 所谓的“让386计算机开始运行,并且等待使用者指令输入”而已,事实上,当时能够在 Linux上面跑的软件还很少呢
软件移植
Windows操作系统本来就是针对个人计算机x86架构的硬件去设计的
虽然Linux仅是其核心与核心提供的工具,不过由于核心、核心工具与这些软件开发者提供的 软件的整合, 使得Linux成为一个更完整的、功能强大的操作系统
1.1.2 Linux之前,Unix的历史
-
1969年以前:一个伟大的梦想--Bell,MIT与GE的“Multics”系统
-
1969年:Ken Thompson的小型file server system
-
1973年:Unix的正式诞生,Ritchie等人以C语言写出第一个正式Unix核心
-
1977年:重要的Unix分支--BSD的诞生
-
1979年:重要的 System V 架构与版权宣告
-
1984年之一:x86架构的Minix操作系统开始撰写并于两年后诞生
-
1984年之二:GNU计划与FSF基金会的成立
-
Emacs
-
GNU C (GCC)
-
GNU C Library (glibc)
-
Bash shell
-
-
1988年:图形接口XFree86计划
-
1991年:芬兰大学生Linus Torvalds的一则简讯
1.1.3 关于GNU计划、自由软件与开放源代码
自由软件(Free Software)运动
Open Source
自由软件与商业行为
目前不是有很多Linux开发商吗?为何他们可以贩售Linux这个GPL授权的 软件? 原因很简单,因为他们大多都是贩售“售后服务!”
GPL是可以从事商业行为的
括 Linux 核心就还是使用 GPLv2
常见的开放 源代码授权
专属软件/专利软件 (close source)
免费的专利软件代表的授权模式有:
-
Freeware :免费软件
-
Shareware :共享软件
1.2 Torvalds的Linux发展
1.2.1 与Minix之间
购买了最新的Intel 386的个人计算机
Minix这个操作系统是有附上源 代码的, 所以托瓦兹也经由这个源代码学习到了很多的核心程序设计的设计概念
1.2.2 对386硬件的多任务测试
具有多任务能 力的CPU可以在不同的程序间切换
早期的计算机性能没有现在这么好,所以压榨计算机性能就成了工程师的一项癖好!
要达到多工(multitasking)的环境,除了硬件(主要是CPU)需要能够具有多任务的特 性外,操作系统也需要支持这个功能喔
至于多任务的操作系统中,每个程序被执行时,都会有一个最大CPU使用时间,若该工作运 行的时间超过这个CPU使用时间时, 该工作就会先被丢出CPU的运行中,而再度的进入核心 工作调度中等待下一次被CPU取用来运行。
1.2.3 初次释出Linux 0.02
他参考Minix的设计理念与书上的程序码,然后仔细 研究出386个人计算机的性能最优化, 然后使用GNU的自由软件将核心程序码与386紧紧的结 合在一起,最终写出他所需要的核心程序。
因为托瓦兹放置核心的那个FTP 网站的目录为:Linux, 从此,大家便称这个核心为Linux了。(请注意,此时的Linux就是那 个kernel喔! 另外,托瓦兹所丢到该目录下的第一个核心版本为0.02呢!)
由于Linux希望能够相容于Unix,于是托瓦兹选择 了第二个作法“修改Linux”! 为了让所有的软件都可以在Linux上执行,于是托瓦兹开始参考标 准的POSIX规范
POSIX是可携式操作系统接口(Portable Operating System Interface)的缩写,重点在 规范核心与应用程序之间的接口, 这是由美国电器与电子工程师学会(IEEE)所发布的一项 标准喔!
1.2.4 Linux 的发展:虚拟团队的产生
-
单一个人维护阶段
-
广大骇客志工加入阶段
-
核心功能细部分工发展阶段
在1994年终于完成的Linux的核心正式版!version 1.0。 这一 版同时还加入了X Window System的支持呢!且于1996年完成了2.0版、2011 年释出 3.0 版,更于 2015 年 4 月释出了 4.0 版哩! 发展相当迅速喔!此外,托瓦兹指明了企鹅为Linux 的吉祥物。
Linux由于托瓦兹是针对386写的,跟386硬件的相关性很强,所以, 早期的Linux确实是不具 有移植性的。不过,大家知道Open source的好处就是, 可以修改程序码去适合作业的环 境。因此,在1994年以后,Linux便被开发到很多的硬件上面去了!
Linux的核心网站: http://www.kernel.org
1.2.5 Linux的核心版本
Linux的核心版本编号有点类似如下的样子:
3.10.0-123.el7.x86_64
主版本.次版本.释出版本-修改版本
奇数、偶数版本分类
在 2.6.x 版本以前,托瓦兹将核心的发展趋势分为两股,并根据这两股核心的发展分别给予不 同的核心编号,那就是:
-
主、次版本为奇数:发展中版本(development) 如2.5.xx
-
主、次版本为偶数:稳定版本(stable) 如2.6.xx
释出版本则是在主、次版本架构不变的情况下,新增的功能累积到一定的程度后所新释 出的核心版本。
主线版本、长期维护版本(longterm version)
奇数、偶数的编号格式在 3.0 推出之后就失效了。从 3.0 版开始,核心主要依据主 线版本 (MainLine) 来开发,开发完毕后会往下一个主线版本进行。
而旧的版本在新的主线版本出现之后,会有两种机制来处理,一种机制为结束开发 (End of Live, EOL),亦即该程序码已经结束,不会有继续维护的状态。 另外一种机制为保持该版本 的持续维护,亦即为长期维护版本 (Longterm)!
要判断你的 Linux 核心是否为长期支持的版本, 可以使用 uname -r
来查阅核心版本, 然后对照下列链接来了解其对应值喔! https://www.kernel.org/releases.html
Linux 核心版本与 Linux 发布商版本
Linux核心版本与distribution的版本并不相同
虽然各家distributions使用的都是Linux核心,不过每家distributions所选用的软件以及他们自 己发展的工具并不相同, 多少还是有点差异
1.2.6 Linux distributions
因为Linux参考POSIX设计规范,于是相容于Unix操作系统,故亦可称之 为Unix Like的一种。
可完整安装的Linux发布套件
虽然由Torvalds负责开发的Linux仅具有Kernel与Kernel提供的工具, 不过,如上所述,很多 的软件已经可以在Linux上面运行了,因此, “Linux + 各种软件”就可以完成一个相当完整的操 作系统了。
因为Linux早期都是由骇客工程师所开 发维护的,他们并没有考虑到一般使用者的能力......
为了让使用者能够接触到Linux,于是很多的商业公司或非营利团体, 就将Linux Kernel(含 tools)与可运行的软件整合起来,加上自己具有创意的工具程序, 这个工具程序可以让使用 者以光盘/DVD或者通过网络直接安装/管理Linux系统。 这个“Kernel + Softwares + Tools + 可 完整安装程序”的咚咚,我们称之为Linux distribution, 一般中文翻译成可完整安装套件,或 者Linux发布商套件等。
各大Linux Distributions的主要异同:支持标准!
为了让所有的Linux distributions开发不致于差异太大,且让这些开发商在开发的时候 有所依据,还有Linux Standard Base (LSB)等标准来规范开发者,以及目录架构的File system Hierarchy Standard (FHS)标准规范! 唯一差别的,可能就是该开发者自家所开发 出来的管理工具,以及套件管理的模式吧! 所以说,基本上,每个Linux distributions除了架 构的严谨度与选择的套件内容外, 其实差异并不太大啦!
事实上鸟哥认为distributions主要分为两大系统,一种是使用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 |
-
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/
红帽公司旗下有着三个主要的 Linux 发行版产品线:一个是 Fedora,作为先行实验版本,会在快速迭代的同时实验各种新的 Linux 功能和特性,待到稳定成熟后,再将这些特性引入 RHEL;另一个是红帽 Linux ,即 RHEL,它是红帽公司的主要 Linux 发行版,相对来说,在特性和新软件包的添加和更新方面更加保守;最后就是 CentOS,就是 RHEL 的自由开源构建版本
1.3 Linux当前应用的角色
1.3.1 企业环境的利用
企业环境运用Linux作些什么呢?
-
网络服务器
-
关键任务的应用(金融数据库、大型企业网管环境)
-
学术机构的高性能运算任务
1.3.2 个人环境的使用
平时接触的电子用品中的 Linux :
-
桌面电脑
-
手持系统(PDA、手机)
-
嵌入式系统
1.3.3 云端运用
-
云程序
-
端设备
1.4 Linux 该如何学习
学习Linux最好能够先舍弃X Window的环境
如果想要 更深入 Linux的话,那么命令行界面才是不二的学习方式
- 计算机概论与硬件相关知识:
- 先从Linux的安装与指令学起
- Linux操作系统的基础技能
- 务必学会vi文书编辑器
- Shell与Shell Script的学习
- 一定要会软件管理员
- 网络基础的创建
- 网站的架设
两个重要的因素是造成我们学习的原动力:
-
成就感
-
兴趣