Showing changes from revision #7 to #8:
Added | Removed | Changed
Like other Operating Systems, RISC OS has the ability to access information stored on storage devices such as hard discs, optical media, RAM discs, USB devices and networked devices.
As standard, RISC OS comes with several filing systems: systems, some of which are listed below:
Name | Description |
---|---|
ADFS | IDE hard discs and floppy disc drives |
SCSIFS | SCSI II and USB (SCSI-over-USB) mass storage devices |
SDFS | SD cards connected directly (not via a USB adaptor) |
CDFS | ISO9660-formatted CDs and DVDs |
RamFS | Accessing an area of memory as if it is a disc |
DOSFS | Provides access to Microsoft FAT formatted discs as an image filing system |
FAT32FS | Third-party filing system for Microsoft FAT32 formatted discs |
ResourceFS | Internal filing system that contains resources needed by other Operating System modules, such as the Window Manager |
SystemDevice | A module to access various system devices |
LanManFS | Network filing system using the CIFS (SMB) protocol |
NetFS | Network filing system using the Acorn Econet protocol |
ShareFS | Network filing system using the Acorn Access protocol |
DeviceFS | A module to manage various hardware devices |
PipeFS | Stream based filing system using RAM as a temporary store |
The complete set of filing Systems thatRISC OS file supports system is commonly provided uses in two modules called FileSwitch and FileCore. These two modules provide much of the functionality required for filing systems. They are both device independent. i.e. they do not access hardware directly. We will briefly discuss both of these modules next.Filing System Numbers page.
The RISC OS file system commonly uses two modules called FileSwitch and FileCore. These two modules provide much of the functionality required for filing systems. They are both device independent. i.e. they do not access hardware directly. We will briefly discuss both of these modules next.
FileSwitch is a module that is at the heart of all filing systems in RISC OS. It provides a common set of functions that is used by all filing systems. It only provides the parts of these services that are device independent.
By using a predefined interface, it notifies filing systems when they must do certain actions. It also switches between the currently active filing system and keeping the state of each of them.
Any services that are device specific are not provided by FileSwitch, but by separate modules.
Because FileSwitch works with more than one filing system it has to ensure it knows what filing systems are active, and switch between them as necessary.
When filing systems are initialised, they inform FileSwitch of three important pieces of information.
Filing systems can be added to the Operating System easily by adding a module to the system. As FileSwitch provides only common functionality, the filing system modules must provide all remaining functionality.
More detailed information on adding a filing system can be found in the Writing A Filing System? section.
The data format of a filing system is not defined by the FileSwitch module. It only specifies what the user interface must look like.
More information can be found in the FileSwitch section.
The FileCore module provides a core set of services required for a filing system. The module is device independent. i.e. it does not access hardware directly. It structures the organisation of data on a storage device by providing a disc format. FileCore presents a file-level interface to FileSwitch and accepts a block-level interface to modules that access the hardware such as ADFS.
Unlike FileSwitch however, it creates a new instance of itself for each module it supports.
ADFS and SDFS are two examples of filing systems that work with FileCore. Both the ADFS and SDFS modules provide block-level interfaces to access the hardware. As well as their use by FileCore, these block interfaces (SWIs ( such as ADFS_DiscOp) can be used by other filing systems to access discs that do not contain FileCore-format volumes.SWI calls such as ADFS_DiscOp) can be used by other filing systems to access discs that do not contain FileCore-format volumes.
More information can be found in the FileCore section.
Files are named based on both the disc name and the name of the filing system that controls that volume. For example SDFSSDFS::Accounts.$.January.Invoices
::Accounts.$.January.Invoices is a disc named ‘Accounts’ controlled bySDFS. SDFS is a FileCore filing system, so it also implies that the disc called Accounts is also FileCore formatted.
If a volume is not FileCore formatted, it is named by the filing system that provides the file-level services. For example, a FAT32-formatted SD card still uses SDFS for access to the hardware but the FAT32 interpretation is provided by FAT32FS so it is named FAT32FS::DiscName.$FAT32FS::DiscName.$
DeviceFS is a filing system module that coverts the normal calls that FileSwitch sends to a filing system into a simpler set of calls to modules that control the hardware. Its intended purpose is for stream-based Input/Output. The secondary modules that control the hardware are known as device drivers. Two examples of device drivers are the serial and parallel ports. Only a single instance of DeviceFS is required.
Additional device drivers can be added to RISC OS by creating a new device driver module.
More information can be found in the DeviceFS section.
In addition to supporting standard filing systems, RISC OS also provides support for image filing systems. These are a way of opening a file that contains other files so it looks like a standard folder. An example would be SparkFS which allows a Zip file to be opened as if it were a normal folder, read and written to without knowing that it is a Zip.
Another example would be the Sunfish NFS client, which has a small mount file containing the necessary login details to an NFS server. When this mount file is double-clicked Sunfish connects to the NFS server and shows the ‘contents’ of the mount file to be the files on the NFS share, essentially ‘grafting’ the NFS server into your local disc tree.
Image file systems provide three important functions.
The image file system uses FileSwitch and the standard file system to manage files within an image file, although the host system does not need to be aware of image filing systems to support this functionality. It is provided in a seamless and transparent way to the end user.
Identifying format of foreign media is managed by using a service call. The host filing system does need to be aware of image filing systems to provide this functionality.
Formatting is provided by the host system, but needs to be aware of image filing systems to support this functionality.
More information can be found in the Writing A Filing System? section.
The Filer module is another very important module. It is used to display files and directories on the desktop, and also the functionality to interact with them. It uses a standard set of calls to do this, and hence will work with any filing system, and indeed is used for all filing systems.
However, filing systems can also provide their own filers that co-operate with the more system-wide Filer.
Each filing system that provides an icon on the icon bar has a Filer module to do this. Filing system specific filers can also provide other operations which are not sufficiently generic to be provided by the Filer. e.g. Format and Verify operations provided by the ADFSFiler.ADFSFiler.
A Filer module can use service calls to interact with image filing system, and add their formats to its menu of those it already supports.
The Filer_Action module provides the functions that perform the operation on files and directories on behalf of the Filer. The module of course performs the actions in the background so other tasks can carry on.