All Macintosh storage devices except floppy disks are partitioned intoone or more volumes. Volumes can contain four kinds of items: files,directories, directory threads and file threads. Each item is describedby a catalog record which is analogous to a Unix inode. Catalog recordsare organized in the on-disk catalog B-Tree. Directory contents arederived from searching the catalog B-Tree. Only a file can occupy spaceoutside of its catalog record.
A Macintosh 'file' contains two components,or forks. The resource fork is an indexed file containing codesegments, menu items, dialog boxes, etc. The data fork has the 'stream ofbytes' semantics of a Unix file contents. Each fork is comprised of oneor more extents or contiguous runs of blocks. An extent descriptor encodesan extent's starting block and length into a 32bit quantity. The firstextent record (three extent descriptors) of each fork is a part of thefile's catalog record. Any further extent records are kept in theextents overflow B-Tree.
In addition to file and B-Tree extents a volume also contains two bootblocks, a volume information block, and a free space bitmap. There isa remarkable amount of redundancy in the on diskdata structures whichimproves crash recovery. While not strictly a part of the filesystem,it should be noted that several catalog record fields are reservedfor the exclusive use of Finder, a program which handles user accessto the filesystem and automatically maintains associations betweenapplications and data files. Thus, HFS must also maintain this Finderinfo.
On Windows our Callback File System is used. Dropbox at the moment doesn't have a virtual file system but only shell extension (afaik they planned to What you are after are usrspace filesystems. I don't know if there is a unified solution for implementing userspace filesystems on all (or most of all).
Every file and directory on an HFS volume has an identification number,similar to an inode number in the Unix filesystem. However, a file ordirectory is named by its parent's identification number and the fileor directory's file name, which is a 32 character string that cancontain nulls. This combination is the search key to the volume'scatalog B-Tree. The catalog B-Tree differs from a traditional B-Treestructure in that all the nodes at each level of the B-Tree are linkedtogether to form a doubly linked list and all of the records are inthe leaf nodes. These variations permit accessing many items in thesame directory by traversing the leaves using the linked list. Strictlyspeaking, the HFS B-Trees are a variant of B+-Trees although Apple'stechnical documentation calls them B*-Trees.
Each directory, including the root directory, contains its directorythread, which has the empty filename. The directory thread recordcontains the name of the directory and the id of the parent of the directory.Similarly, filethreads contain the name of a file and the id of thedirectory they are in. While every directory must contain a directorythread, file threads are very uncommon. In fact, both are examples ofHFS redundancy - for undamaged trees, threads are not strictly necessary.Both file and directory records contain 32 bytes of information used byFinder. The first three extent descriptors for the catalog B-Tree are keptin the volume information block. If the catalog B-Tree file grows beyondthree extents, the remaining extent descriptors are kept in the extentsoverfow.
HFS and HFS+ (also called Sequoia) filesystems are well documented. Thebest source of tech. information about HFS can be found in the InsideMacintosh series of books. Look athttp://developer.apple.com/techpubs/mac/Files/Files-99.html.The HFS+ filesystem is described in Technote 1150,available online at http://developer.apple.com/technotes/tn/tn1150.html.A lot of information is available also in other technotes. This linksare collected by Paul H. Hargrove:
HFS/2 lets OS/2 users seamlessly read and write fileson diskettes formatted with the Hierarchical File System, thefile system used by Macintosh computers. With HFS/2, Macintoshdiskettes can be used just as if they were regular diskettes.
This program is no longer being developed, because author doesn'tuse OS/2. If you are willing to maintain the program, let him know.
Mac-ette is a PC utility which can read, write, format and duplicate MacintoshHFS format 1.4 Meg diskettes on a PC equipped with a 3.5 inch high densitydiskette drive.
The hfsutils package contains a set of command-line utilitiessuch as hformat, hmount, hdir,hcopy, etc. They allow read-write access of files and directorieson HFS volumes.
Access: Read/Write, full open/read/write/seek/close support
License: Free for noncommercial and nonmilitary use, seeftp://ftp.cs.cmu.edu/user/pdinda/MacFS_0.1.LICENSE
This is a Macintosh file system library which is portable to avariety of operating systems and platforms. It presents a programminginterface sufficient for creating a user level API as well as file systemdrivers for operating systems that support them. Authors implementedand tested such a user level API and utility programs based on itas well as an experimental Unix Virtual File System.They also describe the Macintosh Hierarchical File System and theirimplementation and note thatthe design is not well suited to reentrancy and that its complexdata structures can lead to slowimplementations in multiprogrammed environments. Performancemeasurements show thatour implementation is faster than the native Macintoshimplementation at creating, deleting,reading and writing files with small request sizes, but slower than the Berkeley Fast FileSystem (FFS.) However, the native Macintosh implementation canperform large read and write operations faster that either ourimplementation or FFS.NextPreviousContents
Закладки на сайте Проследить за страницей
Created 1996-2019 by Maxim Chirkov Добавить, Поддержать, Вебмастеру
Paragon Linux File Systems for Windows 5.1.1015 Pre-Fixed | 42.33 MB
Information:
Linux File Systems for Windows by Paragon Software is a unique tool which gives you full access to Linux volumes within Windows. Just plug your hard disk with ExtFS/Btrfs/XFS partitions into your PC and instantly work with any media on the Linux partitions. Stable Operation Fail-safe operability across compatible hardware and software systems for both general-purpose and specialized applications.
Data Safety Protection of data integrity and prevention of accidental data corruption and possible loss.
Guaranteed Performance Steady throughput and balanced goodput with effective flow control, reduced overheads, and congestion avoidance.
Efficient Use Thrifty usage of processor, memory, and disk resources.
Write Access When ExtFS volume is mounted in write mode, you can do everything with files and folders it contains: read, edit, delete, rename, create new.
Automount Mounts supported volumes automatically at startup, so you donât need to bother about it each time you restart the operating system or power your computer on. However, this feature can be disabled at any moment in the program interface.
Volume Administration Formats, checks integrity, and repairs corrupted ExtFS volumes with minimal effort.
Internationalization Supports all character sets supported by your operating systems, including those that use non-Roman characters, so you will never face a problem of not getting access to file names on volumes mounted in non-native OS.
Read/write support for LVM (Logical Volume Management) With Linux File Systems for Windows by Paragon Software, your Linuxâs logical volume manager wonât lose any of its functions: it will be able to perform open, close, read and write operations and, in general, operate in a usual way.
Command Line Interface Get full control over Linux File Systems for Windows by Paragon Software via a command line.
Compatibility with 3rd party software Since product provides access to Linux volumes globally to the entire operating system, you can use any desktop and encryption applications, including TrueCrypt and its forks* (encrypted file container mode only).
Supported Operating Systems: – Windows 10 (32/64-bit) – Windows 8/8.1 (32/64-bit) – Windows 7 SP1 (32/64-bit) – Windows Server 2008 R2 SP1 (64-bit) – Windows Server 2012 (64-bit) – Windows Server 2016 (64-bit)