⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 nbd.txt

📁 嵌入式系统设计与实例开发实验教材二源码 多线程应用程序设计 串行端口程序设计 AD接口实验 CAN总线通信实验 GPS通信实验 Linux内核移植与编译实验 IC卡读写实验 SD驱动使
💻 TXT
字号:
                      Network Block Device (TCP version)                                          Note: Network Block Device is now experimental, which approximately   means, that it works on my computer, and it worked on one of school   computers.      What is it: With this compiled in the kernel, Linux can use a remote   server as one of its block devices. So every time the client computer   wants to read /dev/nd0, it sends a request over TCP to the server, which   will reply with the data read. This can be used for stations with   low disk space (or even diskless - if you boot from floppy) to   borrow disk space from another computer. Unlike NFS, it is possible to   put any filesystem on it etc. It is impossible to use NBD as a root   filesystem, since it requires a user-level program to start. It also   allows you to run block-device in user land (making server and client   physically the same computer, communicating using loopback).      Current state: It currently works. Network block device looks like   being pretty stable. I originally thought that it is impossible to swap   over TCP. It turned out not to be true - swapping over TCP now works   and seems to be deadlock-free, but it requires heavy patches into   Linux's network layer.      Devices: Network block device uses major 43, minors 0..n (where n is   configurable in nbd.h). Create these files by mknod when needed. After   that, your ls -l /dev/ should look like:brw-rw-rw-   1 root     root      43,   0 Apr 11 00:28 nd0brw-rw-rw-   1 root     root      43,   1 Apr 11 00:28 nd1...   Protocol: Userland program passes file handle with connected TCP   socket to actual kernel driver. This way, the kernel does not have to   care about connecting etc. Protocol is rather simple: If the driver is   asked to read from block device, it sends packet of following form   "request" (all data are in network byte order):     __u32 magic;        must be equal to 0x12560953  __u32 from;         position in bytes to read from / write at  __u32 len;          number of bytes to be read / written  __u64 handle;       handle of operation  __u32 type;         0 = read                      1 = write  ...                 in case of write operation, this is                      immediately followed len bytes of data   When operation is completed, server responds with packet of following   structure "reply":     __u32 magic;        must be equal to  __u64 handle;       handle copied from request  __u32 error;        0 = operation completed successfully,                      else error code  ...                 in case of read operation with no error,                      this is immediately followed len bytes of data   For more information, look at http://atrey.karlin.mff.cuni.cz/~pavel.

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -