`
liqiangzju
  • 浏览: 19682 次
  • 性别: Icon_minigender_1
  • 来自: 杭州
社区版块
存档分类
最新评论

Loop Device解析

 
阅读更多

在Ubuntu下面挂载iso文件使用到的命令:

 

aneal@Aspire:~$:cd /mnt ; sudo mkdir isodir
[sudo] password for aneal:
aneal@Aspire:/mnt$:sudo mount -t auto -o loop ~/my.iso /mnt/isodir

 对其中loop参数不是非常理解,查询得到的结果:loop在这里指示mount命令将my.iso挂载为一个loop device。

 

那么,什么是loop device呢?

我的第一印象是网络本地环回测试,叫loopback test,意思是本机发出的数据包不发送到外部网络中,被本机接收,可以用来进行一些数据包分析和应用程序开发测试。

那么loop device是否跟跟网络中的loopback test类似呢?答案是肯定的。

loop device中的loop其实也是loopback的缩写,意思相同,不过所代表的意义并不是跟网络loopback test一致。

 

loop device将linux伪设备(pseudodevice)家族中的一员,loop device将实际文件系统中存在的文件映射到一个虚拟的块设备(block device)中,使得可以通过访问块设备的方式对文件进行访问,如果此文件中包含有一个完整的文件系统,则可以将将此文件系统挂在到系统文件系统中进行访问。

 

这个定义来自于维基百科,有点晕是不是?

 

我们来分析一下其中的要点:

1,loop device首先是一个设备(device),但是又不是实际物理性存在的设备,是虚拟的伪设备。

2,loop device必须要跟文件系统中某一文件进行关联(associate),形成映射,对loop device的访问会映射到对此对应文件的访问。

3,将文件映射为loop device后,相当于系统中就有了一个还没有挂载的存储硬件,可以挂载在文件目录中的某一个点上,然后进行访问。

 

整个访问过程是:

Request>VFS>Loop Device>Request>VFS>Local File

实际上对存储盘进行了两次访问,这才是loop device中的“环回”的含义所在。

 

 

 

 

reference:

http://en.wikipedia.org/wiki/Loop_device;

 

分享到:
评论

相关推荐

    Cowloop: Copy-On-Write loop device-开源

    “Cowloop: Copy-On-Write loop device-开源”这一标题指出,Cowloop是一个基于Copy-On-Write(COW)技术的循环设备驱动程序,而且它是开源的。这意味着用户可以自由地查看、修改和分发其源代码,符合开源软件的定义...

    Winpcap解析HTTP报文头

    接着,我们可以使用`pcap_loop`或`pcap_next_ex`函数来持续接收并处理捕获到的数据包。每个数据包包含一个`pcap_pkthdr`结构体,描述了数据包的时间戳、长度等信息,以及一个`u_char*`指针,指向实际的数据包内容。 ...

    ESP32-S2使用硬件SPI驱动LCD 基于Blink例程模板创建

    在ESP-IDF框架中,可以使用`spi_bus_initialize()`函数初始化总线,然后使用`spi_device_handle_t`结构体与特定的SPI设备建立连接。在初始化SPI设备时,需要设置参数,如时钟频率、极性、相位等。例如,`spi_device_...

    安科瑞电表界面modbus参数设置,python阿里云串口透传数据解析

    client.subscribe('your_device_topic') client.on_message = on_message client.loop_forever() # 将解析后的数据发送回阿里云 client.publish('your_response_topic', parsed_data) ``` 以上就是关于安科瑞电表...

    usb-scan源码解析,学习用

    当检测到事件时,`handle_device_event()`会被调用,执行相应的操作,如添加新设备到监控列表、更新设备状态或者通知用户。 对于远程控制,`usb_scan`可能使用网络套接字(socket)编程实现服务器功能。`start_...

    arduino-device-lib:TTN设备的Arduino库

    二、LoRaWAN技术解析 LoRaWAN是一种低功耗广域网(LPWAN)通信标准,特别适合于IoT设备的长距离、低速率通信需求。其特点包括: 1. **长距离**:LoRa信号能穿透建筑物,覆盖范围可达十几公里,甚至更远。 2. **低...

    Java调用jpcap获取本机所有get请求

    JpcapCaptor captor = JpcapCaptor.openDevice(JpcapCaptor.getDeviceList()[0], 65535, true, 20); ``` 这段代码会打开第一个网络接口,并设置缓冲区大小为65535字节,保持监听状态20秒。`JpcapCaptor....

    linux下的网络抓包代码

    fprintf(stderr, "Couldn't open device %s: %s\n", device, errbuf); return(2); } // 开始抓包 if (pcap_loop(handle, 10, packet_handler, NULL) ) { fprintf(stderr, "pcap_loop exited with error.\n");...

    VB做的Sniff软件完整代码

    通过WinPCap的`packet_open_device()`函数,我们可以打开一个网络接口,并设置捕获参数,如过滤规则,然后使用`packet_loop()`进行连续的数据包捕获。 2. **数据包解析**:捕获到的数据包是原始的二进制格式,需要...

    linux mount命令的用法详细解析

    以下是关于`mount`命令的详细解析: **一、命令格式** `mount`命令的基本格式如下: ```bash mount [-t vfstype] [-o options] device dir ``` 1. `-t vfstype`:指定文件系统的类型。例如,`iso9660`对应光盘,...

    Java抓包分析四(基于jnetpcap进行抓包)

    5. **解析封包**:每个捕获的Packet对象可以通过`getProtocols()`方法获取其包含的所有协议层次,并通过`get(PcapProtocolFamily)`获取特定协议层的数据。 6. **释放资源**:完成抓包后,别忘了关闭句柄以释放系统...

    基于Java的网络数据包捕获函数库 jNetPcap.zip

    4. **处理数据包**:使用`Pcap.loop()`或`Pcap.nextEx()`方法获取捕获到的数据包,然后进行解析和处理。 5. **结束捕获**:当不再需要捕获数据包时,调用`Pcap.close()`释放资源。 **示例代码** ```java import ...

    cappack.rar_pcap_pcap linux_pcap分析_网络数据包

    fprintf(stderr, "Couldn't open device %s: %s\n", argv[1], errbuf); return(2); } if (pcap_loop(handle, 10, packet_handler, NULL) ) { fprintf(stderr, "pcap_loop exited with error.\n"); return(2);...

    Android game-controller.zip

    4. **按键事件处理**:Android中的`InputDevice`类提供了获取和解析游戏控制器按键事件的方法。`InputEvent`和`InputDevice`对象一起用于处理来自游戏控制器的输入事件,如按键按下、摇杆移动等。开发者可以通过`get...

    一个简单嗅探软件的实现

    fprintf(stderr, "Couldn't open device %s: %s\n", "eth0", errbuf); exit(1); } ``` 这里的`pcap_open_live()`函数用于打开网络接口,"eth0"是接口名称,BUFSIZ设定缓冲区大小,1表示非阻塞模式,-1表示无限时钟...

    libcap编程参考1

    1. 数据包捕获:使用 `pcap_open_live()` 函数打开网络接口,`pcap_loop()` 或 `pcap_next()` 用于接收数据包。 2. 数据包过滤:通过 `pcap_compile()` 和 `pcap_setfilter()` 设置 BPF(Berkeley Packet Filter)...

    用PERL实现一个简单的NIDS

    这只是构建一个简单NIDS的基础框架,实际的NIDS系统需要更复杂的规则集、更深入的协议解析以及可能的特征匹配算法。例如,可以使用`PPI`(Perl Parser for Perl)库来解析Perl代码,查找可能的注入尝试;或者结合`...

    MicroTankMIDlet_java_

    MicroTankMIDlet的源码中,可能会有一个GameLoop类负责这些任务,通过定时器或者while循环不断更新游戏状态。 5. **资源管理** 在有限的内存和存储空间下,有效地管理资源至关重要。MicroTankMIDlet可能使用了图像...

    jpcap例子

    4. **捕获数据包**:调用`JpcapCaptor.getPacket()`或`JpcapCaptor.loop()`来连续捕获数据包。 5. **处理每个数据包**:对捕获到的每个数据包进行解析,提取相关信息,如源/目标地址、端口和TCP状态。 6. **分析和...

    ZDO程序员指南

    通过以上详细解析,我们可以看到ZDO程序员指南不仅覆盖了ZDO的基本概念、组件结构和核心函数,还深入讲解了如何利用ZDO进行Zigbee网络编程。这对于理解Zigbee协议栈以及开发基于Zigbee的应用具有重要意义。

Global site tag (gtag.js) - Google Analytics