第1章 Linux发展历史&简介

1.1 Linux快速入门

Linux是一套免费使用和自由传播的类UNIX操作系统,是一个基于POSIX移植操作系统接口(Portable Operating System Interface of UNIX,POSIX)和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。

目前被广泛使用于企业服务器、WEB网站平台、大数据、虚拟化、Android、超级计算机等领域,未来Linux将应用各行各业,例如云计算、物联网、人工智能等。

本章向读者介绍Linux发展简介、Linux发行版特点、32位及64位CPU特性及Linux内核命名规则。

1.2 为什么要学习Linux

我们为什么要学习Linux?我们目前的处境是什么?我们想达到什么样的目标?在谈到这三个问题时,相信每个人都有自己的答案,我们来自不同的家庭,各种经历也都不一样,但最终的目标都是希望通过学习技术,提升自己的专业技术。真正做一个对社会有贡献的人。

想想我们刚步入学堂的那一刻起,心里就狠狠下决心,以后不管做什么,都要一番出息,可是20年、30年过去了,我们收获了什么,得到了什么,到底是在追求什么?方向又在哪里呢?

在生活中各种挫折、感情、生活以及很多零碎的事情,让我们很难静下心来学习,当我们某天突然惊醒,年少已不在。所以今天就下定决心,现在就要学习,去行动,去改变。

人生最可怕的是在自以为舒适的地方待得太久,等到外界改变来的时候,已经晚了,我们不能像温水煮青蛙一样,待在温水里,没有觉察到周围事物的变化,最终被社会所淘汰,如图1-1所示。

IMG_256

1.3 Linux操作系统简介

Linux操作系统是基于UNIX以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统,Linux能运行各种工具软件、应用程序及网络协议,它支持安装在32位和64位CPU硬件上。

通常的讲,Linux这个词本身只表示Linux内核,但是人们已经习惯用Linux来形容整个基于Linux内核的操作系统,并且是一种使用GNU通用公共许可证(GNU General Public License,GPL)工程各种工具和数据库的操作系统。

GNU是“GNU is Not Unix”,UNIX是一种广泛使用的商业操作系统,由于GNU将要实现以UNIX系统的接口标准,因此GNU计划可以分别开发不同的操作系统部件,并且采用了部分当时已经可自由使用的软件。

为了保证GNU软件可以自由地“使用、复制、修改和发布”,所有的GNU软件都在一份禁止其他人添加任何限制的情况下授权所有权利给任何人的协议条款里,我们把这个条款称之为GNU通用公共许可证(GNU General Public License,GPL)。

1991年的10月5日,Linux创始人Linus Torvalds在comp.os.minix新闻组上发布消息,正式向外宣布Linux内核的诞生,1994年3月Linux 1.0发布,代码量17万行,当时是完全按照自由免费的协议发布,随后正式采用GPL协议,目前GPL协议版本包括:GPLv1、GPLv2、GPLv3以及未来的GPLv4、GPLv5等。

1.4 Linux操作系统优点

随着IT产业的不断发展,Linux操作系统应用领域越来越广泛,尤其是近年来Linux在服务器领域飞速的发展,主要得益于Linux操作系统具备的如下优点:

  • 开源免费;
  • 系统迭代更新;
  • 系统性能稳定;
  • 安全性高;
  • 多任务,多用户;
  • 耗资源少;
  • 内核小;
  • 应用领域广泛;
  • 使用及入门容易。

1.5 Linux操作系统发行版

学习Linux操作系统,需要选择不同的发行版本,Linux操作系统是一个大类别,Linux操作系统主流发行版本包括:Red Hat Linux、CentOS、Ubuntu、SUSE Linux、Fedora Linux等,具体发行版本区别如下:

Red Hat Linux

Red Hat Linux是最早的Linux发行版本之一,同时也是最著名的Linux版本,Red Hat Linux已经创造了自己的品牌,也是读者经常听到的“红帽操作系统”。Red Hat 1994年创立,目前公司全世界有3000多人,一直致力于开放的源代码体系,向用户提供一套完整的服务,这使得它特别适合在公共网络中使用。这个版本的Linux也使用最新的内核,还拥有大多数人都需要使用的主体软件包。

