Open main menu
Home
Random
Recent changes
Special pages
Community portal
Preferences
About Wikipedia
Disclaimers
Incubator escapee wiki
Search
User menu
Talk
Dark mode
Contributions
Create account
Log in
Editing
High Performance File System
Warning:
You are not logged in. Your IP address will be publicly visible if you make any edits. If you
log in
or
create an account
, your edits will be attributed to your username, along with other benefits.
Anti-spam check. Do
not
fill this in!
{{Short description|Filesystem created for OS/2 operating system}} {{distinguish|Hi Performance FileSystem}} {{ref improve|date=August 2013}} {{infobox filesystem |name = HPFS |full_name = High Performance File System |developer = [[Microsoft]], [[IBM]] |introduction_os = [[OS/2 1.2]] |introduction_date = {{Start date and age|1989|11}} |partition_id = <code>[[Partition type#PID_07h|0x07]]</code> ([[Master Boot Record|MBR]]) |directory_struct = [[B tree]] |file_struct = [[B+ tree]] |bad_blocks_struct = [[List (abstract data type)|List]] |max_filename_size = 255 characters |max_files_no = Unlimited |max_volume_size = 64 [[gigabyte|GB]] (as implemented)<br/>2 [[terabyte|TB]] (theoretical) | max_file_size = 2 [[gigabyte|GB]] |filename_character_set = Single-byte from <code>0x20</code> to <code>0xFF</code> |dates_recorded = Access, Creation, Modified |date_range = |date_resolution = |forks_streams = Yes |attributes = Read-only, hidden, system, archive |file_system_permissions = Yes (only in HPFS386) |compression = No |encryption = No |OS = [[OS/2]], [[Windows NT]], [[Linux]], [[DragonFly BSD]], [[eComStation]], [[ArcaOS]] }} '''HPFS''' ('''High Performance File System''') is a [[file system]] created specifically for the [[OS/2]] [[operating system]] to improve upon the limitations of the [[File Allocation Table|FAT]] file system. It was written by [[Gordon Letwin]] and others at [[Microsoft]] and added to OS/2 version [[OS/2 1.2|1.2]], at that time still a joint undertaking of Microsoft and [[IBM]], and released in 1988. == Overview == Compared with FAT, HPFS provided a number of additional capabilities: *Support for [[Case Sensitivity|mixed case]] file names, in different [[code page]]s *Support for long file names (255 characters as opposed to FAT's [[8.3]] naming scheme) *More efficient use of disk space (files are not stored using multiple-sector clusters but on a per-sector basis) *An internal architecture that keeps related items close to each other on the disk volume *Less [[file system fragmentation|fragmentation]] of data *[[Extent (file systems)|Extent]]-based space allocation *Separate datestamps for last modification, last access, and creation (as opposed to last-modification-only datestamp in then-times implementations of FAT) *[[B+ tree]] structure for directories *Root directory located at the midpoint, rather than at the beginning of the disk, for faster average access HPFS also can keep 64 [[Kilobyte|KB]] of [[Metadata (computing)|metadata]] ("[[extended attribute]]s") per file. IBM offers two kinds of [[Installable File System|IFS]] drivers for this file system: *The standard one with a cache limited to 2 MB *''HPFS386'' provided with certain server versions of OS/2, or as added component for the server versions that did not come with it HPFS386's cache is limited by the amount of available memory in OS/2's system memory arena<ref>{{cite web|title=Virtual Memory Problems under OS/2|url=http://www.os2voice.org/VNL/past_issues/VNL0708H/feature_3.html|publisher=www.os2voice.org|access-date=11 June 2015|archive-url=https://web.archive.org/web/20150924061927/http://www.os2voice.org/VNL/past_issues/VNL0708H/feature_3.html|archive-date=24 September 2015|url-status=dead}}</ref> and was implemented in 32-bit [[assembly language]]. HPFS386 is a [[Ring (computer security)|ring 0]] driver (allowing direct hardware access and direct interaction with the kernel) with built-in SMB networking properties that are usable by various server [[daemon (computing)|daemon]]s, whereas HPFS is a [[Ring 3 (computer security)|ring 3]] driver. Thus, HPFS386 is faster than HPFS and highly optimized for server applications. It is also highly tunable by experienced administrators. Though IBM still had rights to HPFS, its agreement with Microsoft to continue licensing the HPFS386 version was contingent upon the company paying Microsoft a licensing fee for each copy sold. This was a result of the Microsoft and IBM collaboration that gave both the right to use Windows and OS/2 technology. Due to the Microsoft dependence, limited partition size, file size limit of 2 GB and the long disk-check times after a crash, IBM ported the [[journaling file system]], [[JFS (file system)|JFS]], to OS/2 as a substitute. [[DOS]] and [[Linux]] support HPFS via third-party drivers. [[Windows NT]] versions 3.51 and earlier had native support for HPFS. == Native support under Windows == [[Windows 95]] and its successors [[Windows 98]] and [[Windows Me]] have no support for HPFS. {{citation needed span|date=May 2023|They listed the [[NTFS]] partitions of networked computers as "HPFS"}}, because NTFS and HPFS share the same [[Partition type|filesystem identification number]] in the partition table. [[Windows NT 3.1]] and [[Windows NT 3.5|3.5]] have native read/write support for local disks and can even be installed onto an HPFS partition. [[Windows NT 3.51]] can also read and write from local HPFS formatted drives. Starting with [[Windows NT 4]] the filesystem driver ''PINBALL.SYS'' enabling the read/write access is not shipped anymore. Later Windows versions do not ship with this driver. Note that this driver is limited to 4GB HPFS volumes. Microsoft retained rights to OS/2 technologies, including the HPFS filesystem, after they ceased collaboration with IBM. Since Windows NT 3.1 was designed for more rigorous (enterprise-class) use than previous versions of Windows, it included support for HPFS (and NTFS) giving it a larger storage capacity than the [[FAT12]] and [[FAT16]] filesystems. However, since HPFS lacks a [[Journaling file system|journal]], any recovery after an unexpected shutdown or other error state takes progressively longer as the filesystem grows. A utility such as [[CHKDSK]] would need to scan each entry in the filesystem to ensure no errors are present, a problem which is vastly reduced on NTFS, which simply replays the journal. == See also == * [[Comparison of file systems]] * [[HPFS BPB]] ==References== {{reflist}} == Further reading == * {{cite journal | url = http://pages.cs.wisc.edu/~bolo/shipyard/hpfs.html | title=Design goals and implementation of the new High Performance File System | author=Ray Duncan | journal=Microsoft Systems Journal |date=September 1989|volume=4 | issue=5 | pages=1β13 }} * {{cite magazine | url=http://www.edm2.com/0410/hpfs1.html<!-- http://www.nondot.org/sabre/os/files/FileSystems/HPFS/ --> | title=Inside the High Performance File System - parts 1 to 6 | first=Dan | last=Bridges | magazine=Electronic Developer Magazine for OS/2 | date=November 1996 | volume=4 | issue=10 | access-date=2016-07-18 }} * {{cite journal | url = http://www.heise.de/ct/97/01/306/ | title=HPFS unter Windows NT 4.0 | author=Dieter Brors | journal=C't Magazin fΓΌr Computertechnik (German) | year=1997|volume=1 | pages=306 }} * {{cite web |url=http://www.warpspeed.com.au./Products/OS2/GU/Manual/appg.htm |title=Appendix G — HPFS internals |author=Chris Graham |work=The Graham Utilities for OS/2 - Version 2 |url-status=dead |archive-url=https://web.archive.org/web/20060210154146/http://www.warpspeed.com.au/Products/OS2/GU/Manual/appg.htm |archive-date=2006-02-10 }} * [https://archive.today/20130130020814/http://homepage2.nifty.com/bayer/hpfs_w2k.html%23English How to get Windows NT 4, Windows 2000, and Windows XP to read HPFS partitions] {{Filesystem}} {{OS/2}} [[Category:Disk file systems]] [[Category:File systems supported by the Linux kernel]] [[Category:IBM file systems]] [[Category:Windows disk file systems]] [[Category:OS/2 technology|High Performance File System]] [[Category:Computer file systems]] [[Category:Assembly language software]]
Edit summary
(Briefly describe your changes)
By publishing changes, you agree to the
Terms of Use
, and you irrevocably agree to release your contribution under the
CC BY-SA 4.0 License
and the
GFDL
. You agree that a hyperlink or URL is sufficient attribution under the Creative Commons license.
Cancel
Editing help
(opens in new window)
Pages transcluded onto the current version of this page
(
help
)
:
Template:Citation needed span
(
edit
)
Template:Cite journal
(
edit
)
Template:Cite magazine
(
edit
)
Template:Cite web
(
edit
)
Template:Distinguish
(
edit
)
Template:Filesystem
(
edit
)
Template:Infobox filesystem
(
edit
)
Template:OS/2
(
edit
)
Template:Ref improve
(
edit
)
Template:Reflist
(
edit
)
Template:Short description
(
edit
)