1. Linux系统简介

Linux是一种开源的类Unix操作系统,源于对UNIX的模仿和改进,具有良好的可移植性、稳定性和安全性。Linux与UNIX在系统结构上有相似之处,但Linux是免费开源的,而UNIX通常是商业软件。Linux因其开源特性,形成了丰富的发行版本生态系统,如Red Hat、Ubuntu等,广泛应用于服务器、嵌入式和桌面环境。学习Linux不仅可以了解操作系统基础,还能掌握服务器管理和运维技能,适合程序员和系统管理员学习。
摘要由CSDN通过智能技术生成

目录

1.1 操作系统是什么

1.2 Linux是什么,有哪些特点?

1.3 Linux和UNIX的关系及区别

UNIX 的坎坷历史

Linux 的那些往事

UNIX与Linux的亲密关系

UNIX/Linux系统结构

1.4 类UNIX系统是什么鬼?

1.5 Linux中大量使用脚本语言,而不是C语言!

C语言并不是最佳选择

脚本语言也有不足

1.6 Windows很好啊,为什么要学Linux?

1.7 Linux的优缺点

1) 大量的可用软件及免费软件

2) 良好的可移植性及灵活注

3) 优良的稳定性和安全性

4) 支持几乎所有的网络协议及开发语言

1.8 常见Linux发行版本有哪些?

1) Red Hat Linux

2) Ubuntu Linux

3) SuSE Linux

4) Gentoo Linux

5) 其他 Linux 发行版

Linux 发行版本的选择

1.9 这么多Linux发行版,哪个最适合初学者?

1.10 Linux桌面环境大比拼[附带优缺点]

1. KDE 桌面系统

2. GNOME 桌面环境

3. Unity

4. MATE

5. Cinnamon

6. 适用于较老硬件设备的 Linux 桌面环境

查看桌面环境

1.11 Linux的主要应用领域有哪些?

网站服务器

电影工业

嵌入式应用

1.12 Linux已经霸占了服务器领域!

1.13 开源软件是什么?有哪些?

1.14 开源协议是什么?有哪些?

如何选择开源协议

1.15 开源就等于免费吗?用事实来说话

开源软件的盈利模式

1.16 如何学习Linux(新手必看)

如何去学习

碰到问题怎么办

英文读不懂怎么办

忘记Windows的思维方式

1.17 想学好Linux,这些习惯必须养成(初学者必读)

学习Linux,要习惯使用命令行

操作Linux,要慎之又慎

操作Linux,安全永远是第一位的


1.1 操作系统是什么

Linux 也是众多操作系统之一,要想知道 Linux 是什么,首先得说一说什么是操作系统。

计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。计算机由硬件和软件组成:

  • 硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等;
  • 软件会按照用户的要求协调整台计算机的工作,比如 Windows、Linux、Mac OS、Android 等操作系统,以及 Office、QQ、迅雷、微信等应用程序。


操作系统(Operating System,OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)。

操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序,例如:

1) 文件系统

提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。

2) 设备驱动程序

提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。简单来说,就是让你能吃到鸡蛋,但不用养一只鸡。

3) 用户接口

操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的 Android 或 iOS 系统,也是一种操作系统的交互方式。

4) 系统服务程序

当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。

打个比方,操作系统就好像是一个政府,其它软件都会被它管控;操作系统在给其他软件提供各种便利的同时,还会约束其他软件不能为所欲为。
 

操作系统在计算机架构中的位置


目前流行的服务器和 PC 端操作系统有 Linux、Windows、UNIX 等,手机操作系统有 Android、iOS、Windows Phone(简称 WP),嵌入式操作系统有 Windows CE、PalmOS、eCos、uClinux 等。

这套《Linux入门教程》主要讲解 Linux 这种操作系统的应用,并不想过多涉及操作系统的类型和功能等理论性的知识,本节的目的是让读者明白,操作系统也是软件的一种,只不过它是位于硬件和应用程序之间的底层的软件,它除了会为应用程序保驾护航,还会“杀死”不听话的应用程序,具有双面性。

以上对操作系统的认知虽然只是“皮毛”,但它足以让我们学习 Linux 了。

 

1.2 Linux是什么,有哪些特点?

与大家熟知的 Windows 操作系统软件一样,Linux 也是一个操作系统软件,其 logo 是一只企鹅(如图 1 所示)。与 Windows 不同之处在于,Linux 是一套开放源代码程序的、可以自由传播的类 Unix 操作系统软件。


Linux操作系统图标
图 1 Linux 操作系统图标

Unix 系统是 Linux 系统的前身,具备很多优秀特性。有关 Unix 和 Linux 更多的介绍,可阅读《Linux和UNIX的关系及区别》一文。

Linux 在设计之初,就是基于 Intel x86 系列 CPU 架构计算机的,它是一个基于 POSIX 的多用户、多任务并且支持多线程和多 CPU 的操作系统,它是由世界各地成千上万的程序员设计和开发实现的,当初开发 Linux 系统的目的就是建立不受任何商业化软件版权制约的、全世界都能自由使用的类 Unix 操作系统兼容产品。

在过去的 20 年里,Linux 系统主要被应用于服务器端、嵌入式开发和 PC 桌面 3 大领域,其中服务器端领域是重中之重。例如,我们熟知的大型、超大型互联网企业(百度、腾讯、Sina、阿里等)都在使用 Linux 系统作为其服务器端的程序运行平台,全球及国内排名前 1000 的 90% 以上的网站使用的主流系统都是 Linux 系统。

有关 Linux 的应用领域,可阅读《Linux的主要应用领域有哪些》一文。

从上面的内容可以看出,Linux操作系统之所以如此流行,是因为它具备如下这些优秀的特点:

  • Linux 不仅是免费的,更是开源的,这意味着任何人都可以获得其代码并根据自己的需求进行修改。事实上,这已经孵化出专属 Linux 各发行版的巨大生态系统,我们将在《常见Linux发行版本》一节中展开探讨。
  • Linux 与 Unix 系统兼容,该系统的构建采用了一些与 UNIX 操作系统相同的技术,具备 Unix 几乎所有的优秀特性(系统的稳定性和安全性尤为突出)。
  • 和其他操作系统相比,Linux 更容易安装,且不会收到任何商业化版本的制约。
  • Linux 让开展各种实际有用且具有创造性的事情成为可能。例如,我们可以在一个U盘上装载 Linux 的自生系统引导映像(live boot image),启动一台硬盘已经崩溃的计算机,之后查找并解决该问题。或者,因为 Linux 是一个真正的多用户操作系统,它具有非常好的私密性和稳定性,整个团队可以同时从本地或远程登录进行工作。
  • Linux 提供了复杂的软件包管理系统,可以放心地安装和维护每一个在线资源库中的软件应用。


当然, Linux 操作系统的特点还有很多,这里不再过多赘述,相信随着学习 Linux 的深入,你会有更多的体会。

 

 

 

 

1.3 Linux和UNIX的关系及区别

 

UNIX 与 Linux 之间的关系是一个很有意思的话题。在目前主流的服务器端操作系统中,UNIX 诞生于 20 世纪 60 年代末,Windows 诞生于 20 世纪 80 年代中期,Linux 诞生于 20 世纪 90 年代初,可以说 UNIX 是操作系统中的"老大哥",后来的 Windows 和 Linux 都参考了 UNIX。

现代的 Windows 系统已经朝着“图形界面”的方向发展了,和 UNIX 系统有了巨大的差异,从表面上甚至看不出两者的关联。

UNIX 的坎坷历史

UNIX 操作系统由肯•汤普森(Ken Thompson)和丹尼斯•里奇(Dennis Ritchie)发明。它的部分技术来源可追溯到从 1965 年开始的 Multics 工程计划,该计划由贝尔实验室、美国麻省理工学院和通用电气公司联合发起,目标是开发一种交互式的、具有多道程序处理能力的分时操作系统,以取代当时广泛使用的批处理操作系统。

说明:分时操作系统使一台计算机可以同时为多个用户服务,连接计算机的终端用户交互式发出命令,操作系统采用时间片轮转的方式处理用户的服务请求并在终端上显示结果(操作系统将CPU的时间划分成若干个片段,称为时间片)。操作系统以时间片为单位,轮流为每个终端用户服务,每次服务一个时间片。

可惜,由于 Multics 工程计划所追求的目标太庞大、太复杂,以至于它的开发人员都不知道要做成什么样子,最终以失败收场。

以肯•汤普森为首的贝尔实验室研究人员吸取了 Multics 工程计划失败的经验教训,于 1969 年实现了一种分时操作系统的雏形,1970 年该系统正式取名为 UNIX。

想一下英文中的前缀 Multi 和 Uni,就明白了 UNIX 的隐意。Multi 是大的意思,大而且繁;而 Uni 是小的意思,小而且巧。这是 UNIX 开发者的设计初衷,这个理念一直影响至今。

有意思的是,肯•汤普森当年开发 UNIX 的初衷是运行他编写的一款计算机游戏 Space Travel,这款游戏模拟太阳系天体运动,由玩家驾驶飞船,观赏景色并尝试在各种行星和月亮上登陆。他先后在多个系统上试验,但运行效果不甚理想,于是决定自己开发操作系统,就这样,UNIX 诞生了。

自 1970 年后,UNIX 系统在贝尔实验室内部的程序员之间逐渐流行起来。1971-1972 年,肯•汤普森的同事丹尼斯•里奇发明了传说中的C语言,这是一种适合编写系统软件的高级语言,它的诞生是 UNIX 系统发展过程中的一个重要里程碑,它宣告了在操作系统的开发中,汇编语言不再是主宰。

到了 1973 年,UNIX 系统的绝大部分源代码都用C语言进行了重写,这为提高 UNIX 系统的可移植性打下了基础(之前操作系统多采用汇编语言,对硬件依赖性强),也为提高系统软件的开发效率创造了条件。可以说,UNIX 系统与C语言是一对孪生兄弟,具有密不可分的关系。

20 世纪 70 年代初,计算机界还有一项伟大的发明——TCP/IP 协议,这是当年美国国防部接手 ARPAnet 后所开发的网络协议。美国国防部把 TCP/IP 协议与 UNIX 系统、C语言捆绑在一起,由 AT&T 发行给美国各个大学非商业的许可证,这为 UNIX 系统、C语言、TCP/IP 协议的发展拉开了序幕,它们分别在操作系统、编程语言、网络协议这三个领域影响至今。肯•汤普森和丹尼斯•里奇因在计算机领域做出的杰出贡献,于 1983 年获得了计算机科学的最高奖——图灵奖。



图 1 为肯•汤普森与丹尼斯•里奇的合影,天才都是不修边幅的……


随后出现了各种版本的 UNIX 系统,目前常见的有 Sun Solaris、FreeBSD、IBM AIX、HP-UX 等。

Solaris 和 FreeBSD

我们重点介绍一下 Solaris,它是 UNIX 系统的一个重要分支。Solaris 除可以运行在 SPARC CPU 平台上外,还可以运行在 x86 CPU 平台上。在服务器市场上,Sun 的硬件平台具有高可用性和高可靠性,是市场上处于支配地位的 UNIX 系统。

对于难以接触到 Sun SPARC 架构计算机的用户来说,可以通过使用 Solaris x86 来体验世界知名大厂的商业 UNIX 风采。当然,Solaris x86 也可以用于实际生产应用的服务器,在遵守 Sun 的有关许可条款的情况下,Solaris x86 可以免费用于学习研究或商业应用。

FreeBSD 源于美国加利福尼亚大学伯克利分校开发的 UNIX 版本,它由来自世界各地的志愿者开发和维护,为不同架构的计算机系统提供了不同程度的支持。FreeBSD 在 BSD 许可协议下发布,允许任何人在保留版权和许可协议信息的前提下随意使用和发行,并不限制将 FreeBSD 的代码在另一协议下发行,因此商业公司可以自由地将 FreeBSD 代码融入它们的产品中。苹果公司的 OS  X 就是基于 FreeBSD 的操作系统。



 

FreeBSD 与 Linux 的用户群有相当一部分是重合的,二者支持的硬件环境也比较一致,所采用的软件也比较类似。FreeBSD 的最大特点就是稳定和高效,是作为服务器操作系统的不错选择;但其对硬件的支持没有 Linux 完备,所以并不适合作为桌面系统。

其他 UNIX 版本因应用范围相对有限,在此不做过多介绍。

Linux 的那些往事

Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。



 

李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。

据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。

李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。

关于 Linux Logo 的由来是一个很有意思的话题,它是一只企鹅。



 

为什么选择企鹅,而不是选择狮子、老虎或者小白兔?有人说因为李纳斯•托瓦兹是芬兰人,所以选择企鹅,有人说因为其他动物图案都被用光了,李纳斯•托瓦兹只好选择企鹅。

