b2科目四模拟试题多少题驾考考爆了怎么补救
b2科目四模拟试题多少题 驾考考爆了怎么补救

linux dev 常见特殊设备介绍与应用(loop,null,zero,full,random)

电脑杂谈  发布时间:2019-07-15 06:05:57  来源:网络整理

loop设备_magne loop_loop the loop什么番

退出 fuser -km /mnt/hda2 当设备繁忙时强制卸载 umount -n /mnt/hda2 运行卸载操作而不写入 /etc/mtab 文件- 当文件为只读或当磁盘写满时非常有用 mount /dev/fd0 /mnt/floppy 挂载一个软盘 mount /dev/cdrom /mnt/cdrom 挂载一个cdrom或dvdrom mount /dev/hdc /mnt/cdrecorder 挂载一个cdrw或dvdrom mount -o loop file.iso /mnt/cdrom 挂载一个文件或iso镜像文件 mount -t vfat /dev/hda5 /mnt/hda5 挂载一个windows fat32文件系统 mount /dev/sda1 /mnt/usbdisk 挂载一个usb 捷盘或闪存设备 mount -t smbfs -o username=user,password=pass //winclient/share /mnt/share 挂载一个网络共享df -h 显示已经挂载的分区列表 ls -lsr |more 以尺寸大小排列文件和目录 du -sh dir1 估算目录 '。最早硬件操作是人工来操作,比如写文件就是对磁盘的操作,想一想写一个文件人要控制磁盘的转速,移动磁头等等。(1)基本文件操作:创建、删除、读、写、截断、设置读/写位置等。

一、设备分类

字符型设备

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

块设备

块设备是指与系统间用块的方式移动数据的设备。这些设备节点通常代表可寻址设备,如硬盘、CD-ROM和内存区域。

fuse(file system in user space)技术可以绕过缓存直接在设备上读取、写入数据,以确保响应时间一致。所以,在数据存储方面,大量数据存储在外存磁盘中,而在外存磁盘中读取/写入块(block)中某数据时,首先需要定位到磁盘中的某块,如何有效地查找磁盘中的数据,需要一种合理高效的外存数据结构,就是下面所要重点阐述的b-tree结构,以及相关的变种结构:b+-tree结构和b*-tree结构。缓存主要用来存放那些读写比很高、变化很少的数据,这样应用程序读取数据时先到缓存中读取,如果没有或者数据已经失效再去访问或文件系统,并根据拟定的规则将数据写入缓存。

伪设备

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

二、特殊设备及使用

这里说到特殊设备除了硬盘主板等,只是它在linux shell命令里面,有特殊的作用,因此把它们单独拿出来。这些设备分别是:

loop the loop什么番_loop设备_magne loop

/dev/stdin

/dev/stdout

/dev/stderr

/dev/null

/dev/zero

/dev/full

/dev/random,urandom

/dev/fd

/dev/tcp|upd

/dev/loop

1、标准输出输入设备

magne loop_loop设备_loop the loop什么番

还记得上次说的,linux重定向吗?可以看下:linux shell数据重定向(输入重定向与输出重定向)详细分析 。它们就是与几个特殊文件描述符对应,fd0,fd1,fd2 (stdin,stdout,stderr)

如:

[chengmo@centos5 shell]$ cat>teststdin</dev/stdin
test
#ctrl+D
#cat从/dev/stdin获得数据,然后将标准输出,输入的到teststdin文件
[chengmo@centos5 shell]$ cat teststdin 
test
 
[chengmo@centos5 shell]$ cat>teststdin
test
#ctrl+D
#不指定输入,默认输入设备就是/dev/stdinn

/dev/stdin指的就是键盘设备

[chengmo@centos5 shell]$ cat test.sh >/dev/stdout |grep 'echo'
echo "very good!";
echo "good!";
echo "pass!";
echo "no pass!"
#/dev/stdout指向就是标准输出,因此重定向给它的数据,最终发送到屏幕上(fd1)
     
[chengmo@centos5 shell]$ cat test.sh  |grep 'echo'           
echo "very good!";
echo "good!";
echo "pass!";
echo "no pass!";
 
     
[chengmo@centos5 shell]$ cat test.sh >/dev/stderr |grep 'echo'  
#!/bin/sh
 
scores=40;
if [[ $scores -gt 90 ]]; then
    echo "very good!";
elif [[ $scores -gt 80 ]]; then
    echo "good!";
elif [[ $scores -gt 60 ]]; then
    echo "pass!";
else
    echo "no pass!";
fi;
#/dev/stderr 指是错误输出,默认也是输出到屏幕上面,但是它的内容不能通过管道传递给grep,管道只能传递标准输出

/dev/null设备

"先读后写"模式. 简单的说就是优先处理数据的读取, 然后再处理数据的写入. 比如: 你打开了一个应用(打开应用需要读取数据), 这个应用还在打开的过程中, 你等不及了, 又打开相机拍了个照片(照片需要保存, 所以需要数据写入). 这时, 按row的"先读后写"原则 , 会先让你点击的应用打开, 之后, 再保存你刚刚拍摄的照片. (相机此时可能会卡住一段时间)。目前,数据的移动或复制靠服务器或多个服务器来完成,服务器从源设备中读取数据,然后通过lan或wan传送给其它的服务器,最后数据写入目标设备。每次先发送要操作的寄存器地址,然后根据读写性质的不同在输入或输 出线上写入或读取数据,可以连续读取同一寄存器的数值。

如:

[chengmo@centos5 shell]$ cat /dev/null
[chengmo@centos5 shell]$ cat test.sh >/dev/null
#读该设备为空,写入该设备数据都丢弃了

/dev/zero设备

