设备管理与驱动

  1. 字符设备:

    是指每次与系统传输1个字符的设备。
    字符设备通常为传真、虚拟终端和串口调制解调器、键盘之类设备提供流通信服务。
    字符设备在实现时,大多不使用缓存器。系统直接从设备读取/写入每一个字符。
    例如,键盘这种设备提供的就是一个数据流,当你敲入“abcdefg这个字符串时,键盘驱动程序会按照和输入完全相同的顺序返回这个由七个字符组成的数据流。它们是顺序的,先返回a,最后是g。

  2. 块设备:

    是指与系统间用块的方式移动数据的设备。如硬盘、CD-ROM和内存区域。
    块设备通常支持随机存取和寻址,并使用缓存器。
    操作系统为输入输出分配了缓存以存储一块数据。当程序向设备发送了读取或者写入数据的请求时,系统把数据中的每一个字符存储在适当的缓存中。
    当缓存被填满时,会采取适当的操作(把数据传走),而后系统清空缓存。
    它与字符设备不同之处就是其一般支持随机存储,而字符型是流形式,逐一存储。

  3. 特殊设备:

    在类Unix操作系统中,设备节点并不一定要对应物理设备。
    没有这种对应关系的设备是特殊设备(或伪设备)。操作系统运用了它们提供的多种功能。
    部份经常使用到的特殊设备(或伪设备)包括: null, zero, full, loop

    1. /dev/stdin:
      指的就是键盘设备
      实验1:

      cat > file1 < /dev/stdin

      Test
      Ctrl +d
      cat从/dev/stdin获得数据,然后保存到file1文件中。
      cat file1
      Test
      实验2:

      cat > file1

      Test
      Ctrl+D
      不指定输入,默认的输入设备就是/dev/stdin

    2. /dev/null设备:

      是个黑洞设备,它丢弃一切写入其中数据,空设备通常被用于丢弃不需要的输出流。
      任何写入该设备数据都会被丢弃掉。从这个里面读取数据返回是空。将一些不用内容经常发送给这个设备,丢弃不需要的数据。

    3. /dev/zero设备:

      /dev/zero 会提供无限的空字符(NULL, ASCII NUL, 0x00)。其中的一个典型用法是用它提供的字符流来覆盖信息,另一个常见用法是产生一个特定大小的空白文件。 例如:

      $ dd if=/dev/zero of=testzero count=1024 bs=1024
      1024+0 records in
      1024+0 records out
      1048576 bytes (1.0 MB) copied, 0.0107194 seconds, 97.8 MB/s

      创建一个大小为1M文件,该文件一个块是1024字节,一共是1024块(刚好1M),用/dev/zero文件内容填充它。输出创建到:testzero文件

    4. /dev/full设备:

      类Unix系统中,/dev/full(常满设备)是一个特殊设备文件,总是在向其写入时返回设备无剩余空间。
      这个设备通常被用来测试程序在遇到磁盘无剩余空间错误时的行为。

    5. dd
      dd命令的用途把指定的输入文件拷贝到指定的输出文件中,并且在拷贝的过程中可以进行格式转换。
      一般用于数据备份与恢复
      例1:
      将本地的/dev/hdx整盘备份到/dev/hdy :

      dd if=/dev/hdx of=/dev/hdy

      例2:
      将/dev/sda1全盘数据备份到指定路径的image文件:

      dd if=/dev/sda1 of=/home/apple/test

      例3:
      将备份文件恢复到指定盘:

      dd if =/home/apple/test of=/dev/hdx

    6. 设备驱动
      Linux 内核中虽存在许多不同的设备驱动程序但它们具有一些共同的特性:

      1. 驱动程序属于内核代码
        设备驱动程序是内核的一部分,它象内核中其它代码一样运行在内核模式,驱动程序如果出错将会使操作系统受到严重破坏,甚至能使系统崩溃并导致文件系统的破坏和数据丢失。
      2. 为内核提供统一的接口
        设备驱动程序必须为 Linux 内核或其它子系统提供一个标准的接口。例如终端驱动程序为Linux 内核提供了一个文件 I/O 接口。
      3. 驱动程序的执行是属于内核机制并且使用内核服务
        设备驱动可以使用标准的内核服务如内存分配、中断发送和等待队列等等。
      4. 动态可加载
        多数 Linux 设备驱动程序可以在内核模块发出加载请求时加载,而不再使用时将其卸载。这样内核能有效地利用系统资源。
      5. 可配置
        Linux 设备驱动程序可以连接到内核中。当内核被编译时,被连入内核的设备驱动程序是可配置的
    7. 网卡驱动升级
      网卡驱动需要编译,因而需要安装kernel-devel,以提供相应支持:
      1)用#rpm –qa|grep kernel-devel查看是否安装了这个包;
      如果返回结果中有kernel-devel-xxx(其中xxx为当前redhat的内核版本,如rhel3为2.4.21-4EL), 即已经安装。
      2)如果安装了用#rpm -V kernel-devel校验是否有文件丢失,如果没有输出,表示文件完整;
      3)如果有丢失用#rpm -ivh –force kernel-devel-xxxx…把包重新覆盖安装一下。
      1 – 在编译网卡之前,先检查网卡使用的网卡驱动模块名:

      cat /etc/modprobe.conf

      alias eth0 bnx2 表明网卡驱动模块名为bnx2
      2 – 检查当前是否有已加载网卡驱动模块bnx2:

      lsmod | grep bnx2

      bnx2 179021 0 表明系统已有加载完网卡驱动模块
      3 – 查看当前驱动模块信息,从而得到驱动模块的版本,以便验证稍后网卡驱动模块升级

      modinfo bnx2

      filename: /lib/modules/2.6.18-194.el5/kernel/drivers/net/bnx2.ko 网卡驱动存放的路径,升级后网卡存放路径与此路径不同
      version: 2.0.2 表明网卡模块版本为2.0.2,是系统默认网卡驱动版本

    8. U盘使用
      U盘在访问之前一般需要mount,mount 的语法是

      mount 设备名 挂载点目录

      但如何知道u盘的设备名?
      方法是:可以在插入u盘后用

      fdisk -l

      看一下

linux命令指南之三相关推荐

  1. 高频linux命令指南

    高频命令 文件管理 ls 显示指定工作目录下的内容及属性信息 语法格式: ls [选项] [文件] 常用参数: 参数 说明 -a 显示所有文件及目录 (包括以"."开头的隐藏文件) ...

  2. 高级 Linux 命令精通指南

    原文出处 http://www.oracle.com/technetwork/cn/server-storage/linux/part1-093824-zhs.html Technorati 标签: ...

  3. linux bash命令_Ultimate Linux命令行指南-Full Bash教程

    linux bash命令 Welcome to our ultimate guide to the Linux Command Line. This tutorial will show you so ...

  4. 《神探tcpdump第五招》-linux命令五分钟系列之三十九

    == [系列文章] <神探tcpdump第一招>-linux命令五分钟系列之三十五 <神探tcpdump第二招>-linux命令五分钟系列之三十六 <神探tcpdump第 ...

  5. 高级 Linux 命令精通指南(2)

    xargs 大多数 Linux 命令都会产生输出:文件列表.字符串列表等.但如果要使用其他某个命令并将前一个命令的输出作为参数该怎么办?例如,file 命令显示文件类型(可执行文件.ascii 文本等 ...

  6. Android 9 (P)之init进程启动源码分析指南之三

          Android 9 (P)之init进程启动源码分析指南之三 Android 9 (P)系统启动及进程创建源码分析目录: Android 9 (P)之init进程启动源码分析指南之一 An ...

  7. Linux命令行与shell脚本编程大全:第2版

    <Linux命令行与shell脚本编程大全:第2版> 基本信息 作者: (美)布卢姆(Blum,R.) 布雷斯纳汉(Bresnahan.C.) [作译者介绍] 译者: 武海峰 丛书名: 图 ...

  8. 《Linux命令详解手册》——Linux畅销书作家又一力作

    关注IT,更要关心IT人,让系统管理员以及程序员工作得更加轻松和快乐.鉴于此, 图灵公司引进了国外知名出版社John Wiley and Sons出版的Fedora Linux Toolbox: 10 ...

  9. linux php 指令,在 Linux 命令行中使用和执行 PHP 代码(一)

    PHP是一个开源服务器端脚本语言,最初这三个字母代表的是"Personal Home Page",而现在则代表的是"PHP:Hypertext Preprocessor& ...

最新文章

  1. Linux Mint无法打开系统设置,以及很多系统图标
  2. zabbix3.2.1安装graphtrees插件
  3. 文巾解题 82. 删除排序链表中的重复元素 II
  4. ibmmq 通道命令_IBM MQ 使用指南
  5. Js中Date的应用
  6. 2.2 基本算法之递归和自调用函数 8758 2的幂次方表示 python
  7. springmvc接收日期字段处理方式
  8. WPF下递归生成树形数据绑定到TreeView上
  9. JavaTPoint 工具中文教程【翻译完成】
  10. linux ddd yum,Linux环境ddd安装与使用
  11. n的阶乘末尾含0的个数
  12. linux内存和缓冲区,Linux上怎么清除缓存、缓冲区和交换区空间?
  13. 然而大部分工程师的期权并没有什么用
  14. android制作类似支付圆圈和打钩界面ProgressWheel
  15. nacos配置中心提示com.alibaba.nacos.shaded.io.grpc.StatusRuntimeException: UNAVAILABLE: io exceptio
  16. 预测模型之灰色系统预测
  17. Python word_cloud 样例 标签云系列(三)
  18. xtu oj Patchouli的金字塔
  19. 模拟linux终端测试java,Linux 伪终端(pty)
  20. Linux学习日记1——Ubuntu

热门文章

  1. 很不错的SQLite工具 SQLiteSpy
  2. 虚拟歌手亮相央视元宵晚会,窥探背后的科技力量
  3. 小型双轮差速底盘实现触须避障
  4. C#语言实例源码系列-自定义ListBox背景
  5. 平面视觉(二):一键还原父母儿时的记忆
  6. 学计算机编程应该先学什么,计算机编程好学吗?计算机编程入门应该先学什么?...
  7. 八卦与六十卦unicode符号python打印
  8. 如何在Java中使用Lambda表达式
  9. html头像动画,用CSS3实现头像旋转效动画
  10. 毕业答辩PPT模板(10套免费+精选)