fs_1.tar





sys/modctl.h
sys/vfs.h
sys/vnode.h


_init(9E)
_info(9E)
_fini(9E)


_init() 
{ 
   int err;
   
   err = mod_install(&modlinkage);
         ^^^^^^^^^^^^^^^^^^^^^^^^^
   return (err);
}


     |

            |

            |

		       |

		       |

			        |

				|

				|
				...
     |

            |

            |

		       |


       err = vfs_setfsops(fstype, iumfs_vfs_ops_def_array, &iumfs_vfsops);
                                  ~~~~~~~~~~~~~~~~~~~~~~~   ~~~~~~~~~~~~~




IUMFSUFS
vfs_mount
vfs_umount
vfs_root
vfs_statvfs
vfs_vget
vfs_sync
vfs_mountroot
IUMFSUFS
vop_open
vop_close
vop_read
vop_write
vop_ioctl
vop_setfl
vop_getattr
vop_setattr
vop_access
vop_lookup
vop_create
vop_remove
vop_link
vop_rename
vop_mkdir
vop_rmdir
vop_readdir
vop_symlink
vop_readlink
vop_fsync
vop_inactive
vop_fid
vop_rwlock
vop_rwunlock
vop_seek
vop_cmp
vop_frlock
vop_space
vop_realvp
vop_getpage
vop_putpage
vop_map
vop_addmap
vop_delmap
vop_poll
vop_dump
vop_pathconf?
vop_pageio?
vop_dumpctl?
vop_dispose?
vop_setsecattr
vop_getsecattr
vop_shrlock?






iumfs_mount.c

main(int argc, char *argv[])
{
   if (argc != 3){
       printf("Usage: %s -F iumfs strings mount_point\n", argv[0]);
       exit(0);
   }
   
   if ( mount(argv[1], argv[2], MS_DATA, "iumfs", NULL, 0) < 0 ){        
	perror("mount");
       exit(0);
   }
   return(0);    
}



# ./configure

===============================
   OS : SunOS 5.9 (64-bit)
 ARCH : sparc
===============================

Makefile created.
Please run make command.

# make
gcc -c -m64 -O -D_KERNEL -D_SYSCALL32 iumfs.c -o iumfs.o
gcc -c -m64 -O -D_KERNEL -D_SYSCALL32 iumfs_vnode.c -o iumfs_vnode.o
/usr/ucb/ld -dn -r iumfs.o iumfs_vnode.o -o iumfs
gcc -lsocket -lnsl iumfs_mount.c -o mount
# make install
/usr/sbin/install -s -f /kernel/fs/sparcv9/ -m 0755 -u root -g sys iumfs
/usr/sbin/modload iumfs
/usr/sbin/install -s -d /usr/lib/fs/iumfs
/usr/sbin/install -s -f /usr/lib/fs/iumfs -m 0755 -u root mount
# ./configure

===============================
   OS : SunOS 5.10 (64-bit)
 ARCH : sparc
===============================

Makefile created.
Please run make command.

# make
gcc -c -m64 -O -DSOL10 -D_KERNEL -D_SYSCALL32 iumfs.c -o iumfs.o
gcc -c -m64 -O -DSOL10 -D_KERNEL -D_SYSCALL32 iumfs_vnode.c -o iumfs_vnode.o
/usr/ucb/ld -dn -r iumfs.o iumfs_vnode.o -o iumfs
gcc -lsocket -lnsl iumfs_mount.c -o mount
# make install
/usr/sbin/install -s -f /kernel/fs/sparcv9/ -m 0755 -u root -g sys iumfs
/usr/sbin/modload iumfs
/usr/sbin/install -s -d /usr/lib/fs/iumfs
/usr/sbin/install -s -f /usr/lib/fs/iumfs -m 0755 -u root mount

# make uninstall
/usr/sbin/modunload -i `modinfo |grep iumfs | awk '{print }'`
/bin/rm /kernel/fs/sparcv9/iumfs
/bin/rm /usr/lib/fs/iumfs/mount
/bin/rm -rf /usr/lib/fs/iumfs

# make uninstall
/usr/sbin/modunload -i `modinfo |grep iumfs | awk '{print }'`
can't unload the module: Device busy
*** Error code 16 (ignored)
/bin/rm /kernel/fs/sparcv9/iumfs
/bin/rm /usr/lib/fs/iumfs/mount
/bin/rm -rf /usr/lib/fs/iumfs

Usage: mount -F iumfs strings mount_point


# /usr/sbin/mount -F iumfs hoge /mnt
#
# mount
...
...
/mnt on hoge read/write/setuid/devices/dev=ffffffff on Thu Nov 10 00:20:14 2005
        ^^^^

# cd /mnt
# ls -lai


# echo "sample text" > file.txt
# mkdir dir
# ls -lai




# cat file.txt
sample text
# rm file.txt
# rm -r dir
# ls -lia


# cp /etc/motd /mnt
# ls -lai




# cat motd
Sun Microsystems Inc.   SunOS 5.10      Generic January 2005

# cd /mnt
# touch file.txt
# ls -li file.txt
# chmod 777 file.txt
# ls -li file.txt
# touch file.txt
# ls -li file.txt
# chown nobody file.txt

#

Usage: umount mount_point

# umount /mnt
#
# pwd
/mnt
# umount /mnt







  1. offset_t
    ino_t
    vattr_t
    dirent_t


トップ   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS