{{category FreeBSD}} !!FreeBSDでのnfsd :/usr/src/usr.sbin/nfsd.c:引数およびソケットの解析をしnfssvc()を呼んでいる [[FreeBSDのNFS|FreeBSDNFS]] !!NFS2の動作について *通常のアプリケーションが、ファイルアクセスを実行 *その要求は、OS カーネルに届く *カーネルは、そのファイルシステムが、NFS 経由でネットワーク上にあると識別し、 NFS クライアントへ要求を受け渡す *NFS クライアントは、RPC コールを実施 *RPC は、UDP/IP を利用して、NFS サーバのあるホストへ要求を渡す *NFS サーバのホストの UDP/IP モジュールは、要求を RPC サーバへ渡す *RPC サーバが、NFS サーバへ要求を渡す *NFS サーバが、サーバのカーネルのローカルファイルアクセスを要求 *サーバのカーネルがファイルアクセスを実施 *結果を戻していく(以下省略) !!RPCメモ [コンピューターC言語講座RPCについて(1)|http://www.ncad.co.jp/~komata/c-kouza15.htm] !!ファイルアトリビュート struct nfs_fattr { u_int32_t fa_type; u_int32_t fa_mode; u_int32_t fa_nlink; u_int32_t fa_uid; u_int32_t fa_gid; union { struct { u_int32_t nfsv2fa_size; u_int32_t nfsv2fa_blocksize; u_int32_t nfsv2fa_rdev; u_int32_t nfsv2fa_blocks; u_int32_t nfsv2fa_fsid; u_int32_t nfsv2fa_fileid; nfstime2 nfsv2fa_atime; nfstime2 nfsv2fa_mtime; nfstime2 nfsv2fa_ctime; } fa_nfsv2; struct { nfsuint64 nfsv3fa_size; nfsuint64 nfsv3fa_used; nfsv3spec nfsv3fa_rdev; nfsuint64 nfsv3fa_fsid; nfsuint64 nfsv3fa_fileid; nfstime3 nfsv3fa_atime; nfstime3 nfsv3fa_mtime; nfstime3 nfsv3fa_ctime; } fa_nfsv3; } fa_un; };