1-计算机基础知识
计算机组成:
cpu(控制器,运算器)
存储器:
内存:内存条,存取速度都快,断电数据丢失
外存:机械磁盘,存取速度都慢,断电数据不丢失
输入设备:
输出设备:
内核态:操作系统正在控制硬件的状态
用户态:应用程序正在运行的状态
Liunx系统会把内存分为两种区域:
buffer:缓冲区,攒一大波数据,再刷入硬盘
Cache:缓存,把硬盘的数据在内存中缓存好,cpu取的时候可以直接从内存 取
Ps:
- x86-64:复杂指令集,每次读取64位二进制数
- 2核4线程:物理层面2核,假的4核。真4>2核4线程>真2核
cpu:
ROM—>BIOS(操作系统)
CMOS—>存储BIOS配置数据
硬盘本身的分类:
机械磁盘
磁道:
扇区:
硬盘的最小读写单位是一个扇区——512Bytes
操作系统最小读写单位是一个Block块——8个扇区的大小——4k
柱面:
分区指的是从一个柱面开始到另外一个柱面结束,中间所包含的所有盘片所对应的磁盘
I/O时间=平均寻道时间+平均延迟时间
Ps:
buffer缓冲区——大卡车
操作系统block块——收纳箱
硬盘的扇区——单个快递盒子
Linux系统
Buffer——写缓冲区
Cache——读缓存
固态硬盘:依赖电子存取数据
虚拟内存:swap分区(硬盘分出来当作内存来用)
计算机启动过程:
按下电源—>开机自检(BIOS)—>MBR引导—>GRUN菜单—>加载内核
- 计算机加电
- 启动BIOS(计算机启动一定会先启动BIOS),读取启动盘的第一个扇区大小为512Bytes(称之为主引导记录MBR)
446 bootloader—grub程序
64分区信息
2 结束标志位
- grub程序负责将操作系统内核装载入内存,启动操作系统
读取运行级别
0—关机
1—单用户模式,不需要输入账号密码登录操作系统后就是管理员账户(破解 管理员密码)
2—多用户模式,没有网络
3—多用户模式,有网络
4—系统未使用,保留
5—图形界面模式,有网络
6—重启
Centos7启动的第一个程序systemd(树形结构),pid—>0
启动其它服务
系统密码破解和安全加固:
1.进入单用户模式:(GRUM菜单)
提前关闭sexlinux
重新启动—>按e进入,进入CentOs (Core)系统—>找到ro rhgb quiet这 一行更改为 rw init=/sysroot/bin/sh,ctrl+x键进入更改密码—>执行命令
chroot /sysroot/ 回车passwd root 回车更改密码—>重启操作系统
2.grub加密:
终端输入:grub2-setpassword 设置grub密码(123)
修改配置文件:vim /boot/grub2/grub.cfg 找到--unrestricted 删掉,保存 退出。(再次进入单用户模式,需要输入grub密码)
3.光盘修复模式:(绕过本地硬盘的认证环境,再用命令切回本地环境)
进入BIOS界面—>Boot界面下将CD-ROM Drlve顺序调整首位—>重启,
回车进入Troubleshooting界面,接着进入Rescue a CentOs system—>按 1(Continue),按回车,输入chroot /mnt/sysimage(切到本地环境)—>设置 登录密码passwd root (w1234){注:也可在此直接设置grub密码}—>重启 计算机进入BOIS,将Boot下Hard Drlve 顺序调整回首位
4.BOIS系统设置密码:(扣主板BIOS电池—>锁住机柜)
进入BIOS界面—>Security界面下将Set Supervisor Password设置密码 (123)
5.多个连接终端:ctrl+alt +(f2,f3,f4...f6)字符界面登录,最多7个终端
- 操作系统会让BIOS去检测驱动程序
网线:
橙白
橙
蓝白
绿
绿白
蓝
棕白
棕
千兆网卡——双绞线
万兆网卡——光纤
Day 02
计算机硬盘组成剩余:
硬盘接口类型:
IDE并口
SATA串口
SCSI
SAS(SATA和SCSI结合体)
光纤通道
硬盘和接口搭配:
SSD+SAS 土豪
SSD+SATA 常规,对速度有特殊要求
机械磁盘+SAS 常规,比较核心业务使用,对速度要求常规
机械磁盘+SATA 普通
高并发场景下:
热数据(核心数据)
冷数据(访问量较少数据)
RAID——’’硬盘的集群’’,多块硬盘要连接到RAID(阵列卡)上制作,防止单点故障,提升性能
Raid0:至少1块硬盘
容量:N块盘合在一起的总容量
性能:理论上N块盘合在一起读写速度,实际上要低一些
冗余性:不容许坏任一块盘
场合:追求读写性能,对数据安全性没啥要求。例如集群服务器
Raid1:只能2块硬盘
场合:追求安全,对读写性能要求不高。例如:服务器的系统盘
容量:一块盘容量
性能:一块盘的读写速度
冗余:可以坏一块盘,另一块盘有完整数据
Raid5:至少3块硬盘,俩俩之间做奇偶异或运算,相同为0,不同为1
容量:废掉1块盘容量,等量盘情况下,容量低于raid0
性能:读写速度低于raido,高于raid1
冗余性:可以坏任一块盘,其余两块盘可以通过奇偶校验推导出坏盘的数据
场合:一般场合都可以使用
Raid10:至少4块硬盘,raido和raid1的整合的产物,兼顾了raid1的安全性和raido的读写性能。通常用于数据库服务器
优化基本原则:
- 针对读操作,数据能从内存取就不要从硬盘
- 针对写操作,在内存中攒一波再写入硬盘
二.操作系统(协调,控制,管理计算机硬件资源以及上层的应用程序)
操作系统最核心的概念就是进程(进程指的就是一个程序的运行过程,具体是操作系统控制硬件来运行程序的过程)
第二代计算机:
批处理系统
一次只把一个/道程序读入内存,运行完毕后,才能运行下一个程序,称之 为串行
优点:
- 充分利用计算机资源
缺点:
- 需要人参与程序运行的过程
- 对程序员不友好,明显感觉到等待
- 整个计算机程序的运行是串行
第三代计算机:
多道技术——并发(多个任务看起来是同时运行的)
- 空间上的复用:多道程序运行前必须先加载到内存中(前提)
- 时间上的复用:多个任务复用cpu的时间,通俗地说就是cpu在多个程 序之间来回切换
- 当一个任务遇到I/O,肯定要切换——提升效率
- 一个任务没有遇到I/O但是占用cpu时间过程,也要切换——降 低效率
Ps:多个进程的内存空间是相互隔离的,而且是物理隔离
并行:真正意义上的同时运行,只有多个CPU才能实现并行。
分时操作系统CTTS:多用户多任务
应用多道技术来实现多个任务的并发的运行
3.进程和线程:
进程:操作系统控制硬件运行程序的过程(资源单位)
线程:流水线运行代码的过程(执行单位)
操作系统(工厂)——进程(车间)——线程(流水线)
4.一个任务运行的三种状态
运行态:拿到cpu,正在运行
就绪态:等待分配cpu,一旦拿到cpu就可以立即运行
阻塞态:拿到cpu也无法立即运行,需要转到就绪态,然后....
运行态(r)——>就绪态(操作系统认为占用CPU的时间过长或者有更高优先级的 任务抢走了CPU)
就绪态——>运行态(操作系统重新分配给该任务CPU权限)
运行态——>阻塞态(任务遇到I/O操作)
阻塞态(s)——>就绪态(I/O操作执行完毕)
非阻塞态(运行态,就绪态)
网络:
- 什么是网络
网络=物理连接介质+互联网通信协议(计算机界的英语)
- 为什么要有网络
为了方便数据的传输/通信,信息高速公路
OSI七层协议
应用层 http协议,ftp协议,可以自定义协议
表示层
会话层
传输层:tcp/udp协议
- 数据段
- Head+data:head存放的是源端口 目标端口
- 端口在本机唯一即可
网络层:ip协议(0.0.0.0-255.255.255.255)
1.数据包
2.head+data:head放源ip地址 目标ip地址
3.ip地址的协议——路由协议
数据连接层:以太网协议:
- 数据帧
- Head+data;head里放:源mac地址 目标mac地址
- 基于mac地址的广播的通信方式——通信基本靠吼
物理层:电信号/比特位(转换成电信号,然后发送)
以太网协议:
- 以太网数据称为数据帧,分为head(原mac地址,目标mac地址)+data部分,其中head长度固定
- 规定凡是接入互联网的主机必须有一块网卡,网卡上有一个MAC地址,全球唯一
- 以太网协议的通信采用的是广播的通信方式,计算机通信基本靠喊
ARP协议——获取目标mac地址
前提:在一个局域网内,靠的是目标mac地址找到对方在哪里,即只要目标mac地址是谁,数据包就送给谁
- 先判断两台计算机的子网地址是否一样,如果一样,应该尝试获取计算机2的mac地址
- 如果不一样,网关将内的mac地址更改为对外的mac地址,与目标mac地址联系
ARP协议会将ip地址转换成mac 地址(要么是局域网内一台计算机的mac地址,要么是网关的mac地址,不会是公网上的mac地址)
- mac地址学习功能,两个机器通过广播的方式找到对方后就可以形成mac地址通信(只能在局域网用)
ip协议:
mac地址+ip地址标识了全世界范围内唯一一台计算机
Ipv4地址的范围32位二进制数(网络号,主机号):
00000000.00000000.00000000.00000000——0.0.0.0
11111111.11111111.11111111.11111111——255.255.255.255
子网掩码:
11111111.11111111.11111111.00000000——255.255.255.0
例子:
ip:
10101100.00010000.00001010.00000010—>ip地址:172.16.10.2/24
10101100.00010000.00001010 —>网络号:172.16.10
00000010—>主机号:2
子网掩码,用来标识一个ip地址的网络号个数,从左到右,只要属于网络号,子网掩码标志为1
11111111.11111111.11111111.00000000—255.255.255.0
子网地址:ip地址跟子网掩码转换成二进制,然后按位与运算
例如:
10101100.00010000.00001010.00000010—>ip地址:172.16.10.2/16
11111111.11111111.00000000.00000000—>子网掩码:255.255.0.0
10101100.00010000.00001010.11111110—>ip地址:172.16.10.254/24
11111111.11111111.11111111.00000000—>子网掩码:255.255.255.0
10101100.00010000.00001010.00000000—>子网地址:172.16.10.0
10101100.00010000.00001010.11111110—>ip地址:172.16.10.254/25
11111111.11111111.11111111.10000000—>子网掩码:255.255.255.128
10101100.00010000.00001010.10000000—>子网地址:172.16.10.128
0.标识网段地址
127.0.0.1—>本地回环地址
255.标识广播
子网划分:
借主机位子网掩码换成网络位子网掩码,通过ip地址与子网掩码来计算子网地址,2的次方数划分。
例如:172.16.10.0/24 与 172.16.10.0/25 子网划分2个
vlan介绍:
引入:
1.两台计算机相互通信,计算机1必须要拿到计算机2的ip地址
2.通信分为局域网内和跨局域网
如果在同一个局域网内如何通信?要拿到目标的mac地址是计算机的mac地址
如果不在同一个局域网内如何通信?要拿到的目标mac是网关的mac地址
Ip+端口标识唯一一个基于网络通讯的软件
Tcp/udp协议
tcp通信之间必须建立双向通路(必须先启动服务端,客户端主动连接服务端)
建立通信:
Syn_sent:客<——>backlog半连接池
Listen:服
(Syn_rcvd:服
Established:客
Established:服
断开连接:
客:Fin_wait_1
服:Close wait
客:Fin_wait_2
服:Last_ack
客:Time_wait
tcp协议——>可靠性:数据完成后,客户段需要向服务端(彼此)回复ack文件确认后,才删除数据
Udp协议——>不可靠性,数据传输完成后,无需对方回复ack即可删除数据
4.Socket层(套接字软件):对传输层及以下进行封装
应
传
网
数
物
- Dhcp:
想实现网络通信,每台主机需要具备四要素
- 本机的ip地址
- 子网掩码
- 网关的ip地址
- dns的ip地址
获取以上地址:
手动配置——>静态配置
动态获取——>dhcp
Dhcpclinet(68号端口)——>dhcpserver(67号端口)
5.dns(ip——>域名——>hao123)
什么是dns:domain name server 域名解析服务,负责把域名解析成ip地址
dns的查询方式
1.递归查询
2.迭代查询
dns查询顺序:
浏览器dns缓存——本地系统dns缓存——本地计算机hosts文件——isp dns缓存——递归or迭代搜索
/etc/hosts
C:\windows\system32\drivers\etc
6.cmd命令
查看本机ip地址信息:ipconfig /all
查看本机解析缓存:ipconfig /displaydns
清除本机解析缓存:ipconfig /flushdns