linux 第一天

电脑硬件的组成

关于电脑的硬件组成部分,其实你可以观察你的桌上型电脑来分析一下,依外观来说这家伙主要可分为三部分,分别是:

  • 输入单元:包括键盘、滑鼠、读卡机、扫描器、手写板、触控萤幕等等一堆;
  • 主机部分:这个就是系统单元,被主机机壳保护住了,里面含有一堆板子、CPU 与主记忆体等;
  • 输出单元:例如萤幕、印表机等等

linux 第一天

linux 第一天

我们主要透过输入设备如滑鼠与键盘来将一些资料输入到主机里面,然后再由主机的功能处理成为图表或文章等资讯后, 将结果传输到输出设备,如萤幕或印表机上面。那主机里面含有什么元件呢?如果你曾经拆开过电脑主机机壳(包括拆开你的智慧型手机也一样喔!), 会发现其实主机里面最重要的就是一片主机板,上面安插了*处理器(CPU) 以及主记忆体、硬碟(或记忆卡) 还有一些介面卡装置而已。当然大部分智慧型手机是将这些元件直接焊接在主机板上面而不是插卡啦!

整部主机的重点在于*处理器(Central Processing Unit, CPU),CPU为一个具有特定功能的晶片,里头含有微指令集,如果你想要让主机进行什么特异的功能,就得要参考这颗CPU是否有相关内建的微指令集才可以。由于CPU的工作主要在于管理与运算,因此在CPU内又可分为两个主要的单元,分别是: 算数逻辑单元与控制单元。其中算数逻辑单元主要负责程式运算与逻辑判断,控制单元则主要在协调各周边元件与各单元间的工作。

linux 第一天

 如果不是很了解电脑的运作流程的话,超哥拿个简单的想法来思考好了~假设电脑是一个人体,那么每个元件对应到那个地方呢?可以这样思考:

linux 第一天

    • CPU=脑袋瓜子:每个人会作的事情都不一样(微指令集的差异),但主要都是透过脑袋瓜子来进行判断与控制身体各部分的活动;

    • 主记忆体=脑袋中放置正在被思考的资料的区块:在实际活动过程中,我们的脑袋瓜子需要有外界刺激的资料(例如光线、环境、语言等)来分析,那这些互动资料暂时存放的地方就是主记忆体,主要是用来提供给脑袋瓜子判断用的资讯。

    • 硬碟=脑袋中放置回忆的记忆区块:跟刚刚的主记忆体不同,主记忆体是提供脑袋目前要思考与处理的资讯,但是有些生活琐事或其他没有要立刻处理的事情,就当成回忆先放置到脑袋的记忆深处吧!那就是硬碟!主要目的是将重要的资料记录起来,以便未来将这些重要的经验再次的使用;

    • 主机板=神经系统:好像人类的神经一样,将所有重要的元件连接起来,包括手脚的活动都是脑袋瓜子发布命令后,透过神经(主机板)传导给手脚来进行活动啊!

    • 各项周边设备=人体与外界沟通的手、脚、皮肤、眼睛等:就好像手脚一般,是人体与外界互动的重要关键!

    • 显示卡=脑袋中的影像:将来自眼睛的刺激转成影像后在脑袋中呈现,所以显示卡所产生的资料来源也是CPU控制的。

    • 电源供应器(Power)=心脏:所有的元件要能运作得要有足够的电力供给才行!这电力供给就好像心脏一样,如果心脏不够力, 那么全身也就无法动弹的!心脏不稳定呢?那你的身体当然可能断断续续的~不稳定!

 电源

既然是人体的心脏,保障电源供应,就需要质量好的电源,生产环境中单个核心服务器最好是双电源AB线路。

linux 第一天一个接220V电路,一个可能接蓄电池UPS(不间断电源)

CPU

常见品牌:Intel、AMD,想当于人体的大脑

linux 第一天

内存

是CPU和磁盘之间的缓冲设备,也叫临时存储器(存放数据),断电时数据丢失

