Advanced Disc Filing System: Difference between revisions

Content deleted Content added
mNo edit summary
Monkbot (talk | contribs)
m Task 18 (cosmetic): eval 6 templates: del empty params (3×); hyphenate params (6×);
Line 26:
|OS = [[Acorn MOS]], [[RISC OS]]
}}
The '''Advanced Disc Filing System''' ('''ADFS''') is a computing [[file system]] unique to the [[Acorn Computers Ltd|Acorn]] computer range and [[RISC OS]]-based successors. Initially based on the rare Acorn Winchester Filing System, it was renamed to the Advanced Disc Filing System when support for [[floppy disc]]s was added (using a WD1770 floppy disc controller) and on later [[32-bit]] systems a variant of a PC-style floppy controller.<ref>{{cite web|url=http://chrisacorns.computinghistory.org.uk/docs/Acorn/Manuals/Acorn_ADFSUG.pdf |format=PDF |title=Advanced Disc Filing System : User Guide |website=Chrisacrons.computinghistory.org.uk |accessdateaccess-date=2016-08-01}}</ref>
 
Acorn's original [[Disc Filing System]] was limited to 31 files per disk surface, 7 characters per file name and a single character for directory names, a format inherited from the earlier Atom and System 3–5 [[Eurocard (printed circuit board)|Eurocard]] computers. To overcome some of these restrictions Acorn developed ADFS. The most dramatic change was the introduction of a hierarchical directory structure. The filename length increased from 7 to 10 letters and the number of files in a directory expanded to 47. It retained some superficial attributes from DFS; the directory separator continued to be a dot and <code>$</code> now indicated the hierarchical root of the filesystem. <code>^</code> was used to refer to the parent directory, <code>@</code> the current directory, and <code>\</code> was the previously-visited directory.
Line 33:
 
==8-bit usage==
ADFS on 8-bit systems required a WD1770 or later 1772-series floppy controller, owing to the inability of the original Intel 8271 chip to cope with the double-density format ADFS required. ADFS could however be used to support hard discs without a 1770 controller present; in development the use of hard discs was the primary goal, extension to handle floppies came later. The 1770 floppy controller was directly incorporated into the design of the Master Series and B+ models{{Citation needed|date=June 2007}}, and was available as an 'upgrade' board for the earlier Model B. The Acorn Electron's floppy interface (Acorn Plus 3) was an add-on unit, initially available through Acorn and later Pres (aka Advanced Computer Products). The ACP implementation of ADFS fixed a flaw in the Acorn version v1.0, that required the use of a file named ZYSYSHELP. On the [[Acorn Electron#ADFS quirks|Electron]], Disk corruption could also occur if attempting to use the <tt>*COMPACT</tt> command without disabling the blinking cursor. This was due to the fact that the <tt>*COMPACT</tt> command used screen memory as working space during the operation, and the blinking cursor corrupted that memory space.<ref>{{cite web|url=http://www.portices.fr/formation/Res/Info/Dimet/Ordinateurs/AcornBBC/www.stairwaytohell.com/Ressources/r-EU-ACP-E00ADFS.html |title=Stairwaytohell.Com - Hardware |website=Portices.fr |access-date= |accessdate=2016-08-01}}</ref>
 
ADFS supported hard discs, and 5¼" [[floppy disc]]s formatted up to 640&nbsp;KB capacity using double density [[Modified Frequency Modulation|MFM]] encoding (''L'' format; single-sided disks were supported with the ''S'' format (160&nbsp;KB) and ''M'' format (320&nbsp;KB)). ADFS as implemented in the BBC microcomputer system (and later RISC OS) never had support for single-density floppies.
 
Hard disc support in ADFS used the same format as ''L'' format floppies in terms of 256-byte
blocks;<ref>{{cite web|url=http://mdfs.net/Docs/Comp/Disk/Format/ADFS |format=TXT |title=Acorn 8-Bit ADFS Filesystem Structure |website=Mdfs.net |accessdateaccess-date=2016-08-01}}</ref>
only the underlying arrangement of tracks and sectors differed depending on the actual drive used, but this was managed by the [[Small Computer System Interface|SCSI]] controller. It interfaced to a [[ST-506|ST506/ST412]]-based Winchester unit via the BBC Micro's 1&nbsp;MHz Bus, an Acorn-designed interface card (1&nbsp;MHz Bus to SCSI adapter) and an off-the-shelf [[Adaptec]] SCSI controller (SCSI to ST-506 adapter).
 
Support for [[Advanced Technology Attachment|IDE]]/[[ATAPI]] style drives has been added 'unofficially' by third parties in recent years.<ref>{{cite web|url=http://mdfs.net/Info/Comp/BBC/IDE |title=BBC IDE Interface - MDFS::Info.Comp.BBC.IDE |website=MDFS.net |access-date= |accessdate=2016-08-01}}</ref>
 
==32-bit usage (Arthur and RISC OS)==
Line 48:
Arthur added ''D'' format with 77 entries per directory as opposed to the previous 47, also usable on hard discs and a new 800&nbsp;KB double-density floppy format. A per-file "type" attribute was added in space previously used to store Load and Execute addresses. The 12 bits of type information is used to denote the contents or intended use of a file, typically presented as three [[hexadecimal]] digits. This is similar to the 32-bit type attributes stored in Apple's [[Hierarchical File System|HFS]] file system, and conceptually comparable to the more general use of [[MIME media type|MIME Types]] by the [[BeOS|Be Operating System]] (BeOS), or [[Magic number (programming)#Format indicator|magic number]]s in Unix systems (though the latter is stored as part of the file, not as metadata).
 
RISC OS brought in ''E'' and ''F'' format for double-density discs and high-density discs/hard disc drives respectively. These formats support file fragmentation (with the so-called "new map"), storage of multiple files per fragment and storage of small files in directory tables. The allocation strategy is optimised to minimise fragmentation, and sometimes performs defragmentation as part of a file storage operation.<ref name="reeves-efmt">{{cite web|last=Reeves|first=Nick|date=26 October 1990|title=E format design document|url=http://www.chiark.greenend.org.uk/~theom/riscos/docs/ultimate/a252efmt.txt|accessdateaccess-date=24 May 2013}}<!-- see exception clause in WP:USENET --></ref> RISC OS 4 added ''E+/F+'' format which allowed for long filenames and more than 77 files per directory.{{Citation needed|date=June 2007}} More recent versions of RISC OS, including those for [[Iyonix]], continue to provide ADFS, and have further extended it to cope with larger hard disc sizes.
 
Unlike the 8-bit implementation, ADFS as implemented on RISC OS is not monolithic. A system module called "ADFS" provides no more than the block driver and user interfaces, where the "FileCore" module contains the actual file system implementation, and FileSwitch contains the VFS and high-level file-access API implementations. This allows for other hardware to use the ADFS format easily, such as IDEFS (commonly used for IDE add-on cards), SCSIFS, and the network-aware AppFS. FileCore and FileSwitch's functions are in some ways similar to the IFS and IO system managers in Windows NT. This flexibility has allowed other filing systems to be implemented into RISC OS relatively easily.
Line 55:
The [[Linux]] kernel has ADFS support for ''E'' format and later.
 
[[NetBSD]] has filecore support<ref>{{cite web|url=http://www.netbsd.org/changes/1998.html#filecorefs |title=Changes and NetBSD News in 1998 |website=Netbsd.org |access-date= |accessdate=2016-08-01}}</ref> in NetBSD 1.4 onwards.
 
Tools such as Omniflop (in Windows 2000 and later), and Libdsk support permit the 'physical' layout of ADFS floppies to be read on PC systems utilising an internal drive. However the logical structure remains unimplemented.