LInux操作系统 设备和网络

设备驱动是指控制具体的物理设备完成 I/O 操作,与硬件的物理特性和数据传输控制方式密切相关,不同类型的设备、不同数据传输控制方式要采用不同设备驱动方式。

Linux 首先把设备分为块设备、字符设备两大类,然后再对块设备和字符设备具体分类,针对每一类设备分别开发不同的设备驱动程序。

数据结构:

        块设备表,对每一类块设备分别设置块设备表,记录该类设备的相关信息。其内容包括:

  • 忙标志:标志设备的忙闲状态,0 表示空闲,1 表示正忙。
  • 出错次数:指设备 I/O 出错次数。每次 I/O 完成后,就转入设备中断处理程序,设备中断处理程序检测此次 I/O 过程是否出错,如果出错则将出错次数加一,如果出错次数没用超过规定值则中断处理程序重新启动一次数据传输;如果出错次数超出规定值则认为是真正的数据传输错误,不会再重新启动数据传输。
  • 设备缓冲区队列头指针:分配给该设备的缓冲区队列的头指针
  • 设备缓冲区队列尾指针:分配给该设备的缓冲区队列的尾指针
  • I/O 请求队列头指针:请求该类设备 I/O 操作的请求块组成的队列的头指针
  • I/O 请求队列尾指针:请求该类设备 I/O 操作的请求块组成的队列的尾指针

 I/O 请求队列。用户进程的 I/O 请求包括要求完成 I/O 操作的逻辑设备名、要求的操作、传送数据在内存中的起始地址、传送数据的长度,将这些信息组织成 I/O 请求块 iorb。逻辑设备名相同(同一类设备)的 I/O 请求块构成一个队列,称为 I/O 请求队列。每一类设备都分别有一个 I/O 请求队列。

磁盘设备驱动程序

驱动程序控制设备具体实现进程的高级 I/O 请求包括打开、关闭、读、写等。

  • 打开。磁盘在使用之前必须进行打开操作,其目的是在使用磁盘之前进行必要的初始化————设置硬盘的工作参数,硬盘工作参数存放在主存中操作系统结构硬盘控制块中,它是驱动程序对硬盘进行控制的依据。硬盘工作参数存放在硬盘的引导区中,因此要将引导区内容读到硬盘控制块中必须进行部分初始化工作。
  • 读写硬盘。由策略接口程序 strategy 完成,每次只读写一个扇区,Linux 中对硬盘有两种读方式和三种写方式: - 一般读方式:把当前所需盘块中的内容读入缓冲区 - 预先读:进程读顺序文件的盘块时,会预先读取下一盘块的内容 - 一般写方式:把缓冲区数据写到盘块,进程必须等待写操作完成 - 异步写方式:把缓冲区数据写到盘块,进程不必等待写操作完成 - 延迟写:先将数据写到缓冲区,标记该缓冲区延迟写,挂到空闲缓冲区队列尾部等到后续时间再写到盘块中

 

硬盘读写驱动过程:

  • 将逻辑块号转换为物理块号
  • 申请 DMA
  • 将物理块号转换为盘面号/柱面号/扇区号
  • 移动磁头到指定柱面
  • 向硬件控制器发送读写命令
  • CPU 发出读写命令后不必等待,继续执行其他进程
  • 当传输结束后,硬盘控制器会向 CPU 发送中断信号
  • CPU 响应后转入硬盘中断处理程序

字符设备驱动

         字符设备作为人和计算机之间的接口设备,人们通常通过字符设备向计算机输入信息(指令、数据)或输出信息。字符设备以字符作为数据传输单位,速度较慢。常见的字符设备有终端、行式打印机、卡片输入机等等。

        字符设备的传递使用一组专用的寄存器来实现。每种字符设备的控制器一般都有三个寄存器:

  • 控制寄存器接收 CPU 发送来的命令、控制设备的操作;
  • 状态寄存器保存设备的状态;
  • 数据寄存器暂存要传送的数据;

 

防火墙的概念

防火墙是一个矛盾统一体,它既要限制信息的流通,又要保持信息的流通。因此,根据网络安全性总体需求,防火墙可以遵循以下两种基本原则之一实现:

  • 一切未被允许的都是禁止的
  • 一切未被禁止的都是允许的

由于以上两种防火墙原则在安全性和可使用性上各有侧重,很多防火墙系统唉两者之间都采用了一定的折中。

 

防火墙的分类

根据不同的防范方式和侧重点,防火墙主要分为分组过滤型和代理服务型。它们在网络性能、安全性和应用透明性等方面各有利弊。

Linux 常用的网络命令介绍

  1. ftp 命令
  2. telnet 命令
    用户使用 telnet 命令进行远程登陆。该命令运行用户使用 telnet 协议在远程计算机之间进行通信,用户可以通过网络在远程计算机上登录,就像登录到本地机器上执行命令一样。如下图所示:
  3. rlogin 命令
    rlogin 是 remote login 的缩写。该命令与 telnet 命令类似,允许用户启动远程系统上的交互命令会话。如下图所示:

你可能感兴趣的:(c++,linux,linux,驱动开发,运维)