第1章 Linux简介
1.1 什么是操作系统?
简单讲:操作系统就是一个人与计算机硬件的中介。
- 操作系统,英文名称Operating System,简称OS,是计算机系统中必不可少的基础系统软件,它是应用程序运行以及用户操作必备的基础环境支撑,是计算机系统的核心。
-
操作系统的作用是管理和控制计算机系统中的硬件和软件资源,例如,它负责直接管理计算机系统的各种硬件资源,如对CPU,内存,磁盘等的管理,同时对系统资源供需的优先次序进行管理。操作系统还可以控制设备的输入,输出以及操作网络与管理文件系统等事务。同时,它也负责对计算机系统中各类软件资源的管理。例如各类应用软件的安装,运行环境设置等。
-
操作系统就是处于用户与计算机系统硬件之间用于传递信息的系统程序软件。例如:操作系统会在接收到用户输入的信息后,将其传给计算机系统硬件核心进行处理,然后再把计算机系统硬件的处理结果返回给使用者。
思考一下世界上什么操作系统使用率最高?
1.2 什么是Linux?
- 类似windows,Linux也是一个操作系统软件,Linux是一套开放源代码程序的,并可以自由传播的类Unix操作系统软件,多用户,多任务并且支持多线程和多CPU的操作系统。
- Linux系统主要被应用于服务器端,嵌入式开发和个人PC桌面3大领域,其中服务器端领域是重中之重。 BAT(百度,阿里,腾讯)
- 我们熟知的大型,超大型互联网企业(百度,Sina,淘宝等)都在使用Linux系统作为服务器端的程序运行平台,全球及国内排名前十的网站使用的主流系统几乎都是Linux系统。
- 我们熟知的大型,超大型互联网企业(百度,sina,淘宝等)都在使用Linux系统作为其服务器端的程序运行平台,全球及国内排名前十的网站使用的主流系统几乎都是Linux系统。
从上面的内容可以看出,Linux操作系统之所以如此流行,是因为它具有如下一些特点:
- 是开放源代码的程序软件,可自由修改
- Unix系统兼容,具备几乎所有Unix的优秀特性
- 可自由传播,无任何商业化版权制约
- 适合Intel等X86CPU系统架构的计算机
技巧:学会对阶段性知识的小结是学好运维的关键
1.3 Linux的起源
1.3.1 Unix的历史
Unix系统于1969年在AT&T的贝尔实验室诞生,20世纪70年代,它逐步盛行,这期间,又产生了一个比较重要的分支,就是大约1977年诞生的BSD(Berkeley Software Distribution)系统。从BSD系统开始,各大厂商及商业公司开始了根据自身公司的硬件架构,并以BSD系统为基础进行Unix系统的研发,从而产生了各种版本的Unix系统,例如:SUN公司的Solaris,IBM公司的AIX,HP公司的HPUNIX等。
Unix的5大优势特性
- 技术成熟,可靠性高
- 极强的可伸缩性
Unix支持的CPU处理器体系架构非常多,包括Intel/AMD及HP-PA,MIPS,PowerPC,UltraSPARC,ALPHA等RISC芯片,以及SMP,MPP等技术
提示:可能是由于早期各大厂商都基于Unix进行适合自己的硬件开发,因此,Unix支持的CPU架构才更多。
- 强大的网络功能
Internet互联最重要的协议TCP/IP就是在Unix上开发和发展起来的。此外,Unix还支持非常多的常用的网络协议,如NFS,DCE,IPX/SPX,SLIP,PPP等 - 强大的数据库支持能力
Oracle,DB2,Sybase,Informix等大型数据库,都把Unix作为其主要的数据库开发和运行平台,一直到目前为止,依然如此。 - 强大的开发能力
正是Unix促使了C语言的诞生
1.4 Unix操作系统的革命
- 70年代中后期,由于各厂商及商业公司开发的Unix及内置软件都是针对自己公司特定硬件的,因此在其他公司的硬件上基本上无法直接运行。
- 70年代末,Unix又面临了突如其来的被AT&T回收授权的重大问题,特别是要求禁止对学生群体提供Unix系统源代码。
- 也是在80年代初期,同样是由于之前的Unix系统版权和源代码限制等问题,使得当时大学里教学Unix系统的束缚很大。因此,当时的一个大学的教授,名字为Andrew Tanenbaum (谭宁邦),基于之前还在开源的Unix部分开发了一个可以运行于x86PC平台的系统,这个系统的名字为Minix
- 由于谭宁邦开发的这个Minix系统的目的只是用于教学,因此,Minix系统的功能无法满足商用的需求,但是Minix的产生对于Linux的诞生又是至关重要的一个部分。
- 1984年,Richard Stallman发起了开发自由软件的运动,并成立了自由软件基金会(Free Software Foundation,FSF)和GNU项目。
- 当时发起这个自由软件运动和创建GNU项目的目的其实很简单,就是想开发一个类似Unix系统,并且是自由软件的完整操作系统,也就是要解决70年代末Unix版权问题以及软件源代码面临闭源的问题,这个系统叫做GNU操作系统。
-
这个GNU系统后来没有流行起来。现在的GNU系统通常是使用Linux系统的内核,以及使用了GNU项目贡献的一些组件加上其它相关程序组成,这样的组合被称为GNU/Linux操作系统。
2.4 Linux的诞生
Linux系统的诞生开始于芬兰赫尔辛基大学的一位计算机系的学生,名字为Linus Torvalds。
Linux的标志和吉祥物为一只名字叫做Tux的企鹅--Torvalds‘ Unix
1.5 Linux 的发展历程
1,linux的发展历程简介
1)1984年,Andrew S.Tanenbaum开发了用于教学的Unix系统,命名为MINIX。
2)1989年,Andrew S.Tanendaum将MINIX系统运行于x86的PC计算机平台
3)1990年,芬兰赫尔辛基大学学生Linus Torvalds首次接触MINIX系统
4)1991年,Linux Torvalds开始在MINIX上编写各种驱动程序等操作系统内核组件。
5)1991年底,Linus Torvalds公开了Linux内核源代码0.02版,注意,这里公开的Linux内核源码并不是我们现在使用的Linux系统的全部,而仅仅是Linux内核kernel部分的代码。
6)1993年,Linux1.0版发行,Linux转向GPL版权协议
7)1994年,Linux的第一个商业发行版Slackware问世。
8)1996年,美国国家标准技术局的计算机系统实验室确认Linux版本1.2.13(由Open LInux公司打包)符合POSIX标准
9)1999年,Linux的简体中文发行版问世
10)2000年后,Linux系统日趋成熟,涌现大量基于Linux服务器平台的应用,并广泛应用于基于ARM技术的嵌入式系统中。
2,Linux发展历程中相关人物
我们一定要向前辈们致以深深地敬意,没有他们,就没有今天的Linux系统存在了。
第2章 Linux核心概念知识
2.1 自由软件与FSF
1,自由软件
简单地理解,自由软件的核心就是没有商业化软件版权制约,源代码开放,可无约束自由传播。
注意:自由软件强调的是权利问题,而非是否免费的问题。大家一定要理解这个概念,自由软件中的自由是“言论自由”中的“自由”,而不是“免费啤酒”中的“免费”。
自由意味着freedom,而免费意味着free,这是完全不同的概念。例如:RedHatLinux自由但不免费,CentOS Linux是自由且免费的。
自由软件关乎使用者运行,复制,发布,研究,修改和改进该软件的自由。
2,2 自由软件基金会FSF
FSF(Free Software Foundation)的中文意思是自由软件基金会,是Richard Stallman于1984年发起和创办的。FSF的主要项目是GNU项目。GNU项目本身产生的主要软件包括:Emacs (神一样的软件)gcc,bash和编程语言,以及gawk(GNU‘s awk)等。
2.3 GNU知识
GNU的全程为GNU‘s not unix,意思是“GNU不是UNIX“,GNU计划,又称革奴计划,是由Richard Stallman 在1984年公开发起的,是FSF的主要项目。前面已经提到过,这个项目的目标是建立一套完全自由的和可移植的类Unix操作系统。
但是GNU自己的内核Hurd仍在开发中,离实用还有一定的距离。
现在的GNU系统通常是使用Linux系统的内核,加上GNU项目贡献的一些组件,以及其它相关程序组成的,这样的组合被称为GNU/Linux操作系统,
到1991年linux内核发布的时候,GNU项目已经完成了除系统内核之外的各种必备软件的开发。在Linus Torvalds和其它开发人员的努力下,GNU项目的部分组件又运行到了Linux内核之上,例如:GNU项目里的Emacs,gcc,bash,gawk等,至今都是Linux系统中很重要的基础软件。
2.4 GPL知识
GPL全称为General Public License,中文名为通用公共许可,是一个最著名的开源许可协议,开源社区最著名的Linux内核就是在GPL许可下发布的。GPL许可是自由软件基金会(Free Software foundation)创建的。
1984年,Richard Stallman发起开发自由软件的运动后不久,在其他人的协作下,他创立了通用公共许可证(GPL),这对推动自由软件的发展起了至关重要的作用,那么,这个GPL到底是什么意思呢?
简单的理解,GPL许可的核心,是保证任何人有共享和修改自由软件的自由,任何人有权取得,修改和重新发布自由软件的源代码权利,但都必须同时给出具体更改的源代码。
虽然整个Linux内核是基于GNU通用公共许可的,但是Linux内核并不是GNU计划的一部分。这一点,请不要混淆。
FSF(公司)==>GPL(项目)==>emacs gcc bash gawk
FSF(公司)==>GPL(项目) ==>自由传播 修改源代码 但是必须把修改后的源代码也要发布出来
Linus Torvalds==>linux内核
2.5 Linux系统组成
Linux操作系统=linux内核+GNU软件及系统软件+必要的应用程序
第3章 Linux的特点
3.1 Linux为什么受欢迎?
Linux系统之所以受到广大计算机爱好者的喜爱,主要原因有两个:
一是,Linux属于自由软件,用户不用支付任何费用就可以获得系统和系统的源代码,并且可以根据自己的需要对源代码进行必要的修改,无偿使用,无约束地自由传播。
二是,Linux具有Unix的全部优秀特性,任何使用Unix操作系统或想要学习Unix操作系统的人,都可以通过学习Linux来了解Unix,同样可以获得Unix中的几乎所有优秀功能,并且Linux系统更开放,社区开发和全世界的使用者也更活跃。
第4章 如何选择Linux的发行版
4.1 Linux的发行版本介绍
- Linux内核(kernel)版本主要有4个系列,分别为Linux kernel2.2,Linux kernel2.4,Linuxkernel2.6,Linux kernel3.x,更多更新版本请浏览kernel官网,点击即可
- linux的发行商包括Slackware,Redhat,Debjan,Fedora,TurboLinux,Mandrake,SUSE,CentOS,Ubuntu,红旗,麒麟...
下面看看其中几个重要的发行版本。
1)Red Hat:Red Hat Linux9.0的内核为2.4.20.在版本9.0后,Red Hat 不再遵循GPL协议,成为收费产品(但仍开源),发展的新版本依次为Red Hat 3.x,Red Hat 4.x,Red Hat 5.x Red Hat 6.x,Red Hat 7.x .
2)Fedora:为Red Hat的一个分支,仍遵循GPL协议,可以认为是RedHat预发布版。(游戏公测)
3)CentOS(Community Enterprise Operationg System):与redhat做到二进制级别的一摸一样。RedHat的另一个重要分支,以RedHat所发布的源代码重建符合GPL许可协议的Linux系统,即将Red Hat Linux 源代码的商标LOGO以及非自由软件部分去除后再编译而成的版本,目前CentOS已被RedHat公司收购,但仍开源免费。CentOS Linux是国内互联网公司使用最多的Linux系统版本。
提示:有关Linux操作系统,记住Redhat,CentOS,Ubuntu,Fedora,SUSE,DEbian等即可。Redhat与CentOS的区别和联系,有时会被面试官问到,需要重点了解。
4.2 Linux发行版本应用场景
4.3 CentOS的主流版本再国内互联网企业的使用现状说明
- CentOS 5系列:占25%左右,主流版本有CentOS 5.5,CentOS5.11,不推荐学习。===>Linux 2.4
- CentOS 6系列:占45%左右,主流版本有CentOS 6.2,CentOS 6.4,CentOS 6.6,CentOS 6.8 ===>Linux 2.6
- CentOS 7 系列:刚刚发布不久,目前极少企业正式使用,因此不建议玩它。这里有一个企业使用的大环境问题,因为学完了没地方用不说,企业实际用的CentOS 5和CentOS 66系列你反而不会,那样就舍本逐末了,先学习6,再过2年等企业用上了CentOS7,轻松就可以转过去,根据企业的主流应用选择才是明智的。
4.4 为什么企业环境要选择64位操作系统?
- 目前绝大多数企业生产环境中,使用的都是64位CentOS系统,32位与64位系统的定位和区别。
- 区别一:当初设计时定位不同。64位操作系统的设计定位是:满足机械设计和分析,三维动画,视频编辑和创作,以及科学计算和高性能计算应用程序等领域,这些应用领域的共同特点就是需要有大量的系统内存和浮点性能。简单地说,64位操作系统是为高科技人员使用本行业特殊软件的运行平台而设计的。而32位操作系统是为普通用户设计的。
- 区别二:安装要求配置不同。64位操作系统只能安装在64位电脑上(CPU必须是64位的),并且只在针对64位的软件时才能发挥最佳性能。32位操作系统可以安装在32位(32位CPU)电脑上,也可以安装在64位(64CPU)电脑上。当然,此时32位的操作系统是无法发挥674位硬件性能的。
- 区别三:运算速度不同:
64位===>8车道大马路(2^8)
32位===>4车道马路(2^2) - 区别四:寻址能力不同
支持的最大内存不同
32位系统 4GB 内存
64位系统 128GB 内存
小面试题:你们公司服务器使用的版本是什么?
CentOS 6.8 x86_64 内核版本 2.6.32
小结:
本章重点回顾:
1)了解什么是操作系统以及操作系统简单原理图
2)了解Unix发展历史
3)了解市面上的常见Unix系统版本
4)了解Unix及Linux诞生发展的几个关键人物
5)重点了解GNU GPL FSF的知识
6)了解Linux系统的特点
7)了解Linux系统的常见发行版本,不同场景选择
8)重点了解CentOS和Redhat的区别和联系
9)了解CentOS各个版本的应用场景及企业应用情况
10)学习搭建学习Linux的环境
本章知识相关面试题:
1)请详细描述GNU的相关知识和历史事件?
2)请描述什么是GPL以及GPL的内容细节?
3)企业工作中如何选择各Linux发行版?
4)Red Hat Linux和CentOS Linux有啥区别和联系?