一般程序运行时会被调度到内存中执行,服务器关闭或程序关闭后,数据从内存中释放掉。

  • 大片----硬盘中---程序数据
  • 暴风音影播放器---播放大片---进程
  • 没完没了的播放大片----一直在运行的程序---守护进程

程序:C/php/python编写的代码文件,存放在磁盘里的数据

进程:正在运行的程序,进程运行就是系统吧程序放在内存里执行

守护进程:持续保持运行的程序

硬盘-内存-中小企业读写过程

linux 第一天

高并发的写入

linux 第一天

特点:

数据写入到内存,性能高速度快(微博,微信,秒杀活动)

缺点:可能会丢失一部分在内存中还没来得及存入磁盘的数据

解决办法:

安装蓄电池,在断电瞬间及时把内存数据写入到磁盘

电脑用途的分类

知道了电脑的基本组成与周边装置,也知道其实电脑的CPU种类非常的多,再来我们想要了解的是,电脑如何分类?电脑的分类非常多种,如果以电脑的复杂度与运算能力进行分类的话,主要可以分为这几类:

  • 超级电脑(Supercomputer)
    超级电脑是运作速度最快的电脑,但是他的维护、操作费用也最高!主要是用于需要有高速计算的计画中。例如:国防军事、气象预测、太空科技,用在模拟的领域较多。详情也可以参考:国家高速网路与计算中心http://www.nchc.org.tw的介绍!至于全世界最快速的前500大超级电脑,则请参考:http://www.top500.org。

  • 大型电脑(Mainframe Computer)
    大型电脑通常也具有数个高速的CPU,功能上虽不及超级电脑,但也可用来处理大量资料与复杂的运算。例如大型企业的主机、全国性的证券交易所等每天需要处理数百万笔资料的企业机构,或者是大型企业的资料库伺服器等等。

  • 迷你电脑(Minicomputer)
    迷你电脑仍保有大型电脑同时支援多使用者的特性,但是主机可以放在一般作业场所,不必像前两个大型电脑需要特殊的空调场所。通常用来作为科学研究、工程分析与工厂的流程管理等。

  • 工作站(Workstation)
    工作站的价格又比迷你电脑便宜许多,是针对特殊用途而设计的电脑。在个人电脑的效能还没有提升到目前的状况之前,工作站电脑的性能/价格比是所有电脑当中较佳的,因此在学术研究与工程分析方面相当常见。

  • 微电脑(Microcomputer)
    个人电脑就属于这部份的电脑分类,也是我们本章主要探讨的目标!体积最小,价格最低,但功能还是五脏俱全的!大致又可分为桌上型、笔记型等等。

若光以效能来说,目前的个人电脑效能已经够快了,甚至已经比工作站等级以上的电脑运算速度还要快!但是工作站电脑强调的是稳定不当机,并且运算过程要完全正确,因此工作站以上等级的电脑在设计时的考量与个人电脑并不相同啦!这也是为啥工作站等级以上的电脑售价较贵的原因。

互联网常见服务器介绍

  • DELL(大多数公司在用)
  • HP
  • IBM(百度,银行,*)(贵)
  • 浪潮
  • 联想

linux 第一天linux 第一天linux 第一天linux 第一天linux 第一天

服务器:
服务器指的是网络中能对其他机器提供某些服务的计算机系统,相对普通PC,服务器指的是高性能计算机,稳定性、安全性要求更高
服务器的高性能体现在高速的运转能力,长时间的可靠运行,强大的数据吞吐能力

服务器分类

 非x86服务器:

包括大型机、小型机和UNIX服务器,价格昂贵,体系封闭,但是稳定性极强,性能强、主要用在金融、电信等大型企业核心系统中。

linux 第一天

x86服务器:

也就是通常所说的PC服务器,价格便宜、兼容性好,稳定性差,不够安全,常用在中小型企业。

linux 第一天

 linux 第一天

linux 第一天