我更愿意相信以下说法,企鹅是南极洲的标志性动物,根据国际公约,南极洲为全人类共同所有,不属于世界上的任何国家,可国家都无权将南极洲纳入其版图。Linux 选择企鹅图案作为 Logo,其含义是:开放源代码的 Linux 为全人类共同所有,可公司无权将其私有。

UNIX与Linux的亲密关系

二者的关系,不是大哥和小弟,"UNIX 是 Linux 的父亲"这个说法更怡当。之所以要介绍它们的关系,是因为要告诉读者,在学习的时候,其实 Linux 与 UNIX 有很多的共通之处,简单地说,如果你已经熟练掌握了 Linux,那么再上手使用 UNIX 会非常容易。

二者也有两个大的区别:

  1. UNIX 系统大多是与硬件配套的,也就是说,大多数 UNIX 系统如 AIX、HP-UX 等是无法安装在 x86 服务器和个人计算机上的,而 Linux 则可以运行在多种硬件平台上;
  2. UNIX 是商业软件,而 Linux 是开源软件,是免费、公开源代码的。


Linux 受至旷大计算机爱好者的喜爱,主要原因也有两个:

  1. 它属于开源软件,用户不用支付可费用就可以获得它和它的源代码,并且可以根据自己的需要对它进行必要的修改,无偿使用,无约束地继续传播;
  2. 它具有 UNIX 的全部功能,任何使用 UNIX 操作系统或想要学习 UNIX 操作系统的人都可以从 Linux 中获益。


开源软件是不同于商业软件的一种模式,从字面上理解,就是开放源代码,大家不用担心里面会搞什么猫腻,这会带来软件的革新和安全。

另外,开源其实并不等同于免费,而是一种新的软件盈利模式。目前很多软件都是开源软件,对计算机行业与互联网影响深远。

开源软件本身的模式、概念比较晦涩,这套《Linux教程》旨在指导读者应用 Linux,大家简要理解即可。

近年来,Linux 已经青出于蓝而胜于蓝,以超常的速度发展,从一个丑小鸭变成了一个拥有庞大用户群的真正优秀的、值得信赖的操作系统。历史的车轮让 Linux 成为 UNIX 最优秀的传承者。

总结一下 Linux 和 UNIX 的关系/区别

Linux 是一个类似 Unix 的操作系统,Unix 要早于 Linux,Linux 的初衷就是要替代 UNIX,并在功能和用户体验上进行优化,所以 Linux 模仿了 UNIX(但并没有抄袭 UNIX 的源码),使得 Linux 在外观和交互上与 UNIX 非常类似。

说模仿可能会被人喷,你也可以说微创新或者改进。

相比于 UNIX,Linux 最大的创新是开源免费,这是它能够蓬勃发展的最重要原因;而目前的 UNIX 大部分都是收费的,小公司和个人都难以承受。

正是由于 Linux 和 UNIX 有着千丝万缕的联系,所以人们把 Linux 叫做“类UNIX系统”,下节我们将会着重讲解。

UNIX/Linux系统结构

UNIX/Linux 系统可以粗糙地抽象为 3 个层次(所谓粗糙,就是不够细致、精准,但是便于初学者抓住重点理解),如图 3 所示。底层是 UNIX/Linux 操作系统,即系统内核(Kernel);中间层是 Shell 层,即命令解释层;高层则是应用层。



图 3 UNIX/Linux 系统结掏层次概要

1) 内核层

内核层是 UNIX/Linux 系统的核心和基础,它直接附着在硬件平台之上,控制和管理系统内各种资源(硬件资源和软件资源),有效地组织进程的运行,从而扩展硬件的功能,提高资源的利用效率,为用户提供方便、高效、安全、可靠的应用环境。

2) Shell层

Shell 层是与用户直接交互的界面。用户可以在提示符下输入命令行,由 Shell 解释执行并输出相应结果或者有关信息,所以我们也把 Shell 称作命令解释器,利用系统提供的丰富命令可以快捷而简便地完成许多工作。

3) 应用层

应用层提供基于 X Window 协议的图形环境。X Window 协议定义了一个系统所必须具备的功能(就如同 TCP/IP 是一个协议,定义软件所应具备的功能),可系统能满足此协议及符合 X 协会其他的规范,便可称为 X Window。

