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和端口返回给用户,用户再发送信息给目标服务器请求数据。

  • 相关阅读:
    WF4.0 Beta1 自定义跟踪
    WF4.0 Beta1 流程设计器与Activity Designer
    新版本工作流平台的 (二) 权限算法(组织结构部分)
    WF4.0 Beta1 WorkflowInvoker
    WF4.0 基础篇 (十) Collection 集合操作
    WF4.0 基础篇 (十五) TransactionScope 事物容器
    WF4.0 基础篇 (六) 数据的传递 Arguments 参数
    WF4B1 的Procedural Activity 之InvokeMethod , InvokeMethod<T> 使用
    WF4.0 Beta1 异常处理
    WF4.0 Beta1 变量 Variables
  • 原文地址:https://www.cnblogs.com/drchen/p/6544009.html
Copyright © 2011-2022 走看看