1 计算机系统
1.1 基本原则
硬件——CPU + 内存 + 外设
软件——系统软件 + 应用软件
冯诺依曼体系结构——运算器+控制器+存储器+输入+输出
其中CPU=运算器+控制器
8bit = 1byte(字节)
1.2 关于服务器
服务器server是计算机的一种!
服务器硬件组成=CPU + 主板 + 内存 + 硬盘 + 网卡 + 其他硬件
机架式Rack服务器(统一标准制作)宽度19英寸高度单位为U
1U=1.75英寸=44.45mm分为1U、2U、3U、4U、5U、7U(主流为2U、4U)
机架总高度一般为42U(约2m)
服务器的CPU一般使用Intel Xeon(至强)
手机CPU一般使用高通骁龙/华为麒麟
1.2.1 中央处理器CPU
按照CPU的体系架构可分为:
非x86服务器RISC:价格昂贵、体系封闭、稳定安全(精简指令集)
全世界超过95%的智能手机和平板电脑都采用ARM架构(典型的精简指令集微处理器)
x86服务器CISC:便宜、兼容性好、稳定性较差(复杂指令集)包括Intel、AMD
之所以称为X86,是因为最早Intel的CPU型号是8086,后来出现了80286,80386,80486,80586等,所以之后的Intel和其兼容的厂商的生产CPU都称为X86 CPU为了区别,一般将64位的CPU称为X86-64不同厂商称呼有所不同,AMD 64,x86-64,x64都指的是基于X86的64位CPU
主要性能指标:
主频是CPU的时钟频率,是CPU运算时1秒内发生的同步脉冲数
高速缓存高速交换的存储器
内存总线速度
地址总线宽度
1.2.2 主板mainboard
一般为矩形电路板,安装了组成计算机的主要电路系统
提供插槽——插入内存、硬盘、CPU
1.2.3 内存RAM
是CPU进行高速运算时存放数据的临时场所(一种高速集成电路)
是CPU能够直接寻址的存储空间,特点是存取速度快
计算机中所有程序的运行都是在内存中进行的(关键性)
外存:硬盘、光盘、U盘内存(RAM)断电后数据丢失!外存(ROM)可以断电保存!
内存带宽:内存与芯片之间的数据传输率(基本单位为字节byte)
内存带宽 = 内存总线频率 x 数据总线位数 / 8
单通道DDR内存带宽计算:DDR4-4000 : 4000MHz x 64bit/8=32000Mb/s(理论值)双通道则为2倍!
出现多位错或物理故障时,保证系统仍然正常运行的办法:
在线备用内存技术(由备用内存接替工作)
内存镜像(数据同时写入两个镜像的内存区域)
1.2.4 硬盘
机械硬盘(损坏可恢复)信息存储在盘片中、读写头为磁头、高速马达、固定转速
容量——MB/GB/TB
转速——单位为rpm,每分钟转速
传输速率——读写速率,MB/s
缓存——为了解决系统前后级读写速度不匹配的问题(提速)
硬盘接口类型(家用)SATA接口——提高速率、支持热插拔(服务器)SAS接口——兼容SATA
固态硬盘(损坏不可恢复)泛指使用NAND flash组成的固态硬盘
无机械结构,以区块写入和抹除的方式来进行读写
读写速度快!性能稳定!价格高、容量小
改进思路:把数据放进缓存,大大提升处理速度(缓存为王)
1.2.5 网卡
服务器都在主板上集成了网卡,传输速率为1Gbps,即千兆网卡
特殊应用需要用到高端网卡,如光纤网卡。。。速度可达10Gpbs、20Gbps,即万兆网卡
1.2.6 阵列卡Raid
用来实现RAID的建立和重建,检测修复多位错误,错误磁盘自动检测
RAID芯片使得CPU的资源得以释放
把若干磁盘按照一定要求组成一个整体(一个由阵列控制器管理的系统)
此卡用来提高磁盘子系统的性能及可靠性
性能参数:
支持的RAID级别
阵列卡缓存
电池保护
1.2.7 各种硬件处理速度
总体性能短板的影响因素:综合CPU、网卡、内存、硬盘
各个处理能力取最低值(木桶效应)
因此硬盘读写速率成为性能瓶颈!
各种硬件处理速度CPU > 缓存 > 内存 > 固态硬盘 > 机械硬盘
2 操作系统(operating system)
2.1 基本概念
操作系统本质是一个软件,为了实现一些通用的目的
包括:硬件驱动/进程/内存/网络/安全/文件的管理
2.1.1 OS分类
服务器OS——windows server,centOS,RHEL,AIX
桌面OS——Windows 10,Mac OS,Fedora
移动设备OS——Andriod,IOS,AliOS
2.1.2 接口(interface)
用来连接两个东西、信号转换、屏蔽细节
用户——应用软件——操作系统——硬件
两部分之间的交互通过不同的接口(interface)来实现
操作系统一般提供两个重要接口来满足用户基本使用需求
1.命令行:由一个名为shell的终端程序提供,底层实质是调用一些OS提供的函数
2.窗口界面:通过编写的窗口程序接收来自操作系统消息队列的一些键鼠动作,进而做出一些响应
开发接口标准:
ABI=应用程序二进制接口——描述app与OS之间的底层接口,允许编译好的目标代码在使用兼容ABI的系统中无需改动就能运行
API=应用程序开发接口——定义了源代码和库之间的接口,表示在调用某个特定功能时需要遵守的规范
运行程序的格式(在不同OS中不一样)Windows:.exe,.dii,.libLinux:ELF,.so,.a
POSIX(可移植的操作系统接口)IEEE在操作系统上定义的一系列API标准
2.1.3 用户态/内核态
计算机硬件资源都是由OS内核进行管理,为保证OS的安全与稳定,将程序执行的状态分为不同级别,为0~3
0是内核态,具有最高权限,能访问所有数据
3为用户态,只能执行一些特定的指令
2.1.4 系统调用(system call)
由OS内核提供的一系列函数,让开发者实现非一般性使用需求。属于一种特殊的函数调用
2.1.5 用户空间/内核空间
用户空间:User space用户程序的运行空间,处在隔离区,用户程序崩溃不会影响内核只能执行简单运算,不能直接调用系统资源,必须通过系统调用向内核发出指令
内核空间:Kernel space是Linux内核的运行空间可以执行任何命令、调用一切系统资源
2.1.6 编程语言
低级语言机器语言:0 1
汇编语言:与机器语言一一对应,与硬件相关的特有代码、驱动程序开发
中级语言(C语言)系统级应用、驱动程序
高级语言java,python,go,php,C#,objective-C应用级程序开发
2.2 服务器操作系统
三大主流:Windows、Linux、Unix
Linux操作系统是什么:
完整的类UNIX操作系统: Linux内核 + GNU工具 = Linux/GNU
比如:CentOS,Ubuntu,Android
Linux是一个开源内核,套上不同的外壳可以有许多不同的版本在此主要学习CentOS(redhat公司社区版),Ubuntu(debian公司)
2.2.1 Linux内核
Linux内核版本组成部分:主 . 次 . 末 - 打包 . 厂商
打包版本号:表示编译次数
厂商版本号:表示适用于哪个OS
2.2.2 Linux发行版本
发行版的名称和版本号由该发行版的维护者决定
RedHat Enterprise Linux 7.5(Enterprise表示企业版)由红帽公司发布
2.2.3 开源 Open Source
表示软件和源代码提供给所有人,能修改和创建衍生作品
世界上有上百种开源许可证,如copyleft。。。反之对应copyright表示版权所有
2.2.4 Linux哲学思想
一切皆为文件(包括硬件)
小型、用途单一的程序
链接各个程序共同完成复杂的任务
避免复杂的用户界面
配置数据存储在文本中
Linux安装与基本操作
1 Linux安装前准备
打开虚拟化功能(有些品牌CPU默认关闭此功能)
在很多家用台式机和笔记本电脑上,虚拟化功能默认是关闭的,再要打开后才能使用Vmware等虚拟化软件,否则会报错
2 Linux目录结构
只有一个根目录 / 至少有一个分区与根目录关联
/Users 用户
/home
/boot 启动相关
/proc 内存(虚拟目录)
/var/log 日志信息
/tem 临时
/etc 注册表
/dev 设备
硬盘分区在/dev目录之下,按顺序命名为sda、sdb、sdc...
为了访问其中存放的文件,需要将每个分区关联到某个确定的文件夹(即为挂载mount),以此获得一个路径
磁盘分区类型:
GPT:只支持主分区(安装OS)
MBR:
主分区:多个主分区只会有一个处于激活(安装OS时系统自动寻找激活的主分区)
扩展分区:一个硬盘最多一个,不能直接存数据逻辑分区(扩展分区内的小块):可存放数据
主分区加上扩展分区最多只能有4个,扩展分区细分成逻辑分区数目不限
多个主分区的命名:/dev/sda1、/dev/sda2(数字1/2不需要强制排序)
扩展之下的逻辑分区命名:/dev/sda5、/dev/sda6 (强制从5开始,因为主分区+扩展最多排到4)
3.1.2 分区策略(推荐)
/dev/sda 200G(磁盘总空间)
/dev/sda1 mount /boot 1G (主分区1挂载到boot目录,分配1G空间)
挂载的目标文件夹称为挂载点mount point
/dev/sda2 mount / 100G(根目录分配100G)
/dev/sda3 mount /data 50G (测试与练习分配50G)
/dev/sda4 extend 50G (只剩一个,先分为扩展分区,再分逻辑分区用于其他)
在Windows中可以在磁盘上划分一块储存空间,在RAM不足时临时应急使用,称之为虚拟内存
同理,在Linux中也存在类似的思路,不同之处在于Linux使用一个分区来实现,称之为swap分区
与设备挂载不同,swap是一个特殊分区,用于实现虚拟内存,但swap也需要一个分区序号,
为了不占用主分区名额,先将剩余空间全部分配给扩展分区,然后使用/dev/sda5 作为swap的使用空间(这是人的思路)
实际安装向导中,直接分配swap的大小,然后系统会自动将其分配为sda5!!!
/dev/sda5 swap 4G 此处不是挂载,不需要 /
swap一般情况取值为自身物理内存的1.5或2倍(内存不足时的思路)
3 使用虚拟机进行安装
在C盘新建VMs文件夹,子目录分别建好对应的不同版本OS
VMware开始创建虚拟机:
向导安装来源:选择稍后安装(若选择映像文件就直接默认自动安装了)
选择所需的OS版本
名称改为对应版本名,位置存放在第一步设置的文件夹
设置磁盘大小,此处选择200G勾选,将虚拟磁盘存储为单个文件
完成
调整硬件设置:
点击CD/DVD,使用ISO映像文件,选择下载好的文件进行关联
CentOS6.10内存分配1G
CentOS7.6内存分配2G
Ubuntu内存分配2G
各个CPU核心数量也可适当增加,设置为双核
4 各系统安装详细步骤
CentOS 6.10
开机,进入光盘加载页面
选择第一行进入,进入安装界面,等待
提示:是否需要测试,OK > Test 等待 > 显示Success > OK
提示光盘是否插入,右下角光盘图标,右击选择连接 > OK > continue
进入安装向导界面 > Next > 选择语言(English) > 选择键盘布局(默认U.S. English)
what type of devices will you installation involve? > 默认第一行(Basic storage devices本地硬盘)
弹出Warning,检测到200G硬盘,选择yes,discard any data(初始化所有数据)
设定主机名 Hostname:centos6.localdomain左下角configure network点击进入,点击默认网卡eth0,右侧点击Edit编辑,勾选自动连接 > apply
按ctrl+alt+F2切换到命令行界面, 输入ifconfig查看Internet是否已经连接(if=interface接口)若已经连接,在Windows的cmd界面用ping命令检测可用性按ctrl+alt+F6回到安装界面
选择时区,下拉选择上海Asia/Shanghai,左下角的勾选需要取消掉!不使用UTC时区
为root用户设置密码
which type of installation would you like?此处我们选择自定义分区策略,为最后一项,Creat custom layout
选择sda硬盘,单击create,选择standard partition(标准分区),文件系统默认ext4选择mount point挂载点:首先给根目录100G,默认单位是MB,因此填写102400, > OK
重复操作,设置好/boot、/data
设置虚拟内存:直接选择文件系统为swap,分配内存即可
1=若想查看当前系统的RAM,如何查看?
直接右击VMware标签页查看属性即可
2=如果是物理电脑又应该如何查看?
按ctrl+alt+F2切换到命令行界面,输入 cat /proc/meminfo执行(centos7直接用free,此处mem=memory,info=information)
然后shift+pgup向上翻页可看到MemTotal=即为内存总大小
按ctrl+alt+F6回到安装界面,设置好swap的大小 > next
设置之后发现系统自动设置 swap 为 sda5 > next
格式化警告 Format warning ,点击format确定格式化弹窗点击write changes to disk > 真正开始分区输入 cat /proc/partitions执行,查看分区状态
分区完成之后 > next > 选择工作场合 > 默认选择desktop(工作中选择最小化minimal)最下面选择右边customize now(定制) > next
选择desktops > 右侧勾选KDE desktop > next
开始安装,时间等待 > > > > > 安装完成 > 点击重启reboot
重启完成 > 初次启动的初始化设置 > forward > license> forward
创建用户 > 输入用户名和密码 > 提示密码太简单 > YES > 时间设置 > forward
提示kdump无法启用 > 继续 > finish > 安装完成!
!!!!!!!刚装好的系统,设置快照作为备份
CentOS 7.6(安装之前确保内存足够)
开机 > 选择第二项,测试并安装(默认值)。。。等待
进入向导 > 选择语言和键盘 > 默认值English
设置日期东八区上海
安装资源选择默认值
软件选项选择GNOME Desktop(默认值最小化,用于实际工作)
选择安装目标(分区)先在下方勾选 I will configure partitioning > Done > 下拉框选择标准分区点击 + 开始挂载 各个文件夹并分配内存(默认格式xfs)
swap可直接选择分配 ,若不知道物理内存,centos7可直接使用 free 命令查看mem空间,
设置完成后单击Done > accept > 设置KDUMP取消勾选(禁用内核分析)
network设置 > 默认OFF禁用网卡,点击打开ON,即可显示IP,左下角设置主机名 > apply > done
检查无误 > > > 右下角begin installation开始安装
设置root密码 > done > 创建普通用户 > 起名 > 不设置管理员 > 密码 > done > 等待 > > > > >
安装完成 > 点击重启reboot > > > > > > >
设置license > 下方勾选接受 > done > 设置network > 前期已完成 ,无需修改 > done > finish
等待完成 > > > 设置快照
Ubuntu1804(全程键盘操作)
开启虚拟机向导,选择典型 > 稍后按照操作系统 > 选择下拉框ubuntu64位 > 修改名字与安装路径
设置硬盘200G,单个文件 > 自定义硬件
选择DVD设置映像文件路径 > 完成
确定光盘映像文件已经选择好
工具栏绿色三角开机 > 选择语言English > 版本选择第一项 > 语言English > 国家选择other > 地区选择Asia > China > 选择locales(语言字符集)united states > 是否检测键盘 NO > 键盘English >English(US)
设置hostname > Ubuntu1804
设置新的用户(root默认不允许登录)> 输入密码 > 确认密码 > 简单密码确认 > > > 等待设置clock
选择时区
磁盘管理 > 选择最下方manual > 选择设置好的硬盘 > 下一步yes > 选择sda > yes > 选择free space
开始分区 > create a new partition > 填写分配的内存 > 选择primary(主分区) > begin > 选择第二行挂载点 > done setting > 完成一个盘的挂载
依次完成 / /boot /data (100+1+50),其中/data需要手动输入目录名
最后swap也是先输入内存大小 > 选择logical > 选择第一行swap area > done setting > finish partitioning在Ubuntu中进入命令行是C+A+F2,返回界面是C+A+F1
写入修改 左下角yes > > > > > 配置package manager 直接continue > > > >
选择更新选项 > 拒绝自动更新 > 软件选项 勾选最下方Open SSH server 按空格键确定> >
是否安装GRUB 引导程序 > yes > > > 安装结束,是否重启 yes > > > 设置快照
备份很重要!
退出VMware,进行各个OS的彻底备份:
将各个文件夹直接复制到另一个盘!!!!!