Main > Free Download Search >

Free vfs software for linux

vfs

Sponsored Links
Sponsored Links
Secleted [ 0 ] software to compare
Results 1 - 15 of about 51
Brasero 2.26.3 / 2.27.4

Brasero 2.26.3 / 2.27.4


A disc authoring tool for the gnome desktop. more>>

Brasero 2.26.3 / 2.27.4 is a useful utility designed to burn CD/DVD for the Gnome Desktop.

It is built as simple as possible and has some unique features to enable users to create their discs easily and quickly.

Major Features:

  1. Supports multiple backends: cdrtools, growisofs and libburn(optional).
  2. Data CD/DVD:
    • Supports edition of discs contents (remove/move/rename files inside directories)
    • Can burn data CD/DVD on the fly
    • Automatic filtering for unwanted files (hidden files, broken/recursive symlinks, files not conforming to joliet standard, ...)
    • Supports multisession
    • Supports joliet extension
    • Can write the image to the hard drive
    • Can check disc file integrity
  3. Audio CD:
    • Write CD-TEXT information (automatically found thanks to gstreamer)
    • Supports the edition of CD-TEXT information
    • Can burn audio CD on the fly
    • Can use all audio files handled by Gstreamer local installation (ogg, flac, mp3, ...)
    • Can search for audio files inside dropped folders
    • Full edition of silences between tracks
  4. CD/DVD copy:
    • Can copy a CD/DVD to the hard drive
    • Can copy CD and DVD on the fly
    • Supports single-session data DVD
    • Supports any kind of CD
  5. Others:
    • Erase CD/DVD
    • Can save/load projects
    • Can burn CD/DVD images and cue files
    • Song, image and video previewer
    • Device detection thanks to HAL
    • File change notification (requires kernel > 2.6.13)
    • A customisable GUI (when used with GDL)
    • Supports Drag and Drop / Cut'n'Paste from nautilus (and others apps)
    • Can use files on a network as long as the protocol is handled by gnome-vfs
    • Can search for files thanks to beagle (search is based on keywords or on file type)
    • Can display a playlist and its contents (note that playlists are automatically searched through beagle)
    • All disc IO is done asynchronously to prevent the application from blocking
<<less
Added: 2009-07-14 License: GPL Price: FREE
21 downloads
 
Other version of Brasero
Brasero 0.6.0) as long as the protocol is supported by gnome-vfs - full drag and drop (including from nautilus) - search through files thanks to beagle - file change notification thanks to inotify - convert
License:GPL (GNU General Public License)
Download (1.3MB)
838 downloads
Added: 2007-07-11
GLib 2.17.4

GLib 2.17.4


the core library that forms the basis for projects such as GTK+ and GNOME. more>> GLib is the low-level core library that forms the basis for projects such as GTK+ and GNOME. It provides data structure handling for C,portability wrappers, and interfaces for such runtime functionality as an event loop, threads, dynamic loading, and an object system.
Major new features:
* GIO: a VFS API, designed to replace GnomeVFS. The GIO implementation
in GLib has support for local filesystems. The new, separate gvfs
module contains various backend implementations (cifs, ftp, sftp,
http, ...)
* GChecksum: provides various hash algorithms, such as MD5, SHA-1
and SHA-256
* GTest: a test framework
<<less
Download (6.26MB)
Added: 2009-04-28 License: Freeware Price: Free
221 downloads
VFSJFileChooser 0.0.3

VFSJFileChooser 0.0.3


VFSJFileChooser functions as a Java Swing Component to enable you to browse both remote(FTP, SFTP, WEBDAV, etc.) and local filesystems. more>>

VFSJFileChooser 0.0.3 functions as a Java Swing Component to enable you to browse both remote(FTP, SFTP, WEBDAV, etc.) and local filesystems. It is based on Apache Commons VFS library. VFSJFileChooser is distributed under Apache License 2.0.
VFSJFileChooser was first started to be a plugin of XPontus XML Editor. Later, it was decided to create a library which wouldn't be tied to XPontus API.
VFSJFileChooser supports all the file systems available in Commons VFS. You can think of VFSJFileChooser as a javax.swing.JFileChooser with the ability to browse remote locations such as FTP, SFTP, etc. VFSJFileChooser has not been designed as a file transfer tool, however it can be easily implemented (2 VFSJFileChooser components and some buttons calling commons-vfs API methods, a queue for file operations, etc.).

