系统知识
一、计算机系统
计算机系统由硬件(Hardware)系统和软件(Software)系统两大部分组成;
计算机(Computer):俗称电脑,是一种能接受和储存信息,并按照储存在其内部的程序对海量数据进行自动、高速地处理,然后把处理结果输出的现代化智能电子设备。
计算机存储单位;
1k=1024=2^10
1M=1024k=2^20
1G=1024M
1T=1024G
可在Windows磁盘属性配额栏中查看后续存储单位即:
1P 1E 1Z 1Y 1B 1N 1D
*在日常工作中需要注意对cp命令进行限速
二、计算机硬件组成部分
冯 · 诺依曼体系结构:1946年数学家冯 · 诺依曼提出即
运算器、控制器、存储器、输入设备、输出设备
主存储器(RAM断电即丢失) -内存 -处理数据(决定运行速度)
辅助存储器 -硬盘 -存储数量
输入设备 -键盘、触摸屏等
输出设备 -屏幕、音响
运算器、控制器整合为cpu
*计算机处理数据是基于2进制的
摩尔定律
由英特尔(Inter)创始人之一戈登 ·摩尔与1965年提出
即:当价格不变时集成电路上可容纳的元器件的数目,约每隔18-24个月便会增加一倍;性能也随之增加一倍。
按规模划分
- 巨型计算机:www.top500.com
- 大型计算机:具有较高运算速度,IBM
- 小型计算机:规模较小、结构简单
- 微型计算机:办公自动化及大众化信息处理
服务器(serve)——客户端(client)
服务器按应用功能可分:
Web服务器(静态页面)、数据库服务器(mysql)、文件服务器、中间件应用服务器(tomcat)、日志服务器(elk)、监控服务器(zabbix)、程序版本控制服务器(git)、虚拟服务器(kvm)、邮件服务器、ERP服务器【Windows下DC (domain controller) AD (active directory) 活动目录】...
Docker
K8s
lvs、 haproxy调度器:引导员角色-调动负载
keepalive 高可用性,监控,接管调度器
varnish 前端缓存 缓存提供性能保证
menmcached、redis 数据库缓存
miglefd 分布式文件系统(由多个机器组成为一个服务器) ntfs fat
fastdfs
dns 名字解析
ansible puppet 运维自动化
*避免单点失败:一点失败全局失败
服务器按外形分类
塔式服务器(尺寸不标准) 目前较少使用
机架式服务器
机架高2m左右(42U),宽度19英寸(48.26cm)高度单位为U,1U=1.75英寸=44.45毫米、通常有1U、2U(主流)、3U、4U(主流)、5U、7U
刀片式服务器
服务器分类
非x86服务器:精简指令集(指令不多并且长度一样)稳定性好,性能强,在金融、电信等大型企业的核心系统。
X86服务器:复杂指令集(指令多且长度不同)价格便宜、兼容性好、稳定性较差、且不安全
阿里去IOE化:I-IBM小型机 O-oracle数据库 E-emc存储
服务器硬件组成
服务器硬件——CPU
CPU(Center Processing Unit),即中央处理器;由控制器和运算器构成,是整个计算机系统中最重要的部分。
服务器Cpu公司: Intel(Xeon至强)AMD(Althlon MP)IBM(Power)
主频:主频是CPU的时钟频率(CPU Clock Speed),是CPU运算时的频率的简称;单位Hz。一般来说主频越高,CPU的速度越快;由于内部结构不同,并非所有的时钟频率相同的CPU的性能都一样。
主频=外频(cpu与外部主板芯片组交换数据、指令的工作时钟频率)x倍频(cpu外频与外频与主频相差倍数)
地址总线宽度:决定可访问的物理地址空间;32位(2^32 对于4G内存)、64位地址总线宽度
服务器硬件——主板
主板(mainboard)、系统板systemboard或母版motherboard;主板一般为矩形电路板、上面安装了计算机的主要电路系统,一般有BIOS芯片、I/O控制芯片.......
服务器硬件——内存
内存是介于CPU 和外部存储之间,是CPU 对外部存储中程序与数据进行高速运算时存放程序指令、数据和中间结果的临时场所,它的物理实质就是一组具备数据输入输出和数据存储功能的高速集成电路。
内存是CPU能直接寻址的存储空间,由半导体器件制成。内存的特点是存取速度快
计算机中所有程序的运行都是在内存中进行的,因此内存的性能对计算机的影响非常大
外存:硬盘,U盘,软盘,光盘
内存和外存的区别:
内存断电后数据丢失
外存断电后数据可以保存
容量:即该内存的存储容量,单位一般为“MB”或“GB”
内存带宽:
内存带宽是指内存与北桥芯片之间的数据传输率单通道内存节制器一般都是64-bit的,8个二进制位相当于1个字节,换算成字节是64/8=8,再乘以内存的运行频率,如果是DDR内存就要再乘以2
计算公式:
内存带宽=内存总线频率×数据总线位数/8
示例:DDR内存带宽计算
DDR2 667,运行频率为333MHz,带宽为
333×2×64/8=5400MB/s=5.4GB/s
服务器硬件——硬盘
机械硬盘结构:
存储介质(Media)——盘片
盘片的基板是金属或玻璃材质制成,为达到高密度高稳定的质量,基板要求表面光滑平整,不可有任何暇疵
读写头(Read Write Head)——磁头
磁头是硬盘读取数据的关键部件,它的主要作用就是将存储在硬盘盘片上的磁信息转化为电信号向外传输
马达( Spindle Motor & Voice Coil Motor )
马达上装有一至多片盘片,以7200,10000,15000 RPM等定速旋转,为保持其平衡不可抖动,所以其质量要求严谨,不产生高温躁音
硬盘接口类型:
IDE接口:硬盘接口规范,采用ATA技术规范
SCSI接口:应用于小型机上的高速数据传输技术
SATA接口: Serial ATA,提高传输速率,支持热插拔
SAS接口: Serial Attached SCSI,兼容SATA
目前主流的硬盘接口为SATA和SAS接口
服务器的性能短板:
如果CPU有每秒处理1000个服务请求的能力,各种总线的负载能力能达到500个,但网卡只能接受200个请求,而硬盘只能负担150个的话,那这台服务器得处理能力只能是150个请求/秒,有85%的处理器计算能力浪费了
SSD硬盘:
SSD(Solid State Disk)泛指使用NAND Flash组成的固态硬盘。其特别之处在于没有机械结构,以区块写入和抹除的方式作读写的功能,因此在读写的效率上,非常依赖读写技术上的设计SSD读写存取速度快,性能稳定,防震性高,发热低,耐低温,电耗低,无噪音。因为没有机械部分,所以长时间使用也出现故障几率也较小。缺点:价格高,容量小,在普通硬盘前毫无性价比优势
服务器硬件——热插拔技术
称为热交换技术(Hot Swap),允许在不关机的状态下更换故障热插拔设备
常见的热插拔设备:硬盘,电源,PCI设备,风扇等热插拔硬盘技术与RAID技术配合起来,可以使服务器在不关机的状态下恢复故障硬盘上的数据,同时并不影响网络用户对数据的使用
存储基础知识——存储网络
存储网络:
DAS-----直接连接存储(Direct Attached Storage)
NAS-----网络连接存储(Network Attached Storage)
SAN-----存储区域网络(Storage Area Networks)
三、操作系统
OS: Operating System,通用目的的软件程序
硬件驱动
进程管理
内存管理
网络管理
安全管理
文件管理
OS分类:
服务器OS:RHEL, CentOS,WindowsServer,AIX
桌面OS:Windows 10,Windows 7,Mac OS,Fedora
移动设备OS:Andriod,IOS,YunOS
开发接口标准
ABI: Application Binary Interface
ABI描述了应用程序与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无改动就能运行
API:Application Programming Interface
API定义了源代码和库之间的接口,因此同样的源代码可以在支持这个API的任何系统中编译
POSIX: Portable Operating System Interface
IEEE在操作系统上定义的一系列API标准
POSIX兼容的程序可在其它POSIX操作系统编译执行
运行程序格式:
Windows: EXE, .dll(dynamic link library),.lib
Linux: ELF, .so(shared object), .a
Library function和system call
用户和内核空间
用户空间:User space
用户程序的运行空间。为了安全,它们是隔离的,即使用户的程序崩溃,内核也不受影响只能执行简单的运算,不能直接调用系统资源,必须通过系统接口(system call),才能向内核发出指令
内核空间:Kernel space
是Linux 内核的运行空间
可以执行任意命令,调用系统的一切资源
示例:
str= “www.magedu.com" // 用户空间
x = x + 100 // 用户空间
file.write(str) // 切换到内核空间
y = x + 200 // 切换回用户空间
第一行和第二行都是简单的赋值运算,在User space 执行。第三行需要写入文件,就要切换到Kernel space,因为用户不能直接写文件,必须通过内核安排。第四行又是赋值运算,就切换回User space
编程语言
低级语言
机器语言:0和1
汇编语言:和机器语言一一对应,与硬件相关的特有代码、驱动程序开发
中级语言:C
系统级应用、驱动程序
高级语言:java,Objective-C,C#,python,php,go
应用级程序开发