zoukankan      html  css  js  c++  java
  • 操作系统和基础网络知识

    操作系统

    一、操作系统过于复杂,且可替代性较弱,包括了驱动、网络协议、系统调用等等功能,不管程序员还是普通使用者在使用计算机前都必须要学习相关知识,大幅度降低了开发和使用的效率,有了操作系统后,可以化繁为简,只需要了解自己所要些的软件或工作的事就可以简单完成,降低了开发和使用效率。

    二、操作系统位于硬件和应用程序之间,如下图

    内核部分属于内核态,用于处理和硬件相关部分的程序,用户接口属于用户态,用于系统调用使用硬件。这样就可以把复杂的底层操作代码替换成简单的系统调用,方便开发人员高速高效的开发软件。

    三、操作系统还能使各种软件对硬件的使用请求变的有序化。

    1、普通软件无法通过直接操作硬件,必须通过系统调用间接达到操作硬件的目的。

    2、操作系统属于软件,但是属于大型的软件,每个操作系统大概有五百万行数量级的源代码。

    3、正是由于代码的复杂性,造成了系统代码的高成本,因此系统都是分类,如unix、linux和windows,它们的内核都有相似的部分,都是往上迭代的,这也是操作系统代码的长寿性。

    四、操作系统的发展

    1、第一代计算机(1940~1955):真空管和穿孔卡片。此时的计算机没有我们现在规定的编程语言如汇编、C、JAVA等,都是使用机器码编程,效率比较低下但可调实行强,出现BUG可以现场调试。

    2、第二代计算机(1955~1965):晶体管和批处理操作系统。由于当时计算机使用成本昂贵,所以就想到了批处理操作系统来节省成本。如下图:

    这样可以让程序员的程序批量执行,节省了计算机开机时间的浪费,但也造成了一些麻烦,如出现BUG程序员无法得到及时的处理,造成了开发周期的延长。

    3、第二代计算机(1965~1980)集成电路芯片和多道程序设计。 

    在此时,大部分计算机生产线有两种:一条是面向字的:大型的科学计算机,如IBM 7094,见上图,主要用于科学计算和工程计算。另外一条是面向字符的:商用计算机,如IBM 1401,见上图,主要用于银行和保险公司从事磁带归档和打印服务。

    IBM公司试图通过引入system/360系列来同时满足科学计算和商业计算,360系列低档机与1401相当,高档机比7094功能强很多,不同的性能卖不同的价格。

    这样就用机器代替了流水线上人工搬运磁带的工作,节省了成本,另外又用多道技术,增加了计算机的使用率。

    多道技术主要分两部分提高效率:

    1空间上的复用,把硬件进行划分,给不同程序使用。

    2时间上的复用,cpu采用时间片的方法,解决了串行多程序的问题。

    3但是复用就造成的安全性的丧失,例如某个应用程序可以获得它本不该拿到的硬件操作权限,还有稳定性的丧失,如回收内存资源误回收其他程序的资源造成系统崩溃。

    4使用分时操作系统:多个联机终端+多道技术,使程序在资源使用上进行了隔离,这也是最初的unix操作系统。

    4、第四代计算机(1980~至今)个人计算机,这个就是现在大家所熟知的电脑了,无论在开发效率和使用体验上都有了质的飞跃。

    五、多道技术

    处理来自多个程序发起的多个(多个即多路)共享(共享即复用)资源的请求,简称多路复用。

    1.时间上的复用

    基于CPU的工作原理,引出时间片的概念,例如把1ms拆成10份,分别分给一程序3份、二程序2份、三程序5份就实现的在用户体验上的多任务同时进行。

    2.空间上的复用

    每个程序都从内存等资源获取一小部分,保证了自己程序的运行,节省了任务的排队时间。

    这两条组成了所谓的多道技术。

    网络技术基础

    一、互联网的本质就是协议,网线其实是有7跟铜线组成的,上面传输的是电信号即高电平1和低电平0,那么单纯的传输这些数字没有任何意义,因此有了所谓的协议来规范这些二进制的使用规范如定义00000000是A 00000001是B一次类推,则就能传输人们可识别的信息。

    二、osi五层网络模型

    该五层模型上面越靠近用户,下面则越靠近底层。

    1、物理层

    主要依靠电信号(磁信号,光钎,电缆等)发送信息,如1代表高电平,2代表低电平。

    2、数据链路层

    定意义了物理层的二进制数字的分组方式。即以太网协议(ethernet)。

    ethernet规定:

    • 一组电信号构成一个数据包,叫做‘帧’
    • 每一数据帧分成:报头head和数据data两部分
    •        head

                             data                             

    • head包含:(固定18个字节)

      • 发送者/源地址,6个字节
      • 接收者/目标地址,6个字节
      • 数据类型,6个字节

      data包含:(最短46字节,最长1500字节)

      • 数据包的具体内容

      head长度+data长度=最短64字节,最长1518字节,超过最大限制就分片发送

    head头中包括源和目的的mac地址,mac地址长度为48位2进制,通常由12位16进制数表示(前六位是厂商编号,后六位是流水线号)。

    然后同一网络中的机器就可以依靠广播进行通信(通过arp协议获得另一台机器的mac地址)。

    3、网络层

    有了上述的条件,理论上世界上的任意两个机器连上网络后就可以进行通信,但实际依靠广播,那么很多机器就接收到了很多没有必要的数据,所以还需要引出网络层。

    ip协议:

            规定网络地址的协议叫ip协议,它定义的地址称之为ip地址,广泛采用的v4版本即ipv4,它规定网络地址由32位2进制表示

            范围0.0.0.0-255.255.255.255

            一个ip地址通常写成四段十进制数,例:172.16.10.1

    子网掩码和ip进行与运算后就可以算出两个ip是否在同一个子网中。

    ip输出包也有头和数据部分

    head:长度为20到60字节

    data:最长为65,515字节。

    以太网的数据部分最长是1500字节,因此大宇以太网的数据包必须进行拆分进行包装。

    arp协议:用广播的方式发送数据包,获得目标机器的mac地址(前提每台机器的ip是已知的)。

    工作方式:先判断ip是否和自己属于同一网络,如果不是则发送给网关的ip和mac,然后通过路由协议传送给目标网关最后送到目标ip。

    4、传输层

    在实际运用中,数据往往是发送给应用软件的,那么数据到达目标机器后,哪个软件接收数据,这有有了传输层的概念。

    传输层主要有tcp和udp协议。

    在传输层会封装一个端口号,这个就是和应用进行通讯的表示。(0-1023端口为系统占用,1024-65535是用户可用端口)

    tcp是可靠传输,TCP数据包没有长度限制,理论上可以无限长,但是为了保证网络的效率,通常TCP数据包的长度不会超过IP数据包的长度,以确保单个TCP数据包不必再分割。

    tcp有三次握手,所以接收数据更可靠。

    udp不可靠传输,”报头”部分一共只有8个字节,总长度不超过65,535字节,正好放进一个IP数据包。

    udp是广播形式,不关接收方是否接收数据。

    5、应用层

    应用层的协议有http、https、ftp等等,这些均是应用层的协议,这些协议是可以由应用开发人员修改的。当然也可以使用通用格式。

    三、用户上网流程

    用户打开网页,输入域名,浏览器会把请求封装成http协议包,传送给传输层,传输层包装端口号进去给网络层,网络成再包装ip给数据链路层,最后数据链路层包装mac地址后翻译成二进制给物理层。服务端则会反向的拆包,分析数据并把用户需要的数据用同样的方式传给用户机器,用户机器再自下而上的进行拆包获得自己希望得的的数据。

    从网络通信上来说,该请求会先查询本地的DNS缓存,如果没有域名信息则会向互联网的DNS服务器发送请求获得ip(13台根级服务器、13台顶级域名服务器),然后将ip和端口返回给用户,用户再发送信息给目标服务器请求数据。

  • 相关阅读:
    Yii CGridView 之 SQL 语句
    Yii的srbac拓展中“用户已经获授权项”无法查看
    MyBatis通过注解实现映射中的嵌套语句和嵌套结果
    MyBatis一对多映射简单查询案例(嵌套结果)
    MyBatis绑定Mapper接口参数到Mapper映射文件sql语句参数
    将前端请求中的数据绑定到Spring MVC响应方法中参数的四种方法
    MyBatis一对多映射简单查询案例(嵌套Mapper映射文件中的sql语句)
    Spring MVC与html页面的交互(以传递json数据为例)
    使用Spring JDBC连接数据库(以SQL Server为例)
    spring mvc访问html页面404报错解决
  • 原文地址:https://www.cnblogs.com/drchen/p/6544009.html
Copyright © 2011-2022 走看看