Major Features:

  1. Seamless filesystem browsing
    • Standard java file browsing with abstraction to the filesystem. You browse seamlessly local and remote file systems the same way.
    • VFSJFileChooser supports many protocols such as Webdav, SFTP, FTP, SMB, etc. Please have a look at Apache Commons VFS supported protocols. Starting from 0.0.3 release, VFSJFileChooser is using webdavclient4j for Webdav support.
  2. Easy i18n support
    • There are translations for English, French, Spanish, Italian, Swedish per default. You can add a new language to VFSJFileChooser by dropping a new resource bundle in your classpath.
  3. A default accessory panel
    • A toolbar provides access to a bookmarks manager and a connection wizard.
  4. No inheritance of some JFileChooser known bugs
    • VFSJFileChooser doesn't suffer from the infamous JFileChooser freezing bug. Time to time, JFileChooser can hang for 10 seconds(even on a quad core!). The bug seems to be coming back all the time, but only on Windows.
  5. Flexibility
    • Access to the navigation panel and the navigation buttons(new folder, etc.)
  6. Simple and familiar API
    • VFSJFileChooser is based on the standard javax.swing.JFileChooser code. The main difference is that VFSJFileChooser uses Commons VFS FileObject instead of java.io.File.

Enhancements:

  • Lots of speed : The latest version of VFSJFileChooser is too slow. The code execution have been improved at many places.
  • The navigation icons are now visible all the time. No exceptions or strange issues related to the look and feel. The component use a "MetalLookAndFeel" layout but when using the system look and feel, the controls look native.
  • The VFSUtils class supports the methods setFileSystemManager and setFileSystemOptions. You can set those values at anytime. When the VFSJFileChooser class is instanciated, it checks if VFSUtils has a filesystemmanager set, if not it creates one. Files are always resolved with the FileSystemOptions object in VFSUtils. Some convenience methods such as getInputStream and getOutputStream have been added in VFSUtils.
  • Upgraded to commons-vfs 2.0 snapshot with patches applied for URL redirection and WebDav.
  • Switched from Jakarta Slide to webdavclient4j (http://webdavclient4j.sf.net) as Jakarta Slide project is dead.
  • Cleaner but incompatible API(Enums instead of int fields) : Enums are introduced for few classes which breaks the API. The method setFileselectionMode of VFSJFileChooser now accepts an Enum as parameter. The methods "showOpenDialog" and "showSaveDialog" return an Enum too.
  • Sorting support : The details table has now sorting support again in the jdk5 branch. The jdk5 branch is the most up to date(patches, general improvements, etc.). The jdk5 will become the default branch to ensure code compatibility.
  • The bookmarks dialog scrolling issues have been fixed. The bookmarks are still not serialized using Java Serialization. They are now stored in XML do avoid deserialization issues when the bookmarks API change.
<<less
Added: 2008-08-16 License: GPL Price: FREE
1 downloads
gvfsfind 0.1.4

gvfsfind 0.1.4


gvfsfind searches for files in a directory hierarchy. more>>
gvfsfind searches for files in a directory hierarchy. This project is inspired by the Unix find utility, but operates on URLs using gnome-vfs instead of the local file system.
For example, gvfsfind.py ftp://video.foo.org --type d --print prints all directories on the FTP server. gvfsfind.py ssh://skipper/srv/movie --type f -name ".*.vob" --exec "gnomevfs-copy %u ." copies all files ending with .vob from the host skippers directory /srv/movie, including its sub-directories.
Enhancements:
- A makefile has been added to simplify release.
- This release is packaged as a tar.gz archive.
- Support has been added for filenames including #.
- Support for use as a Python module has been added.
<<less
Download (0.008MB)
Added: 2007-08-13 License: GPL (GNU General Public License) Price:
803 downloads
DSLinux 01-08-07

DSLinux 01-08-07


DSLinux is a project that aims to port Linux to the Nintendo DS gaming console. more>>
DSLinux is a project that aims to port Linux to the Nintendo DS gaming console.
Important information:
root password for DSLinux builds since Jun 28 2005 is "uClinux" (case sensitive!)
Works on real hardware, use on emulators is not supported
Since Apr 28 2007, RAM build is integrated in the DLDI build.
Enhancements:
- Restored user/mc/src/vfs/mad.c
- Restored user/mc/src/vfs/mad.h
- Restored user/mc/src/intl/libintl.h
- D toolchain/patches/elf2flt-20051225.diff
- A toolchain/patches/elf2flt-20070723.diff
- U toolchain/Makefile
- U vendors/Nintendo/DLDI/config.uClibc
- U lib/uClibc++/Rules.mak
- U lib/uClibc++/extra/Configs/dslinux_config
- D lib/uClibc++/include/system_configuration.h
- U lib/uClibc++/Makefile
- U linux-2.6.x/arch/arm/kernel/ptrace.c
- U linux-2.6.x/arch/arm/mm/fault.c
- Updated to revision 1851.
<<less
Download (MB)
Added: 2007-08-08 License: GPL (GNU General Public License) Price:
634 downloads
eTcl 1.0 RC22

eTcl 1.0 RC22


eTcl is a batteries-included , thread-enabled Tcl/Tk runtime, available as a single standalone executable. more>>
eTcl is a "batteries-included", thread-enabled Tcl/Tk runtime, available as a single standalone executable. eTcl includes several popular extensions (Sqlite, Thread, Zlib, ...), together with a Tcl wrapper for the Pixane image processing library.
Installation:
Just copy executable wherever you want on your device (memory or storage card), and launch it.
- Unobstrusive executable. No registry to set, no external dependencies.
- Standalone executable. Tcl and Tk scripts packed into executable (using VFS). Optimized startup time.
New Tcl user experience on PocketPC
- Optimized for XScale devices
- Faster Arc/Chord/Pie emulation, improved for ARM architecture without FPU
- Efficient WSAAsyncSelect() emulation. Sockets, and fileevents on sockets, should be fully functionnal (in both client and server modes)
- Support for native menu
- Improved native look and feel.
- Windows Mobile specific extension: manage SIP, change (X) button action (closing Correct handling of mouse (actually touchscreen) events
- Support for intercepting hotkeys (calendar, notes, etc...)
- New porting approach, based on very minor changes to generic Win32 port (and no changes to generic part of Tcl/Tk distrib).
- Patch to Tcl or Tk distribution is only few kilobytes large, everything else has been moved into a minimal emulation library. This should allow us to keep synced with future Tcl/Tk release.
- Easy build process. Nothing but Evc4 and a native Tcl interpreter required to build binaries for all target architectures supported by Evc (Cygwin, external libraries, etc... not required)
- Works fine into Microsoft Pocket PC 2003 Emulator. Debugging code made easier
Included native extensions:
- Pixane: script your image transformation, support for reading and writing several popular image formats (PNG, JPEG), support for TrueType fonts
- Sqlite 3: a self-contained, embeddable, zero-configuration SQL database engine
- Zlib: native deflate/inflate support
- Zipfs: easily Mount your ZIP files into Tcl Virtual Filesystem
Included Pure Tcl extensions:
- EvoTcl: A very large set of tcl utilities (OOP, Database, HTML/XML parsing, ...). See http://www.evolane.com/software/evotcl/
Enhancements:
- This release focuses on performance optimization (especially for WinCE) and code stabilization.
- It adds support for reading tclkits, together with an automatic tclkit to eTcl kit converter.
- It embeds up-to-date versions of several built-in packages, such as sqlite 3.4.1, libpng 1.2.18, and tile and tkhtml3 CVS snapshots.
- Tile has been moved into the normal version.
- The Mac OS X bundle declares associations so eTcl kits can be launched directly from the Finder.
- Binaries for linux-powerpc have been made compatible with Linux on Playstation 3.
<<less
Download (3.4MB)
Added: 2007-08-07 License: Other/Proprietary License Price:
811 downloads
GNU/Fiwix 0.3.3

GNU/Fiwix 0.3.3


GNU/Fiwix is an operating system kernel based on the architecture of UNIX and Linux. more>>
GNU/Fiwix is an operating system kernel based on the architecture of UNIX and Linux.
GNU/Fiwix operating system is designed exclusively for educational purposes, so the kernel code is kept as simple as possible for the benefit of students.
It runs on the 32-bit x86 hardware platform, and is compatible with existing GNU applications.
Main features:
- GRUB Multiboot Specification compliant.
- Fully 32bit protected mode non-preemptive kernel.
- For Intel 80386 processors or higher.
- Real multitask (kernel tasks at level 0).
- Protected task environment (independent memory address per process).
- Interrupt and exception handling.
- Semaphores.
- Signals.
- Virtual memory management up to 4GB.
- Demand paging with Copy-On-Write feature.
- Linux system calls compatibility.
- Linux ELF-386 executable format support (statically and dynamically linked).
- Round-Robin based scheduler algorithm (without priorities).
- VFS with Linux EXT2 filesystem support (read only).
- Keyboard driver with spanish/catalan and english keymaps (hard coded).
- Floppy disk device driver and DMA management.
- IDE/ATA hard disk device driver (read only).
<<less
Download (0.46MB)
Added: 2007-08-01 License: Other/Proprietary License Price:
819 downloads
FlyBird 0.2.1

FlyBird 0.2.1


FlyBird project is a two-panel fully professional file manager supporting tab based console and gnome-vfs. more>>
FlyBird project is a two-panel fully professional file manager supporting tab based console and gnome-vfs (that allows you to use http, ftp, samba and other commonly used protocols).
Main features:
- tab based console;
- gnome-vfs support (network support under development);
- file change monitoring;
- threads for directory loading;
- some Nautilus plugins support.
<<less
Download (0.11MB)
Added: 2007-07-29 License: GPL (GNU General Public License) Price:
824 downloads
gnome-vfs 2.18.1 / 2.19.3

gnome-vfs 2.18.1 / 2.19.3


gnome-vfs is a Filesystem Abstraction library. more>>
gnome-vfs is a Filesystem Abstraction library. It provides an abstraction layer for the reading, writing and execution of files. It is primarily used by the Nautilus file manager and other GNOME applications.
A cause of confusion is the fact that the file system abstraction used by the Linux kernel is also called the virtual file system (VFS). This is however at a lower level.
Whats New in 2.19.3 Development Release:
- Export modules directory in pkg-config files
- Fix crash in gnome_vfs_xfer
- Add GNOME_VFS_DIRECTORY_VISIT_IGNORE_RECURSE_ERROR flag
- Dont resolve non-mdns hosts when resolving mDNS service names
- Workaround issue with mDNS and link-local ipv6 addresses
<<less
Download (2.6MB)
Added: 2007-07-27 License: GPL (GNU General Public License) Price:
819 downloads
Gnocl 0.9.91

Gnocl 0.9.91


Gnocl implements GTK+ and Gnome bindings for the programming language Tcl. more>>
Gnocl implements GTK+ and Gnome bindings for the programming language Tcl with special emphasize on ease of use, following the example of the Tk toolkit.

The project provides commands to build quickly GTK+ / Gnome compliant applications including the canvas widget, GConf and the Gnome applet. Gnocl is split in several libraries, which can be loaded on demand.

Whats New in This Release:

The release contains mostly bug fixes.
For a detailed list of additional changes see the NEWS file.

The version number emphasis that Gnocl is only a few releases from
version 1.0 away. So, if you find bugs or think that an important
feature is missing, please speak now.

Gnocl implements GTK+ and Gnome bindings for the programming language
Tcl with special emphasize on ease of use, following the example of
the Tk toolkit. It provides commands to build quickly GTK+ / Gnome
compliant applications including the canvas widget, GConf, Gnome VFS
and the Gnome applet. Gnocl is split in several libraries, which can
be loaded on demand.

This version has been tested with GTK+ 2.8.6,
Tcl 8.4.9 under Linux. A FreeBSD port is also available.

<<less
Download (0.54MB)
Added: 2007-07-25 License: GPL (GNU General Public License) Price:
825 downloads
Necromancers Dos Navigator 2.30 Build 6778

Necromancers Dos Navigator 2.30 Build 6778


Necromancers Dos Navigator is a Norton Commander clone. more>>
Necromancers Dos Navigator is a "Norton Commander" clone. Necromancers Dos Navigator uses a well known text-mode interface, is highly customizable, and has a lot of features.
Main features:
- Long File Names Support
- Multi-windowed interface
- Disk utilities
- Comprehensive File Manager
- 26 types of archives supported
- Powerful customizable editor with 3 code pages support
- Hex-editor with code pages support
- Huge strings support
- Regular expressions
- Spreadsheet communications
- Fully 32 bit version
- Multiconfiguration
- Very often updates
- and more...
Enhancements:
- This release contains bugfixes and enhancements to extension execution, archiver setup, dialogs, the DBF viewer, the command line, file copy/move, VFS, the file panel, and keyboard macro code.
<<less
Download (0.93MB)
Added: 2007-07-09 License: GPL (GNU General Public License) Price:
846 downloads
Gnome Chemistry Utils 0.9.0

Gnome Chemistry Utils 0.9.0


Gnome Chemistry Utils provide C++ classes and Gtk+-2 widgets related to chemistry. more>>
Gnome Chemistry Utils software provides C++ classes and Gtk+-2 widgets related to chemistry. They are used in both Gnome Crystal and GChemPaint.

To compile and use the Gnome Chemistry Utils, you need libglade-2, and GtkGLExt, and their own dependencies. Everything except GtkGLExt is available from the Gnome repository or one of its mirrors.

The GtkChem3DViewer widget also needs Gnome-vfs and OpenBabel to be built.

GChemistry Utils are distributed under the LGPL license.

Gnome Chemistry Utils are in an early development stage.

Three widgets:

- a periodic table,
- a crystal structure viewer,
- a 3D molecular structure viewer.

The last widget is also accesible as a Bonobo control.

The Gnome Chemistry Utils are the basis for the development of both GChemPaint and Gnome Crystal

<<less
Download (1.6MB)
Added: 2007-06-28 License: GPL (GNU General Public License) Price:
848 downloads
gnome-vfs-obexftp 0.4

gnome-vfs-obexftp 0.4


gnome-vfs-obexftp contains extra packages for extentions to GnomeVFS. more>>
gnome-vfs-obexftp contains extra packages for extentions to GnomeVFS. Contains an OBEX module, VFS DBUS daemon, modified file module that notifies file modifications over DBUS.

Note that if youre not using the standard dbus system bus address, you need to set the environment variable DBUS_SYSTEM_BUS_ADDRESS to the path to the system dbus address to use, e.g:

export DBUS_SYSTEM_BUS_ADDRESS=unix:path=/var/run/dbus/system_bus_socket

for example in the login script.

If the variable is not set, the OBEX module will fallback to the standard name in $(localstatedir), e.g. /var/run/dbus/system_bus_socket.
<<less
Download (0.64MB)
Added: 2007-06-21 License: GPL (GNU General Public License) Price:
861 downloads
Prex 0.5.0

Prex 0.5.0


Prex is a portable real-time operating system for embedded systems. more>>
The Prex project is an open source initiative to provide a portable real-time operating system for embedded systems.
This project originally started to make a royalty-free OS for mobile phones and PDA in order to spread open source movement to such proprietary OS field. And now, the project target has been shifted to the wider area of real-time and embedded systems.
Prex is designed specifically for small memory footprint platforms. It is written in C language based on traditional micro-kernel architecture. The Prex kernel provides only fundamental features for task, thread, memory, ipc, exception, and synchronization.
The other basic OS functions, process, file system, application loading, and networking, are provided by the user mode servers. In addition, Prex provides a POSIX emulation layer in order to reuse the existing applications.
Prex is an open source royalty-free OS for mobile phones and PDA.
This design allows system to perform both of the native real-time task and the generic *NIX process simultaneously without degrading the real-time performance. Furthermore, it helps the platform designer to construct OS by choosing suitable server tasks for their target requisition.
Prex is royalty-free software released under BSD License
Main features:
- Task and thread control: preemptive priority scheduling with 256 priority levels
- Memory management: virtual address mapping, shared memory, memory protection, with MMU
- IPC: synchronous message passing among threads, object name space in kernel
- Exception: framework for POSIX signal emulation
- Synchronization: semaphores, condition variables, and mutexes with priority inheritance
- Timers: sleep timers, alarm timers
- Interrupt: nested interrupt service routines, and prioritized interrupt service threads
- Device I/O: minimum synchronous I/O interface
- Real-time: low interrupt latency, high resolution timers, periodic timers, and scheduling quantum control
- Cross platform portability: well defined architecture dependent layer and driver-kernel interface
- Modular design: OS servers and BSP module separated from kernel
- Small memory footprint: kernel size < 25k bytes
- Low power consumption: control of processor idle state, support of DVS (Dynamic Voltage Scaling)
- Disk-less: on-core kernel, no memory page swapping
- Instantly available: minimal OS boot time, system suspend/resume, kernel warm restart
- File systems: VFS framework, RAM/FAT/Flash file systems optimized for embedded systems
- Networking: TCP/IP stack, BSD socket interface
- POSIX emulation: signal, process, file I/O, real-time extensions, pthread, etc
- Debug: event logging, GDB remote debug
Enhancements:
- A file system server was added. arfs, devfs, and ramfs are supported with this version.
<<less
Download (0.39MB)
Added: 2007-06-21 License: BSD License Price:
856 downloads
ferrisfuse 0.1.0

ferrisfuse 0.1.0


ferrisfuse is a FUSE module for mounting libferris filesystems through the Linux kernel. more>>
ferrisfuse is a FUSE module for mounting libferris filesystems through the Linux kernel.
About libferris
In non technical terms libferris makes the file system and other hierarchical storage systems easier to use. For the geeks out there, libferris is a virtual file system (VFS) that runs in the user address space. The FAQ contains entries related to installation, configuration and the usage of libferris.
As of July 2005 libferris can mount many interesting things ranging from a filesystem from your local Linux kernel through to LDAP, Evolution, PostgreSQL, dbXML, and RDF. To get an impression of the current capabilities of libferris mounting see the plugins/context directory of the lastest release. New things to mount are always being added.
Other than mounting things as a filesystem, the other core concept of libferris is extraction of interesting metadata from your libferris filesystems. This means that simple things like width and height of an image file become first class metadata citizens along with a files size and modification time. The limits on what metadata is available extend far beyond image metadata to include XMP, EXIF, music ID tags, geospatial tags, rpm metadata, SELinux integration, partially ordered emblem categories and arbitrary personal RDF stores of metadata.
Though some consider the last point of purely academic interest the end result is that you can add metadata to *all* libferris objects even those you only have read access too, for example, you can attach emblems to this website just as you would a normal file. The metadata interface gives all metadata from file size to digital signature status information equal standing. As such you can sort a directory by any metadata just as easily as you would ls -Sh to sort by file size. Sorting on multiple metadata values is also supported in libferris, you can easily sort your files by mimetype, then image width, then modification time with all three pieces of metadata contributing to the final directory ordering.
Late in 2004 extensive support for both fulltext and metadata indexing was added to libferris. This means you can supply queries against the contents or metadata of any libferris accessable object and have the results returned as a virtual filesystem. With the above mentioned metadata available for searching, finding your files can be done in many different ways instead of being forced to generate fixed directory trees using part of a file collections semantics as directory names. The metadata and virtual filesystem play together here allowing you to geospatially tag both your digital pictures, trip plans, and relevent websites and recall these objects in a single virtual directory no matter what their path or URL may be.
There is also a Samba VFS module which allows you to expose a libferris filesystem as a Samba share. Kfsmd uses the inotify kernel interface to allow libferris to watch changes made to your kernel filesystem by non libferris applications and update its indexes appropriately. Ferriscreate provides a command line and GTK+2 application for creating "new files" with libferris. With this you can create a new db4 database, dbXML database or fulltext index just as easily as you can make a regular file.
The ego filemanager is a GTK+2 interface built on top of libferris. It provides GTK treeview , gevas/edje and gecko based interfaces and makes extensive use of libferris clients to provide its functionality.
If you have a project you wish to use libferris with and want extensions made dont hesitate to contact one of the developers to arrange consulting.
For the geeks out there, libferris is a virtual file system (VFS) that runs in the user address space. At the moment libferris is a shared object that each application can dynamically link to in order to see the file system through a nicer abstraction.
New additions to the XML module allow for data to be converted from one format to another by the VFS for you. To copy data to an XML file:
fcreate --create-type=xml --rdn=2.xml root-element=fred /tmp
gfcp -av Makefile.am --dst-is-dir /tmp/2.xml/fred
To copy data to a db4 file
fcreate --create-type=db4 --rdn=2.db /tmp
gfcp -av Makefile.am --dst-is-dir /tmp/2.db
Ferris presents a C++ interface that makes heavy use of the STL and IOStreams. Currently ferris has two main internal abstractions: Context and Attribute. A context is much like a traditional file or directory in a file system, the major differences being that a context can have both byte content (like a file) and subcontexts (like a directory). An attribute is a chunk of metadata about a context. Contexts can have many attributes.
Some attributes may be large, for example a base 64 encoded version of the contexts content (133% context size). On the other hand an attribute can be small, for example the file size is exposed as an attribute.
Access to all contexts and attributes is performed by first requesting either an IStream or IOStream for that context or attribute. In this way the same context/attribute can be open many times at the same time, just like normal kernel based IO.
Ferris uses Loki from "Modern C++ Design" by Alexandrescu. Most objects use automatic garbage collection based on the SmartPtr template class from Loki. Where possible objects in ferris use a FerrisRefCounted policy to provide COM like intrusive reference counting. This style is used for Context, Attribute and special wrappers of IOStreams that are provided. IOStreams are wrapped to provide a more flexible API than could be offered using references to IOStreams.
There are also new stream classes provided, for example NullStream and LimitingStream. Templates are provided to make SmartPtrs to standard IOStreams act just like the underlying stream would, for example, one can have SmartPtr ss; ss >> stringObj; and does not have to dereference the SmartPtr to use standard IOStreams extractors or inserters.
Ferris uses GModule from glib2 to dynamically load both context and attribute classes at run-time. This way resources are conserved until they are needed. The native file system context is statically linked to ferris at present. When loading either contexts or attribute classes ferris uses a double dispatch factory method. Put simply this means that for each plugin there are two libraries, one that tells ferris if the main one really needs to be loaded or not. Using this scheme ferris can load all the meta factory classes at any time and use these very small meta factories to check if the main factory can create objects that are going to be useful.
This scheme is of great use for attribute classes. Attribute classes take a context and can "generate" attributes from the context. An example of this sort of class would be a MD5 or Base64 attribute. Both can be generated from the base context. More interesting attributes are PCM audio and RGBA-32bpp image data. By using the double dispatch factory ferris can handle a great deal of attribute generators and load them on demand.
Ferris currently can decode mp3, read id3 tags, decode many image formats and break some animation formats into frames. This makes ferris a solid starting point for multimedia applications.
Ferris will automatically mount sub file systems for you. Examples of a sub file system include a Berkeley database or XML file. For example it is possible to read a context such as /tmp/myxml.xml/mynode. Using this automatic mounting the differences between storage formats effectively disappear. To a ferris enabled application loading data from a native disk file, a Berkeley database, and XML file, or mbox file appear to be the same. This allows the user of the application to choose the correct storage for the data at hand.
It is planned to move to a microkernel architecture in Version 2.1 of ferris. I choose 2.1 so that ferris does not fall into version 2 syndrome.
Enhancements:
- Many changes were made to better support rsync(1).
- Extended Attribute support was greatly improved.
- write() now also updates mtime.
<<less
Download (0.27MB)
Added: 2007-06-13 License: GPL (GNU General Public License) Price:
866 downloads
Secleted [ 0 ] software to compare
  • Page: 1 of 4
  • 1
  • 2
  • 3
  • 4