Red Hat Linux发行版操作系统的安装过程非常简单,图形安装过程提供简易设置服务器的全部信息,磁盘分区过程可以自动完成,还可以通过图形界面(Graphical User Interface,GUI)完成安装,即使对于Linux新手来说这些都非常简单。后期如果想批量安装Red Hat Linux系统,可以通过批量的工具来实现快速安装。

CentOS

社区企业版操作系统(Community Enterprise Operating System,CentOS)是Linux发行版之一,它是来自于Red Hat Enterprise Linux依照开放源代码所编译而成。由于出自同样的源代码,因此有些要求高度稳定性的服务器以CentOS替代商业版的Red Hat Enterprise Linux使用。

CentOS于Red Hat Linux不同之处在于CentOS并不包含封闭的源代码软件,可以开源免费使用,得到运维人员、企业、程序员的青睐,CentOS发行版操作系统是目前企业使用最多的系统之一,2016年12月12日,CentOS基于 Red Hat Enterprise Linux 的 CentOS Linux 7 (1611) 系统正式对外发布。

Ubuntu 

Ubuntu是一个以桌面应用为主的Linux操作系统,其名称来自非洲南部祖鲁语或豪萨语的“ubuntu”一词(译为吾帮托或乌班图),意思是“人性”、“我的存在是因为大家的存在”,是非洲传统的一种价值观。

Ubuntu基于Debian发行版和GNOME桌面环境, Ubuntu发行版操作系统的目标在于为一般用户提供一个最新的、同时稳定的以开放自由软件构建而成的操作系统,目前Ubuntu具有庞大的社区力量,用户可以方便地从社区获得帮助。

SUSE Linux

SUSE(发音 /ˈsuːsə/),SUSE Linux 出自德国,SuSE Linux AG公司发行维护的Linux发行版,是属于此公司的注册商标2003年11月4日,Novell表示将会对SUSE提出收购。收购的工作于2004年1月完成。

Novell也向大家保证SUSE的开发工作仍会继续下去,Novell更把公司内全线电脑的系统换成SUSE LINUX,并同时表示将会把SUSE特有而优秀的系统管理程序 – YaST2以GPL授权释出。

Fedora Linux

Fedora是一个知名的Linux发行版,是一款由全球社区爱好者构建的面向日常应用的快速、稳定、强大的操作系统。它允许任何人自由地使用、修改和重发布,无论现在还是将来。它由一个强大的社群开发,这个社群的成员以自己的不懈努力,提供并维护自由、开放源码的软件和开放的标准。

Fedora 约每六个月会发布新版本,美国当地时间2015年11月3日,北京时间2015年11月4日,Fedora Project 宣布 Fedora 23 正式对外发布,2017年6月发布Fedora 26版本。

1.6 32位与64位操作系统的区别

学习Linux操作系统之前,需要理解计算机基本的常识,计算机内部对数据的传输和储存都是使用二进制,二进制是计算技术中广泛采用的一种数制,而Bit(比特)则表示二进制位,二进制数是用0和1两个数码来表示的数。基数为2,进位规则是“逢二进一”,0或者1分别表示一个Bit二进制位。

Bit位是计算机最小单位,而字节是计算机中数据处理的基本单位,转换单位为:1Byte=8Bit,4Byte=32Bit。

随着计算机技术的发展,尤其是中央处理器(Central Processing Unit,CPU)技术的变革,CPU的位数指的是通用寄存器(General-Purpose Registers, GPRs)的数据宽度,也就是处理器一次可以处理的数据量多少。

目前主流CPU处理器分为32位CPU处理器和64位CPU处理器,32位CPU处理器可以一次性处理4个字节的数据量。而64位处理器一次性处理8个字节的数据量(1Byte=8bit),64位CPU处理器对计算机处理器在RAM里(随机存取储存器)处理信息的效率比32位CPU做了很多优化,效率更高。

