genode/ports/src/noux/file_system.h
Norman Feske 66290ea46d Stacked file systems for Noux
This patch introduces support for stacked file systems alongside new
glue for accessing file-system implementations provided via Genode's
new file-system-session interface.

Using stacked file systems, an arbitrary number of file systems (such
as tar archives or file systems implemented as separate Genode
components) can be composed to form one merged virtual file system.

An example is given via the 'ports/run/noux_bash.run' script. This run
script creates a virtual file system out of multiple tar archives each
containing the content of a particular GNU package. In addition, one
'ram_fs' is mounted, which enables Noux to perform write operations.
This way, the shell output can be redirected to a file, or files can
be saved in VIM.

Fixes #103.
2012-05-17 20:34:00 +02:00

49 lines
968 B
C++

/*
* \brief File-system related interfaces for Noux
* \author Norman Feske
* \date 2011-02-17
*/
/*
* Copyright (C) 2011-2012 Genode Labs GmbH
*
* This file is part of the Genode OS framework, which is distributed
* under the terms of the GNU General Public License version 2.
*/
#ifndef _NOUX__FILE_SYSTEM_H_
#define _NOUX__FILE_SYSTEM_H_
/* Genode includes */
#include <util/list.h>
#include <util/string.h>
#include <util/xml_node.h>
/* Noux includes */
#include <directory_service.h>
#include <file_io_service.h>
#include <path.h>
#include <noux_session/sysio.h>
namespace Noux {
struct File_system : Directory_service, File_io_service
{
/**
* Our next sibling within the same 'Dir_file_system'
*/
struct File_system *next;
File_system() : next(0) { }
/**
* Return name of file system
*
* This function is used for debugging only.
*/
virtual char const *name() const = 0;
};
}
#endif /* _NOUX__FILE_SYSTEM_H_ */