2019-8-19 [Linux] 1.简介 发行版本 组成 应用领域 与Windows对比

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.3 问题 : 常用的计算机操作系统有哪些 ?

目前流行的服务器和 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

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系统和相应的桌面环境,如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版本。
            **0-90-9-**

3)Linux文件系统

    文件系统是文件存放在磁盘等存储设备上的组织方法。Linux系统能支持多种目前流行的文件系统,如EXT2、 EXT3、EXT4、xfs等。
    **Centos 7 用的是 xfs。**
    XFS一种高性能的日志文件系统,最早于1993年,由Silicon Graphics为他们的IRIX操作系统而开发,是IRIX 5.3版的默认文件系统。
    2000年5月,Silicon Graphics以GNU通用公共许可证发布这套系统的源代码,之后被移植到Linux 内核上。
    **XFS 特别擅长处理大文件,同时提供平滑的数据传输。**
    NTFS (FAT32) EXT4 XFS 

4)Linux应用程序

    标准的Linux系统一般都有一套都有称为应用程序的程序集,它包括文本编辑器、编程语言、X Window、办公套件、Internet工具和数据库等。

学习linux的之前一定要知道的一些事情 :

  1. 因为我们的linux没有桌面,所以所有的操作都是基于命令来执行 linux的命令 就好比java的方法一样
    比如说你要打开一个叫做 home 的目录,你可以执行这个命令
cd /home

其中cd 是命令 /home 是这个命令的 了一个打开目录的方法然后将参数传入执行就可以了

  1. linux和windows不一样,linux的文件系统中没有什么 C,D,E,F盘,linux中的目录结构是树状结构 windows 组织文件的组织 --> 文件夹 linux 文件夹 --> 目录
    在这里插入图片描述
    根目录是/ 然后在/下进行各种目录创建 然后在各种目录中再创建各种文件

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。

今的 IT 服务器领域是 Linux、UNIX、Windows 三分天下,Linux 系统可谓后起之秀,特别是“互联网热”以来,Linux 在服务器端的市场份额不断扩大,每年增长势头迅猛,开始对 Windows 和 UNIX 的地位构成严重威胁。

下图是 2016 年初国内服务器端各个操作系统的市场份额:
在这里插入图片描述
可以看出来,Linux(包括 CentOS、Ubuntu 等)已经占据了 80% 左右的市场份额,剩下的基本被 Windows 和 Solaris 瓜分。在未来的服务器领域,Linux 是大势所趋。

Solaris 是 Sun Microsystems 研发的计算机操作系统,被认为是 UNIX 操作系统的衍生版本之一。

Linux 在服务器上的应用非常广泛,可以用来搭建 Web 服务器、数据库服务器、负载均衡服务器(CDN)、邮件服务器、DNS服务器、反向代理服务器、VPN服务器、路由器等。

用 Linux 作为服务器系统不但非常高效和稳定,还不用担心版权问题,不用付费。

正是由于 Linux 服务器的大规模应用,才需要一批专业的人才去管理,这群人就是 Linux 运维工程师(OPS)。

OPS 就是负责 Linux 服务器的运行和维护。随着互联网的爆发,Linux 运维在最近几年也迎来了春天,出现了大量的职位需求,催生了一批 Linux 运维培训班。

OPS 的主要工作就是搭建起运行环境,让程序员写的代码能够高效、稳定、安全地在服务器上运行,他们属于后勤部门。OPS 的要求并不比程序员低,优秀的 OPS 拥有架设服务器集群的能力,还会编程开发常用的工具。

OPS 这项工作的细节内容包括:

安装操作系统,例如 CentOS、Ubuntu 等。

部署代码运行环境,例如网站后台语言采用 PHP,就需要安装 Nginx、Apache、MySQL、PHP运行时等。
及时修复漏洞,防止服务器被攻击,这包括Linux本身漏洞以及各个软件的漏洞。

根据项目需求升级软件,例如 PHP 7.0 在性能方面获得了重大突破,如果现在服务器压力比较大,就可以考虑将旧版的 PHP 5.x 升级到 PHP 7.0。

监控服务器压力,别让服务器宕机。例如淘宝双十一的时候就会瞬间涌入大量用户,导致部分服务器宕机,网页没法访问,甚至连支付宝都不能使用。

分析日志,及时发现代码或者环境的问题,通知相关人员修复。

1.6 Linux vs Windows

目前国内Linux更多的是应用于服务器上,而桌面操作系统更多使用的是 Windows。主要区别如下
在这里插入图片描述
操作linux和用CMD窗口操作windows一样

拓展阅读
操作流程梳理 --> 按照步骤处理 --> 回头看视频/讲义/百度/问同学/问老师 cd 进入某个目录的命令 cd /

1.7 如何去学习

学习大多类似鹿丁解牛,对事物的认识一般都是由浅入深、由表及里的过程,循序才能渐进。学习 Linux 同样要有一定的顺序和方法,当然这也是你学习本教程的意义。如果你是初学者,那么建议按照本教程的顺序阅读,不要跳跃,欲速则不达,揠苗也不见得能助长。

另外,强烈建议做好读书笔记,边看边记,边练习边思考,“学而不思则罔,思而不学则殆”,比勤奋更重要的是思考的能力,不要傻学、死学。养成看书的好习惯,学习类的图书如果没能看成自己知识的积累,就是白读。一本书,可能看一遍是不够的,多次阅读,反复实践,才能印象深刻。我曾翻烂 8 本《恋爱宝典》,但是从没向任何人表白,结果不言自明。实践是检验真理的唯一标准,实践出真知。

方法有了,贵在坚持。制定好自己的学习目标,设定奖惩,确定详细的时间进度表,开始行动!保持热情,坚定目标,做好计划,希望你、不会让本教程变成你的收藏品,而是成为一套可能会改变你职场命运的技术指导教程,那将是我们最大的荣幸。

1.8 碰到问题怎么办

任何人学习和使用 Linux 或多或少会遇到问题,很多人遇到问题的第一个念头就是问人。没错!这可以快速解决问题。但是我们建议你,先尝试自己解决问题,询问别人获得答案固然好,但是对于知识的积累和提升解决问题的能力并没有帮助,不要做依赖别人帮助的懒虫。

在寻找答案的过程中,虽然会花费很多时间,也可能会遇到挫折,但久而久之你会发现,也许为了找一个问题的解答,你了解了 Linux 很多相关的知识,经验也越来越丰富。记住,你不可能永远有人问,也不可能永远有人愿意回答你。

Linux 系统的一个非常大的好处是,当命令执行错误或系统设置错误时,通常会清楚地显示错误信息,告诉你哪里出错了,只要认真观察报错信息,大概就知道问题出现在哪里,应该如何解决了。有的操作步骤复杂,出现状况时,回头检査一下,是不是前面步骤的命令敲错或配置文件改错。

Linux 的帮助文档是很好的工具,命令的选项、配置文件的设置都可以从这里找到答案;我们在提问前,一定要先在网络上寻找答案,借用一句广告语"百度一下,你就知道",没有人愿意回答网上一搜就可以找到答案的问题。

提问时,确认你已经做了上述事情,这有助于树立你不是寄生虫与浪费别人时间的形象。轻率的提问只能得到轻率的回答,或者压根儿没人理你。

有的被询问者常常不是很清楚初学者要问什么,因为初学者没有完整、清楚地描述问题。在求助他人时,说明要做什么、做了什么,列出完整的操作步骤、错误信息或错误截图,描述清晰,让别人能看懂你的问题,否则我就算变成超人也帮不了你。

在请教问题时,要注意礼貌。很多年轻人,多了一点理所应当,少了一些礼貌用语,你自然会感到世态炎凉,技术圈子没有人性,毕竟人家不回答你是本分,回答你是人情。

另外,千万不要问那种令人头疼的问题,如 Linux 怎么备份、Linux 权限有明陛、xx 服务怎么配置、oo 脚本帮写一个……你问饺子皮为什么这么擀会破,我可以告诉你;你问怎么包饺子,这就是你找茬儿了,先在网上找找,人生苦短,快用百度,然后照猫画虎时哪个步骤有问题你再问……

提问,也是一种智慧。

英文读不懂怎么办

每次在教授 Linux 课程时,我都要给读者介绍两个英文短语,一个是 “No such file or directory”,另一个是 “command not found”。初学者在学习命令时问得最多的就是这两个问题:输入的文件或目录名称错误、命令没有被发现(命令敲错了)。

能看懂 Linux 的英文提示及英文文档非常重要。其实计算机英语很简单,只要熟记了计算机专业英语单词,高中毕业的英文水平就可以轻松阅读英文文档了。即便你的英文水平实在太差了,连最简单的计算机英文文档都看不懂,那么在学习 Linux 的同时学学英语,每天从背一定量的单词开始吧!

我给各位读者的建议是每天背 30 个在电脑上看到的不认识的单词,30 个单词不需要你会读、会写、会念,看到单词知道意思即可,一般 3~5 个月,常见的计算机英语都能看厪。

1.9 忘记Windows的思维方式

思想的转变比暂时性的技术提高更重要,因为它能帮助你加快学习速度。很多人使用 Linux 时骨子里却还是 Windows 的思想,比如讲 Linux 安装都会有读者问:“是把 Linux 装在 C 盘吗?”,可见被 Windows“毒害”之深。

Windows 是一个优秀的系统,它的易用性非常好,不过也正是因为易用性好,使用者往往不了解自己所做操作的原理。

大多数初学者已经习惯了使用 Windows 的图形界面来完戚喿作,可是我们在学习和日后使用 Linux 时基本上在命令行模式下,这让很多初学者很头疼也很困惑。

这里的问题是"如何有效利用系统资源",X Window 本身相当消耗系统资源,这也就是在架设 Linux 服务器时不启动图形界面的原因。如果你想深入了解 Linux,就必须学习命令行操作。

所以,我们在开始学习 Linux 之前,要不被 Windows 的思想所束缚。这其实是一个使用习惯的问题,我常常想,如果我们第一个接触的操作系统就是 Linux,那么之后我们再学习 Windows,可能我们也会感慨"这个系统为什么必须启动图形界面才能操作",说到底,是一个习惯问题吧。

学无止境,不仅是学到的知识,还有学习的意识和方法。我有一句话,与诸位共勉:“让学习成为一种习惯。”

我的电脑显卡是NVIDIA CUDA 11.6.114 driver,win10,64位的,在安装Anaconda时,有如下几个版本:Anaconda-1.4.0-Windows-x86_64.exe 241.4 MiB 2013-07-04 17:58 Anaconda-1.5.0-Linux-x86.sh 238.8 MiB 2013-07-04 18:10 Anaconda-1.5.0-Linux-x86_64.sh 306.7 MiB 2013-07-04 18:22 Anaconda-1.5.0-MacOSX-x86_64.sh 166.2 MiB 2013-07-04 18:37 Anaconda-1.5.0-Windows-x86.exe 236.0 MiB 2013-07-04 18:45 Anaconda-1.5.0-Windows-x86_64.exe 280.4 MiB 2013-07-04 18:57 Anaconda-1.5.1-MacOSX-x86_64.sh 166.2 MiB 2013-07-04 19:11 Anaconda-1.6.0-Linux-x86.sh 241.6 MiB 2013-07-04 19:19 Anaconda-1.6.0-Linux-x86_64.sh 309.5 MiB 2013-07-04 19:32 Anaconda-1.6.0-MacOSX-x86_64.sh 169.0 MiB 2013-07-04 19:47 Anaconda-1.6.0-Windows-x86.exe 244.9 MiB 2013-07-04 19:56 Anaconda-1.6.0-Windows-x86_64.exe 290.4 MiB 2013-07-04 20:09 Anaconda-1.6.1-Linux-x86.sh 247.1 MiB 2013-07-05 08:34 Anaconda-1.6.1-Linux-x86_64.sh 317.6 MiB 2013-07-05 09:20 Anaconda-1.6.1-MacOSX-x86_64.pkg 197.3 MiB 2013-07-05 10:05 Anaconda-1.6.1-MacOSX-x86_64.sh 170.0 MiB 2013-07-05 12:20 Anaconda-1.6.1-Windows-x86.exe 244.4 MiB 2013-07-05 12:29 Anaconda-1.6.1-Windows-x86_64.exe 289.9 MiB 2013-07-05 12:49 Anaconda-1.6.2-Windows-x86.exe 244.4 MiB 2013-07-10 06:19 Anaconda-1.6.2-Windows-x86_64.exe 289.9 MiB 2013-07-10 07:04 Anaconda-1.7.0-Linux-x86.sh 381.0 MiB 2013-09-20 01:04 Anaconda-1.7.0-Linux-x86_64.sh 452.6 MiB 2013-09-20 02:49 Anaconda-1.7.0-MacOSX-x86_64.pkg 256.7 MiB 2013-09-20 05:04 Anaconda-1.7.0-MacOSX-x86_64.sh 223.3 MiB 2013-09-20 11:00 Anaconda-1.7.0-Windows-x86.exe 280.6 MiB 2013-09-20 11:11 Anaconda-1.7.0-Windows-x86_64.exe,请问我应该安装哪一个?
最新发布
07-24
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值