X86_32位操作系统和X86_64操作系统也是基于CPU位数的支持,具体区别如下:

  • 32位操作系统表示32位CPU对内存寻址的能力;
  • 64位操作系统表示64位CPU对内存寻址的能力;
  • 32位的操作系统安装在32位CPU处理器和64位CPU处理器上;
  • 64位操作系统只能安装64位CPU处理器上;
  • 32位操作系统对内存寻址不能超过4GB;
  • 64位操作系统对内存寻址可以超过4GB,企业服务器更多安装64位操作系统,支持更多内存资源的利用;
  • 64位操作系统是为高性能处理需求设计,数据处理、图片处理、实时计算等领域需求;
  • 32位操作系统是为普通用户设计,普通办公、上网冲浪等需求。

1.7 Linux内核命名规则

Linux内核是Linux操作系统的核心,一个完整的Linux发行版包括进程管理、内存管理、文件系统、系统管理、网络操作等部分。

Linux内核官网可以下载Linux内核版本、现行版本,历史版本,可以了解版本与版本之间的特性。

Linux内核版本命名在不同的时期有其不同的命名规范,其中在2.X版本中,X如果为奇数表示开发版、X如果为偶数表示稳定版,从2.6.X以及3.X,内核版本命名就没有严格的约定规范。

从Linux内核1994年发布1.0发布到目前主流2.6、3.X版本,4.X属于开发调试阶段,查看Linux操作系统内核如图1-2所示:

Linux内核命名格式为 “R.X.Y-Z”,其中R、X、Y、Z命名意义如下:

  • 数字R表示内核版本号,版本号只有在代码和内核有重大改变的时候才会改变,到目前为止有4个大版本更新。
  • 数字X表示内核主版本号,主版本号根据传统的奇偶系统版本编号来分配,奇数为开发版,偶数为稳定版。
  • 数字Y表示内核次版本号,次版本号是无论在内核增加安全补丁、修复Bug、实现新的特性或者驱动时都会改变。
  • 数字Z表示内核小版本号,小版本号会随着内核功能的修改、Bug修复而发生变化。

官网内核版本如图1-3所示,Mainline表示主线开发版本,Stable表示稳定版本,稳定版本主要由mainline测试通过而发布。Longterm表示长期支持版,会持续更新及Bug修复,如果长期版本被标记为EOL(End of Life),则表示不再提供更新。

1.8 Linux发展及系统安装

互联网飞速发展,用户对网站体验要求也越来越高,目前主流WEB网站后端承载系统均为Linux操作系统,Android手机也是基于Linux内核而研发,企业大数据、云存储、虚拟化等先进技术也均是基于Linux操作系统为载体,满足企业的高速发展。

本章向读者介绍Linux发展前景、Windows与Linux操作系统区别、硬盘分区介绍、CentOS 7 Linux操作系统安装图解及菜鸟学好Linux必备大绝招。

1.9 Linux发展前景及就业形势

权威部门统计,未来几年内我国软件行业的从业机会十分庞大,中国每年对IT软件人才的需求将达到200万人左右。而对于Linux专业人才的就业前景,更是广阔;据悉在未来5-10年内Linux专业人才的需求将达到150万,尤其是有Linux行业经验的,资深的Linux工程师非常缺乏,薪资也非常诱人,平均月薪15000-25000,甚至更高,Linux行业薪资如图2-1所示:

1.10 Windows操作系统简介

为什么要学习Windows操作系统呢,了解Windows系统结构,可以让我们快速学习Linux操作系统,通过对比学习的方法,我们可以更快的学会Linux。

计算机硬件组成包括:CPU、内存、网卡、硬盘、DVD光驱、电源、主板、显示器、鼠标等设备,计算机硬件是不能直接被人使用的,需要在其上安装各种操作系统,安装完操作系统,并安装驱动程序,方可进行操作、办公、上网冲浪等。

驱动程序主要指的是设备驱动程序(Device Driver),是一种可以使计算机系统和设备通信的特殊程序,相当于硬件的接口,操作系统只有通过这个接口,才能控制硬件设备,进行资源调度。

Windows操作系统主要以窗口形式对用户展示,操作系统须安装在硬盘上,安装系统之前需对硬盘进行分区并格式化,默认Windows操作系统安装在C盘分区,D盘分区用于存放数据文件。