机房托管服务器是按照服务器的厚度来收费的,每一个机柜规格有限,标准机柜可以放16台1u服务器,如果你的服务器太厚太大,机柜能放的服务器就少一些

1U 单位是==unit==厚度是4.45cm

总结 

  • 计算机必须有的组成部分(cpu、硬盘、内存、电源)
  • 服务器 > 个人台式机   -稳定性更高

一张图告诉你Linux的发展

linux 第一天

提问:为什么要去学习Linux?

同学甲可能要问,超哥你介绍了这么多有关Linux的知识,但我还是懵逼,我从小学去网吧打泡泡堂用的就是Windows,上了这么多年学也是用的Windows,为什么要让我学这个Linux?
同学乙可能要问,听起来Linux好像很高大上,如果我放弃Windows去学Linux,用不了多久就会升职加薪当上总经理赢取白富美吗?想想还很激动。。。

那么超哥要回答了:

  如果Windows意味着生活和游戏,那么Linux久代表着严谨和工作,学习Linux代表着你要开发软件,你要测试程序,你要维护服务器。那么依据呢?请看如下:

linux 第一天

linux 第一天

linux 第一天

linux 第一天

由此可见,无论你是python后端开发,还是python测试开发,又或者是爬虫、数据挖掘开发,统统都必须学会Linux,这是开发者必须的技能。

 

 

我们都知道Linux这玩意是在电脑上运行的,所以说Linux就是一组软件,问题是这个软件是操作系统还是应用程序?而且Linux可以在哪些种类的电脑上运行呢?Linux来自哪里?为什么Linux不收钱?(万恶的windows分为各种收费版、家庭版、专业版、企业版。。。。)这些问题我们是不是都得了解,以免人家和你聊linux,俺不会尴尬呀。linux 第一天

   我们都知道,整个电脑主机是由一堆硬件所组成,为了有效的控制这些硬件资源,于是就有操作系统的产生了。操作系统除了有效的控制这些硬件资源的运作,并且提供电脑运行所需的功能(例如网络功能)。

linux 第一天

linux 第一天

 

  

  由上图看出操作系统跑于硬件之上,应用程序运行在操作系统之上, 由于Linux只是一套操作系统并不含有其他应用程序,因此工程师需要在下载Linux系统并且安装之后,就可以使用了。

1.1  Linux起源与发展

  1991年,一个名不见经传的芬兰研究生购买了自己的第一台PC,并且决定开始开发自己的操作系统。这个想法非常偶然,最初只是为了满足自己读写新闻和邮件的需求。这 个芬兰人选择了 Minix作为自己研究的对象。 Minix是由荷兰教授 Andrew S Tanenbaum开 发的一种模型操作系统,这个开放源代码的操作系统最初只是用于研究目的。 这个研究生名叫 Linus torvalds,他很快编写了自己的磁盘驱动程序和文件系统,并且 慷慨地把源代码上传到互联网上。 Linus把这个操作系统命名为 Linux,意指“ Linus的 Minix” ( Linus, Minix)。 Linus根本不会想到,这个内核迅速引起了全世界的兴趣。在短短的几年时间里,借 助社区开发的推动力, Linux迸发出强大的生命力。

  1994年,1.0版本的 Linux内核正式发 布。本书写作时,最新的稳定内核版本为2627。 Linux目前得到了大部分IT巨头的支持,并且进入了重要战略规划的核心领域。一个 非盈利性的操作系统计划能够延续那么多年,并且最终成长为在各行各业发挥巨大影响力 的产品,本身就让人惊叹。在探究这些现象背后的原因前,首先来看一下 Linux和UNIX 之间的关系,这两个名词常常让人感到有些困惑。

  早在Linux出现之前的二十年(大约在1970年代),就有一个相当稳定的操作系统存在了,那就是老大哥“Unix”了,众所周知,Linux的核心是由Linus torvalds1991年发明的,但是为什么这个东西这么棒呢?为什么大家又可以免费使用呢?且听超哥慢慢的给你们唬。。。linux 第一天

