正式班D6
2020.10.12星期一 正式班D6
一、上节课复习
1、硬盘类型和接口类型
SSD+SAS——>速度最快也最贵的土豪做法
SSD+SATA——>对速度有一定要求的常规做法
HDD+SAS——>对速度没有特殊要求的常规做法
HDD+SATA——>个人PC、公司内部使用
2、磁盘阵列,raid==》对硬盘做集群
集群的好处:①防止单点故障②提升性能
raid0——>速度最快,无冗余
raid1——>100%冗余,用作服务器的系统盘
raid5——>一张盘记录奇偶校验的值,是raid1和raid0的折中版,常规用法
raid10——>raid1+raid0,要求速度也要求安全性,如服务器数据库
硬raid==》raid卡
软raid==》通过软件只做raid
3、操作系统
-
应用程序
操作系统
计算机硬件
-
批处理操作系统:单用户单任务
分时操作系统:多用户多任务
-
Windows:单用户多任务
Linux:多用户多任务
-
并发:多个任务看起来是同时运行的
并行:真正意义上的同时运行,只有多个CPU才能实现并行
6个核只能并行6个任务,但能并发n个任务
-
多道技术==》操作系统
- 时间上的复用
- 空间上的复用
二、今日内容
1、操作系统部分
-
操作系统发展史剩余
-
B语言之父:Ken Thompson(肯.汤普森)
C语言之父:Dennis Ritchie(丹尼斯.里奇)
-
Unix系统
- Unix之父:Ken Thompson、Dennis Ritchie
- Unix元年:1970年
-
Go语言
- 时间:2007年
- 三大作者:Robert Griesemer(罗伯特.格里茨默)、Rob Pike(罗伯.派克)、Ken Thompson
-
发展史
-
Multics操作系统
- Bell(贝尔实验室)、MIT(麻省理工学院人工智能实验室)、GE(通用电气)联合建立,Muiltics操作系是多使用者、多层次、多任务的操作系统。
- 后期GE、Bell退出
-
unix诞生
- 隶属于AT&T bell
- Ken Thompson为了自己的游戏space travel(星际旅行)用汇编语言B语言写了unix
- Dennis Ritch用高级语言C语言重写了Unix
-
unix正式问世
- 1974年,双方在《美国计算机通信》发表论文,unix第一次公之于众
- AT&T因为美国的反垄断法只能无偿提供unix,很多人加入研究,反馈给贝尔实验室,unix发展迅速
- 与美国国防高级研究计划局合作,BSD在Unix基础上研究TCP/IP协议,对unix是一个极大的促进
-
其他操作系统的发展:windows图像操作系统的时代
- 1981年个人计算机问世,但没有系统。后SCP(西雅图计算机产品公司)员工写了一个QDOS(Quick and Dirty Operating System)系统,被Bill Gates比尔盖茨买断。
- 直至1990之前windows开发都是在unix之上的。
- SUN公司的Bill Joy发行了workstation系统(工作站介于服务器和计算机之间)
- DOS操作系统,windows底层就是基于DOS开发的
-
unix商业化
- AT&T被裁定违反反垄断法被拆分,贝尔实验室由此独立出来
- 贝尔实验室将BSD告上法庭
- unix商业化,一份4W美元
- Unix商业版本:SUN;Solaris IBM;AIX HP;HP-UX
-
GNU
- 1985年Richard Stallman发起GNU自由操作系统(GNU is not unix),软件共享运动
- GPL(general public license)章程协议
- 任何个人或公司可释放出自由软件(free software)
- 任何释放出自由软件的公司或个人,均可由自己的服务来收取适当的费用
- 该软件的原始码(source code)需要随软件附上,并且是可公开发表的
- 任何人可透过任何正常渠道活的此自由软件,且均可取得此授权模式
- FSF(Free Software Foundation)自由软件基金会、X-window加入GPL
-
Linux发展之路
-
Unix操作系统的诞生
- 1969年Ken Thompson用汇编语言编写Unix操作系统
- 1971-1973年Dennis Ritchie用C语言改写Unix
- 1977年Bill Joy释放出BSD(Berkeley Software Distribution)的Unix-Like操作系统
-
x86架构的Minix诞生
1984年谭宁邦教授的Minix教学操作系统,提供原始码及软件
-
各种免费软件团队的产生
-
1984年Richard Stallman的GNU计划
Emacs编辑器+GNU C Library(glibc)+Bash Shell
FSF(Free Software Foundation)自由软件基金会
GPL(General Public License)通用公共许可证
1988年XFree86计划:X Window System+Free+X86
-
其他开源团队
sendmail团队、wu-ftp团队、apache团队
-
-
Linux操作系统的产生
- Linux之父:Linus Torvalds
- 1991年芬兰人开发出Linux,是一个基于POSIX的多用户、多任务并且支持多线程和多CPU的造作系统
- Linux发行商包括slack ware、Red Hat、Debian、Fedora等
-
-
-
-
进程与线程
进程(资源单位)是资源分配的最小单位,线程(执行单位)是CPU调度的最小单位
-
进程
-
进程是一个具有一定独立功能的程序在一个数据集上的一次动态执行的过程,是操作系统进行资源分配和调度的一个独立单位,是应用程序运行的载体。
-
进程一般由程序,数据集合和进程控制块三部分组成。
程序用于描述进程要完成的功能,是控制进程执行的指令集;
数据集合是程序在执行时所需要的数据和工作区;
程序控制块包含进程的描述信息和控制信息是进程存在的唯一标志。
-
进程的特征
- 动态性:进程是程序的一次执行过程,是临时的,有生命期的,是动态产生,动态消亡的;
- 并发性:任何进程都可以同其他进行一起并发执行;
- 独立性:进程是系统进行资源分配和调度的一个独立单位;
- 结构性:进程由程序,数据和进程控制块三部分组成
-
-
线程
- 线程是程序执行中一个单一的顺序控制流程,是程序执行流的最小单元,是处理器调度和分派的基本单位。
- 一个进程可以有一个或多个线程,各个线程之间共享程序的内存空间(也就是所在进程的内存空间)。
-
进程与线程的区别
- 线程是程序执行的最小单位,而进程是操作系统分配资源的最小单位;
- 一个进程由一个或多个线程组成,线程是一个进程中代码的不同执行路线
- 进程之间相互独立,但同一进程下的各个线程之间共享程序的内存空间(包括代码段,数据集,堆等)及一些进程级的资源(如打开文件和信号等),某进程内的线程在其他进程不可见;
- 调度和切换:线程上下文切换比进程上下文切换要快得多
-
-
任务运行的三种状态(非阻塞态、阻塞态)
- 进行态
- 就绪态(长时间占用CPU或有优先级更高的任务时被抢走cpu权限)
- 阻塞态(IO操作时)
2、网络基础部分
-
什么是网络
网络=物理连接介质+互联网通信协议
-
OSI七层协议
应用层、表示层、会话层、传输层、网络层、数据链路层、物理层
-
为何要有网络?
为了方便数据的传输/通信(信息高速公路)
-
以太网协议(数据链路层)
-
Ethernet规定
一组电信号构成一个数据包,叫做"帧"
每一组帧分为:报头head和数据data两部分
-
head(固定18个字节)
- 发送者/源地址:6个字节
- 接收者/目标地址:6个字节
- 数据类型:6个字节
-
data(46-1500字节)
数据包的具体内容
-
head长度+data长度=最少64字节,最多1518字节,超过最大限制就分片发送
-
-
mac地址
- Ethernet规定接入Internet的设备必须具备网卡,发送端和接收端的地址便指的是网卡的地址,即mac地址
- 每块网卡出厂时都被烧制上一个世界唯一的mac地址,长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)
- 广播
- 有了mac地址,同一网络内的两台主机就可以通信了(一台主机通过arp协议获取另一台主机的mac地址)
- Ethernet采用最原始的方式,广播的方式进行通信,即计算机通信基本靠吼。
-
-
IP协议(网络层)
-
IP协议
-
规定网络地址的协议叫IP协议,他定义的地址称为ip地址,广泛采用IP v4,规定网络地址由32位2进制表示
-
范围0.0.0.0-255.255.255.255
00000000.00000000.00000000.00000000——>0.0.0.0
11111111.11111111.11111111.11111111——>255.255.255.255
-
一个ip地址通常写成四段十进制数,例如172.16.0.1
-
-
ip地址的组成
- 网络部分:标识子网
- 主机部分:标识主机
单纯的ip地址只是标识了ip地址的种类,从网络部分或主机部分都无法辨识一个ip所处的子网
例如172.16.10.1与172.16.10.2不一定处于同一子网
-
子网掩码
-
子网掩码是表示子网特征的一个参数
-
形式上等同于IP地址,也是32位二进制数,网络部分全为1,主机部分全为0
-
知道子网掩码就能判断任意两个IP是否处于同一个子网络。方法是将两个IP地址与子网掩码分别进行AND运算(两个数位都为1,运算结果为1,否则0),然后比较结果是否相同,相同则在同一个子网中,否则不在
ip:172.16.10.4/24
10101100.00010000.00001010.00000100——>172.16.10.4
11111111.11111111.11111111.00000000——>255.255.255.0
10101100.00010000.00001010.00000000——>172.16.10.0子网地址
-
-
IP数据包
-
分为head和data部分,无需为ip包定义单独的栏位,直接放入以太网包的data部分
head:长度20-60字节
data:最长65515字节
-
以太网数据包的数据部分最长1500字节,如果IP数据包超过1500字节就需分割成几个以太网数据包分开发送
-
-
ARP协议
-
由来:计算机通信基本靠吼,即广播的方式,所有上层的包到最后都要封装上以太网头,然后通过以太网协议发送,在谈及以太网协议时候,我们了解到通信是基于mac的广播方式实现,计算机在发包时,获取自身的mac是容易的,如何获取目标主机的mac,就需要通过arp协议。
-
功能:广播的方式发送数据包,获取目标主机的mac地址
-
工作方式:每台主机的ip都是已知的(例如主机172.16.10.10/24访问172.16.10.11/24)
-
首先通过ip地址和子网掩码区分自己所处的子网
场景 场景 数据包地址 同一子网 同一子网 目标主机mac、目标主机IP 不同子网 不同子网 网关mac、目标主机IP -
分析172.16.10.10/24与172.16.10.11/24处于同一网络(如果不是同一网络,那么下表目标ip为172.16.10.1,通过分析arp获取的是网关的mac)
源mac 目标mac 源IP 目标IP 数据部分 发送端主机 发送端主机 发送端mac FF:FF:FF:FF:FF:FF 172.16.10.10/24 172.16.10.11/24 数据 -
这个包会以广播的方式在发送端所处的子网内传输,所有主机接收拆包后发现目标ip是自己的就响应,返回自己的mac
-
-
-