通俗的讲,安装操作系统时,需要对磁盘进行格式化,格式化需要指定格式化的类型,告诉操作系统如何去管理磁盘空间,文件如何存放,如何查找及调用。操作系统不知道怎么存放文件以及文件结构,文件系统概念就诞生了。

文件系统是操作系统用于明确磁盘或分区上文件的方法和数据存储结构,文件系统由三部分组成:与文件管理有关软件、被管理文件以及实施文件管理所需数据结构。

Windows操作系统,文件系统类型一般有FAT、FAT16、FAT32、NTFS等,不同的文件系统类型,有不同的特性,例如NTFS文件系统类型支持文件及文件夹安全设置,而FAT32文件系统类型不支持,NTFS支持单文件最多为单个磁盘分区的容量大小2T,而FAT32单个最大文件不能超过4GB。

Windows操作系统从设计层面来讲,主要用来管理电脑硬件与软件资源的程序,大致包括五个方面的管理功能:进程与处理机管理、作业管理、存储管理、设备管理、文件管理。Windwos操作系统从个人使用角度来讲,主要用于个人电脑办公、软件安装、上网冲浪、游戏、数据分析、数据存储等功能。

1.11 硬盘分区简介

学习Windows、Linux操作系统,必然要了解硬盘设备,硬盘是电脑主要的存储媒介之一,硬盘要能够安装系统或者存放数据,必须进行分区和格式化,Windows系统常见分区有三种:主磁盘分区、扩展磁盘分区、逻辑磁盘分区。

一块硬盘设备,主分区至少有1个,最多4个,扩展分区可以为0,最多1个,且主分区+扩展分区总数不能超过4个,逻辑分区可以有若干个。在Windows下激活的主分区是硬盘的启动分区,他是独立的,也是硬盘的第一个分区,通常就是我们所说的C盘系统分区。

扩展分区是不能直接用的,他是以逻辑分区的方式来使用的,扩展分区可分成若干逻辑分区。他们的关系是包含的关系,所有的逻辑分区都是扩展分区的一部分。

在Windows系统安装时,硬盘驱动器是通过磁盘0,磁盘1来显示,其中磁盘0表示第一块硬盘,磁盘1表示第二块硬盘,然后在第一块硬盘磁盘0上进行分区,最多不能超过4个主分区,分区为C、D、E、F。

硬盘接口是硬盘与主机系统间的连接部件,作用是在硬盘缓存和主机内存之间传输数据。不同的硬盘接口决定着硬盘与计算机之间的连接速度,在整个系统中,硬盘接口的优劣直接影响着程序运行快慢和系统性能好坏,常见的硬盘接口类型为:IDE(Integrated Drive Electronics)、SATA(Serial Advanced Technology Attachment)、SCSI(Small Computer System Interface)、SAS(Serial Attached SCSI)和光纤通道等。

IDE接口硬盘多用于家用,部分也应用于传统服务器,SCSI、SAS接口的硬盘则主要应用于服务器市场,而光纤通道用于高端服务器上,SATA主要用于个人家庭办公电脑及低端服务器。

在Linux操作系统中,读者可以看到硬盘驱动器的第一块IDE硬盘接口的硬盘设备为hda,或者SATA硬盘接口的硬盘设备为sda,主分区编号为hda1-4或者sda1-4,逻辑分区从5开始。如果有第二块硬盘,主分区编号为hdb1-4或者sdb1-4。

不管是Windows还是Linux操作系统,硬盘的总容量=主分区的容量+扩展分区的容量,而扩展分区的容量=各个逻辑分区的容量之和。主分区也可成为“引导分区”,会被操作系统和主板认定为这个硬盘的第一个分区,所以C盘永远都是排在所有磁盘分区的第一的位置上。

MBR(Master Boot Record)和GPT(GUID Partition Table)是在磁盘上存储分区信息的两种不同方式。这些分区信息包含了分区从哪里开始的信息,这样操作系统才知道哪个扇区是属于哪个分区的,以及哪个分区是可以启动操作系统的。

在磁盘上创建分区时,必须选择MBR或者GPT,默认是MBR,也可以通过其他方式修改为GPT方式。MBR分区的硬盘最多支持4个主分区,如果想支持更多主分区,可以考虑使用GPT格式分区。