1.1.1  Unix的历史

  UNIX的历史需要追溯到遥远的1969年,最初只是贝尔实验室的一个研究项目。10年后,UNIX被无常提供给大学研究和实验室的项目基础。尽管UNIX被免费提供,但获取源代码仍然要支付AT&T(美国电信公司)一定的许可证费用。,1977年,加州大学伯克利分校的计算机研究小组Bill Joy在取得Unix核心代码后,着手改成适合自己机器的版本,同时添加了很多工具软件,并且最终命名为 Berkeley Software Distribution(BSD)。这个BSD是Unix很重要的一个分支,Bill Joy也是【SUN】这样公司的创始人!

  简单的说,Linux是对UNIX的重新实现,世界各地的Linux开发人员借鉴了UNIX的技术和用户界面,并且融入了独创的技术改进。

1.1.2  开源潮流

  Linux的发展历程看起来是一个充满**色彩的故事。特别是,为什么有如此多的人向社区贡献源代码,而不索取任何酬劳并任由其他人免费使用?“因为他们乐于成为一个全球协作努力活动的一部分”, Linus这样回答说。开源成为了一种全球性的文化现象,无数的程序员投身到各种开源项目中,并且乐此不疲。事实上,社区合作已经成为了被广泛采用的开发模式。 Linux、 Apache、PHP、 Firefox等业界领先的各类软件产品均使用了社区开发模式并采用某种开源许可协议。包括Sun、IBM、 novell。、 Google甚至 Microsoft在内的很多商业公司都拥有自己的开放源代码社区。

  有意思的是,开放源代码的思想不仅仅根植于程序员的头脑中,更重要的是,社区合作演变成为了一种互联网文化。见证了*等产品的巨大成功,人们发现,用户创造内容这种所谓的Web2.0模式从本质上是同开源思想一脉相承的。已经有了多种不同的开放源代码许可证协议,包括BSD、Appache、GPL、MIT、LGPL等。其中的一些比较宽松,如BSD、 Apache和MIT,用户可以修改源代码,并保留修改部分的版权。 Linux所遵循的GPL协议相对比较严格,它要求用户将所作的一切修改回馈社区。关于开源协议的讨论常常是一个法律问题,一些法律系的学生会选择这方面的主题作为自己的毕业论文。在百度中输入关键字“开源协议”可以得到非常详尽的解答。

linux 第一天

 

1.2  Linux的发行版本

  其实啊Linux这个词并不能(代表)操作系统,Linux实际上只是定义了一个操作系统的内核,这个内核由kernel.org维护。不同的企业和组织在基础上开发了一系列的辅助软件,打包发布自己的“发行”版本。 

  linux 第一天

 

  很多新接触 Linux 的朋友都会从“最好用的Linux”,“最漂亮的Linux”,“用户最多的Linux”等关键字开始,就像很多朋友听音乐时常从“年度音乐风云榜”,“年度最受欢迎的男歌手”开始一样,它是一个快速了解最新动态的方法。那么在这里,超哥将从以下几个方面规划Linux发行版:

  • 系统管理易用性
  • 轻量级
  • 美观 桌面环境
  • 物联网
  • 服务端领域

最年轻的发行版:Nitrux

  Nitrux 是一个很新的系统,又名 nxos,它在很多 Linux 发行版榜单中可能都是最新的一个,开源工场小编看到的它的出生日期是:2017年12月29日发布它的1.0.8(能找到的第一个 release),可以说是2017的最最末尾了,不过你看到它的第一眼可能就会觉得这正是你脑子里想的那种设计,它真的很漂亮,Nitrux 基于 Ubuntu 的不稳定开发分支来构建的,所以 Ubuntu 的所有优点一并具有,同时尽力保持一个干净简单的用户环境,它的桌面环境是 Nomed 桌面环境,一个基于 KDE Plasma 5 的桌面环境,同时也包含 KDE 软件集。

linux 第一天

性能最好的发行版:clear Linux

