现代计算机是基于冯·诺依曼体系结构,由运算器、控制器、存储器、输入设备、输出设备五大部分组成,如下图所示
它们各司其职,完成了数据的计算、存储、传输任务。
下面是它们各个组件的功能介绍:
CPU:也被称为中央处理器,由运算器和控制器组成,其主要作用是数据计算(从内存中获取指令并执行后将结果返回给内存或者写入到磁盘)和控制其他设备(声卡显卡,鼠标键盘)协同工作。
内存:采用编址存储,其主要作用是用来作为程序的工作区,程序运行时其数据和指令会被加载到内存,断电后数据会丢失。
硬盘:其主要作用是永久性存储海量数据(TB/PB级别),分为机械式硬盘和固态硬盘两大类。
IO设备:其主要作用是用来数据的输入输出,常见的输入设备包括鼠标键盘,常见的输出设备包含声卡,显卡,打印机等等。网卡主要是负责在网络上的传输数据。
在后期运维排除故障时除了考虑程序本身的错误之外还要考虑计算机硬件故障(例如磁盘被写满,网络不通)等问题。
软件出现的作用是实现了人和计算机更好的交互,它是由开发人员采用某种编程语言来编写一系列的指令以及产生的数据组成。
不同平台的软件有不同的交互方式:
服务器端:运维开发人员基于命令行的字符界面实现人机交互。
PC桌面端:开发人员、普通用户通常是基于图形化界面实现人机交互。
移动端:用户通常是通过语音,手势触控实现人机交互。
而软件通常被分为系统软件和应用软件
系统软件:系统软件有操作系统,编译器、数据库等等。
应用软件:应用软件有淘宝、京东、微信、支付宝等等。
操作系统(Operating System)是实现通用目的的程序,其内核负责和底层硬件交互,应用软件运行在操作系统之上。因此操作系统起着承上启下的作用,操作系统提供的功能如下
操作系统分类:
操作系统在计算机系统所处的位置
计算机运行的功能流程如下图所示
聊天:应用程序监听键盘输入的数据,放到内存,然后传给网卡,通过网络传递给另外一个网卡,再从网卡传到内存,显示在显示器上。
听音乐:应用程序将音乐数据加载到内存之后,然后写到声卡上。
看视频:应用程序将视频数据加载到内存,然后写到显卡上。
读文档: 应用程序将磁盘中的文档数据加载到内存后显示到屏幕上。
写文档: 应用程序将内存中的数据写入到磁盘上。
在计算机最底层,数据都是以二进制(01010)的补码方式存储,而计算机中最小的存储单位是位(bit),用来表示0或者1。
计算机中最基本的存储单位是字节(Byte),1个字节对应8个位(Bit)。
而日常应用中常使用的基本存储单位包括KB,MB,GB,TB。它们之间都是以1024换算的,如下所示
1TB=1024GB
1GB=1024MB
1MB=1024KB
1KB=1024B
1B=8bit
现在通常笔记本的内存通常是8G,16G,32G,64G等等,而运行在笔记本之上的操作系统普遍都是64位的,因为32位系统只能使用4G内存,下面是4G的内存换算
4G=2^2 * 2^10 * 2^10 * 2^10 =4*1024*1024*1024=2^32
使用迅雷下载某些资源时的网速就是KB或者MB,而网络运营提供商(例如长城宽带、移)声称的百兆带宽实际上是100Mb(bit),但是网络下载速度是以字节(KB)为单位的,因此真实的网速(下载速度)理论上只有100Mb/8=12.5MB
在购买内存或者买移动硬盘时,通常使用的存储单位就是GB或者是TB,
但是在买4T的移动硬盘时,实际的可用容量却只有3T多,因为计算机的存储单位是以2的10次方(即1024)换算,而硬盘厂商们是以1000为换算单位。
4T的硬盘换算成位如下所示
4T=4*1024GB*1024MB*1024KB*1024B*8bit
而硬盘厂商的实际容量
4T=1000*1000*1000*1000*8
因此实际的可用容量是
4*1000*1000*1000*1000/1024/1024/1024/1024≈3.63T
而在一些互联网巨头(例如国内的BAT,国外的亚马逊、苹果、微软、谷歌,脸书)公司中,可能使用到比TB更大的海量数据,也就是PB或者EB,ZB,它们的换算单位如下所示。
1PB=1024TB
1EB=1024PB
1ZB=1024EB
1YB=1024ZB
1BB=1024YB
1NB=1024BB
1DB=1024NB
DELL,HP和IBM是互联网公司中使用最常用的服务器品牌。
其中互联网公司中使用最广泛的品牌DELL常见的服务器型号按照不同的用途分为2u的R730/R830和4U的R930,其中1U表示高度为4.45cm,其结构类型是机架式,如下图所示。
服务器中重要的组件包含电源(如果是单台服务器通常都是双路电源,集群场景不需要使用双路电源),主板(作用类似于人体的骨架),CPU,内存和磁盘,网卡(集成在主板上)等等。
而系统运维人员需要重点关注服务器的CPU、内存、磁盘三大核心组件!
CPU :服务器常用的CPU是基于X86指令集的英特尔至强Xeon( E3, E5, E7系类),根据用途不同服务器的CPU通常是2-4颗,单颗CPU是4-8核,如果是做虚拟化宿主机则需要4-8颗CPU,虚拟6-10个虚拟机。
内存:服务器的内存区间通常是16-256G(32G-64G更多),如果是做虚拟化的宿主机,内存总量一般是48-128G,用来虚拟6-10个虚拟机。
32位系统最多寻址2的32次方也就是4G个内存空间,64位系统最高寻址内存可以达到2的64次方也就是4G*4G内存空间,但是由于其他组件限制,实际使用不了那么多,64位Linux支持内存为16EB。
磁盘:服务器的磁盘接口类型通常分为SATA(转速7200转/分),SAS(转速10000-15000转/分),SSD三种。
通常不对外访问的业务(例如线下数据备份)采用SATA,STAT的特点是容量大,价格便宜但是速度比较慢。
而常规正式的工作场景选用SAS硬盘,机械磁盘转速高的性能好。
高并发,小数据量(TB)时选用SSD。
考虑到经济效益,互联网公司通常根据不同的应用场景都是SATA,SAS和SSD混合使用。
每个计算机组件的IO性能也各不相同,核心组件(CPU,内存,磁盘)都遵循容量越大,IO性能越差,如下图所示,汇总了它们的IO性能。
在后期系统优化和架构设计时,通常需要注意各个硬件组件的瓶颈
Unix的发展路线以及各个分支可以参考如下图所示
GUN概述
由于Unix面临商业化版权制约以及源码面临闭源的问题,1984年Ritchard Stallman发起了开发自由软件的运动,并成立自由软件基金会(Free Software Foundation)和GNU(GUN is Not Unix)项目以及GPL(GNU General Public License)协议,目标是编写大量兼容于Unix系统的自由软件。GNU项目最终产出了Linux系统的重要组件,包括GCC编译器,Emacs编辑器,bash命令解释程序和编程语言以及gawk。
自由不代表免费,例如RedHat的RHEL是自由但是不免费的操作系统,提供的服务收费。
GPL是保证任何人有共享和修改自由软件的自由,任何人有权获取、修改、发布自由软件的源代码的权利,但同时给出具体的修改的源码。LGPL(Lesser General Public License)相对于GPL较为宽松,允许不公开全部源代码。
开源软件
开源指的是软件和源码提供给所有人,同时能够自由分发软件和源代码,能够自由的修改和创建其衍生品。
而目前软件类型可以分为商业软件,共享软件以及自由软件。
目前世界上开源软件有不同的开源许可证,常见的有Apache,MIT,LGPL等等。
我们通常所说的Linux通常指的是内核(kernel),而如果只有内核,就不是一个完整的操作系统,还需要许多能够解决实际问题的应用程序。
而最早期的Linux内核是由Linus Torvalds在大学教授Andrew Tanenbaum开发的Minix基础之上开发的,1991年年底发布了Linux内核的0.02版本,自那以后全世界的开源爱好者们共同推进着Linux系统的发展,使其在服务器端,嵌入式和PC桌面得到了广泛的运用。
Linux系统=Linux内核+GNU项目组件+各种应用程序(Apache,Nginx,Zabbix)
完整的Linux系统架构图如下图所示
内核主要是实现系统内存管理,软件程序管理,硬件设备管理,文件系统管理
GNU组件主要包含处理文件(gawk)、操作文本、管理进程的工具以及shell,gcc等等
常见的应用程序包含不同的图形化界面(KDE,GNOME,XFace),运行于桌面端的Firefox,Chrome和运行于服务端Nginx,Apache等等。
Linux系统的特点(继承Unix之外的)
为了便于Linux系统的安装和使用,诞生了诸如RedHat公司的Linux发行商,将Linux内核和各种系统组件以及应用组件组合成一个完整的操作系统。
目前主流的Linux发行版主要由三个,分别是RedHat,Debian和Slackware,后续主流的RHEL,Ubuntu,Open SUSE都是基于前面三个分支演进而来的。
如下列表展示出了目前主流的Linux分支以及发行版本
关于RHEL和CentOS的关系:CentOS是基于RHEL源码编译而来,仅仅去除了RHEL源码的商标以及非自由软件部分。
面对如此多的发行版该如何选择呢?
如果你想从事Linux系统运维与架构设计的工作,推荐使用CentOS6.10版本或者CentOS7.6。
如果是想尝试下Linux的桌面版,推荐可以使用Open SUSE LEAP 42.3或者Ubuntu18.04。
如果以上的发行版无法满足你的需求,可以访问下面的连接,获取所有的Linux发行版信息。
https://upload.wikimedia.org/wikipedia/commons/1/1b/Linux_Distribution_Timeline.svg
经过20多年的发展,如今的Linux在服务器领域、桌面领域、移动嵌入式领域和云计算、大数据领域占据了广阔的市场。
其中服务器领域在全球占据了75%的市场份额
而Ubuntu也作为最流行的桌面版Linux,基本可以满足日常办公需要,但是普及远远不及Windows。
通过Linux系统架构图可以得知手机操作系统Android的内核就是基于Linux修改而来的。
原文:https://www.cnblogs.com/ittimeline/p/10236566.html