Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id ; Thu, 2 Nov 2000 01:26:51 -0500 Received: (majordomo@vger.kernel.org) by vger.kernel.org id ; Thu, 2 Nov 2000 01:26:42 -0500 Received: from pallas.veritas.com ([204.177.156.25]:40588 "EHLO pallas.veritas.com") by vger.kernel.org with ESMTP id ; Thu, 2 Nov 2000 01:26:27 -0500 Message-ID: <3A0109D6.4DFA2F62@veritas.com> Date: Thu, 02 Nov 2000 11:59:42 +0530 From: "Amit S. Kale" Organization: Veritas Software (India) X-Mailer: Mozilla 4.72 [en] (X11; U; Linux 2.2.14-5.0 i686) X-Accept-Language: en MIME-Version: 1.0 To: linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Translation Filesystem Content-Type: text/plain; charset=us-ascii Content-Transfer-Encoding: 7bit Content-Transfer-Encoding: 7bit Sender: linux-kernel-owner@vger.kernel.org X-Mailing-List: linux-kernel@vger.kernel.org Hi, I have started a new virtual filesystem project, Translation Filesystem at http://trfs.sourceforge.net/ Description of the project is given below. It's still at a concept stage. If someone has any ideas about any useful translators that fit in this framework please write to me. Any feedback is most welcome. Regards. -- Amit Kale Veritas Software ( http://www.veritas.com ) Translation Filesystem The translation filesystem provides views for files. A view offered by the translation filesystem is different from the view offered by a filesystem which contains a file. For example a filesystem presents a tar file as a flat byte stream and the translation filesystem presents it as a directory containing files contained in the tar file. The translation filesystem is based on translators each of which is responsible for creating views for filesystem objects of some type. Root of a translation filesystem contains translator directories. A translator creates views in its directory. A view for a file (or a directory) is generated by creating a symbolic link in a translator directory. The link points to the file for which the view is created. A view is destroyed by removing the symbolic link presenting the view. Properties of a view presented by a symbolic link are determined by the translator which owns the directory in which the link is present. When the symbolic is accessed using stat or open, it presents properties determined by the view. When destination of the symbolic link is read using readlink, it points to the file for which the symbolic link presents a view. The translation filesystem provides views to files contained in a filesytem without the need for modifying the filesystem itself. It does not need extensions to existing filesystems. Since it does not use mount operation for creating a view, users don't need special permissions to create views. It does not use ioctls. So special programs are not needed for configuring a translation filesystem. The file for which a view has been created can be readily identified by reading destination a symbolic link. .At present only one translator, raw, is provided. It provides zero copy read for a block device. Example of Usage [root@localhost /root]# insmod ./trfs [root@localhost /root]# mount none /mnt0 -t trfs [root@localhost /root]# ls /mnt0 [root@localhost /root]# ls /mnt0/raw [root@localhost /root]# ls /mnt0 raw [root@localhost /root]# ln -s /dev/hda1 /mnt0/raw/food [root@localhost /root]# ls /mnt0/raw/food /mnt0/raw/food [root@localhost /root]# dd if=mnt0/raw/food bs=1024 count=1 | hexdump -n 128 0000000 3ceb 4d90 5753 4e49 2e34 0031 1002 0001 ....................... [root@localhost /root]# rm /mnt0/raw/food rm: remove `/mnt0/raw/food'? y [root@localhost /root]# ls /mnt0/raw [root@localhost /root]# umount /mnt0 [root@localhost /root]# rmmod trfs [root@localhost /root]# - To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.kernel.org Please read the FAQ at http://www.tux.org/lkml/