当然,首先必须还是要说明,这个性能最好是指在普通用户中最常用的 X86 处理器平台,毕竟专用领域的特别开发的不应该放到通用领域来进行对比。

Clear Linux 是一个滚动更新发行版,主要专注于容器和云端。相比其它发行版,它采用了最具有进取性的优化策略以提供最快的性能,默认启用了许多编译器优化,运行时根据 CPU 类型自动选择最正确的架构特定代码版本。

但是,这个性能最好的发行版,其他发行版确实没法比,因为这得拼爹,要知道 Clear Linux 是英特尔推出的 Linux 
发行版,而去年底 Phoronix 的 Linux 企业发行版性能基准测试也显示,Clear Linux 是 x86 平台上性能最出色的发行版。

linux 第一天

软件包管理最好的发行版本:Arch Linux

  • Arch Linux 是一个为那些想了解 Linux 一切的人准备的发行版,因为你必须手动安装一切,它会让你学会基于 Linux 的操作系统的每个部分。
  • Arch Linux 是最可定制的发行版,你获得的只是一个基础系统,然后你可以在它上面建立属于你个人的发行版。不论好坏,它都不像 openSUSE 和 Ubuntu ,它没有额外的补丁和整合内容,你甚至可以获得上游开发者创建的内容。
  • Arch Linux 也是最好的滚动发行版之一。他总是更新,用户始终使用最新的软件包,并且他们还可以通过稳定的存储库运行预发布软件。
  • Arch 也因优异的文档闻名。 Arch Wiki 可以让我得到任何 Linux 相关的资料。
  • Arch 中我最喜欢的内容是它提供的所有的包和软件都可在“任何” Linux 发行版上运行。

linux 第一天

最适合系统管理员的发行版:CentOS Linux

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

linux 第一天

 

最好的教育发行版:ezgo Linux

ezgo 是一套开源、公益、免费、面向教育的电脑操作系统,基于Linux 而开发,包括 Ubuntu、openSUSE 在内的各大发行办其实都有教育风味版,但是小编没有选择它们,选择 ezgo 的原因是它包含有丰富的互动教学软件和开放教材、知识,涵盖了物理、化学、地理、天文、 生物、数学、计算机等学科,可以说是非常齐全,并且并不卖弄“Geek”以及技术,只是想单纯地让开源技术可以在教育领域使用和发挥生产力,矢志帮助学校的学生和教师的教育信息化,帮助孩子们和家长、老师以最方便最有效的方式接触、获取全世界最先进的知识和智慧,这是一个发源于*的开源项目,目前在国内是ezgo 中国社区,重庆Linux用户组 在维护、开发和推广。搜集了包括 PhET 在内的大量开源教材,它的官方网站是 http://ezgolinux.org/。关心教育的家长、学生和老师值得关注。

linux 第一天

最好的物联网发行版:Ubuntu Core

Ubuntu Core 再次轻松赢得了此称号。 Ubuntu Core 是一个小巧、简易化的 Ubuntu 
发行版,专门针对嵌入式和物联网设备。它的重点在于 snap 软件包,这是一个可以安装到平台上而不干扰基本系统的通用软件包。这些 snap 
软件包包含了运行的时候需要的一切依赖文件,所以就不用担心安装会影响操作系统(或者其它已安装软件)。同时,这些安装包很容易更新,也可以运行在一个独立的沙盒内,这一切都使得它对于
IoT 来说是一个完美的解决方式。

Ubuntu Core 安全方面上还体现在用户登录机制。 Ubuntu Core 运用的是 Ubuntu One ssh **,所以只能通过上传 ssh **到一个 Ubuntu One 账户中的方式登录系统。这就使得你的 IoT 设备更加的安全。

linux 第一天

 

1.2.1  哪种发行版最好

  在过去的10年中, Red hat公司一直是 Linux乃至开源世界的领导者。2003年,公司高层决定将其产品分成两个不同的发行版本。商业版本被称为 Red Hat Enterprise Linux,

 这个发行版本专注于企业级应用,并向使用它的企业提供全套技术支持, Red Hat公司从中收取相关许可证费。

  RedHat Linux对硬件的支持非常友好,主流硬件厂商早早的将服务器拿去测试,很少遇见硬件兼容性问题,大量的商业软件都是基于RedHat认证的,例如Oracle。

