1 Linux概述
1.1 操作系统简介
1.1.1 为啥需要操作系统呢 ?
计算机是一台机器,它按照用户的要求接收信息、存储数据、处理数据,然后再将处理结果输出(文字、图片、音频、视频等)。计算机由硬件和软件组成:
-
硬件是计算机赖以工作的实体,包括显示器、键盘、鼠标、硬盘、CPU、主板等;
-
软件会按照用户的要求协调整台计算机的工作,包括以下两种:
-
- 系统软件:比如 Windows、Linux、Mac OS、Android 等操作系统
- 应用软件:比如 Office、QQ、迅雷、微信等应用程序
1.1.2 什么是操作系统呢 ?
操作系统(Operating System,OS)是软件的一部分,它是硬件基础上的第一层软件,是硬件和其它软件沟通的桥梁(或者说接口、中间人、中介等)。
操作系统会控制其他程序运行,管理系统资源,提供最基本的计算功能,如管理及配置内存、决定系统资源供需的优先次序等,同时还提供一些基本的服务程序,例如:
1) 文件系统 --> 操作系统 --> 硬盘进行沟通
提供计算机存储信息的结构,信息存储在文件中,文件主要存储在计算机的内部硬盘里,在目录的分层结构中组织文件。文件系统为操作系统提供了组织管理数据的方式。
2) 设备驱动程序
提供连接计算机的每个硬件设备的接口,设备驱动器使程序能够写入设备,而不需要了解执行每个硬件的细节。
3) 用户接口
操作系统需要为用户提供一种运行程序和访问文件系统的方法。如常用的 Windows 图形界面,可以理解为一种用户与操作系统交互的方式;智能手机的 Android 或 iOS 系统,也是一种操作系统的交互方式。
4) 系统服务程序
当计算机启动时,会自启动许多系统服务程序,执行安装文件系统、启动网络服务、运行预定任务等操作。
1.1.2 常用的计算机操作系统有哪些 ?
目前流行的服务器和 PC 端操作系统有 Linux、Windows、UNIX 等,手机操作系统有 Android、iOS、Windows Phone(简称 WP),嵌入式操作系统有 Windows CE、PalmOS、eCos、uClinux 等。
1.2 Linux简介
1.2.1 为啥学习大数据要学习linux ?
操作系统根据用途分类大体可分类 家用操作系统 和 服务器操作系统两大类,家用操作系统因为要满足家用需求,所以在界面上会非常的炫酷,并且可以兼容大部分的家用软件主要用途也是游戏,影音等日常应用;
比如我们现在用的win10就是家用版操作系统,界面可以非常美观并且可以玩耍市面上的很多游戏;但是假如我们现在学习编程技术,我们编写好的程序肯定是要放在服务器中运行,那么这个时候就会出现问题 :
问题 :
1. 操作系统炫酷的页面占用了系统的内存和CPU资源,所以作为服务器来说不能将系统的全部资源用于系统服务这是很尴尬的;
2. 家用操作系统为了做的特别炫酷就要开发很多功能,但是系统的功能越多那么也就意味着系统的BUG也会越多,如果作为服务器来说,系统本身都很多BUG那是不能被容忍的;
3. windows系统从一开始就面临一个很尴尬的为题就是容易中毒.各种病毒,远古病毒比如盗号木马,现代病毒比如勒索病毒,都是出现在windows系统上,(题外话,为啥windows系统病毒多呢 1, 好研发 2, 双击就能运行 所以很方便)
4. windows的内核是不对外开源的,也就是说一个系统的核心代码我们接触不到这样就会埋下很多问题.....总有一种受制于人的感觉;
综合以上几种原因,如果我们想装一台服务器系统的话,那么应该满足 :
1. 安全
2. 稳定
3. 高性能
4. 内核开源
那么在操作系统领域有没有能够满足我们需求的操作系统呢? 有 那就是linux!
1.2.2 简述一下什么是linux ?
Linux内核最初只是由芬兰人 李纳斯·托瓦兹(Linus Torvalds)在赫尔辛基大学上学时出于个人爱好而编写的。
Linux是一套免费使用和自由传播的类 Unix操作系统,是一个基于POSIX和UNIX的多用户、多任务、支持多线程和多CPU的操作系统。
Linux能运行主要的UNIX工具软件、应用程序和网络协议。它支持32位和64位硬件。
Linux继承了Unix以网络为核心的设计思想,是一个性能稳定的多用户网络操作系统。
Linux之父:李纳斯·托瓦兹(Linus Torvalds) linux LOGO
Linux可以有狭义和广义两种定义。
狭义来说,Linux实际上指Linux kernel (内核)。内核负责管理硬件,并为上层应用提供接口。
而广义来说,是指以Linux kernel 为基础的,包括OS各种应用在内的和各个Linux版本。
拓展 :
Unix
UNIX操作系统(尤尼斯),是一个强大的多用户、多任务操作系统,支持多种处理器架构,按照操作系统的分类,属于分时操作系统,
最早由KenThompson、Dennis Ritchie和Douglas McIlroy于1969年在AT&T的贝尔实验室开发。
目前它的商标权由国际开放标准组织所拥有,只有符合单一UNIX规范的UNIX系统才能使用UNIX这个名称,否则只能称为类UNIX(UNIX-like)。
图 1 为肯•汤普森与丹尼斯•里奇的合影,天才都是不修边幅的……
问题 :
UNIX操作系统是商业版,需要收费,价格比Microsoft Windows正版要贵一些。
所以为了解决这个问题,才有后来的linux
1.2.3 Linux 的那些往事
Linux 内核最初是由李纳斯•托瓦兹(Linus Torvalds)在赫尔辛基大学读书时出于个人爱好而编写的,当时他觉得教学用的迷你版 UNIX 操作系统 Minix 太难用了,于是决定自己开发一个操作系统。
第 1 版本于 1991 年 9 月发布,当时仅有 10 000 行代码。
李纳斯•托瓦兹没有保留 Linux 源代码的版权,公开了代码,并邀请他人一起完善 Linux。与 Windows 及其他有专利权的操作系统不同,Linux 开放源代码,任何人都可以免费使用它。
据估计,现在只有 2% 的 Linux 核心代码是由李纳斯•托瓦兹自己编写的,虽然他仍然拥有 Linux 内核(操作系统的核心部分),并且保留了选择新代码和需要合并的新方法的最终裁定权。现在大家所使用的 Linux,我更倾向于说是由李纳斯•托瓦兹和后来陆续加入的众多 Linux 好者共同开发完成的。
李纳斯•托瓦兹无疑是这个世界上最伟大的程序员之一,何况,他还搞出了全世界最大的程序员交友社区 GitHub (开源代码库及版本控制系统)。
1.3 Linux 发行版本
问题 : 啥是linux发行版
Linux 主要作为Linux发行版(通常被称为"distro")的一部分而使用。这些发行版由个人,松散组织的团队,以及商业机构和志愿者组织编写。它们通常包括了其他的系统软件和应用软件,以及一个用来简化系统初始安装的安装工具,和让软件安装升级的集成管理器。大多数系统还包括了像提供GUI界面的XFree86之类的曾经运行于BSD的程序。 一个典型的Linux发行版包括:Linux内核,一些GNU程序库和工具,命令行shell,图形界面的[X Window](https://baike.baidu.com/item/X Window)系统和相应的桌面环境,如KDE或GNOME,并包含数千种从办公套件,编译器,文本编辑器到科学工具的应用软件。
各个版本之间也只是大同小异,其差别往往体现在客户群、升级维护和界面等方面。
红帽系列
Red Hat Enterprise: (www.redhat.com) 这个是企业级的linux,主要面向服务器。作为商业版,有比较好的配套软件和技术支持。
Fedora: (http://fedoraproject.org) 由社区维护,去除了一些商业软件。红帽实际上赞助了这个项目,以便以此作为技术测试平台。
CentOS: (www.centos.org) 这个版本不来自红帽的公司,是收集红帽公开的源码组成的免费版本,由社区维护,和红帽完全兼容。
SUSE系列
SUSE Linux Enterprise: (www.suse.com) 和红帽商业版类似,德国的发行版本。
openSUSE: (www.opensuse.org) SUSE的免费版本。
Debian系列
Debian: (www.debian.org) 完全免费,社区维护的Linux版本,有很大的用户群,所以遇到问题,基本都可以找到社区用户的支持。
Ubuntu: (www.ubuntu.com) 由一个基金提供支持的免费Linux版本。 继承自Debian。界面很友好。
红旗linux(RedFlag Linux)
红旗Linux是由北京中科红旗软件技术有限公司开发的一系列Linux发行版,包括桌面版、工作站版、数据中心服务器版、HA集群版和红旗嵌入式Linux等产品。
目前在中国各软件专卖店可以购买到光盘版,同时官方网站也提供光盘镜像免费下载。
红旗Linux是中国较大、较成熟的Linux发行版之一
各发行版占比情况:
1.4 Linux组成
Linux系统一般有4个主要部分:内核、shell bat、文件系统和应用程序。内核、shell和文件系统一起形成了基本的操作系统结构,它们使得用户可以运行程序、管理文件并使用系统。
1)Linux内核
内核是操作系统的核心,具有很多最基本功能,如虚拟内存、多任务、共享库、需求加载、可执行程序和TCP/IP网络功能。
Linux内核的模块分为以下几个部分:存储管理、CPU和进程管理、文件系统、设备管理和驱动、网络通信、系统的初始化和系统调用等。
2)Linux shell
shell是系统的用户界面,提供了用户与内核进行交互操作的一种接口。它接收用户输入的命令并把它送入内核去执行,是一个命令解释器。
另外,shell编程语言具有普通编程语言的很多特点,用这种编程语言编写的shell程序与其他应用程序具有同样的效果。
目前主要有下列版本的shell。
Bourne Shell:是贝尔实验室开发的。
Korn Shell:是对Bourne SHell的发展,在大部分内容上与Bourne Shell兼容。
C Shell:是SUN公司Shell的BSD版本。
BASH:是GNU的Bourne Again Shell,是GNU操作系统上默认的shell,大部分linux的发行套件使用的都是这种shell。
3)Linux文件系统
文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、EXT4、xfs等。
Centos 7 用的是 xfs。
XFS一种高性能的日志文件系统,最早于1993年,由[Silicon Graphics](https://baike.baidu.com/item/Silicon Graphics)为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。
2000年5月,[Silicon Graphics](https://baike.baidu.com/item/Silicon Graphics)以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。
XFS 特别擅长处理大文件,同时提供平滑的数据传输。
NTFS (FAT32) EXT4 XFS
4)Linux应用程序
标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。
1.5 Linux应用领域
今天各种场合都有使用各种Linux发行版,从嵌入式设备到超级计算机,并且在服务器领域确定了地位,通常服务器使用LAMP(Linux + Apache + MySQL + PHP)或LNMP(Linux + Nginx+ MySQL + PHP)组合。
目前Linux不仅在家庭与企业中使用,并且在政府中也很受欢迎。
- 巴西联邦政府由于支持Linux而世界闻名。
- 有新闻报道俄罗斯军队自己制造的Linux发布版的,做为G.H.ost项目已经取得成果.
- 印度的Kerala联邦计划在向全联邦的高中推广使用Linux。
- 中华人民共和国为取得技术独立,在龙芯过程中排他性地使用Linux。
- 在西班牙的一些地区开发了自己的Linux发布版,并且在政府与教育领域广泛使用,如Extremadura地区的gnuLinEx和Andalusia地区的Guadalinex。
- 葡萄牙同样使用自己的Linux发布版Caixa Mágica,用于Magalh?es笔记本电脑和e-escola政府软件。
- 法国和德国同样开始逐步采用Linux。