计算机操作系统及网络通信
1. 为何要有操作系统?
操作系统就是一个协调、管理和控制计算机资源和软件资源的控制程序
电脑是由硬件和软件组成的,缺了任何一样都无法运行。我们对电脑进行操作,都是利用操作系统来完成。最初的电脑没有操作系统,人们通过各种操作按钮来控制计算机,后来出现了汇编语言,并将它的编译器内置到电脑中,操作人员通过有孔的纸带将程序输入电 脑进行编译。这些将语言内置的电脑只能由操作人员自己编写程序来运行,不利于设备、程序的共用。为了解决这种问题,就出现了操作系统,这样就很好实现了程序的共用,以及对计算机硬件资源的管理,使人们可以从更高层次对电脑进行操作,而不用关心其底层 的运作。 操作系统是现代电脑必不可少的系统软件,是电脑的灵魂所在。现代的电脑都是通过操作系统来解释人们的命令,从而达到控制电脑的目的。几乎所有的应用程序也是基于操作系统的。
2. 操作系统的位置
windows中操作系统位于操作系统的主分区C盘
Linux中操作系统位于/boot下
操作系统位于计算机硬件与应用软件之间,本质也是一个软件。操作系统由操作系统的内核(运行于内核态,管理硬件资源)以及系统调用(运行于用户态,为应用程序员写的应用程序提供系统调用接口)两部分组成,所以,单纯的说操作系统是运行于内核态的,是 不准确的。
3. 操作系统的功能
操作系统的两大部分:
内核:工作在内核态,直接控制操作硬件
系统调用接口:工作在用户态,应用程序通过调用接口请求控制基层硬件
操作系统的功能主要体现在对计算机资源――微处理器、存储器、外部设备、文件和作业五大计算机资源的管理,操作系统将这种管理功能分别设置成相应的程序管理模块,每个管理模块分管一定的功能。即操作系统的五大功能。
操作系统的微处理器管理功能、内存管理功能、外部设备管理功能、文件管理功能和进程管理功能简称操作系统的五大功能。这五大功能是较完整的操作系统的共性。
4. 操作系统的发展
第一代计算机(1940-1955):真空管和穿孔卡片 汇编语言编程二进制,无操作系统,直接控制硬件,程序有问题可自行调试程序。
缺点:单人使用制
第二代计算机(1955~1965):晶体管和批处理系统
优点:批处理,节省了机时
缺点:
1.整个流程需要人参与控制,将磁带搬来搬去(中间俩小人)
2.计算的过程仍然是顺序计算-》串行
3.程序员原来独享一段时间的计算机,现在必须被统一规划到一批作业中,等待结果和重新调试的过程都需要等同批次的其他程序都运作完才可以(这极大的影响了程序的开发效率,无法及时调试程序)
第三代计算机(1965~1980):集成电路芯片和多道程序设计
分时操作系统:
多个联机终端+多道技术
20个客户端同时加载到内存,有17在思考,3个在运行,cpu就采用多道的方式处理内存中的这3个程序,由于客户提交的一般都是简短的指令而且很少有耗时长的,索引计算机能够为许多用户提供快速的交互式服务,所有的用户都以为自己独享了计算机资源
第四代计算机(1980~至今):个人计算机
5. 多道技术
多路复用有两种实现方式
1.时间上的复用
当一个资源在时间上复用时,不同的程序或用户轮流使用它,第一个程序获取该资源使用结束后,在轮到第二个。。。第三个。。。
例如:只有一个cpu,多个程序需要在该cpu上运行,操作系统先把cpu分给第一个程序,在这个程序运行的足够长的时间(时间长短由操作系统的算法说了算)或者遇到了I/O阻塞,操作系统则把cpu分配给下一个程序,以此类推,直到第一个程序重新被分配到了cpu 然后再次运行,由于cpu的切换速度很快,给用户的感觉就是这些程序是同时运行的,或者说是并发的,或者说是伪并行的。至于资源如何实现时间复用,或者说谁应该是下一个要运行的程序,以及一个任务需要运行多长时间,这些都是操作系统的工作。
2.空间上的复用
每个客户都获取了一个大的资源中的一小部分资源,从而减少了排队等待资源的时间。
例如:多个运行的程序同时进入内存,硬件层面提供保护机制来确保各自的内存是分割开的,且由操作系统控制,这比一个程序独占内存一个一个排队进入内存效率要高的多。
有关空间复用的其他资源还有磁盘,在许多系统中,一个磁盘同时为许多用户保存文件。分配磁盘空间并且记录谁正在使用哪个磁盘块是操作系统资源管理的典型任务。
6. 什么是互联网协议
互联网协议(IP)特指为实现在一个相互连接的网络系统上从一个源到一个目的地传输比特数据包(互联网数据包)所提供必要功能的协议。其中并没有增加端到端数据可靠性机制、流量控制机制、排序机制或者其它在端到端协议常见的功能机制。互联网协议可在其 支持的网络上提供相应服务,实现多种类型和品质的服务
互联网协议的功能:定义计算机如何接入internet,以及接入internet的计算机通信的标准。
7. Osi七层协议
Tcp/ip 协议
1.物理层:
主要是基于电器特性发送高低电压(电信号),高电压对应数字1,低电压对应数字0
基于网线,无线电波
2.数据链路层:
有了mac地址,同一网络内的两台主机就可以通信了
早期的时候各个公司都有自己的分组方式,后来形成了统一的标准,即以太网协议ethernet
ethernet规定
一组电信号构成一个数据包,叫做‘帧’
每一数据帧分成:报头head和数据data两部分
head包含:(固定18个字节)
发送者/源地址,6个字节
接收者/目标地址,6个字节
数据类型,6个字节
data包含:(最短46字节,最长1500字节)
数据包的具体内容
head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送
3.网络层:
这层对端到端的包传输进行定义,它定义了能够标识所有结点的逻辑地址,还定义了路由实现的方式和学习的方式。为了适应最大传输单元长度小于包长度的传输介质,网络层还定义了如何将一个包分解成更小的包的分段方法。示例:IP,IPX等。
4.传输层:
网络层的ip帮我们区分子网,以太网层的mac帮我们找到主机,然后大家使用的都是应用程序,你的电脑上可能同时开启qq,暴风影音,等多个应用程序,
那么我们通过ip和mac找到了一台特定的主机,如何标识这台主机上的应用程序,答案就是端口,端口即应用程序与网卡关联的编号。
传输层功能:建立端口到端口的通信
补充:端口范围0-65535,0-1023为系统占用端口
tcp协议:
可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。
5.应用层:
应用层由来:用户使用的都是应用程序,均工作于应用层,互联网是开发的,大家都可以开发自己的应用程序,数据多种多样,必须规定好数据的组织形式
应用层功能:规定应用程序的数据格式。
8. 用户上网流程:
客户端打开浏览器,想要访问百度,在地址栏输入了网址:www.baidu.com
在本地的DNS服务器访问,基于udp协议,本地访问不到时访问国外服务器(速度慢)
经过多个网关的转发,百度的服务器收到了这四个以太网数据包。
根据IP标头的序号,百度将四个包拼起来,取出完整的TCP数据包,然后读出里面的”HTTP请求”,接着做出”HTTP响应”,再用TCP协议发回来。
本机收到HTTP响应以后,就可以将网页显示出来,完成一次网络通信。