Linux内核代码的贡献,redhat厂商的大牛也是最多,要知道全世界的互联网大客户,一般都会使用商业服务器,因为出了问题有专业的技术人员技术支持。

Centos是Redhat的克隆版,使用方法几乎和redhat一样。

 

为何重点推荐redhat,原因是熟悉了centos/redhat找工作更容易。。。linux 第一天

 

linux 第一天

  

  另一个发行版本被称为 Fedora,其开发依托于 Linux社区。尽管 Fedora从名字上已经不再打着 Red Hat的旗号,但是这两个发行版本依然保持着很大程度上的相似性。另一个走上几乎相同路线的 Linux发行版本是 SUSE Linux。

   这个目前由 Novell公司运作的 Linux发行版本分为 SUSE Linux Enterprise和 openSUSE两种,前者由 Novell提供技术和服务支持,后者则由 Linux社区维护并免费提供。相对于 Fedora而言, openSUSE似乎能够得到更多的来自其商业公司的支持。个很有意思的发行版本是 Centos,这个发行版本收集了 Red Hat为了遵守各种开源许可证协议而必须开放的源代码,并且打包整理成一个同 Red Hat Enterprise非常相似的Linux发行版本。 CentoS完全免费,这对于那些希望搭建企业级应用平台,而又不需要RedHat公司服务支持的团队而言是一个好消息。毕竟,钱是很多时候必须首要考虑的问题。Debian和 Ubuntu依旧保持着原始的 Linux精神。这两个发行版本由社区开发,并且完全向用户免费提供。其中 Ubuntu至今享受着南非企业家 Mark Shuttleworth的资助,用户可以登录其官方网站预定安装光盘。 Canonical( Ubuntu社区的授权公司)会为此支付切费用,甚至包括邮费。

linux 第一天

主要使用客户是中国移动、中国电信、交通银行、浦发银行等等安全性极高的客户

1.3  Linux与Windows的区别

免费与收费

  • 最新正版Windows10官方售价¥888
  • Linux几乎免费(更多人愿意钻研开源软件,而收费的产品出现更多的盗版)

linux 第一天linux 第一天

软件与支持

  • Windows平台:数量和质量的优势,补过大部分为收费软件;由微软提供技术支持和服务
  • Linux平台:大多为开源软件,用户可以修改定制与发布,由于免费没有资金支持,部分软件质量可能欠缺

linux 第一天

安全稳定性

  • Windows平台:三天两头修复补丁,仍然会中毒(即便装了360,瑞星,金山毒霸。。。。)
  • Linux平台:安全问题很少,无需安装xx杀毒,xx卫士

 linux 第一天

 

使用习惯

  • Windows:普通用户基本依靠图形界面操作,鼠标和键盘完成一切需求,上手简单容易
  • Linux:兼具图形界面(需要带有桌面环境的发行版Linux)和完全命令行操作,无法使用鼠标,新手入门困难,需要学习后方可使用,熟练后效率极高!

linux 第一天

应用领域

  • Linux:人们日常在Windows*问的百度、谷歌、淘宝、qq、迅雷(xxxx大片),支撑这些软件运行的,后台是成千上万的Linux服务器,它们时时刻刻进行着忙碌的数据处理和运算
  • Windows:可以运行英雄联盟、绝地求生、仙剑三、地下城与勇士、我的世界。。。等等游戏,而Linux开发的游戏几乎很少 

 linux 第一天

 总结 

linux 第一天
1.操作系统是什么
是人与计算机硬件沟通的介质

2.操作系统组成---鸡蛋由几部分组成
1)蛋黄-系统内核
2)蛋清-命令解释器shell
3)蛋壳-应用程序

3.Linux是一套开放源代码程序、且可以*传播的操作系统