操作系统与网络协议

03/14/2017

操作系统是位于应用程序与计算机硬件之间的一个系统软件,由内核与驱动程序和用户接口组成。

操作系统的功能

  • 因为硬件所提供的接口过于复杂,所以操作系统将复杂的硬件接口重新开发成简洁的用户接口,用户开发应用程序只需要通过程序调用就能实现各种各样的功能
  • 例如:操作系统抽象的将磁盘资源表现成文件系统(/dev/sda1,/dev/sda2…),用户不需要关心硬盘的工作方式,操作系统会自行驱动硬盘完成相应操作。
  • 操作系统处理好了硬件资源使用的有序化,为用户规范了硬件共享规则,有序的共享使用各种硬件资源

    操作系统的发展

  • 第一代计算机的时候还没有操作系统这个概念,所有的程序都是用纯粹的机器语言编写的,非常浪费时间。
  • 第二代计算机为了减少时间的浪费开始使用批处理系统,该系统使用时需要人工参与,使用FORTRAN或汇编语言进行开发,将提前写好的大量程序统一交给工作人员进行执行。
  • 第三代计算机为了保证程序员能够即使得到执行结果出现了分时操作系统,分时操作系统采用了多道技术使得用户能够得到自己独有的计算机资源,分时操作系统奠定了现代操作系统的基础,而unix的出现使操作系统开始多样化,大量的操作系统都遵循了posix标准,使得用户开发的应用能够在不同操作系统间运行。

    多道技术

    多道技术中的多道指的是多个程序,多道技术的实现是为了解决多个程序竞争或者说共享同一个资源(比如cpu)的有序调度问题,解决方式即多路复用,多路复用分为时间上的复用和空间上的复用。

    什么是互联网协议及为何要有互联网协议

    互联网协议的出现是为了解决计算机通讯问题所统一的通讯标准,互联网的一系列标准定义了计算机如果接入internet、internet上通讯的数据包规范等等。

    osi五层模型

    OSI五层模型从上到下分别是应用层、传输层、网络层、数据链路层、物理层,越往下的层越靠近硬件。

    应用层

    应用层所包含的是应用程序间通讯的协议,是直接面对用户的
    下层所打包的核心就是应用层的数据

    传输层

    传输层提供会话建立功能,建立端口到端口间的通讯
    传输层为数据包添加TCP/UDP协议头

    网络层

    寻址和路由选择、数据建立等功能是在网络层实现的
    网络层负责为数据包添加上IP头

    数据链路层

    因为单纯的电信号不能够被其他计算机所理解,而数据链路层将电信号分组,并打上标识。
    数据链路层负责将数据包添加上数据报头,该层数据称为帧

    物理层

    物理层负责发送高低电压(电信号),高电压为1、低电压为0
    物理层将打包好的数据转成二进制在网络上传输,该层的数据称为流

    用户上网流程

    1.PC通过DHCP获取IP地址、子网、网关、dns
    2.用户在浏览器地址栏输入了https://www.google.com/
    3.DNS请求发送到本地网关,网关将DNS请求发送到DHCP所分配的DNS解析服务器,DNS解析服务器将请求发送给根域,根域解析到www.google.com由.com域名服务器管理然后将结果方回到DNS解析服务器(本地),DNS解析服务器再次将请求发送给.com域名服务器,.com域名服务解析到www.google.com为google.com域名服务器管理然后再次将结果返回本地,本地再次将请求发送到google.com,最终得到结果并缓存在本地DNS服务器,将结果返回给用户。
    4.得到IP地址后,计算机开始发送https请求到指定服务器
    5.传输层为应用层的数据包加上443端口的协议头,并添加上服务器与本机的IP
    6.数据链路层为数据包天加上数据头,包含了下一跳接口的MAC地址与本级的MAC地址并把数据封装成帧发送给物理层。
    7.服务器响应请求,返回数据包,再一层一层的剥离数据头得到最终数据