Features | |
---|---|
Attributes | filenote |
Transparent compression | No |
Transparent encryption | No |
Other | |
Supported operating systems | AmigaOS |
The Amiga Fast File System (abbreviated AFFS, or more commonly historically as FFS) is a file system used on the Amiga personal computer. The previous Amiga filesystem was never given a specific name and known originally simply as "DOS" or AmigaDOS. Upon the release of FFS, the original filesystem became known as Amiga Old File System (OFS). OFS, which was primarily designed for use with floppy disks, had been proving slow to keep up with hard drives of the era. FFS was designed as a full replacement for the original Amiga filesystem. FFS differs from its predecessor mainly in the removal of redundant information. Data blocks contain nothing but data, allowing the filesystem to manage the transfer of large chunks of data directly from the host adapter to the final destination.
OFS was the predecessor to FFS. Before FFS was released, AmigaOS had a single filesystem simply called AmigaDOS: this uses 24 bytes per sector for redundancy data, providing for reconstructing structural data on less reliable media such as floppy disks. When higher-speed media (i.e. hard disks) became more available to the Amiga, this redundant data posed a bottleneck as all data needed to be realigned to be passed to the application. The redundancy was removed with FFS and the data read in from media are passed to the application directly. The previous filesystem, AmigaDOS, was renamed OFS, Old File System, to differentiate between it and FFS. FFS was backward-compatible and could access devices formatted with OFS.
Given these advantages, FFS was rapidly adopted as the most common filesystem used by almost all Amiga users, although OFS continued to be widely used on floppy disks from third-party software vendors. (This was purely for compatibility with pre-AmigaOS 2 systems in games and applications that did not actually require AmigaOS 2+, as machines running earlier versions of the OS without FFS in the ROM could not boot from these floppies, although they could still read them if they had FFS installed.)
Amiga FFS is simple and efficient, and when introduced was more than adequate, and had many advantages compared to the file systems of other platforms. However, as OFS had done before it, it aged; as drives became larger and the number of files on them increased, its use as a day-to-day filesystem became more problematic in terms of difficulty of maintenance and competitiveness of general performance. Despite this, it is still used on AmigaOS systems and shipped with both MorphOS and AmigaOS 4.
By the last Commodore release of AmigaOS, 3.1, FFS was still the only filesystem shipped as standard with the Amiga, but it was already showing its age as technology advanced. FFS (and OFS) stores a "bitmap" of the filesystem in a single sector. On write, this is first marked as invalid, then the write is completed, then the bitmap is updated and marked as valid. If a write operation is interrupted by a crash or disk removal, this then allows the 'disk-validator' program to undo the damage. This resembled a very simple form of filesystem journaling. To allow the disk to be used again with an invalidated OFS or FFS filesystem, the entire disk has to be completely scanned and the bitmap rebuilt, but only the data being modified during the write would be lost. During this scanning the disk cannot be written to (except by the disk-validator as it performs its function), and read access is very slow.
AmigaOS originally included a disk-validator on every bootable disk, which was prone to being replaced by viruses to allow themselves to spread (for example the "Saddam Hussein" virus). Later it became part of the ROM from Kickstart 2.x onwards, protecting it from malicious replacement. The disk-validator attempted to repair the bitmap on an invalidated drive by write-protecting the drive and scanning it; this could take a long time and made it very slow to access the disk until it was finished, especially on slower media. As hard drives got larger and contained more files, the validation process could take many hours. In addition, files and directories could feasibly be lost (often without the user being notified or even aware) during the process if their data hashes were corrupted. In some cases the validator could fail and leave the disk in a non-validated state, requiring the user to use a third-party disk tool like DiskSalv to make the volume writable again, or simply save the files by copying them to a fresh partition—a very slow process.
FFS was also originally limited to 32-bit addressing and therefore about 4 GB drives, or at least the first 4 GB on a larger drive. Attempting to use FFS partitions beyond this limit caused serious data corruption all through the drive. FFS belatedly got some third-party 64-bit patches and then official (but non-Commodore) updates to allow it to circumvent these limitations. The latter were supplied with AmigaOS 3.5 and 3.9, from Haage & Partner. The former often were supplied with third-party disk controllers, such as those from Phase5, where the ability to use large-capacity disks was a selling point. The two systems were not mutually compatible.
In terms of support tools, although Commodore itself only shipped with an application called DiskDoctor (and later removed it from AmigaOS disks), FFS had a small selection of third-party tools—most notably DiskSalv—to maintain the file system and repair and validate it, undelete files, or reverse "quick formats" (filesystem initializations). An OFS or FFS volume had to be locked to defragment or convert to different FFS modes to prevent corruption and this made it inaccessible to everything but the tool defragmenting it. Most of these tools were not updated when FFS became capable of 64-bit addressing and could only operate on partitions smaller than 4 GB; they could not read partitions bigger than 4 GB, and would generally corrupt partitions "beyond" the 4 GB boundary. When hard drives in use by Amiga users were reaching 4 GB in size, this became a problem.
For all of these reasons, FFS was often replaced by users in the mid-1990s with more up-to-date alternatives such as Smart File System (SFS) and Professional File System (PFS), which did not have these limitations and were considered safer, faster and more efficient. SFS in particular continued to be developed and is now[ when? ] as close to a generic AmigaOS filesystem as FFS, and is the default filesystem for AROS.
FFS was introduced with version 1.3 of AmigaOS [1] in 1988, [2] and replaced both the Kickstart ROM (or Kickstart floppy for A1000s) and Workbench floppy with updated software. It carried the version number of v34, like the rest of the AmigaOS 1.3 components.
Kickstart 1.3 provided autobooting support so that the machine could now be booted from hard disk or reset-proof RAM disk ("RAD:"), whereas earlier Kickstart releases could only be booted from floppy disk. Workbench 1.3 provided the FFS filesystem device driver on disk, which could be copied into the Rigid Disk Block (RDB) on hard disks. Compliant block devices would then load and install the filesystem driver before filesystems were mounted and thus make it possible to use loadable filesystems on hard disks. Kickstart 1.2 could boot Workbench 1.3 from floppy (and vice versa), but it needed both Kickstart and Workbench 1.3 to autoboot FFS-formatted hard disks.
FFS support was merged into the ROM-based filesystem from Kickstart 2.0 onwards, and so it was no longer necessary to install FFS in the RDB. The ability to load filesystems from the RDB still remained available in case one wished to fix ROM bugs, get new FFS features, or use a third-party filesystem.
Floppies are unpartitioned devices without a RDB and also do not use the autobooting mechanism, so were only bootable if the disk's dostype was one the ROM-based filesystem understood. As a result, FFS-formatted floppies were not bootable until the release of Kickstart 2.0, and mounting them under Workbench 1.3 involved some ugly unsupported hacks. Similarly, "Directory Cache" variants were not bootable or supported until Kickstart 3.0.
The various FFS flavours did not have any compatibility problems with Amiga software, even ones that were considered "system-unfriendly". Software would either use the system calls and thus work with any filesystem, or be "trackloaders" and not use a filesystem at all.
FFS operated in several modes, defined by "dostypes". AmigaOS filesystems are identified by a four letter descriptor which is specified either in the RDB or a mountlist or dosdriver; alternatively (as was the case in trackdisk-like devices like floppy disks), the disk itself could be formatted in any dostype specified.
FFS dostypes were as follows: [3]
DOS\0: The original Amiga filesystem (OFS). This was left in for compatibility purposes, and the majority floppy disks shipped by software companies or as magazine coverdisks used this dostype so that they would boot on pre-2.x machines like the Amiga 500. It also meant that users with existing OFS-formatted drives could read them once they had installed FFS to the RDB.
DOS\1: The new filesystem, FFS. The first, disk-based releases of FFS did not have any additional modes.
AmigaOS 2.04 made FFS (now v37) part of the Kickstart ROM and introduced new modes for handling international characters in filenames, [4] and for an on-disk directory cache. Each new mode was available with both OFS and FFS dostypes. This odd system was for parity: OFS modes apart from DOS\0 were almost never used but were available nonetheless. (Although OFS, they were still not compatible with Amiga systems without FFS).
The four new dostypes introduced with v37 of FFS:
DOS\2: "International" (OFS-INTL) mode allows OFS to handle filenames with "international characters" - i.e. those not found in English (Latin character set), such as ä and ê.
DOS\3: International mode, for FFS (FFS-INTL). This was the most commonly used FFS mode. (All higher dostypes have international mode always enabled.)
DOS\4: "Directory Cache" (OFS-DC) mode enabled to primitive cache by creating dedicated directory lists instead of having to pick up the linked directory/file entries that lie scattered over the disk. A certain (small) amount of disk space to store the directory data is allocated. [5] The DirCache option improved directory reading speed drastically but creating, deleting and renaming files became slower. It did not increase the speed of reading individual files.
It became a popular choice on Amiga hard drives, but according to Olaf Barthel, author of FFS2, the use of dircache modes was probably better for floppy disks than it was for hard drives, where it would cause an overall degradation in performance compared to lack of dircache.[ citation needed ] Despite this it was rarely used on floppies, particularly because of the cache eating precious space, and because of the limited space preventing a large number of files to cache in the first place. The dircache mode lacks a garbage collection mechanism, which means that partly filled cache blocks are never consolidated and will keep taking up space. [6]
DOS\5: Directory caching with FFS (FFS-DC). Both dircache modes were not backwards compatible with earlier versions of FFS.
Version 40.1 was the last version of FFS released by Commodore, and came with AmigaOS 3.1, both on the OS disks and in the ROM. After this, several Unofficial patches appeared which allowed its use on drives after the first 2 GB of a hard disk using a 64-bit addressing system called TrackDisk64 or TD64 (although the 2 GB limit on file size and the 127 GB limit on partition sizes remained, as it was a limitation of AmigaOS dos.library and all then-current Amiga software) and carried the version number of v44. The version of FFS that came with AmigaOS 3.5 and 3.9 was v45 and differed in that it used a different 64-bit addressing system, New Style Device or NSD.
More recently (from 2003), MorphOS and AmigaOS 4 have introduced support for a slightly updated "FFS2", by Olaf Barthel (FFS v46, v50 respectively). This is compatible with the older FFS. It is PowerPC native, and introduced two more dostypes (which are not capable of being read by the older FFS):
DOS\6: "Long Filename" (OFS-LNFS). This allowed files to have a longer filename (up to 107 characters) than the usual Amiga limit, which was 31 characters. [6]
DOS\7: Long filenames for FFS (FFS-LNFS).
There were no directory caching modes available for LNFS dostypes, and International Mode was always enabled.
Despite the ability to use the long filenames, by this time FFS compared very poorly to other available filesystems on the platforms it was available for. Apart from these extra dostypes, there are little or no functional difference between FFS and FFS2 (although some older non-specified bugs may have been dealt with) and should still not be used except for legacy purposes. Disk validation is still necessary in FFS2 (and may still result in data loss) just as it was on FFS, despite early beliefs to the contrary.
In September 2018, Hyperion Entertainment released Amiga OS 3.1.4 from the Amiga OS 3.1 source. It included an updated FastFileSystem V46 in the Kickstart ROM. The V46 FFS natively supported the APIs for TD_64, NSD, and/or the classic 32-bit TD_ storage calls. This lets the Amiga OS v3.x use and boot from large media (>4GB) natively, and support >2GB partition sizes. In July 2019, an additional file-based update to FFS was contained in the 3.1.4.1 update. [7] In May 2021, an updated Amiga OS 3.2 was released [8] and provided a matching ROM-based V47 FFS update which gained a few minor features and fixes.
There were few other implementations which are able to read FFS filesystems, which would normally require an Amiga emulator and a copy of the operating system ROMs to be read. Most notably, support for affs (Amiga Fast File System) can be compiled into Linux kernels, and offers full read, write and format support on FFS and OFS partitions of all dostypes except DOS\6 and DOS\7 (which are probably incredibly rare).
On the Amiga, the freeware application xfs [9] could, among many filesystems, read and write to devices formatted in OFS or FFS, and was probably the sole Amiga filesystem apart from FFS/FFS2 itself to do so. It did not support DOS\6 or DOS\7, which it predates, or formatting of devices.
ISO 9660 is a file system for optical disc media. The file system is an international standard available from the International Organization for Standardization (ISO). Since the specification is available for anybody to purchase, implementations have been written for many operating systems.
File Allocation Table (FAT) is a file system developed for personal computers and was the default filesystem for MS-DOS and Windows 9x operating systems. Originally developed in 1977 for use on floppy disks, it was adapted for use on hard disks and other devices. The increase in disk drives capacity required four major variants: FAT12, FAT16, FAT32, and ExFAT. FAT was replaced with NTFS as the default file system on Microsoft operating systems starting with Windows XP. Nevertheless, FAT continues to be used on flash and other solid-state memory cards and modules, many portable and embedded devices because of its compatibility and ease of implementation.
In computer data storage, drive letter assignment is the process of assigning alphabetical identifiers to volumes. Unlike the concept of UNIX mount points, where volumes are named and located arbitrarily in a single hierarchical namespace, drive letter assignment allows multiple highest-level namespaces. Drive letter assignment is thus a process of using letters to name the roots of the "forest" representing the file system; each volume holds an independent "tree".
AmigaDOS is the disk operating system of the AmigaOS, which includes file systems, file and directory manipulation, the command-line interface, and file redirection.
The Unix file system (UFS) is a family of file systems supported by many Unix and Unix-like operating systems. It is a distant descendant of the original filesystem used by Version 7 Unix.
ProDOS is the name of two similar operating systems for the Apple II of personal computer. The original ProDOS, renamed ProDOS 8 in version 1.2, is the last official operating system usable by all 8-bit Apple II computers, and was distributed from 1983 to 1993. The other, ProDOS 16, was a stop-gap solution for the 16-bit Apple IIGS that was replaced by GS/OS within two years.
A live CD is a complete bootable computer installation including operating system which runs directly from a CD-ROM or similar storage device into a computer's memory, rather than loading from a hard disk drive. A live CD allows users to run an operating system for any purpose without installing it or making any changes to the computer's configuration. Live CDs can run on a computer without secondary storage, such as a hard disk drive, or with a corrupted hard disk drive or file system, allowing data recovery.
On the Amiga, the Old File System was the filesystem for AmigaOS before the Amiga Fast File System. Even though it used 512-byte blocks, it reserved the first small portion of each block for metadata, leaving an actual data block capacity of 488 bytes per block. It wasn't very suitable for anything except floppy disks, and it was soon replaced.
The Smart File System (SFS) is a journaling filesystem used on Amiga computers and AmigaOS-derived operating systems. It is designed for performance, scalability and integrity, offering improvements over standard Amiga filesystems as well as some special or unique features.
CrossDOS is a file system handler for accessing FAT formatted media on Amiga computers. It was bundled with AmigaOS 2.1 and later. Its function was to allow working with disks formatted for PCs and Atari STs. In the 1990s it became a commonly used method of file exchange between Amiga systems and other platforms.
The Amiga computer can be used to emulate several other computer platforms, including legacy platforms such as the Commodore 64, and its contemporary rivals such as the IBM PC and the Macintosh.
AmigaOS is the proprietary native operating system of the Amiga personal computer. Since its introduction with the launch of the Amiga 1000 in 1985, there have been four major versions and several minor revisions of the operating system.
In computing, a rigid disk block (RDB) is the block on a hard disk where the Amiga series of computers store the disk's partition and filesystem information. The IBM's PC equivalent of the Amiga's RDB is the master boot record (MBR).
Amiga support and maintenance software performs service functions such as formatting media for a specific filesystem, diagnosing failures that occur on formatted media, data recovery after media failure, and installation of new software for the Amiga family of personal computers—as opposed to application software, which performs business, education, and recreation functions.
Kickstart is the bootstrap firmware of the Amiga computers developed by Commodore International. Its purpose is to initialize the Amiga hardware and core components of AmigaOS and then attempt to boot from a bootable volume, such as a floppy disk. Most Amiga models were shipped with the Kickstart firmware stored on ROM chips.
SpartaDOS X is a disk operating system for the Atari 8-bit computers that closely resembles MS-DOS. It was developed and sold by ICD in 1987-1993, and many years later picked up by the third-party community SpartaDOS X Upgrade Project, which still maintains the software.
AmigaOS is a family of proprietary native operating systems of the Amiga and AmigaOne personal computers. It was developed first by Commodore International and introduced with the launch of the first Amiga, the Amiga 1000, in 1985. Early versions of AmigaOS required the Motorola 68000 series of 16-bit and 32-bit microprocessors. Later versions, after Commodore's demise, were developed by Haage & Partner and then Hyperion Entertainment. A PowerPC microprocessor is required for the most recent release, AmigaOS 4.
DOS is a family of disk-based operating systems for IBM PC compatible computers. The DOS family primarily consists of IBM PC DOS and a rebranded version, Microsoft's MS-DOS, both of which were introduced in 1981. Later compatible systems from other manufacturers include DR-DOS (1988), ROM-DOS (1989), PTS-DOS (1993), and FreeDOS (1998). MS-DOS dominated the IBM PC compatible market between 1981 and 1995.
IDEDOS is a ROM-based disk operating system written in 6502/65816 assembly language for the Commodore 64, 128 and SuperCPU. Its main purpose is to control ATA(PI) devices connected to an IDE64 cartridge and present them like normal Commodore drives. Additionally it supports networked drives (PCLink) and has a built-in machine code monitor and file manager.