会社でディスク(ブロックデバイス)とNFSの違いはという話題になったので、Linux kernelの中のブロクデバイス、NFS(ファイルシステム)、ネットワークの関係をざっくりしたポンチ絵に落としてみました。(簡素化するため箸折っていたり、そもそも私の理解が曖昧な部分もあるので、マジマジ見ると色々気になるかもしれないです)
- 凡例
- 青色:共通インターフェース
- VFS(Virtual File system): ファイルシステムを抽象化している層
- blk:正式な名称がわからないですが、ブロックデバイスを抽象化している層
- socket:ソケット通信(networkは、ソケット通信で抽象化されている)
- 緑色:ファイルシステム
- 黄色:各プロトコル、またはハードに依存しない上位のデバイス
- 橙色:ハードウェアデバイス、またはハードウェア