位图的一种常见用法就是描述各种字体的字符。 这是匹配任意字符 (包括换行符) 的常见做法. (而点号 . 则匹配换行符以外的所有字符). p.128 在 perl 里, 注释也算是一种空白.。linux系统如同unix系统将一切都可以看作文件来操作,linux系统下针对不同外设以及存储设备存在多种不同类型文件,这些不同类型文件有着相当的用途,实际软件应用中通常操作文件系统中普通文件应用比较常见,另外在网络通信中套接口文件等也比较常见。

loop设备_loop the loop什么番_magne loop

如:

[chengmo@centos5 shell]$ 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文件
 
 
[chengmo@centos5 shell]$dd if=/dev/zero of=/dev/磁盘分区
#这个命令一定不要随便用,有点象windows里面的粉碎文件工具。不过它是用\0x00填充整个分区。这样做数据是不可以恢复的了。
 
[chengmo@centos5 shell]$cat /dev/zero>testinputzero
#这个命令也不能随便使用咯,/dev/zero设备一个特效是,如果你读取的话,是一个死循环会输出无穷的\x00,这样你将创建一个用\x00填充的文件。如果你没有限制该用户磁盘配额。它将耗尽整个磁盘空间。

同时由于redis将内存 中的数据swap到磁盘中的时候,提供服务的主线程和进行swap操作的子线程会共享这部分内存,所以如果更新需要swap的数据,redis将阻塞这个 操作loop设备,直到子线程完成swap操作后才可以进行修改。这是有代价的,goroutine 的内存消耗计算(当然1.3还是1.4开始得到了很大的改善,内存最小值限制已经没了),channel 跨线程带来的性能损耗(跨线程锁),还有对 goroutine 的控制力几乎为 0 等。进入高级选项后我们可以看到如下画面,这里就是限制电脑性能的关键步骤了,首先把箭头指向的两个钩钩打上去,然后可以选择开机后可以使用的处理器或者内存数量,以小编的电脑为例,小编的电脑使用的i5双核四线程处理器,在正常工作下资源管理器中可以看到四个线程工作,以及4gb内存,那么我们试着把处理器线程限制到单线程,内存限制到2gb左右,在这里小编就随便打一个2020吧。

/dev/full设备

类Unix系统中,/dev/full(常满设备)是一个特殊设备文件,总是在向其写入时返回设备无剩余空间(错误码为ENOSPC),读取时则与/dev/zero相似,返回无限的空字符(NULL, ASCII NUL, 0x00)。这个设备通常被用来测试程序在遇到磁盘无剩余空间错误时的行为。

如:

[chengmo@centos5 shell]$ echo 'chengmo' >/dev/full
-bash: echo: write error: 设备上没有空间
[chengmo@centos5 shell]$ echo $?
1
#命令执行返回错误

/dev/random[urandom]

在类UNIX操作系统中,/dev/random是一个特殊的设备文件,可以用作随机数发生器或伪随机数发生器。它允许程序访问来自设备驱动程序或其它来源的背景噪声。常用作随机数发生器。具体参考:linux shell实现随机数多种方法(date,random,uuid)

/dev/fd

记录用户打开的文件描述符

loop设备_magne loop_loop the loop什么番

[chengmo@centos5 shell]$ ls /dev/fd/

0 1 2 3

详细参考:

linux shell数据重定向(输入重定向与输出重定向)详细分析 文件描述符介绍。

/dev/tcp[udp]/host/port

今天看了一篇关于在dos下如何用usb设备的文章,觉得对我们搞atm的工程师帮助比较大,因为nt一般不支持usb,所以特此制作了一张带usb驱动的win98启动盘,经测试,用这张盘启动的系统,可以在dos下正常访问我的u盘,希望这个工具能给大家带来一些方便,做的不好还请大家指教,记着先把要使用的usb设备与电脑主机连接,由于要读取usb驱动,因此电脑的启动时间会比平时稍长——启动盘会先扫描主板的usb端口,如果找到端口上的usb设备,则为其分配一个id识别号码(即盘符),循环往复直到所有的usb设备侦测完毕。当确保电脑主机usb接口是可用的,并且数据线与硬件连接牢固后,如果移动磁盘依然无法显示,我们可以尝试重新拔掉主机usb接口,稍等下再次插入来尝试一下,有时候可能会碰到这种情况,开始接入电脑提示有因设备接入,但在我的电脑里却看不到移动磁盘盘符,反复重新插拔几下结果就有了。能整合it设备上的kvm连接端口、串口连接端口与电源插座于同一个网页上,提供it管理员从单一使用者接口完整的控制it设备。

详细使用可以参考:

linux shell 脚本实现tcp/upd协议通讯(重定向应用)

/dev/loop

在类UNIX操作系统中,Loop设备 可以把loop 文件,作为块设备挂载使用。

如:

[chengmo@centos5 shell]$mount -o loop example.img /home/chengmo/img

#将img镜像文件挂载到/home/chengmo/img目录下面,有了这个设备,我们不需要通过虚拟光驱就可以读虚拟磁盘格式的文件。

说了很多linux 特殊设备,其它象cpu,内存,磁盘,网络,键盘,终端设备。跟我们windows里面常见差不多。有什么问题,欢迎交流!


本文来自电脑杂谈,转载请注明本文网址:
http://www.pc-fly.com/a/jisuanjixue/article-113103-1.html

    相关阅读
      发表评论  请自觉遵守互联网相关的政策法规,严禁发布、暴力、反动的言论

      • 长濑凑
        长濑凑

        你是最棒的小王子

      • 刘振元
        刘振元

        我们的军队好久没打仗了

      每日福利
      热点图片
      拼命载入中...