本章简单的介绍一下计算机的基础。
计算机系统的组成
计算机系统是由硬件(Hardware)系统和软件(Software)系统两大部分组成。
计算机的硬件组成
冯·诺依曼体系结构:1946年数学家冯·诺依曼提出,计算机硬件由运算器、控制器、存储器、输入设备和输出设备五大部分组成。
服务器的类型
- 塔式服务器
类似于个人的PC电脑。 - 刀片式服务器
在标准高度的机架式机箱内装入可插拔的卡式服务器但愿,实现高可用和高密度。 - 机架式服务器
IDC常用机型,按照统一标准设计,配合机柜统一使用。
优点是便于统计管理,高密度,节省空间。
通常以U来计算高度,一般有1U,2U,3U,4U,5U等标准服务器。
服务器的硬件组成
- CPU
- 内存
- 硬盘
- 风扇
- 电源
- 网卡
- PCI
- 阵列卡(raid卡)
- 显卡(部分机型)
CPU
CPU是Central Processing Unit的缩写,即中央处理器。由控制器和运算器构成,是整个计算机系统中最重要的部分。
服务器常用的CPU是Intel的Xeon(至强系列)、AMD的Althlon MP等
CPU的重要参数:
类型:X86、X64、ARM、Power等
主频:主频是CPU的时钟频率(CPU Clock Speed),是CPU运算时的工作的频率(1秒内发生的同步脉冲数)的简称。单位是Hz。一般来说,主频越高,CPU的速度越快,由于内部结构不通,并非所有的时钟频率相同的CPU的性能都一样。
外频:系统总线的工作频率,CPU与外部(主板芯片组)交换数据、指令的工作时钟频率。
倍频:倍频是指CPU外频与主频相差的倍数。
三者关系是:主频=外频X倍频。
高速缓存(cache):告诉交换的存储器。CPU缓存分为一级,耳机,三级缓存,即L1,L2,L3。
内存总线速度(Memory-Bus Speed):一般等同于CPU的外频,指CPU与耳机(L2)高速缓存和内存之间的通信速度。
地址总线宽度:决定了CPU可以访问的物理地址空间。
主板
主板是计算机最基本的硬件组成之一,也是最重要的部件之一。主板提供了其他硬件的接口。
内存
内存是位于于CPU和外部存储之间的介质,是CPU对外部存储中程序与数据进行高速运算时存放程序指令、数据和中间结果的临时场所,它的物理是指就是一组具备数据输入输出和数据存储功能的高速集成电路。
内存是CPU能直接寻址的存储空间,由半导体件支撑。内存的特点是存取速度快。
常见的内存品牌有:三星、镁光等,服务器的常用内存为ECC可纠错内存。
容量:即该内存的存储容量,单位一般为”MB”或”GB”。
内存带宽:
内存带宽是指内存与北桥芯片之间的数据传输率,单通道内存截止期一般都是64-bit的,8个二进制位相当于1个字节,换算成字节是64/8=8,再乘以内存的运行频率,如果是DDR内存就要再乘以2。内存的计算公式:内存带宽=内存总线频率X数据总线位数/8
举例:DDR内存带宽计算
DDR2 667,运行频率为333MHz,带宽为:
333x2x64/8=5400MB/s=5.4GB/s
硬盘
服务器的硬盘一般为IDE、SCSI、SAS、SATA接口类型的硬盘。
IDE接口:硬盘接口规范,采用ATA技术规范
SCSI接口:应用于小型机上的高速数据传输技术
SAS接口:SAS接口盘一般转速为10K、15K,读取速度较快,但一般容量较小,一般用作系统盘或热数据存储专用盘。
SATA接口:SATA接口盘一般转速为7.5K,一般容量较大,用作数据盘使用。
目前主流的硬盘接口为SAS和SATA,并支持热插拔。
阵列卡(raid卡)
用来实现RAID的简历和重建,检测和修复多位错误,错误磁盘自动检测等功能。RAID芯片使CPU得资源得以释放。阵列卡一般支持RAID 0、1、5、50、6、60、直通模式。通常带有电池,可以保护数据。
电源和风扇
电源是服务器的电力支撑。一般电源支持冗余功能,可以保证服务器7x24小时运行。
风扇是服务器的散热组件,服务器经常高负荷运行,会产生很大热量,风扇可以使服务器在正常的热量运行。
显卡
集成显卡:服务器的主板上都集成了显卡,但是显存容量不高,一般为16M或32M。
GPU:一般用在GPU计算服务器上。
网卡
集成网卡:服务器会在主板上集成网卡,传输速率可根据型号选择1G或10G。
额外网卡:服务器可根据需求,在PCIE插槽安装网卡,可以让服务器有更多的网络接口。
操作系统
OS:Operating System,通用目的的软件程序。
硬件驱动
进程管理
内存管理
网络管理
安全管理
文件系统
OS分类:
服务器OS:RHEL,CentOS,Windows Server,AIX
桌面OS:Windows 10,Windows 7,Mac OS,Fedora
移动设备OS:Andriod,IOS,YunOS
内核
内核功能简介
内核,是基于硬件的第一层软件扩充,是操作系统的核心,提供操作系统最基础的功能,是操作系统的基础。它为众多应用软件提供计算机硬件的安全访问的一部分软件,这种访问资源是有限的,硬切内核决定一个程序对某部分硬件资源分配和占用多久进行管理。直接对硬件操作是非常复杂的,所以内核通过提供硬件抽象的方法来完成操作,硬件的抽象隐藏了复杂性,对软件提供和硬件交互的一个简洁的接口,使程序设计更为简单。一个内核不是一套完整的操作系统,比如一套基于Linux内核的完整操作系统叫做Linux操作系统,或是GNU/Linux。
内核的作用
1.进程管理
内核负责创建和销毁进程,并处理它们与外部世界的联系(输入和输出),不同进程间通讯(
通过信号、管道、或者进程间通讯原语)对整个系统功能来说是基本的,也有内核处理。
另外,调度器、控制进程如何共享CPU,也是进程管理的一部分。更通常地,内核的进程管理活动实现了多个进程在一个单个或者几个CPU之上的抽象。
2.内存管理
计算机的内存是主要的资源,处理它所用策略对系统性能是至关重要的。内核为所有进程的每一个都在有线的可用资源上简历了一个虚拟地址空间。内核的不同部分与内存管理子系统通过一套函数调用交互,从简单的malloc/free对到更多更复杂的功能。
3.文件管理
Linux在很大程度上基于文件系统的概念:几乎Linux中的任何东西都可以看做是一个文件。内核在非结构化的硬件之上建立了一个结构化的文件系统,结果是文件的抽象非常多地在整个系统中应用。另外,Linux支持多个文件系统类型,就是说,物理介质上不同的数据组织方式。例如,磁盘可被格式化为标准Linux的ext4系统、普遍使用的FAT文件系统或其他几个文件系统。
4.驱动管理
几乎每个系统操作都映射到一个物理设备上,处理处理器、内存和非常少的别的实体之外,全部中的任何设备操控操作都由特定于要寻址的设备相关的代码来进行。这些代码称为设备驱动。内核中必须嵌入系统中出现的每个外设的驱动,从硬盘驱动到键盘和磁带驱动器。
5.网络管理
网络必须由操作系统来管理,因为大部分网络操作不是特定于某一个进程:进入系统的报文是异步事件。报文在某一个进程接手之前必须被收集、识别和分发。系统负责在程序和网络接口之间递送数据报文,它必须根据程序的网络活动来控制程序的执行。另外,所有的路由和地址解析问题都在内核中实现。
常见的Linux发行版
slackware: SUSE Linux Enterprise Server(SLES) 、OpenSuse桌面
debian: ubuntu,mint
redhat: RHEL:RedHat Enterprise Linux 每18个月发行一个新版本
CentOS: 兼容RHEL的格式
中标麒麟: 中标软件
Fedora:每6个月发行一次版本
ArchLinux:轻量简洁
Gentoo:极致性能,不提供传统意义的安装程序
LFS:Linux From scratch 自制Linux
Android:kernel+busybox(工具集)+ java虚拟机
服务器中Linux系统常用的版本是:CentOS、Redhat、Ubuntu。
Linux中的开源协议
开源
Open Source,软件和源代码提供给所有人,能分发软件和源代码,能够修改和创建衍生作品。
软件分类
商业、共享、自由free
开源协议
世界上的开源许可证,大概有上百种
- GPLv2,GPLv3,LGPL(lesser):通用公共许可copyleft
- Apache:apache
- BSD:bsd
- Mozilla
- MIT
开源协议的区别
Linux哲学思想
- 一切都是一个文件(包括硬件)
- 小型,单一用途的程序
- 链接程序,共同完成复杂的任务
- 避免令人困惑的用户界面
- 配置数据存储在文本中
Linux目录结构以及目录结构命名规定
CentOS 6
1 | [root@centos6 /]# tree -L 1 |
CentOS 7
(此处各文件夹的说明略,只说明变动的地方)
1 | [root@centos7 /]# tree -L 1 |
Linux的文件系统
- 文件和目录被组织成一个单根倒置树结构
- 文件系统从根目录下开始,用”/“表示
- 跟文件系统(rootfs):root filesystem
- 文件名称区分大小写,区分大小写,区分大小写(#重要的事情说三遍)
- 以.开头的文件为隐藏文件
- 路径使用/分隔
- 文件有两类数据:元数据(metadata)和数据(data)
- 文件系统分层结构:LSB Linux Standard Base
- FHS:
文件名的规则
- 文件名最长255个字节
- 包括路径在内,文件名最长4095个字节
- 蓝色–>目录
绿色–>可执行文件
红色–>压缩文件
浅蓝色–>链接文件
灰色–>其他文件 - 除了斜杠和NUL,所有字符都有效。但使用特殊字符的目录名和文件不推荐使用(文件名最好见名知意,别人看了也好理解)
- 标准Linux文件系统(如ext4),对文件名称大小写敏感
Linux下的文件类型
- “-“ 普通文件
- d 目录文件
- b 块设备
- c 字符设备
- l 符号链接文件
- p 管道文件pipe
- s 套接字文件socket