现在大多数的 UNIX 系统上(包括 Solaris、HP-UX、AIX 等)都可以运行 CDE (Common Desktop Environment,通用桌面环境,是运行于 UNIX 的商业桌面环境)的用户界面;而在 Linux 上广泛应用的有 Gnome(见图  4)、KDE 等。



图 4 Gnome图形界面


X Window 与微软的 Windows 图形环境有很大的区别:

  • UNIX/Linux 系统与 X Window 没有必然捆绑的关系,也就是说,UNIX/Linux 可以安装 X Window,也可以不安装;而微软的 Windows 图形环境与内核捆绑密切。
  • UNIX/Linux 系统不依赖图形环境,依然可以通过命令行完成 100% 的功能,而且因为不使用图形环境还会节省大量的系统资源。


作为服务器部署,绝大多数 Linux 并不安装或并不启用图形环境,本教程的讲解也基本上为 Linux 命令行下的操作。

 

 

1.4 类UNIX系统是什么鬼?

 

上节《UNIX和Linux的区别》中讲到了 UNIX 系统的历史,UNIX 是操作系统的开山鼻祖,是操作系统的发源地,后来的 Windows 和 Linux 都参考了 UNIX。

有人说,这个世界上只有两种操作系统:

  • UNIX 和类 UNIX 操作系统;
  • 其它操作系统。


类 UNIX 系统(英文 Unix-like)既包括各种传统的 UNIX 系统,比如 FreeBSD、OpenBSD、Sun Solaris 等,还包括与 UNIX 相似的系统,比如 Linux、QNX、Minix 等,它们都相当程度地继承了原始 UNIX 的特性,有很多相似之处,并且都在一定程度上遵守 POSIX 规范(UNIX 可移植接口规范)。

类 UNIX 系统不都是免费的,有相当一部分是收费的,而且还比较昂贵。

Linux 几乎是最著名的一个类 UNIX 系统,现在风头正盛,甚至有点“喧宾夺主”,剥夺了原来属于 UNIX 的市场份额,但是 UNIX 也经历了时间的考验,其在操作系统发展历程中的地位是不可否认的。

几乎每一门科学学到深入都是要接触 Linux 的,很多专业的软件甚至针对 Linux 做了大量的优化。

除去 Windows,几乎你所知道的每一个系统都是 UNIX 和类 UNIX,而且它们在 PC 普及前就大放异彩。Windows 仅仅占领了 PC,而别的方方面面都被 UNIX 和类 UNIX 占领了,至于其他的操作系统更是不值一提。比如:

  • 服务器、超级计算机、嵌入式、机顶盒领域都有 Linux 的身影;
  • 在手机领域,Android 和 iOS 都是类 UNIX 系统。


总之,除了 Windows,几乎你能叫的出名的都是 UNIX 和类 UNIX 系统。
 

维基百科对类UNIX系统的简单
图1:维基百科对 UNIX 和类 UNIX 系统的简单

类 UNIX 系统发展史
图2:类 UNIX 系统发展史(简明版)

 

1.5 Linux中大量使用脚本语言,而不是C语言!

 

说到在 Linux 下的编程,很多人会想到用C语言,Linux 的内核、shell、基础命令程序,也的确是用C语言编写的,这首先证明了一点,C语言很强很通用。

到目前为止,C语言依然垄断着计算机工业中几乎所有的系统编程,而且也正因为是C语言,才使得 Unix 以及后来的 Linux 能够这么广泛地被人们去研究、去改进、去制作自己的分支,以至于我们能在各种硬件平台上使用它们。

但是细心的人会发现,Linux 启动过程中所涉及的各种程序,很少有C语言的痕迹。它们大多是脚本程序。不单单在启动过程中是这样,那些用于安装软件的工具 yum、apt-get,甚至是 configure 和 Makefile 也都是脚本程序。而且你可能还没注意到,那些用于系统管理的工具,如配置 ADSL 拨号上网的工具、配置守护进程的工具等,很多也都是脚本程序。

大量使用脚本程序,是所有类 Unix 系统不同于其他系统的一个显著特征,催生人们在 Linux 中大量使用脚本来编写程序,并不仅仅是因为脚本对人直观、容易修改这种显著特性所决定的。另外一个主要的原因就是 Linux 所支持的脚本语言种类十分丰富。

评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值