Talk:File system: Difference between revisions

Content deleted Content added
Tail packing vs Block suballocation: I'll create a new footnote.
Undid revision 1301878886 by 116.71.184.22 (talk)
 
(265 intermediate revisions by more than 100 users not shown)
Line 1:
{{Talk header}}
== NTFS and posix ==
{{WikiProject banner shell|class=C|vital=yes|1=
you asumed <nowiki>{{no}}</nowiki> at all the posix question and link to a part of the page saying that they are acessible from SFU
{{WikiProject Computing|importance=top}}
that is corect but asume a certain design that is not true
}}
theses options ARE THERE BY DEFAULT!!! but not acessible trough win32
{{afd-merged-from|Prospero (file system)|Prospero (file system)|21 November 2008|date=November 2008}}
they can be acessed trough SFU but not only...
{{merged from|Special file system|10 August 2011}}
*windows NT(not 2000) has a unix layer
{{archivebox|[[/Archive 1|Archive 1]]}}
*mabe linux or others os that are compatible with NTFS
== Information about Reiser and ext (and other FSs) not storing creation timestamp? ==
The tables show that the Reiser and ext file systems (and others) do not store file creation timestamps. I believe this is not true. A recent discussion on a Linux mailing list turned up the following:
 
== Section "Too-long file names and file paths" makes wrong claims ==
<blockquote>
Quote: ''If any of the parent directories above "x" are renamed to be longer than 2 characters, "x" becomes inaccessible to the file system'' ... which is wrong. It is inaccessible to the Win32 subsystem unless the file name/path is prepended with <code>\\?\</code> and the respective code uses the wide Win32 APIs (as opposed to ANSI). Neither kernel mode drivers nor code (including Win32 programs) using the Native API will have trouble accessing it. Since this is utterly misleading, I am going to remove this part from the article. --[[User:Assarbad|Assarbad]] ([[User talk:Assarbad|talk]]) 22:12, 26 June 2011 (UTC)
any file on any filesystem has a creation date and time and if necessary, you can "touch file" so it updates the date and
: It's not a limitation of the OS as the original suggested, nor is it a limitation of the FS. Just to clarify that. --[[User:Assarbad|Assarbad]] ([[User talk:Assarbad|talk]]) 22:46, 26 June 2011 (UTC)
time to now.
# vi abcd
# ls -l abcd
-rw-r--r-- 1 root root 9 2005-08-19 12:39 abcd
# touch abcd
# ls -l abcd
-rw-r--r-- 1 root root 9 2005-08-19 12:45 abcd
</blockquote>
 
:: The "Win32 subsystem" is part of the operating system, yes? So it is a limitation of the combined file system and operating system, and is worth documenting. Trying to open exceedingly long paths in Explorer usually results in strange messages or Explorer completely hanging. Who uses "\\?\" as a file path in Windows? that appears to be some obscure hacker-equse comment on limitations. I suppose I should mention that while Windows doesn't allow reserved characters in file names, you can technically force them into the names anyway using a disk sector editor tool, so should any mention of reserved symbols in file names be deleted from Wikipedia?
Any comments or thoughts?
 
::: Not formally, no - it's not "part of the OS". It's perhaps worth documenting, but not as a limitation of the file system or the OS. And you'd be surprised just how many applications internally use the "\\?\" and still show to you as the user the more natural form without that prefix. Your comparison with using a disk editor is not even a good attempt. --[[User:Assarbad|Assarbad]] ([[User talk:Assarbad|talk]]) 00:44, 30 June 2011 (UTC)
Yes,
 
:::: I think I should elaborate. You wouldn't write in the [[File System]] article that certain limitations a particular [[Single UNIX Specification|SUS]]-compatible shell (say [[Bash (Unix shell)|Bash]]) imposes on the file/folder name is is a limitation of either the OS or the file system, would you? That's the point I'm trying to make. --[[User:Assarbad|Assarbad]] ([[User talk:Assarbad|talk]]) 01:04, 30 June 2011 (UTC)
Creation time is not supported by the standard infrastructure unix/linux supplies for file manipulation. Without resorting to non-standard extensions you will not specifically find a permanent "creation" time for a file.
 
:: The problem of too-long parent names also affected the old Macintosh System 6 and System 7. I don't recall the max pathname for System 7, but it was very easy to shoot yourself in the foot renaming parent folders and rendering children inaccessible. [[User:DMahalko|DMahalko]] ([[User talk:DMahalko|talk]]) 02:45, 27 June 2011 (UTC)
This [http://www.faqs.org/faqs/unix-faq/faq/part3/section-1.html Unix FAQ] states:
::: Oh and testing this just now in Windows 7 shows what you are claiming to be invalid.
 
::: * Windows Explorer response to a path of "\\?\" -- '''Windows can't find '\\?\'. Check the spelling and try again.'''
3.1) How do I find the creation time of a file?
 
::: * Windows 7 command prompt response to "dir \\?\" -- '''The filename, directory name, or volume label syntax is incorrect.'''
:You can't - it isn't stored anywhere. Files have a last-modified
::: [[User:DMahalko|DMahalko]] ([[User talk:DMahalko|talk]]) 02:51, 27 June 2011 (UTC)
:time (shown by "ls -l"), a last-accessed time (shown by "ls -lu")
:and an inode change time (shown by "ls -lc"). The latter is often
:referred to as the "creation time" - even in some man pages -
:but that's wrong; it's also set by such operations as mv, ln,
:chmod, chown and chgrp.
 
:::: Your point being? What's that comparison with Mac got to do with it? I just pointed out that the claims made (originally) in that paragraph are technically wrong. Please consult the respective documentation from Microsoft. While MAX_PATH for Win32 (i.e. APIs compatible back until Windows 3.1) is 260 and includes the drive specifier, the documentation (for example [http://msdn.microsoft.com/en-us/library/aa365247(v=vs.85).aspx here, section "Maximum Path Length Limitation"]), is pretty clear on the matter. What you are trying to point out are nothing but limitations of the Win32 subsystem (which is ''not'' the same as the OS or the file system) w.r.t. the traditional file path syntax and limitations of particular implementations in programs. Whereas the issue with Windows Explorer is in addition that it accepts names from the shell namespace (including those in the file system). And I'm not saying this example must not be inserted - on the contrary. If inserted with the right context and proper description, it may well be an interesting fact. Although I would argue that such information is better suited in some Windows-specific article rather than in this one. However, the way it was given, it was misleading at best. --[[User:Assarbad|Assarbad]] ([[User talk:Assarbad|talk]]) 00:58, 30 June 2011 (UTC)
:The man page for "stat(2)" discusses this.
 
== Archive ==
The aforementioned mailing list discussion appears to have confused the modification time with a creation time. -- [[User:Guy Harris|Guy Harris]] 00:44, 22 September 2005 (UTC)
I exhaustively archived this talk page. Someone may want to split that into multiple archives, as archive one is ''very'' long. Also, someone with extra free time might want to resurrect any posts in there that are worth keeping here, as that discussion archive is quite a time capsule of this page.
 
--[[User:SuperLuigi31|<font color="blue"><b>Super</b></font><font color="green"><b>Luigi</b></font>]] [[User Talk:SuperLuigi31|<font color="red"><b>3</b>]][[special:contributions/SuperLuigi31|</font><font color="gold"><b>1</b></font>]] 15:59, 22 March 2007 (UTC)
== ReiserFS ==
ReiserFS seems to support Access Control Lists acording to http://elibrary.fultus.com/technical/index.jsp?topic=/com.fultus.suse.guides/guides/9_0/suselinux-adminguide_en/node27.html "Access Control Lists are a feature of the Linux kernel and are currently supported by ReiserFS, Ext2, Ext3, JFS, and XFS." If anyone knows if this is correct plase change it in the table. --[[User:Cspurrier|Cspurrier]] 19:01, 1 Oct 2004 (UTC)
: Suse includes the "widely-used add-on" (mentioned in the footnode) that adds the extended attribute support, enabling this feature in ReiserFS in that distro. But if you have reason to believe any part of the table is wrong please do go ahead and fix it. [[User:Saucepan|Saucepan]] 19:19, 1 Oct 2004 (UTC)
 
: ReiserFS does not have native support for ACLs. The ACLs are just stored in a file called "xattr" in whichever directory. BTW As far as I know, neither do ext2 and ext3, they both use the same addon don't they? [[User:AlistairMcMillan|AlistairMcMillan]] 19:28, 1 Oct 2004 (UTC)
 
:: The [http://acl.bestbits.at/ bestbits page] seemed to suggest that the ACL support was in the 2.4 and 2.6 kernels for ext2 and ext3, but required the extended-attributes add-on for ReiserFS. Either way, though, I guess we should decide where we want to draw the line between a standard, interoperable on-disk feature of a filesystem vs. a software enhancement present on a particular OS.
 
:: How about the following test: Admin Alvin removes a drive formatted with Filesystem X and sends it to Admin Betty in another city. Alvin doesn't know whether Betty is running a different implementation of the filesystem software on a different OS, and Betty is only told the name of the filesystem. Would Alvin reasonably expect that Feature Y would work when Betty mounts the drive? (Where "work" would mean the feature was operational, the information was preserved and recognized, and/or the security policies were being enforced, depending on the feature.) If so, then Feature Y is pretty clearly supported by Filesystem X. If not, then other factors might need to be considered. What do you think? [[User:Saucepan|Saucepan]] 21:02, 1 Oct 2004 (UTC)
 
::: I think you may be misreading the bestbits page. ''This site hosts extended attribute and access control list kernel patches for the 2.4 kernel series (ext2, ext3, nfs) and for the 2.6 kernel series (nfs). The 2.6 kernel already includes support for ext2, ext3, jfs and xfs.'' and ''Additional file system EA and ACL patches are available elsewhere:''. Additional file systems being JFS, XFS and ReiserFS. [[User:AlistairMcMillan|AlistairMcMillan]] 21:36, 1 Oct 2004 (UTC)
 
:::: Apologies if I'm just unusally dense today but I'm not seeing how this differs from my summary of the situation. What am I missing? [[User:Saucepan|Saucepan]]
 
::::: You said that ACL support is in the kernel but ReiserFS needs the add-on. However ACL support in the 2.4 and 2.6 kernels uses the "extended-attributes add-on" in the same way that ReiserFS does. You can even see Ted Ts'o's original submission of earlier versions of the patches for the 2.6 kernel [http://seclists.org/lists/linux-kernel/2002/Oct/6798.html here]. [[User:AlistairMcMillan|AlistairMcMillan]] 22:33, 1 Oct 2004 (UTC)
 
::: BTW By your test, then ACLs are not part of ReiserFS, ext2 or ext3. Not all distros have ACL support compiled in. I have very little understanding of XFS and JFS so I'll leave them to someone else. [[User:AlistairMcMillan|AlistairMcMillan]] 21:45, 1 Oct 2004 (UTC)
 
:::: The proposed test can prove that a feature is supported, but can't conclusively rule that it isn't (since it might be optional, require some configuration, or have other factors that need to be considered). OSX UFS has some grey-area features like this as well, if I remember correctly (like resource forks). [[User:Saucepan|Saucepan]] 21:58, 1 Oct 2004 (UTC)
 
::::: Looking around for specifics I found [http://www.fedoraforum.org/forum/archive/index.php/t-16441.html this]. Someone in the exact situation you described. Trying to mount an ext3+acl parition in Fedora Core 1 and having problems because the default kernel in FC1 doesn't support the ACL extensions. [[User:AlistairMcMillan|AlistairMcMillan]] 23:41, 1 Oct 2004 (UTC)
 
== FAT32 data ==
 
It's difficult to find definitive information about FAT32 file and volume size limitations since they've been increasing with seemingly every Windows version/service pack, leading me to believe that many of these limits were imposed by the OS rather than being limitations of the on-disk format. The FAT32 maximum path name length of 260 UCS-2 characters is from [http://osdev.berlios.de/osd-fs.html#fat], but seems suspiciously low to me. If you find any of the info fishy then feel free to change it to "?" and leave a note here. [[User:Saucepan|Saucepan]] 07:12, 23 Sep 2004 (UTC)
 
:IIRC, that 260-character filename limit is listed that way in MSDN. It might still be the consequence of an OS limit, but I wouldn't want to use a longer file name on a FAT32 partition anyway, which makes it a de-facto limitation.<br>
:I'm not sure that this kind of limitation is very important anymore. At 260 characters (be it maximum pathname length or filename length), people and programs tend to assume infinite size and will report back the error from the file system.<br>
:I'd list only lengths below 100 or so - these are indeed practical limitations. Distinguishing between the ability to have 100 or 1000 characters in a name is more a specialist question, and Wikipedia can't do that because then a lot more details would have to be covered.<br>
Joachim Durchholz <jo@durchholz.org>
 
== NTFS and Timestamps ==
 
<strong>Question: </strong>I know that NTFS internally uses GMT/UTC for
all timestamps, while most other filesystems supported by Windows use
localtime. I know that most Unix-like platforms do their internal
timekeeping in UTC/GMT. I do not know how MacOS and other platforms
handle these issues. Somebody who does know, please edit this table
accordingly, because particularly at times of the year when millions
of people have recently switched between summer and winter local time,
this can make ambiguities when files are copied between partitions
that use universal time and partitions that use local time.
 
MacOS 9 and earlier operate on localtime, MacOS X uses GMT, HFS uses localtime, and HFS+ uses GMT. From [http://developer.apple.com/technotes/tn/tn1150.html HFS Plus Volume Format],
Google is your friend. --[[User:MartinRudat|Martin Rudat]]([[User talk:MartinRudat|T]]|[[Special:Emailuser/MartinRudat|@]]|[[Special:Contributions/MartinRudat|C]]) 09:11, 18 February 2006 (UTC)
 
== HFS+ POSIX permissions ==
 
One of the design goals of HFS+ was POSIX compliance. Mac OS X requires POSIX permissions, and it runs best on HFS+ volumes. Indeed, Mac OS X lets you set permissions just as any other *nix system does. Can anyone disprove this? (The Apple developer doc linked from [[HFS Plus]] is over my head. I'm not a coder, heh.) -- [[User:Tooki|tooki]] 17:34, 25 Nov 2004 (UTC)
 
: I don't think POSIX compliance was a priority when HFS+ was introduced with OS 8.1. Not that they didn't add case sensitivity (a POSIX requirement) to the filesystem until Mac OS 10.3. However you are right that for Mac OS X (and possibly before) they did add unix permissions. See Wilfredo Sanchez excellent USENIX 2000 paper for more detail: http://www.wsanchez.net/papers/USENIX_2000/ [[User:AlistairMcMillan|AlistairMcMillan]] 00:28, 26 Nov 2004 (UTC)
::I don't remember where I read it, but I do believe that POSIX compliance ''was'' one of the design goals, way back before 8.1. I know that HFS+ has had permissions and long filename support from day 1. Mac OS, however, did not. The case-sensitivity (like long filename and permissions support) is really more of an implementation issue, isn't it? Wouldn't the host OS be responsible for its implementation of the FS code? -- [[User:Tooki|tooki]] 17:10, 26 Nov 2004 (UTC)
 
Remember that (as of this writing - 10.4.4) HFS+ is case preserving only:<br>
<code>$ touch a A<br>
$ ls<br>
a</code>
 
:That's "case-insensitive". "Case-preserving" would be:
<code>$ touch a<br>
$ ls<br>
a<br>
$ rm a<br>
$ touch A<br>
$ ls<br>
A</code>
:As of 10.3, HFS+ (or, to be technically accurate, HFSX) file systems can be case-insensitive and case-preserving or case-sensitive and case-preserving. By default, it's case-insensitive, so the "Macintosh HD" volume on a machine shipped from Apple will be case-insensitive, but you can make new file systems that are case-sensitive, at least on OS X Server. (You might have to use the <tt>diskutil</tt> command on the non-server version, as per [http://manuals.info.apple.com/en/MacOSXSrvr10.3_CommandLineAdminGuide.pdf Mac OS X Server Command-Line Administration For Version 10.3 or Later]; I don't know whether Apple would support that.)
 
:It might not be possible to freshly install OS X on a case-sensitive root volume. The 10.3 server installer, at least, won't let you install on a case-sensitive volume, according to [http://docs.info.apple.com/article.html?artnum=107863 a knowledge base article on the Apple Web site], and the client installer might not even let you format the volume as case-sensitive. [[User:Guy Harris|Guy Harris]] 10:53, 1 February 2006 (UTC)
 
::I have not tested, but in the Installer, you can launch Disk Utility to format the volume as HFSX (case-sensitive) and then the installar should work.
::Also you can format volumes as HFSX with Disk Utility in an installed system.
::&mdash;[[User:Claunia|Claunia]] 14:46, 1 February 2006 (UTC)
 
:::The 10.4 install DVD will indeed quite cheerfuly format and install upon a HFSX filesystem. --[[User:MartinRudat|Martin Rudat]]([[User talk:MartinRudat|T]]|[[Special:Emailuser/MartinRudat|@]]|[[Special:Contributions/MartinRudat|C]]) 09:17, 18 February 2006 (UTC)
 
== Journal types ==
 
Would it be worth mentioning in the table whether the file system supports journaling all data or just metadata? --[[User:Yamla|Yamla]] 00:18, 2004 Dec 15 (UTC)
 
I added it --[[User:80.99.61.48|80.99.61.48]] 02:53, 11 Apr 2005 (UTC)
 
== Mac os X ==
I'm a bit confused by the table -- my 10.3 mac reports HFS+ as its filesystem, not UFS -- [[User:Tarquin|Tarquin]] 15:43, 24 Jan 2005 (UTC)
 
:You can choose between them when formatting a disk, see /Applications/Utilities/Disk Utility
 
== NSS ==
 
Novell is tight-lipped when it comes to actual descriptions of the features of their NSS filesystem. I had to dig around on quite a few different sites to get the data I did. Anyone with corrections or additions is welcome to add. Thanks, [[MARQUIS111]] Feb 1, 2005 11:00am EST
 
The Novel Open Entrerpise Server for Linux beta comes with a linux port of NSS deliver in source form and under GPL.
The code is completely unreadable though, I doubt it'll help you a lot ;-)
 
I've tried to find a good definition of Block Journaling but cannot find a definitive answer. I assume it means dat both data and metadata are journaled. If that's the case then NSS does not support Block Journaling (current status is '?'). [[User:JoetjeF|JoetjeF]] 21:56, 26 August 2005 (UTC)
 
Novell's NWConnection magazine has an article dicussing NSS features and technology specifically on Linux at: http://www.novell.com/connectionmagazine/2005/02/tech_talk_2.html
 
A snippet of what they say:
<blockquote>
Novell Storage Services brings to Linux a load of capabilities that other Linux file systems simply do not have—too many features to discuss adequately in this article. Here is a brief look at some of the other capabilities you will find only in Novell Storage Services:
 
<p>Novell Storage Services efficiently manages files identified by many different namespaces. Like the traditional Novell file system, Novell Storage Services offers native support for Unicode and supports multiple namespaces, namely UNIX (case sensitive), 8.3 DOS (case insensitive), Windows Long (case insensitive) and Macintosh (case insensitive) namespaces. The name-mangling algorithm that Novell Storage Services uses efficiently manages and uniquely identifies millions of files with similar long names in a directory. In contrast, Linux (and other) file systems begin to slow considerably when managing more than only 5,000 files in a subdirectory.
 
<p>Novell Storage Services enables you to set space restrictions on directories. Like Linux and other file systems, Novell Storage Services enables you to limit the amount of space that a single user can consume in a volume. Unlike other file systems, Novell Storage Services also enables you to limit the amount of data a directory or subdirectory can hold—regardless of who creates that data.
 
<p>Novell Storage Services offers built-in data shredding capabilities. Novell Storage Services enables you to set the Data Shredding attribute for Novell Storage Services volumes. When you do, you indicate that the system should apply data shredding to files deleted or purged from this volume. Data shredding hides deleted and purged files by overwriting them with random patterns of hexadecimal characters. Data shredding really erases deleted and purged files, making it impossible for unauthorized users to use a disk editor to access them. This data-shredding tool supports as many as seven data shred patterns over deleted data which meets U.S. government requirements. While other file systems offer add-on features to allow for data shredding, no other file system has this capability built in.
 
<p>Novell Storage Services tracks and logs files and their metadata to the Event File List. Using the Event File List, Novell Storage Services can report to information life-cycle applications about the usage of and changes in the file system under normal operations. The Event File List is the basis for Novell's File Archive and Versioning feature, currently available in Novell Open Enterprise Server for NetWare 6.5 and promised for a later version of Novell Open Enterprise Server for Linux. The File Archive and Versioning feature enables users to restore specific versions of closed or deleted files.</blockquote>
 
'''By Nadeem Ahmad and Abdul Majid Khan'''
 
== Mac OS X UFS ==
 
I have a hunch that [[Mac OS X]] [[Unix File System|UFS]] is not meaningfully different from the Berkeley UFS from which it is directly derived; ''viz.'', the port of [[TrustedBSD]] to [[Apple Darwin|Darwin]].
 
Not hugely so, as far as I know. Is its UFS significantly more interesting than {SunOS 4.x's, SunOS 5.x's, HP-UX's, etc.}? -- [[User:Guy Harris|Guy Harris]] 01:08, 22 September 2005 (UTC)
 
Also, UFS is a misnomer. I know FreeBSD calls their filesystem UFS, but it is the same as FFS (The Berkeley Fast File System by McKusick). It's explained in detail in the Linux file system HOWTO. --[[User:80.99.61.48|80.99.61.48]] 02:55, 11 Apr 2005 (UTC)
*[[Unix File System]] and the documents that it links to disagree with your assertion that it is identical to [[Berkeley Fast File System]]. [[User:Uncle G|Uncle G]] 10:45, 2005 Apr 11 (UTC)
 
:Unfortunately, there is a lot of confusion around this. Here is the history as I saw it. The original Berkeley file system was called "FFS", but on most BSD systems of the time there was only one file system implementation so it didn't really matter what it was called. (I believe the early names are simply the names of the subdirectories in the kernel source code.) Around the time of 4.4BSD, [[Margo Seltzer]] was doing her [[Ph.D.]] at Berkeley on a [[log-structured filesystem]]. Seltzer's work motivated the separation of the filesystem code into distinct "storage management" and "Unix semantics" modules. The semantics module, which was the same in both McKusick's and Seltzer's respective work, became "UFS" (directory /sys/ufs/ufs), and the name "FFS" was attached to the remaining code implementing McKusick's storage manager (/sys/ufs/ffs). Seltzer's work then became "LFS" (/sys/ufs/lfs), and is still present in some of the *BSDs. Unfortunately, the name games caused a lot of confusion and not all of the utilities and configuration files were updated in the same way, so that 4.4BSD as released called UFS+FFS "ufs" and UFS+LFS "lfs". In FreeBSD we dropped LFS early on (because it did not work and did not show much promise in motivating developers to fix it) but because of the name confusion, UFS+FFS was subsumed under the general rubric of UFS. (It didn't help that several other OSes called their own versions of FFS "UFS" as well.) [[User:18.26.0.18|18.26.0.18]] 07:05, 17 Apr 2005 (UTC)
 
I think the first "other OS" to call their FFS "UFS" was SunOS, perhaps all the way back to SunOS 2.x a/k/a "Sun UNIX 4.2BSD Release 2.0" or whatever it was called; that was the first SunOS to have a VFS layer into which file systems could plug (as it was the first SunOS to have more than one file system to plug into it, as it had NFS), and so FFS was dubbed the "UNIX File System". -- [[User:Guy Harris|Guy Harris]] 01:08, 22 September 2005 (UTC)
 
:This history (UFS, FFS, LFS) sounds right. However, a clear distinction needs to be made between historical FFS and modern UFS, because there are many optimization features that were in FFS that are obsolete and have been removed from UFS. While FFS and UFS are substantially similar, the two are not the same, and FFS is as good a label as any to distinguish the two. Unfortunately, there are many (incompatible!) flavors of modern UFS, and the only label we have to distinguish them is the name of the vendor that mangled them. --[[User:Ssd|ssd]] 14:56, 6 January 2006 (UTC)
 
::Well, it sounds right for BSD, at least. For other at least some OSes, the history I gave is correct, even if the BSD people adopted the name "UFS" from the notion that the UFS layer is the layer that provides the UNIX semantics not already provided by the storage management layer.
 
::So what are the optimization features removed from UFS? And from which "UFS" were those optimization features removed, and was that done at the exact same time that the file system acquired the name "UFS"? If not, that sounds more like a "Berkeley Fast File System history" item than a "distinction between FFS and UFS" item.
 
::For that matter, were those features in the on-disk data structure (which at least some have argued that this page should discuss, with details of particular implementations listed in footnotes; I express no opinion here either for or against that argument) or in the implementation? [[User:Guy Harris|Guy Harris]] 22:58, 6 January 2006 (UTC)
 
== Page is getting too big? ==
 
I noticed with the last change I saved, that there was a nastygram about the page being ~31k in size, and that something should be done to pare it down before it hits 32k. Should we split the page into currently-used and not-so-currently used filesystems?
 
Sample list would look like this (not all-inclusive):
 
Common file systems
http://en.wikipedia.com/File_system_comparison
* NTFS
* ext2 and 3
* Reiser 3 and 4
* NSS
* FAT32
* OS X UFS
:Rem: HFS+ is much more commonly used on OS X than UFS!
 
Not-so-common file systems
http://en.wikipedia.com/Not_So_Common_File_system_comparison (I'm only semi-joking)
* HPFS
* NWFS
* ODS5
* BeFS
* FAT12 (floppy use==current, hd use==not current)
 
I'll probably get shot down for this, but Wikipedia is the one who is complaining about the page size.
 
Thanks
 
[[MARQUIS111]], Feb 23, 2005, 12:34pm EST
 
* No. Split it by topic, not by filesystem. (The points to split the table by rows are pretty obvious, since it is split at those points already. &#9786;) We already have a split by columns, effectively, in the individual filesystem articles. What is important about ''this'' article is the rows. [[User:Uncle G|Uncle G]] 00:16, 2005 Feb 24 (UTC)
* Having said that, there are a couple of rows that I have my doubts about, that we could potentially eliminate, to keep the table size down. There's only one filesystem for which '''maximum pathname length''' applies, for example, and I ''suspect'' that even that is only because of a misunderstanding. Similarly, as pointed out before, there's some doubt about Mac OS X UFS actually having a separate identity of its own, which could be addressed. [[User:Uncle G|Uncle G]] 00:16, 2005 Feb 24 (UTC)
* Finally: Consider putting the table into a section and using section editing to edit the table by itself. [[User:Uncle G|Uncle G]] 00:16, 2005 Feb 24 (UTC)
 
:That warning exists because some very old browsers are not able to deal with pages than 32 kilobytes. Given that the front pages of many major sites (including the English Wikipedia, Google News, and Excite) are already larger than this, I think it's a really nonsensical warning.
:&mdash;[[User:Ghakko|Ghakko]] 15:54, 12 Jun 2005 (UTC)
 
== Directory entry limitations ==
 
Under (for example) ext3, is it really legal to have a directory entry containing "/"? How would such a file be accessed? (For that matter, how is such a file accessed when found on a VFAT or ISO9660 filesystem?) Perhaps a note describing additional limitations (perhaps imposed by the operating system) is worth mentioning? --[[User:Aarchiba|Andrew]] 20:25, Apr 15, 2005 (UTC)
 
* It might also be worth mentioning the filename restrictions imposed by Windows for DOS compatibility (even in Windows NT on NTFS): "con", "nul", "lpt1" and others. [[User:217.23.167.50|217.23.167.50]] 11:00, 4 May 2005 (UTC)
 
:The Linux VFS layer forbids the use of the "/" and "\0" (null) characters in filenames. Anything else is fair game.
:The filesystem drivers themselves may impose additional limitations. "vfat", for example, will not allow MSDOS path metacharacters like ":", "\" and "*".
:&mdash;[[User:Ghakko|Ghakko]] 15:48, 12 Jun 2005 (UTC)
 
 
There should be more columns in the Limits table (or another table) for things like max # of sub-directories in a directory, max # of files in a directory, max depth of sub-directories, max # of files, max # of directories, and others. Also, it'd be nice to know if a limit is a tuneable parameter that can be increased or is the physical maximum. Also, don't you think that only documenting the file system limits and not driver limits is somewhat moot? Seems to me it'd be more useful to include driver/OS limits that effectively reduce the physical limits for the end user. --[[User:216.21.215.250|216.21.215.250]] 22:17, 1 March 2006 (UTC)
 
== Benchmarks ==
 
Would anyone like to volunteer benchmarks for the Linux filesystems? A table containing average mongo/fsx/bonnie run times on the same system might be helpful.
:&mdash;[[User:Ghakko|Ghakko]] 15:48, 12 Jun 2005 (UTC)
:: hhm well the problem is do we have many small files or a few large files ? benchmark results will vary widely depending upon the file size, read/write, speed of media, file count, file fragments, % of disk space left, size of disk, and so on and so forth. Anyway if you come up with a standard way of doing it leave a note on my talk page and i will see if i can find the time to write a perl script to benchmark it. --[[User:2mcm|2mcm]] 23:54, 17 Jun 2005 (UTC)
:::It won't fit in wikipedia but it is perfect fot external wiki
:::create the article on the external wiki and add a link to it on the wikipedia page
:::http://techcompare.wikia.com/wiki/Index is a wiki where this content would fit
:::if you know any other wiki just tel me(in my talk page)
:::[[User:00 tux|00 tux]] 00:21, 5 May 2006 (UTC)
 
==HPFS==
Are you sure that HPFS does not have ''Last entry change timestamp''?
I see timestamps for last change, creation and last access.
--[[User:Error|Error]] 23:35, 12 Jun 2005 (UTC)
* Probably. "Last entry change timestamp" was someone's confused rewording of "[[inode]] change timestamp"; POSIX calls this "status change time" which is hardly any better. The important distinction is that this is a ''[[metadata]]'' timestamp, not a data timestamp. [[User:121a0012|121a0012]] 02:05, Jun 15, 2005 (UTC)
** Aha. HPFS does not track Extended Attribute change, AFAIK. --[[User:Error|Error]] 00:40, 18 Jun 2005 (UTC)
*** In HPFS terminology, this would be "f-node change". [[User:Uncle G|Uncle G]] 02:43, 2005 Jun 18 (UTC)
 
== Block suballocation vs. block fragmentation ==
 
I just added the "block fragmentation" column, but it occurred to me that this may be what the editor who added "block suballocation" meant but didn't explain very well. The block fragmentation policy implemented in all FFS derivatives works like this:
* Data blocks are either full blocks or fragments.
* Only the last block of a file may be a fragment.
* The ratio of block size to fragment size is set at initialization, and is a property of the entire filesystem (this distinguishes fragmentation from variable block size).
: [[User:121a0012|121a0012]] 05:12, Jun 23, 2005 (UTC)
 
** Block suballocation is (currently) a Netware NWFS-only feature, whereby the wasted space at the end of the filesystem block, typically 64k, can be subdivided into smaller blocks, typically 512B to 8KB, which can be used for other files. Sounds a lot like block fragmentation, but it has a Novell-only twist. [[User:MARQUIS111|MARQUIS111]]
 
Be careful with the use of the term ''fragmentation'' as it is badly overused. Even fsck in FFS used both meanings. I prefer block suballocation over block fragmentation, as it is less ambiguous. Allocation fragmentation could be expressed as either internal fragmentation (when a file is scattered) or external fragmentation (when the files in a directory are scattered). BSD handles all three. Linux does all but suballocation (last I checked). NTFS does none of them, but has a defragmentter that fixes internal fragmentation while making external fragmentation worse. --[[User:Ssd|ssd]] 15:06, 6 January 2006 (UTC)
 
== Layout policies ==
 
It would be nice if the layout table actually said something about the layout policies of individual filesystems. In order to do so, it would be necessary to develop a succinct vocabulary to characterize the salient policies of each. There are two major axes we want to characterize: how much does the layout algorithm know about the physical layout of the disk (geometry), and how does the layout algorithm decide where to put related objects.
 
Geometry terms: oblivious (FS takes no account of geometry; disk is just an array of sectors), rotational geometry (FS uses classical cylinder/head/sector layout rigidly), zone geometry (FS uses information about modern ZBR disk layouts), zoned oblivious (FS does not use C/H/S layout but divides disk into a fixed number of zones or groups with the assumption that accesses within a zone are faster)
 
Layout terms: first fit, next fit, interleave (models platter rotation to put next block under read head at "right" time), append-only
 
Additional policies: directory preference (put files close to directories referencing them), zone preference (put related things in same zone), non-overwriting (always allocates new block for updates)
 
Examples:
* FAT: oblivious, first fit (older implementations) or next fit (newer implementations)
* FFS: rotational geometry, interleave, zone preference
* UFS derivatives (including ext2): zoned oblivious, next fit, zone preference, directory preference
* UFS/LFS: oblivious, append-only, non-overwriting
* JFS (AIX implementation): zone geometry, zone preference
* ZFS: ???, non-overwriting
 
: [[User:121a0012|121a0012]] 05:40, Jun 23, 2005 (UTC)
 
::I could be wrong but aren't some of these OS/file system implementation specific rather then file system specific? Perhaps there are recommendations in the file system spec (if one exists) but I think for some of them, it's up to the OS/file system driver/implementation. Surely a file system implementation could put the files next to the directories or not, it wouldn't matter, it would still be understood and arguably completely legal and in many cases I suspect may not even be corrected by another implementation (even the 'official' implementation). Similarly with other policies and I suspect layout terms as well (even though I don't completely understand this). Even geometry terms I'm not sure whether it's file system specific. Perhaps in some cases but it doesn't have to be?
 
::BTW, I believe some Windows defraggers for NTFS and FAT do in fact practice directory preference (not sure about MS defrag)
 
:::[[User:60.234.141.76|60.234.141.76]] 17:22, 17 September 2005 (UTC)
 
== file systems before 1980 ==
 
The article currently gives the incorrect impression that filesystems were invented in 1980.
 
While not every operating system includes a file system,
I suspect that at least *some* of the pre-1980 operating systems included a file system:
 
* 1964 ? [[Multics]]
* 1970 [[Unix]]
* 1974 [[CP/M]]
* ? [[RT11]]
* 1978 [[Apple DOS]]
* ? [[Multiuser DOS]]
* ? [[MP/M]]
 
(I've seen mainframe computers with their huge disk packs -- [[Early IBM disk storage]] -- did any of them have a file system ? Or did applications always directly write to cylinder,head,sector locations ?)
 
--[[User:DavidCary|DavidCary]] 30 June 2005 06:22 (UTC)
 
:Even [[CTSS]] had a filesystem of a sort (at a level of functionality which remained common among Big Iron into the 1980s). I think this page rightly concentrates on filesystems which are still in active use (or at least it did; I see a few obsolete ones have been added). [[User:18.26.0.5|18.26.0.5]] 22:39, 20 July 2005 (UTC)
 
IBM Mainframe batch-type operating systems such as MVS or OS/VS1 had a type of file system in which basically you allocated space for a file, then gave it a name, then indicated if it was to be kept on the system, deleted at the end of a job step (sort of like allocating a temporary file for use while a program was running), deleted at the end of the job (because the file was being used to hold data from one job to the next, similar to a pipe on Unix), or kept. You usually just stated how much space to use, either by cylinder or track (and the amount to add if you had to add an extent) but the O/S at least, knew where to put the file. I don't know if they had a name for the system. [[User:Rfc1394|Paul Robinson]] 13:59, 12 February 2006 (UTC)
 
RT11 was [[Digital Equipment Corporation]]'s single-user operating system for their minicomputers. Similar to MSDOS, but with more limitations. 6+3 file name structure (as opposed to 8+3 for MSDOS) the only valid characters in a file name were a-z, 0-9 and maybe one or two more characters. All file names were upper case, and were stored in a format called 'Radix-50' that allowed them to get three characters into two 8-bit bytes (basically by storing file-name characters as roughly 5 1/3-bits each. The machine's basic programming structure was [[octal]]. [[User:Rfc1394|Paul Robinson]]
 
As I understand it, Multics went through at least two file system generations, with a [http://www.multicians.org/nss.html New Storage System] project in the 1970's which ''picked up a whole commercial operating system, dug a new basement, and set the system down on top of it without breaking a dish''; would be very interesting if one of the Multicians familiar with the project filled in two rows in the table on this page. --[[User:Sommerfeld|Sommerfeld]] 19:28, 1 May 2006 (UTC)
 
== Directory indexes ==
 
What filesystems can lookup filenames from a binary tree or similiar to avoid scanning through all files sequentially to find the one they're looking for? Especially important in large directories, eg. mail files in maildir.. I know ext3, reiser and xfs at least has them.
 
HFS+'s directories are implemented with a big B-tree, the Catalog File, the key being a combination of the file name and the Catalog Node ID (CNID, think "inode number" from a UN*X standpoint) of the parent directory. See [[Hierarchical_File_System#Design|the "Design" section of the page on HFS]]. -- [[User:Guy Harris|Guy Harris]] 01:03, 22 September 2005 (UTC)
 
== NWFS ==
 
The NWFS/POSIX cell displays '?' and I'd like to change it. But I'm not sure if it's a 'Yes' (with a Note?) or a 'No'. NWFS does have a ACL capabilities, called Trustees and similar to NSS, but no POSIX interface. [[User:JoetjeF|JoetjeF]] 20:54, 26 August 2005 (UTC)
 
== Sparse files ==
 
NTFS has this feature called sparse files. Basically, rather then storing a incomplete/file with lots of zeros as a full size file, you only store the data you have. Of course, this does result in a lot of fragmentation, especially if you use it with P2P where you get lots of different portions in different areas, which is probably it's most common use nowadays (although I think it was added long before P2P). I don't know if anything else has it but it would be worthy of inclusion. Perhaps data compression can do the same thing as well but sparse files is somewhat different and simpler! [[User:60.234.141.76|60.234.141.76]] 16:47, 17 September 2005 (UTC)
 
:Most UN*X file systems support sparse files; support for them dates back at least to the Sixth Edition file system. (HFS+ is an exception, although it didn't ''start'' as a UN*X file system.) -- [[User:Guy Harris|Guy Harris]] 00:54, 22 September 2005 (UTC)
 
::I do not understand what you mean to indicate about HFS+. I believe that HFS+ does support sparse files on the volume level (just the OS may not be providing API calls for it, but that's not the point here, right?). Also, UDF supports them (I am very sure of that). [[User:Tempel|Tempel]] 23:27, 16 March 2006 (UTC)
 
:::OS X definitely provides API calls for creating sparse files - <tt>lseek()</tt> and <tt>write()</tt>; it's a UN*X, after all. However, all the extents of an HFS+ file are assumed to be adjacent (the data in extent N+1 comes immediately after the end of the data in extent N), so there's no provision for holes in the file, and the HFS+ implementation has to put zeroes in a hole. [[User:Guy Harris|Guy Harris]] 00:39, 17 March 2006 (UTC)
 
:Most unix file systems will allocate blocks if you write to them -- even if you write zeros. ZFS with compression enabled will (as a special case) compress an all-zeros block out of existence, turning it (back?) into a file hole. Finding hole edges is another issue with hole API's. Shortly before ZFS integrated, Solaris also grew two new <tt>lseek()</tt> opcodes: <tt>SEEK_HOLE</tt> and <tt>SEEK_DATA</tt> to permit holes to be found efficiently. --[[User:Sommerfeld|Sommerfeld]] 20:01, 1 May 2006 (UTC)
 
== Incorrect or incomplete ==
I think this article is very incorrect and incomplete, and should be somewhat rewrote.
Suggestions, here, please, as this weekend if no one does it firts, I'll do the job.
&mdash;[[User:Claunia|Claunia]] 02:37, 2 December 2005 (UTC)
*Please explain what you think is incorrect and incomplete, and why you think that rewriting is the answer, instead of merely correcting the parts that are incorrect and filling in the parts that are incomplete. [[User:Uncle G|Uncle G]] 03:55, 2 December 2005 (UTC)
**Well, I mean correcting, but there are so many errors, that will be almost a rewrote. For example, it says that all filesystems supports any characters but NULL, but that is not real, specifications says illegal characters. It treats HFS and HFS+ as the same, when they are very different filesystems, and FFS and UFS1 as different filesystems, when they are just the same. It says that are not ADS aware in a lot of filesystems that are (ext2, ext3, XFS, JFS, Reiser, etc). And the most important thing I saw is that is says HFS/HFS+ not uses extents, when they are basically extent based (Extent Overflow File). There is also information in infoboxes that are not here, and viceversa. Both should be enriched. &mdash;[[User:Claunia|Claunia]] 13:31, 2 December 2005 (UTC)
***Most filesystems ''do'' support any characters except NUL. It is only the filesystem ''drivers'' that implement additional restrictions. There's even a clear footnote on this, footnote number 25. And, no, [[Unix File System]] is not the same as [[Berkeley Fast File System]], as our articles on them, and the documents that they link to, make clear. (As discussed above on this very page.) If this is your idea of "correction", please do not put it into practice. [[User:Uncle G|Uncle G]] 16:22, 2 December 2005 (UTC)
****Did you read FAT specification, for example? The implementation (DOS) don't support " " (spaces) but the specification says they are supported (ever saw "EA DATA. SF" file?). There are filesystems in the table that the specifications says clearly illegal characters and this should be corrected. Just one question, if 4.3BSD filesystem is FFS, and FreeBSD filesystem is UFS, and both drivers can read both revisions, why is it different? So we should consider the Atari ST's FAT 12, the DOS <3.0 FAT12 and the rest of FAT12s are different filesystems? And that each revision of NTFS is a different filesystem? As the only difference, as I see, are some differences in some non critical structures. (even the magic number is the same for FFS and UFS)
*****The article is correct. Spaces ''are'' supported in FAT. And if you want your question answered, ''read the documents linked to by the articles mentioned above''. [[User:Uncle G|Uncle G]] 18:43, 11 December 2005 (UTC)
******Spaces are supported in FAT, but nothing between 0x00 (0x0000 in LFN) and 0x1F (0x001F in LFN), however the article says it support. Article says "anything but NUL". Read Microsoft FAT specification. ARTICLE IS INCORRECT!. &mdash;[[User:Claunia|Claunia]] 19:57, 11 December 2005 (UTC)
*******Wrong. It is the Microsoft specification that is incorrect. [[User:Uncle G|Uncle G]] 18:26, 12 December 2005 (UTC)
 
OK, this is a bit long, so I'm resetting the indentation, so that we can also, hopefully, reset the discussion.
 
There are several layers at which you can ask what characters are supported in file systems. At the lowest layer of the on-disk data structures, most file systems probably support, in file names, either all byte values ("byte" for the benefit of those talking about non-8-bit-byte systems...) or all two-byte values if file names are stored as counted strings, or all byte values or two-byte values except 0 if file names are stored as null-terminated strings. (Byte vs. two-byte depending on whether the count in a counted string counts single bytes or byte pairs, and on whether the terminator in a null-terminated string is one byte or two.) Other limitations are imposed by the layer into which a particular implementation of the file system (there can, of course, be more than one implementation of a given file system with a given on-disk layout, plugging into one or more pluggable file system frameworks on OSes that have those frameworks), or by the code above that layer.
 
For example, UFS's on-disk structure can support names with '''''any''''' byte value in them, including not only '/', but even NUL, as there's a string count in the directory entry - you still have to append a '\0', however, as the count doesn't include a terminating NUL that's supposed to be there (so a file named "foo/\0bar" would have a count of 8 and the bytes 'f', 'o', '/', '\0', 'b', 'a', 'r', '\0' in the entry). However, the VFS layers into which it plugs on most UN*Xes pass null-terminated strings to it, so, at least on those systems, the name can't include NUL. It '''''can''''', however, include '/' - and, in fact, older UN*X-based NFS servers would cheerfully create files named "foo/bar" if you sent them an NFS packet requesting that a file/directory/link/symlink/etc. be created with that name; you couldn't ''remove'' the name locally, though, you'd have to do it over NFS. Most if not all NFS servers should now have that fixed, either by checking for '/' in the file system or in the NFS server code.
 
Similarly, NTFS's on-disk structure supports either all two-byte values or all but 0x0000 - and, with the proper (or, if you will, improper :-)) use of smbclient, you can create files with at least some of the names that the Win32 API doesn't allow (I've done that), just as you can do with the POSIX subsystem.
 
Further limits might be imposed by OS APIs, e.g. you cannot create files with '/' in their name through a POSIX/UN*X API, as that's a pathname separator.
 
In practice, implementations for OSes other than the "native" OS (or OS family - I'm lumping all UN*Xes together in one family, and both "Windows OT", i.e. 95/98/Me, and "Windows NT", i.e. NT 4.0, W2K, WXP, WServer2K3, WVista, etc., together in another family here) probably impose the same limitations the "native" OS does, at least if one of the purposes of the implementation is data exchange with the "native" OS or family.
 
Footnote 25 clearly states that the limitations being discussed are those of the on-disk data structure. FAT's on-disk data structure does not, as far as I know, forbid a byte with the value 0x01 in a file name. Microsoft's ''specification'' might forbid it, but that doesn't, for example, mean that you couldn't implement FAT for some UN*X and allow control-A in a file name. '''''However''''', it might be unwise to do that if the goal is data interchange with DOS and Windows, as those systems won't be able to handle those files. If the goal is to ''hide'' those files (e.g., if you're trying to implement features not present in standard FAT by, for example, having, for a file named "foo", a secondary file named "^Afoo" containing something such as file permissions), however, it might actually be a ''wise'' choice (modulo file names of that sort causing DOS or Windows to crash, or destroy those files, if you ''do'' intend to read those file systems on DOS or Windows machines - or even if you don't, as somebody's probably going to try to do it anyway).
 
Footnote 25 also clearly states that the file system implementation, or the OS into which it plugs, might impose other restrictions.
 
So:
 
*the article correctly describes the limitations imposed by the on-disk data structure (except that some of them might also support NUL) ''and'' states in the footnote that these are the limits imposed by the on-disk data structure and that there might be other limits imposed by the OS;
 
*however, allowing, in an implementation, all of the byte values allowed by those limitations might be impossible on some OSes and unwise in many situations on other OSes;
 
*it might, therefore, be useful, and avoid some confusion (and dispute) if it were made clearer in the table itself that the on-disk data structure allows more byte values than "conventional use" of the file system does, and also indicate what the "conventional use" of the file system allows (where "conventional use" would, in most cases, be use on the "native" OS or OS family for the OS - although that might differ depending on the "Windows NT" subsystem you're using). <small>&mdash;''The preceding [[Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by'' [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]&nbsp;&bull;&nbsp;[[Special:Contributions/Guy Harris|contribs]]) 09:33, 12 December 2005 (UTC{{{3|}}})</small><!--Inserted with Template:Unsigned2-->
**I just happened across this on [[WP:RC]], but Guy - very nice explanation. A pleasure to read. (BTW, please use <nowiki>~~~~</nowiki> to sign posts on talk pages.) [[User:JesseW/sig|JesseW, the juggling janitor]] 09:43, 12 December 2005 (UTC)
***(Yeah, I knew about <nowiki>~~~~</nowiki>, I just forgot to sign the article; sorry about that. I was going to add some more to the discussion anyway, and sign ''that'', and note that the previous comment was also mine, but I'll let this parenthetical note retrocredit the previous comment. :-))<p>For file systems with explicit specifications it ''might'' be worth giving limitations imposed by the specification (the specification might affect ''other'' limits as well, e.g. it might limit file sizes to a value lower than the on-disk structure could support). Those limits might be different from the "conventional use" limit, in that the limit might allow certain characters that the "native OS" doesn't allow.<p>Note also that the HFS+ specification in [http://developer.apple.com/technotes/tn/tn1150.html Apple Tech Note 1150] doesn't mention any restrictions on characters in file names, but, in practice, colons aren't allowed in file names, as they're traditional Mac OS path name component separators, ''and'' in OS X (and possibly other UN*Xes that include HFS+ implementations), a colon passed into HFS+ is converted to a slash on disk, and a slash on disk is passed out of HFS+ as a colon, so that OS X can read HFS+ volumes from traditional Mac OS and traditional Mac OS can (assuming OS X didn't use any new features in the on-disk format that traditional Mac OS can't handle) read HFS+ volumes from OS X. Thus, saying that the "conventional use" limit on file names is "any Unicode character other than colon" is technically true, but, in practice, OS X ''will'' accept from the VFS layer file names with colons in them and ''will'' return them, with colons, to the caller of the VFS layer. That would deserve to be noted in a footnote on HFS+, if we add "specification limits" and "conventional use limits" columns to the table. [[User:Guy Harris|Guy Harris]] 10:00, 12 December 2005 (UTC)
****Just as a filesystem developer I think containing any information that violates the filesystem specifications (like saying FAT supports anything but NUL -note that via your description supports everything, NUL also, as they are fixed length strings-) is misinformative and against the encyclopedia spirit. &mdash;[[User:Claunia|Claunia]] 15:07, 12 December 2005 (UTC)
***** It's not misinformative. What's misinformative is the very approach that you describe. Many specifications, especially those for FAT, are written long after the fact, are attempts to revise history, and are ''downright wrong''. Reporting ''only'' what the specifications say is to report erroneous information. [[User:Uncle G|Uncle G]] 18:26, 12 December 2005 (UTC)
****** So you think that because a paper wasn't published to public, developers work on air? Just like in the NTFS article discusion, as its specification is private there isn't one and the filesystem is allowed to have any kind of data in its structures? Or that if someone different of the inventor makes a structure modification, it should be took as official? &mdash; [[User:Claunia|Claunia]] 22:56, 12 December 2005 (UTC)
***** As a file system developer, I think that describing what the on-disk structure can support might be useful, and including it, as well as '''''separately''''' describing limitations imposed by the file system specifications '''''if''''' any exist, and limitations of the "conventional use" of the file system, would make the description more, well, ''encyclopedic''. <p>Note, though, that if we're discussing the on-disk characteristics of the file system, "case-sensitive" and "case-preserving" aren't on-disk characteristics, they're specification or "conventional use" characteristics (except maybe for HFSX, where there's actually a per-volume case-sensitivity attribute) - a FAT or VFAT implementation could, in theory, be case-sensitive - so one could ask which on-disk characteristics are relevant. File system sizes and file sizes clearly are, but some file name characteristics might not be. [[User:Guy Harris|Guy Harris]] 17:27, 12 December 2005 (UTC)
****The convention in this article has been for the table to discuss the actual on-disc data structures, and for the limits of particular operating systems and filesystem drivers (which vary from platform to platform, which aren't inherent to the filesystems themselves, and which do ''not'' adhere to a fixed set of standards) to be discussed in footnotes. Indeed, my opinion has been for some time that the "maximum pathname length" column does not belong in the table at all, because it has nothing whatsoever to do with the actual filesystems. If it can be confirmed that the only two remaining filesystems with pathname length limits (ODS5 and UDF) in fact have no inherent pathname limits and what pathname limits exist are nothing to do with the actual filesystems themselves, it should be removed, and be discussed in [[comparison of operating systems]] instead. [[User:Uncle G|Uncle G]] 18:26, 12 December 2005 (UTC)
*****At that point, "allowable characters in entry names" largely devolves to "number of bytes per character in file name" + "are file names counted or null-terminated" (and I suspect that's true even for NSS and NWFS, unless they use very odd string encodings that really ''do'' prevent storage of some character values on disk). If that's the intent, the column should probably be changed. For most if not all file systems, the file name character encoding isn't part of the on-disk data structure; should ''that'' be given or, is it the case that, as you state, there is no "native" operating system for a given file system, and maybe IBM will use JFS2 on z/OS and encode file names in EBCDIC? In that sense, file names are uninterpreted strings of bytes or 2-byte characters, or strings interpreted only to the extent that they're zero-terminated.<p>BTW, [[comparison of operating systems]] doesn't currently have anything about file name limitations, etc.. [[User:Guy Harris|Guy Harris]] 21:08, 12 December 2005 (UTC)
**We shouldn't be promulgating the notion that there is a "native" operating system for a filesystem, because in the vast majority of cases many operating systems have filesystem drivers for the filesystem, and there is no objective criterion by which any one operating system can be said to be more "native" than all of the others. "native" should not be conflated with "first implementation". [[User:Uncle G|Uncle G]] 18:26, 12 December 2005 (UTC)
*I don't know if it's appropriate or worth mentioning, but there's nothing in the on disk structure of FAT16 that disallows hard links. MS-DOS (at least 5.0) will behave in a fairly sane fashion if this is done, although chkdsk will report the directory or file as corrupt (cross linked or multiple links I forget exactly). [[User:Phredward|Phredward]] 23:24, 1 May 2006 (UTC)
 
If you bypass the filesytem API to manually hard link a file, and <tt>chkdsk</tt> rejects the resulting filesystem state as invalid, that would seem to be evidence that the FAT designers never intended to support that filestystem state. Similarly, nobody disputes that the ability to include a slash in a Unix filename was a bug, or that a filesystem containing such a file is in error, at least in part due to the strong Unix cultural expectation that (for example) every inode with a non-zero reference count should be addressible by at least one full pathname (and in fact <tt>fsck</tt> will detect and correct many situations where this isn't the case).
 
The question of a FAT filename containing CTRL-A is murkier, since so much was unwritten for so long (or written by third-party reverse engineers like Peter Norton). Microsoft now says it was never intended to be allowed, but if it's true that this was never initially communicated, and that the community of implementors developed and acted on a different prevailing belief, it's not obvious to me that Microsoft's current opinion automatically takes precedence. I do lean in the direction of taking Microsoft's word for it, however. Perhaps a new footnote is in order -- I gather you can never have too many footnotes. ;) --[[User:Saucepan|Saucepan]] 01:26, 13 September 2006 (UTC)
: It looks like [[Talk:Comparison of file systems]] is still redirecting to '''Talk:File system'''. --[[User:Saucepan|Saucepan]] 01:40, 13 September 2006 (UTC)
 
== Transactional NTFS ==
Line 385 ⟶ 36:
Shouldn't it point to WinFS? [[User:Fijal|countryhacker]] 11:52, 11 December 2005 (UTC)
 
Only if it's the same thing as WinFS. WinFS, from all I've seen (including stuff on MSDN), runs on top of NTFS; perhaps the database for the items in WinFS uses transactional features in "NT 6.x"'s NTFS, but I don't think they're the same thing. <small>&mdash;''The preceding [[Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by'' [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]&nbsp;&bull;&nbsp;[[Special:Contributions/Guy Harris|contribs]]) 08:57, 12 December 2005 (UTC{{{3|}}})</small><!--Inserted with Template:Unsigned2-->
 
So is "Transactional NTFS" really the same thing as "WinFS"? [http://msdn.microsoft.com/library/default.asp?url=/library/en-us/fileio/fs/portal.asp Microsoft's MSDN information on Transactional NTFS] seems to indicate that it's just a scheme to let applications construct transactions on NTFS; it "allows an application to group multiple operations on multiple files as a single unit—a transaction", so that "an application can then commit or roll back the entire group of changes as a single unit".
Line 393 ⟶ 44:
WinFS is not a file system in the vein of NTFS, HFS+, ext3, etc. The [[WinFS]] article has received a number of updates recently which should help clarify the difference. [[User:Warrens|Warrens]] 01:16, 14 January 2006 (UTC)
 
Transactional NTFS is not WinFS, it is a mode of operation of NTFS where an application can attach multiple file handles to a transaction object, then perform a series of operations, and NTFS will guarantee either they all commit, or none of them complete. It provides full transactional integrity of both the filesystem metadata and user data involved. --[[User:Aaaaa0|Aaaaa0]] 13:45, 2 February 2007 (UTC)
== "Rich file-type meta-data" ==
 
How is that defined?
 
At least in FreeBSD, UFS1 and UFS2 support extended attributes as short named data items; I think at least some Linux file systems do so as well. How does that differ from what HPFS, for example, offers? Perhaps no ''desktop environments'' on FreeBSD or Linux ''use'' extended attributes for that purpose, but that's not a file system issue. Should "Rich file-type meta-data" be called just "extended attributes", perhaps with a footnote explaining what that means? [[User:Guy Harris|Guy Harris]] 08:10, 29 December 2005 (UTC)
 
::I think so, yes --[[User:80.98.38.69|80.98.38.69]] 12:50, 6 January 2006 (UTC)
 
== UNIX "FS" file system ==
 
To what does the item for "FS" refer? The file system that was used in [[Version 6 Unix]], and possibly some earlier versions (I don't know how far that file system goes back)? The file system that was used in [[Version 7 Unix]], which came out in 1979, and which was different from the V6 file system (it added triple indirect blocks, for example, to allow larger files), and which was the basis of the file system used in 4BSD up to 4.1BSD (with a 1024-byte block size and some other small tweaks; 4.2BSD introduced FFS) and System V (which I think also went to a 1024-byte block size)? [[User:Guy Harris|Guy Harris]] 08:22, 29 December 2005 (UTC)
:The 'FS' filesystem in unix was the first unix filesystem. The 'FS' stands for (surprise!) '''F'''ile '''S'''ystem. --[[User:Ssd|ssd]] 14:44, 6 January 2006 (UTC)
 
::Note that "the first unix filesystem" wasn't the file system in V7 or SIII or SV - there was a significant change between the earlier file systems and the one in V7, the latter being the one on which the SV file system is based. [[User:Guy Harris|Guy Harris]] 21:03, 6 January 2006 (UTC)
 
== Anti-SCO sentiment yielding incomplete article ==
 
I don't see mention of HTFS. Any reason?
 
:Is that the HTFS from Crosstor, formerly Programmed Logic? If so, I'm not sure how the absence of it would be due to "anti-SCO sentiment", given that it wasn't developed by SCO; the people who formed Programmed Logic left AT&T long before SCO bought the rights to UNIX.
 
:Perhaps nobody who knew enough about HTFS to contribute to the article was aware of it? I've seen no evidence that the absence of HTFS information is due to "anti-SCO sentiment"; do ''you'' have any evidence that it is?
 
:If you know enough about HTFS to contribute, you can make the article more complete.... (It still won't be "complete", as there are probably plenty of other file systems that aren't listed.) [[User:Guy Harris|Guy Harris]] 18:27, 3 January 2006 (UTC)
 
::Thanks for the clarification on the history of it. I'll add it what I can to at least get it on the map.
 
== Tail packing vs Block suballocation ==
 
How is tail packing different from block suballocation? I presume that block suballocation splits a block into even-sized sub-blocks, whereas ReiserFS's tail-packing packs fragments contiguously? --[[User:MartinRudat|Martin Rudat]]([[User talk:MartinRudat|T]]|[[Special:Emailuser/MartinRudat|@]]|[[Special:Contributions/MartinRudat|C]]) 09:36, 18 February 2006 (UTC)
 
== Transactional Reiser4 ==
:Yes, that's how I understood it. However, technically tail packing can be seen as a special case of block suballocation where the suballocation block sizes are always 1 byte long. Does anyone else think that tail packed filesystems should also have a {{tl|yes}} on block suballocation? -- [[User:Intgr|intgr]] 14:29, 26 September 2006 (UTC)
AFAIK Reiser4 have full transaction support (not only modifacition to single file, but also multiple files, directories, all operations, read,write,modify,create/delete,move, metadata changes are spanned by transaction). Currently there is no direct API available for this, do to the lack of VFS infrastructure. But it supports it, and have been working very well. <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/91.213.255.7|91.213.255.7]] ([[User talk:91.213.255.7|talk]]) 19:38, 27 June 2010 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
 
== folder vs. directory vs. sub-directory ==
::I'll create a new footnote for that; anyone who objects, feel free to revert it after responding here. -- [[User:Intgr|intgr]] 14:33, 26 September 2006 (UTC)
Readers need to understand that these three terms all refer to the same thing. *** I was surprised to see the term "folder" specifically mentioned in relation to Windows -- I thought it was more of a Mac thing originally? [[User:69.87.200.105|69.87.200.105]] 14:25, 22 January 2007 (UTC)
 
== Metadata chartFacilities ==
 
The example given "interprocess pipes in Unix have to be implemented outside of the file system because the pipes concept does not offer truncation from the beginning of files.", seems a bit specious, since file-system FIFO pipes ARE present in Unix. It would make more sense here to give a functional reason (with references), probably one or more of omitting such symmetry in service to performance, faster implementation, or some other constraint. Certainly both prepending and arbitrary insertion CAN be implemented in a filesystem keeping tracks of data blocks by, say, doubly-linked lists. The problem is that read speed would be terrible after a while with the read head having to run all over the disk drive to find the scattered blocks. Etc. <small>—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:Siodhe|Siodhe]] ([[User talk:Siodhe|talk]] • [[Special:Contributions/Siodhe|contribs]]) 16:58, 11 March 2008 (UTC)</small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
Just wanted to point out that 'ECC' for the column checksum/[[ECC]] goes only to a disambiguation page. <small>&mdash;''The preceding [[Wikipedia:Sign your posts on talk pages|unsigned]] comment was added by'' [[User:Deeahbz|Deeahbz]] ([[User talk:Deeahbz|talk]]&nbsp;&bull;&nbsp;[[Special:Contributions/Deeahbz|contribs]]) 11:43, 5 March 2006 (UTC{{{3|}}})</small><!--Inserted with Template:Unsigned2-->
 
== move Plan 9 ==
:Just wanted to point out that, as the "Wiki" in "Wikipedia" suggests, you can fix problems such as that yourself, as I just did for the ECC problem (see that for an example of how to go past a disambiguation page). :-) [[User:Guy Harris|Guy Harris]] 20:09, 5 March 2006 (UTC)
I am impressed with the article, at first sight -- but the Plan 9 material seems excessive, in context; seems like it should move to its own article, and be briefly summarized here. [[User:69.87.200.105|69.87.200.105]] 14:25, 22 January 2007 (UTC)
 
== article Talk redirect confusion ==
== FATX ==
There are two separate articles, [[File system]] and [[Comparison of file systems]], but the talk for Comparison redirects here! Very confusing!! I don't think it is good, but if the two articles are going to be so joined at the hip, they each need to say so at the top and the bottom of each, and the combined talk page needs to clearly explain what is going on, at the top and the bottom. [[User:69.87.203.23|69.87.203.23]] 23:48, 22 January 2007 (UTC)
 
:'''Split''': this has confused me, too. Someone ought to archive and/or split this page, and remove the redirect from [[Talk:Comparison of file systems]]. Even though the articles are related, they are still separate articles and ought to be discussed separately. -- [[User:Intgr|intgr]] 14:58, 23 January 2007 (UTC)
For completeness, have started adding the FATX filesystem, as used in the Xbox and Xbox 360. Info on this filesystem appears to be sketchy, but sites such as [http://www.free60.org/wiki/Main_Page http://www.free60.org/wiki/Main_Page] are proving useful. --[[User:Oscarthecat|<font style="background: #000000" face="Ariel" color="#FFFFFF">Oscar</font><font style="background: #ffffff" face="Ariel" color="#000000">The</font><font style="background: #000000" face="Ariel" color="#FFFFFF">Cat</font>]]<sup><font style="background: #0000" face="Ariel" color="#00AA00">[[User_talk:Oscarthecat|talk]]</font></sup>[[Image:Flag of the United Kingdom.svg|25px|<nowiki></nowiki>]] 22:38, 7 March 2006 (UTC)
 
::What happened (which you apparently were not around for) was that the [[File system]] and [[Comparison of file systems]] articles were briefly merged around the middle of 2006, and then hastily unmerged when this turned out to be a controversial idea. However, because of the way the merge was done, the history of [[Talk:Comparison of file systems]] was lost, and the rediret pointing to [[Talk:File system]] was never undone. I think this mess requires an admin's attention to untangle. [[User:121a0012|121a0012]] 03:12, 10 February 2007 (UTC)
== GPFS is missing ==
 
'''I have split the page now''', as there have been no disagreements for two months, and this has only been causing confusion. See [[Talk:Comparison of file systems]]. -- [[User:Intgr|intgr]] 11:35, 29 March 2007 (UTC)
IBM [http://www-03.ibm.com/servers/eserver/clusters/software/gpfs.html GPFS] filesystem is missing in this chart. Would anybody like to add it? Thanks. [[User:69.225.127.198|69.225.127.198]] 01:25, 15 March 2006 (UTC)
 
正确的如上! <span style="font-size: smaller;" class="autosigned">—Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/221.182.46.36|221.182.46.36]] ([[User talk:221.182.46.36|talk]]) 02:41, 13 September 2009 (UTC)</span><!-- Template:UnsignedIP --> <!--Autosigned by SineBot-->
:Would ''you'' like to add it? :-) That is, after all, what the "Wiki" in "Wikipedia" suggests.... [[User:Guy Harris|Guy Harris]] 01:40, 15 March 2006 (UTC)
 
== <nowiki>{{editprotected}}</nowiki> request ==
== HFS+ specifics ==
 
{{tl|editprotected}}
I took the liberty to make a few corrections to the HFS+ entries in recent days.
I think, that phrase
"The <tt>/mnt</tt> directory exists on many Unix-like systems (as specified in the [[Filesystem Hierarchy Standard]]) and is intended specifically for use as a mount point for temporary media like floppy disks or [[Compact disc|CD]]s."
better say as
"The <tt>/mnt</tt> directory exists on many Unix-like systems (as specified in the [[Filesystem Hierarchy Standard]]) and is intended specifically for use as a temporary mount point."
 
FHS directly said (http://www.pathname.com/fhs/pub/fhs-2.3.html#MNTMOUNTPOINTFORATEMPORARILYMOUNT), that /mnt is a point for temporary mounts. But mount point for temporary media is /media (http://www.pathname.com/fhs/pub/fhs-2.3.html#MEDIAMOUNTPOINT).
I have been writing file systems for the Mac and also wrote the HFS+ generation code for Toast (a popular CD recording software on the Mac), so I have quite a good general understanding, but may still be wrong in some details because I am easily getting confused :^P
 
P.S. Sorry for my poor English, I'm not a native speaker.
A few things I "corrected":
:I've removed protection. Cheers. --[[User:MZMcBride|MZMcBride]] 23:07, 9 June 2007 (UTC)
* Mac names may actually contain NUL characters. Since the Mac uses "Pascal" strings, i.e. those with a length byte/word in front, any char can be stored in such a string. And at least on old Mac OS systems (up to 9.2.2) this actually occured in some cases (I've seen it). However, it _seems_ that OS X is now blocking such names, i.e. does not let you create them any more, but I am not 100% sure on this. But the volume format still allows them.
* Depending on the API you use on the Mac, there is no limit to the length of paths. That's because the Mac specific "Carbon" API does not use strings to specify an entire path, but instead a combination of a directory node ID and a file name. The node ID is a 32 unique bit value, identifying a file or folder on the volume, and then there's the file name, which is up to 255 unicode chars long. That way, you can create endlessly deep paths.
[[User:Tempel|Tempel]] 23:22, 16 March 2006 (UTC)
 
== History section?! ==
:A couple of comments:
 
Is there somebody knowledgeable && enthusiastic enough to add a good history section? <br>
:*The API that's ultimately used for *all* file access in OS X is the UN*X API (Carbon runs atop that), so:
[[User:217.236.209.212|217.236.209.212]] 20:57, 27 June 2007 (UTC)
:I was actually going to request the same thing. -- [[User:Beland|Beland]] 22:19, 8 October 2007 (UTC)
::Me too! File systems have emerged and inspired each other instead of popping out of the nowhere. And there are people behind it. -- [[User:JakobVoss|JakobVoss]] ([[User talk:JakobVoss|talk]]) 21:48, 23 March 2010 (UTC)
 
== Definition ==
::#file names are components of path names, and path names are NUL-terminated (UTF-8) strings, so NUL characters are ''not'' allowed in file names;
I have a problem with the reference to hierarchical organisation in the ''formal'' defintion: "More formally, a file system is a set of abstract data types that are implemented for the storage, hierarchical organization..." While most file systems employ tree-like organisation I don't see why file systems are ''formally defined'' to not be able to use other methods. --The Extremist <nowiki>[</nowiki>[[User:The Extremist|User]], [[User_talk:The Extremist|Talk]]<nowiki>]</nowiki> 08:17, 12 September 2007 (UTC)
::#all file references are ultimately pathname references, but are relative to the current directory (or to a <tt>/.volfs</tt> directory hack, perhaps, on file systems that support volfs), so (as is the case with, I suspect, most other UN*Xes) you can, in theory, create arbitrarily long pathnames with the appropriate combination of <tt>chdir()</tt> and <tt>mkdir()</tt>.
:Seems that definition is still like that. I really have to propose it be removed or re-written. I don't agree with the words "special purpose" or the hierarchical part. And I'm also a little bit against including navigation in that list too (that's sort of more an OS presentation thing). [[User:Supertin|Supertin]] ([[User talk:Supertin|talk]]) 10:41, 18 July 2008 (UTC)
 
== NTFS/FAT table ==
:*The file change logging mechanisms in Tiger is done entirely above the VFS layer, so it's not done by the HFS+ code (that code doesn't even know it's being done), and it's present for all file systems.
The table at the bottom of the page showing NTFS and FAT filesytem limits, etc is not accurate.
* There are multiple versions of NTFS, and it's been around a lot longer than since 2000.
* FAT16 is missing.
* NTFS is listed as being readable only by Windows but writable by Linux and OSX aswell... In fact the 2 rows should probably be merged into "supported OSes" (with a "*" note for readonly support if required).
[[User:Supertin|Supertin]] ([[User talk:Supertin|talk]]) 01:03, 24 January 2008 (UTC)
 
== Crash Counting Merge ==
::Perhaps the "file change logging" column on this page should be used only when there's an on-disk log of that sort, so that it's (in part or in whole) a characteristic of the file system rather than of the OS's file access API. [[User:Guy Harris|Guy Harris]] 00:29, 17 March 2006 (UTC)
The crash counting merge tag on this article has been there forever. Why doesn't an administrator go ahead and do the merge already? Just how long is this process supposed to take?
[[User:Public Menace|Public Menace]] ([[User talk:Public Menace|talk]]) 19:23, 26 January 2008 (UTC)
 
It seems like the table entry for "case-sensitivity" should really be "partial"; according to the Darwin source code, the only difference between a case-sensitive and a case-preserving HFS system is that a flag is set (google for HFS_CASE_SENSITIVE to find the exact definition).
 
IMHO this (File system) article is already difficult to navigate and understand (it's a complicated topic).
== JFS2 --> JFS ==
 
Crash counting is a technique used to preserve file system consistency not a file system .
Why does JFS2 wikilink to JFS? If there is not a good reason, I will create the redlink. -- [[User:Unixguy|Unixguy]] 18:59, 23 March 2006 (UTC)
 
The article on the SPAD is mostly a reference to a PDF (very unsuitable for reading online)
== order ==
 
I would think that adding it to [[List_of_file_systems]] would be more appropriate, I will do that.
Though I would cringe to do the work, these filesystems should probably be listed alphabetically rather than chronologically. [[User:65.94.60.61|65.94.60.61]] 07:16, 27 March 2006 (UTC)
:Nah, I prefer chronological. It makes more sense to see the progression of ideas. CTRL-F works well to find things alphabetically. [[User:Morcheeba|Morcheeba]] 20:21, 26 April 2006 (UTC)
 
[[User:DGerman|DGerman]] ([[User talk:DGerman|talk]]) 23:07, 6 February 2008 (UTC)
== Transparent encryption is an allocation and layout policy issue? ==
Compression, ''maybe'', but not encryption. An indication of whether the file system supports encryption might be useful, but it doesn't belong in that particular table. [[User:Guy Harris|Guy Harris]] 03:07, 28 April 2006 (UTC)
:I've made a '''bold''' edit and removed that new column. Suggest we discuss here whether it's worth featuring, and if we decide it's worth having, we only then add it when we can have less "dunno" answers in the column. --[[User:Oscarthecat|<b>Oscarthecat</b>]][[Image:Flag of the United Kingdom.svg|25px|]] 06:21, 28 April 2006 (UTC)
 
Since crash counting is not covered anywhere I can find, and certainly not here, I removed the redirect to here and restored the crash counting stub. --[[User:Treekids|Treekids]] ([[User talk:Treekids|talk]]) 21:17, 25 July 2011 (UTC)
== Missing ==
 
== Filesystem = Specialized Database ==
At least two common and/or important filesystems are missing from the list: Irix [[EFS (IRIX)|EFS]] and the [[Minix]] filesystem. EFS, contrary to its own article, was the default filesystem in and beyond Irix 5.3. I ran an EFS filesystem for a long time on my Irix 6.2 machine, and that is the way that I received the machine. XFS was available but not commonly used, to my knowledge, for "smaller" filesystems.
 
There seems to be some confusion here about the relationship between file systems and databases. A file system is a database since it stores records (files) in a structured way. This is the definition of a database. I am not aware of anyone ever suggesting that a file system is not a specialized database, and there is no citation disputing this. It seems a little silly to say that Berkeley DB is a database and MySQL is a database but that somehow hierarchical access makes a file system lose its database credentials. On the other hand, the common use of "database" is a RDBMS, and neither Berkeley DB (which is a flat mapping of record keys to records) nor a file system qualifies. So saying that it is "debatable" whether to call a file system a "specialized database" is not correct at all, and calling a file system a database (without qualification) is a matter of convention and preference, not a real debate.[[Special:Contributions/169.229.200.176|169.229.200.176]] ([[User talk:169.229.200.176|talk]]) 19:51, 9 June 2008 (UTC)
As to the Minix filesystem, its importance comes not only from the Minix operating system but also from its use in early versions of Linux, before such novelties as ext2fs were invented.
 
:What ''database'' and ''file system'' are are words. They are abstractions. What kind of abstraction they are, how they got there, is the purpose of the article. Using one to describe the other is possible in simile. All writing is debatable, and improvable. The bigger the article, the more improvement room it has. [http://www.atm.damtp.cam.ac.uk/mcintyre/lucidity-in-brief/ Lucidity] is the drum beat of a concept with various orchestral instruments. If I want to profess ''file system'', one of the instruments is ''database'', another is the phrase "sequence of bytes". The history of file systems can best describe a file system: A file system is a reel of magnetic tape. The more we write, the more ways we sayit, the more things begin to make sense, and the more the path to rebuilding becomes clear. &mdash; [[User:Cpiral|<span style="color:#00C000;">Cp</span><span style="color:#80C000;">i</span><span style="color:#C08000;">r</span><span style="color:#C00000;">al</span>]][[User talk:Cpiral|<u style="color:#2820F0;">Cpiral</u>]] 06:50, 14 December 2009 (UTC)
Someone with more time and knowledge than I have might want to add these. :) [[User:Iamtheari|Ari]] 17:38, 1 May 2006 (UTC)
 
== Removal of material copied from Microsoft's knowledgebase ==
== Block suballocation? ==
 
I just removed content copied by {{user|70.124.61.67}} back in April from [http://support.microsoft.com/kb/100108 this KB article]. I came across the funny formatting in the [[File system#File systems under Microsoft Windows|'File systems under Microsoft Windows' section]] so I checked through the history and found this anonymous editor's contributions. A quick Google search found the KB article, from which most of the text had been copied.
I filled in a few blank boxes for ZFS. I think I guessed correctly what was meant by "tail packing". If someone explains what they meant by "block suballocation" I'll figure out whether ZFS uses it. --[[User:Sommerfeld|Sommerfeld]] 19:54, 1 May 2006 (UTC)
 
Why did no-one notice this [[WP:COPYVIO|copyright violation]]? Always be suspicious of edits adding large chunks of well-written text, especially if it's coming from an anon or new user. The use of HTML formatting tags is also a good indicator. All it takes is to copy a sentence or two into Google Search to find the source. --[[User:Imroy|Imroy]] ([[User talk:Imroy|talk]]) 17:54, 3 July 2008 (UTC)
== Apple I, Apple II, IIe, II+, III, IIgs, etc... ==
 
== Generic name for 'file allocation table'? ==
Is there any documentation on the more common files systems used for the pre-Macintosh Apple file systems? E.g., filesystems for [[Apple DOS]] or [[ProDOS]]? <small>&mdash;[[User:204.42.21.95|204.42.21.95]] 20:58, 1 May 2006 (UTC)</small>
 
Is there no generic name for systems of allocating the different parts of a file? The article speaks of "a file allocation table of some sort, such as the FAT in a DOS file system, or an inode in a Unix-like file system". And in other sources I have also found references to "''a'' file allocation table". Which suggests that there are several, not just FAT. Is that true? And if so, what is the generic name? [[User:DirkvdM|DirkvdM]] ([[User talk:DirkvdM|talk]]) 08:02, 2 August 2008 (UTC)
:Inside Apple DOS and Inside Apple ProDOS books. I think there is also an "inside apple pascal" but I'm not sure about it.
:Please sign your comments.
:&mdash;[[User:Claunia|Claunia]] 23:23, 1 May 2006 (UTC)
 
<!-- indented your post for easier reading -->
::I assume you have read these two books and so actually know they contain information on the file systems. Or were you just being snarky? If not, care to elaborate on where online I can find this documentation? <small>&mdash;[[User:204.42.25.149|204.42.25.149]] 03:07, 2 May 2006 (UTC)</small>
:You are correct. FAT (1977) is Microsoft's version of an older and more generic filesystem structure called a block map, or much more commonly, block bitmap. The [[RT-11]] filesystem (1970) was such a filesystem. So was the [[CP/M]] filesystem (1974). Block bitmapping is a type of filesystem where there is a data structure on the disc that is an index to all the blocks on the disc. Each block (or cluster) is marked used (or allocated), or not, to keep the data from being overwritten. A computer science lecture note from UCLA uses "block bitmap" [http://read.cs.ucla.edu/111/2006fall/notes/lec14]. BTW, FAT is really an filesystem architecture, with a family of filesystems: FAT12, FAT16, FAT32, (and now) FAT64. Although FAT12 was originally called simply FAT, before the increased size of discs required extending the FAT architecture. One major difference between RT-11 and FAT filesystems is that under RT-11, file allocation had to be one contiguous allocation of blocks, while FAT can have noncontiguous block allocations, since it uses a linked list of allocated blocks. Both tend to lead to disc fragmentation. Also, it has been said that FAT was conceptually based on RT-11. The more one digs into inventions, the more often one finds out that "new inventions" are mostly built on previous ones. — [[User:Becksguy|Becksguy]] ([[User talk:Becksguy|talk]]) 12:40, 2 August 2008 (UTC)
 
::You mean to say I am correct in assuming that file allocation table is the generic term? Or is it [[block map]] or [[block bitmap]]? Neither has an article, and the closest I can find is [[Block allocation map]], which says next to nothing and then refers to file allocation table. This article has a lot of general info that should be in a more general article. But the question remains then what the general article should be called. Block allocation map seems a bit archaic (is it?). And it's also incorrect, because what a file system does is allocate files (which is why it is called a ''file'' system :) ), right? Since the most used generic term that I have come across is 'file allocation article', this should become the generic article. Unless Microsoft came up with the name 'file allocation table', in which case there is a conflict between custom and historical accuracy. But if this becomes the generic article, then what should the microsoft-version be called? [[msFAT]]? [[FAT (Windows)]]? [[User:DirkvdM|DirkvdM]] ([[User talk:DirkvdM|talk]]) 18:16, 4 August 2008 (UTC)
:::I've read one and have both books. Search google, there is PDF and Amazon versions I think.
:::&mdash;[[User:Claunia|Claunia]] 12:09, 2 May 2006 (UTC)
 
:::::The article on [[Block allocation map|BAM]] has been updated with a link to [[Commodore DOS]]. It no longer just leaves you asking for more, and with no more to give you, sends you back to FAT. By the way, the sector size on the [[Commodore 4040|PET 4040]], [[Commodore 1540|CBM 1540/1541]] and [[Commodore 1571|CBM 1571]], has nothing to do with the BAM like it does on a PC drive using a FAT. It is not possible to locate old files using a BAM, as the only reason to use the BAM, is to find a place where there is not ''yet'' a file. Paradoxically, the BAM was also used quite frequently as a repository for storing executable code. [[User:Dexter Nextnumber|Dexter Nextnumber]] ([[User talk:Dexter Nextnumber|talk]]) 21:46, 7 December 2009 (UTC)
==Filesystems Under Microsoft Windows==
 
:::As far as I can tell, "file allocation table" can't be the generic term simply because file system data structures vary a lot; most modern file systems don't use a table for keeping track of block pointers. "Block map" sounds more accurate, but it doesn't convey the meaning well. -- [[user:intgr|intgr]]&nbsp;<small>[[user talk:intgr|[talk]]]</small> 20:31, 4 August 2008 (UTC)
This section really needs to be cleaned up and checked. I made a few edits and clarifications but it still needs work. Article seems to assert Windows (in general) only uses FAT32 and NTFS, and derived those from FAT and HPFS. Obviously this is not true. We should also mention FAT12. [[User:Dsav|Dsav]] 04:54, 28 Apr 2005 (UTC)
 
::::"file allocation table" is a generic term, it is not a filesystem!! this MUST be fixed. Read Operating System Concepts - Avi Silberschatz, Peter Baer Galvin, Greg Gagne - John Wiley & Sons, Inc. {{ISBN|0-471-69466-5}}--[[User:Jperelli|Jperelli]] ([[User talk:Jperelli|talk]]) 23:39, 2 July 2009 (UTC)
I believe someone should add a section for Windows CE and its supported filesystems. [[User:Tfgbd|Tfgbd]] 21:32, 2 June 2006 (UTC)
 
:A FAT is a type of directory. It allocates files in their entirety. If the file is fragmented or not, the directory scheme points to the first fragment. It is up to the first fragment to point to the second fragment, and so on. A directory is a computer science "structure" known in C programming as "struct". Unix directories use an inode struct, and DOS directories uses a FAT structure. A directory is a file itself, located near the boot block and other system areas "at the beginning". [[Special:Contributions/97.126.30.185|97.126.30.185]] ([[User talk:97.126.30.185|talk]]) 16:13, 16 December 2009 (UTC)
==Types of file systems==
 
::Each of your statements is wrong in some context. A FAT is ''not'' a directory, it is a table of blocks allocated somewhere on the device. A directory is ''not'' a C struct, it is a collection of directory entries (files and possibly subdirectories). Unix directories contain i-node numbers within their ''entries''. A FAT "structure" is ''not'' a C struct. A directory ''may or may not'' be a file itself, depending on the OS; in Windows and recent Unixes, they are not. Where a directory (or FAT) is located on the device is extremely device-dependent; some directory schemes spread file block allocation maps across the device space, while others keep it (and sometimes a duplicate copy) located in a reserved area, which could be on the inner tracks or in the center of a disc surface. Devices such as flash drives don't even have surfaces, so how do you describe where the block map is kept in relation to the rest of its memory space? — [[User:Loadmaster|Loadmaster]] ([[User talk:Loadmaster|talk]]) 23:00, 16 December 2009 (UTC)
The article was made inconsistent with the addition of Database file systems as a separate type.--[[User:Chealer|Chealer]] 19:01, 2005 Feb 20 (UTC)
 
:"File Allocation Table" (FAT) refers to a particular data structure used at the heart of a family of filesystems developed by Microsoft. This family contains FAT12, FAT16, FAT32, and FAT64. The File Allocation Table is a list of elements with each element in the list representing the state of each block on the storage media. (Strictly each element represents a "cluster" which is a fixed size block of contiguous space in the partition.) Conceptually this list is similar to a bit array, but each block can be in more than two potential states. The File Allocation Table can accurately be described as a map since each element in the list has a direct correspondence with a single data storage block on the media. In the FAT family of file systems the File Allocation Tables for the filesystem are stored on the storage media in central ___location near the start of the usable storage area. {Thanks to [[User:121a0012|121a0012]] for pointing out a misleading statement in an earlier version of this comment.}
:No- database filesystems are fundamentally different from folder-based or hierarchial filesystems- database filesystems are constructed on metadata searching and constructed on the fly. This is very different from a logical tree mapped to sectors on a disk. --[[User:marudubshinki | Maru Dubshinki]] 07:18 PM Monday, 07 March 2005
::Actually, it's a [[linked list]]: it not only shows which blocks are allocated and which are free, but also the address of the next allocated block. A directory is simply a file that gives attributes of a bunch of files -- one of which is the address of the first block. The FAT is used to find the remaining blocks (if any). [[User:121a0012|121a0012]] ([[User talk:121a0012|talk]]) 01:56, 1 April 2011 (UTC)
:In contrast, an inode is an alternative approach to designing a filesystem. In filesystems based on inode data structures a "root" inode is stored at a defined ___location on the storage media. As directories and files are added to the media new inodes structures are allocated to these directories and files as needed. Data pointers (or references) are updated in the existing inodes to integrate the new inodes into the existing filesystem tree.
 
:A key difference between the family of FAT filesystems and inode-based filesystems is that an inode-based filesystem distributes the filesystem index across a wide area of the storage media. In contrast, a FAT filesystem uses a central area to store the index for the filesystem.
==HFS==
 
:A possible "generic term" for FAT filesystems and similarly designed filesystems might be "Centralized Index Filesystem" or "Table-Indexed Filesystem" if the generic term is being used to classify filesystems based on the key data structures used in their implementation. &mdash; [[User:Mrichmon|Mrichmon]] ([[User talk:Mrichmon|talk]]) 00:41, 1 April 2011 (UTC)
Is HFS also used on Mac OSX? It only says Mac OS, but this is vague -- the term sometimes excludes versions prior to X but could apply to both. Could someone clarify? [[User:TUF-KAT|Tuf-Kat]] 00:59 Apr 1, 2003 (UTC)
 
== Unused Blocks ==
: Currently, [[Mac OS X]] uses HFS+J ''(Hierarchical [[File-System]] Plus Journaling).'' All [[file-system]]s are [[case-preserving]] and [[case-insensitive]] ''(one can capitalize any way one wants, but one can not have two files in the same folder with the same name differing by capitalization and searches are [[case-insensitive]]).''
 
It states:
# Firstly came [[MFS]] ''([[MacIntosh]]-[[File-System]]).'' [[MFS]] was a flat ''(no folders)'' [[16-bit]] [[File-System]].
Erasing blocks: Flash memory blocks have to be explicitly erased before they can be written to. The time taken to erase blocks can be significant, thus it is beneficial to erase unused blocks while the device is idle.
# Then came [[Hierarchical File System|HFS]] ''(Hierarchical [[File-System]]).'' [[Hierarchical File System|HFS]] was a [[16-bit]] file-system with [[b-tree]]s for creating folders. [[Hierarchical File System|HFS]] could only handle 64 kilofiles. and if the with large [[file-system]]s, [[Hierarchical File System|HFS]] wasted disk-space. HFS could only have files up to 64 kilobytes.
# HFS+ ''(Hierarchical [[File-System]] Extended)'' is a [[32-bit]] version of [[Hierarchical File System|HFS]]. It can handle up to 4 gigafiles. It can handle files up to 4 gigabytes. The native [[file-system]] of the first three versions of [[Mac OS X]] was HFS+.
# Starting in [[Mac OS X]] [[version 10.2.2]], one could added a journal-file to the [[file-system]]. This journal-file contains a [[backup]] of [[metadata]] which prevents corruption of the [[file-system]]. Starting in [[Mac OS X]] [[version]] 10.3.0, HSF+J became the default [[file-system]] of [[Mac OS X]].
 
However, this would simply deminish the life of the cells. The flash memory has its own wear levelling, typically, and therefore writes to unused cells before going back to previously written ones. ALSO, the controller is smart enough to check to see if the data in the cell is the same as the data being copied, and if it requires, will erase and rewrite. With MLC, 2 bits are stored per cell. So if the stored data is 01 (or 10), it can modify it to 11 without erasing, which would decrease the life of the cell. If, however the data stored is currently 01, and 10 needs to be written to the cell, the entire cell would need to be erased and rewritten (taking extra time)
:HFS+J is identical to HFS+ with an extra file, thus backwards compatible for [[Mac OS]] [[version]] 9. When [[Mac OS X]] will die, :[http://Apple.Com/ Apple.Com ] will release a new [[file-system]]. [http://Apple.Com/ Apple.Com ] is tight-lipped about the new [[file-system]], but the :rumor is that the new [[file-system]] will be a [[128-bit]] journaling [[RAID]]-based [[case-preserving]] [[case-insensitive]] [[metadata]]-rich :[[file-system]]. This is just a rumor, and rumors are a dime a dozen. --[[User:Walabio|&#364;alabio]] 05:22, 2004 Dec 4 (UTC)
 
== The first sentence ==
::Post Scriptum:
 
The first sentence reads: "In [[computing]], a '''file system''' (often also written as '''filesystem''') is a method for [[store|storing]] and [[organize|organizing]] [[computer file]]s and the data they contain to make it easy to find and access them."
::I forgot to mention these because [[MacIntosh]]-[[User]]s take these for granted, but:
 
I think this definition is circular. Isn't it the file system that creates the concept of files in the first place? A storage device is, after all, just a big ol' collection of bits (yeah, yeah, blocks and sectors, but you get my point). The file system is what organizes the disk into files. Without a file system, we programmers would have to bit-twiddle on the drive itself (actually, that sounds kind of fun).
::* The user has complete control of the [[name]]s of [[file]]s because [[filetype]] is in [[metadata]] stored with the [[file]]s ''' -- not in an extension of the name. '''
:::* Unfortunately, this is no longer true. [[User:134.53.120.213|134.53.120.213]] 18:22, 1 March 2006 (UTC)
::::* Don't get confused. Mac OS X uses extension to maintain compatibility with other OSes, but you can change the metadata of the file so it has other application linked (for example files without extension are by default UNIX applications, but you can open old documents and applications without extensions -like Filemaker, Word, QuickTime- and they aren't treated as UNIX apps). &mdash;[[User:Claunia|Claunia]] 22:50, 1 March 2006 (UTC)
::* In addition to [[hard link]]s and [[symbolic link]]s, one also has [[Aliasing (computing)|aliases]] which contain the file-ID# and its path and name. Because these ::filesystemlinks can find the file, even if one moves and renames the file. If one deletes and replaces a file, the [[Aliasing (computing)|alias]] can find the replacement file ::because the alias has path and filename in it. Aliases are so useful that over 90% of all filesystemlinks are [[Alias (Mac OS)|aliases]] on [[MacIntosh]]es. ::[[Alias (Mac OS)|Aliases]] arrived with [[Hierarchical File System|HFS]].
::* One can [[name]] [[file]]s using [[Unicode]]. A [[filename]] can have up to 255-[[UTF-8]] [[octet]]s in the [[name]].
--[[User:Walabio|&#364;alabio]] 05:08, 2004 Dec 24 (UTC)
 
I propose the following instead: "In [[computing]], a '''file system''' (or '''filesystem''') is a method for [[organize|organizing]] blocks of related [[binary]] data into abstractions called [[computer file|files]], for the purpose of making it more accessible and usable." [[User:Mbarbier|Mbarbier]] ([[User talk:Mbarbier|talk]]) 19:41, 10 June 2009 (UTC)
:::Seems that people got confused here. For the question, yes, OS X uses both HFS and HFS+, just it requires booting from HFS+ or UFS. [[User:Claunia|Claunia]] 14:11, 7 October 2005 (UTC)
 
I disagree. It should read "In [[computing]], a '''file system''' (or '''filesystem''') is a software system designed to organize data in [[computer]] storage drives to be accessed, saved, and stored on a computer's [[operating system]] more efficiently. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.117|174.141.208.117]] ([[User talk:174.141.208.117|talk]]) 21:01, 9 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
== On keeping or removing the folder image (status: removed)==
 
== Prospero (file system) ==
Filing systems contain folders, and on many systems fses are presented as folders themselves. "Nothing to do with FS" is a bit harsh. If you have schematics and such for fses, please bring those images in.
Cases where an fs is represented with the above icon:
* Unix GUIs
** [[konqueror]] on [[KDE]] 3.x uses this precice icon in [[Filesystem Hierarchy Standard|/mnt]]. (that's where I copied it from, so deal)
* [[RISC OS]] uses a similar icon for:
** [[SparkFS]] folders
** [[ResourceFS]]
 
I have added all the content (such as it is) from [[Prospero (file system)]] per the Merge consensus close at [[Wikipedia:Articles for deletion/Prospero (file system)]]. There are academic cites (including [http://portal.acm.org/citation.cfm?id=1287076], and [http://citeseerx.ist.psu.edu/viewdoc/summary?doi=10.1.1.55.3658]) for this filesystem, but I wanted to get this merged first so as to redirect the source article per the merge closure and thus complete that process. I will be citing and revising this content shortly. — [[User:Becksguy|Becksguy]] ([[User talk:Becksguy|talk]]) 07:44, 11 July 2009 (UTC)
Please explain why you keep reverting it out? --[[User:Kim Bruning|Kim Bruning]] 10:23, 4 Apr 2004 (UTC)
 
== Structure of this article ==
:A filesystem is an abstract structure of (most commonly) the magnetic polarity of sections on a disk. It has absolutely nothing to do with pictures of folders. I'm strongly considering removing it from [[Folder]] and [[Directory]] as well because it adds nothing to any of these articles, adds approximately 6kb to the page download, and it looks very ugly on 256 color displays.
I don't know why you put it in any of these articles to begin with. --[[User:Darrien|Darrien]] 11:00, 2004 Apr 4 (UTC)
 
I am plugging away at what I consider an improvement for the [[operating system]] article,
:: It is relevant to Folder and to Directory because a "Folder is the [[WIMP]] representation for a directory". I'm willing to bet that 99% of the world population that owns a computer will tell you that that little icon actually *is* a directory. (Whoops, no, but that's what they'll say). It's useful to remind people that they've come to the right place.
when I venture here while doing that work there, and I see this article has a similar need:
See the discussion at [[Talk:Operating_system#Devoting_an_entire_section_to_each_notable_OS]].
IMHO, [[prose]] product sections are magnets for vandalism, spam, [[WP:COI]] and the like.
and are best presented in a comparison table, while the prose contains lucid theory, with
products mentioned in a third tier, under practice, under concept, while giving examples of theory.
i.e IMHO, the article should be about file system terminology first, usage of that terminology
in as many ways as possible, as learned from how the field uses file system terminology.
Second it should use the terms in examples, as dictionaries do. But these examples are not
yet products, they are primarily the general practices, shared by products. Third, when necessary,
refer to products that are unique, so that the terminology gets a thorough representation of the field.
 
The [[wp:SIZERULE|size]] and the vandalism at ''Operating system'' got me started thinking this way.
::Yes and no to magnetic polarity of sections on a disk, it's actually 2 levels of abstraction higher already. First up you make a rough [[Hard disk drive partitioning|partitioning]] of the hard disk (1st level). Then when you're treating the magnetic polarities in such partitions as a bunch of 1's and 0's, how are you going to organise those 1's and 0's so you can find back what you put there?
The size of of this article is 36kb.
It will grow even bigger with the structure the way it is, with products as section titles.
BTW, the section titles of this article are not in agreement with [[WP:MOSHEAD]],
where it says "Section names should not explicitly refer to the subject of the article".
&mdash; [[User:Cpiral|<span style="color:#00C000;">Cp</span><span style="color:#80C000;">i</span><span style="color:#C08000;">r</span><span style="color:#C00000;">al</span>]][[User talk:Cpiral|<u style="color:#2820F0;">Cpiral</u>]] 09:18, 7 December 2009 (UTC)
 
== Tape Formatting and Tape Booting ==
::Well, that's where filing systems come in (2nd level). Or not. Originally people thought that virtual memory would be sufficient, and this kind of thinking even seems to be making a comeback ( http://www.prevayler.org/wiki.jsp ). Alternately, instead of a simple filing system, some people propose using a [[database]] instead. I believe that some mainframe operating systems already do this, but I'm not sure which ones at the moment. In any case a fellow by the name of Hans Reiser is advocating switching to a database style of dealing with information for current operating systems.
The "Tape Formatting" and the "Tape Booting" sections do not refer to File Systems.
 
The contents of the "Tape Formatting" section makes largely correct statements about data tape technologies. However, historically data tapes have not used any kind of file system. This section should be moved to the "Magnetic tape data storage" page
::: You mean the [[ReiserFS]], which is much like a database anyway, what with the b-trees and [[journalling]]? --[[User:marudubshinki | Maru Dubshinki]] 07:31 PM Monday, 07 March 2005
 
* Historically, data tapes have definitely used a file system including volume names, files names, volume metadata, file metadata in addition to the file's data.[[User:DGerman|DG12]] ([[User talk:DGerman|talk]]) 00:52, 22 May 2011 (UTC)
::So in any case, filing systems are virtual constructs already, are somewhat controversial even(!) and they are represented by the icon we're talking about. So let's use the darn icon. Sheesh!
 
Similarly, the "Tape Booting" section makes largely accurate statements about the ability for some systems to boot from tape and the some of the associated drawbacks. Booting these systems from tape does not involve use of any file system with the tape. Instead, booting from tape typically involves manually entering a boot loader or triggering a firmware boot loader. In either case, this boot loader reads raw data from tape and positions the data in main memory of the computer system. When the loading process is complete code execution is started from a well-defined address somewhere within the range of main memory that holds the data read from tape. This section should be moved to the "Magnetic tape data storage" page and/or to the "Boot Loader" page.
::Did I already mention that the picture of a folder is what a filing system looks like in a common GUI? Sames goes for directories? See: [[KDE]]. I actually went into the /usr/share/kde and grabbed exactly that image. (And '''no''' that's not a copyvio, before you try that track, the image is [[GNU General Public License|GPL]], which should be compatible with the [[GFDL]], or someone at [[GNU]] should be shot)
&mdash; [[User:Mrichmon|Mrichmon]] ([[User talk:Mrichmon|talk]]) 22:23, 31 March 2011 (UTC)
 
* I agree with Mrichmon regarding the removing of "tape booting" section and if no one else does I will try to remember to in a month.
::Your 6Kb and 256C arguments are entirely pointless, and I don't really intend to discuss those at all. Modern browsers allow you to "turn off images" when they're not working for you, and that even goes for [[lynx]] and [[links]].
[[User:DGerman|DG12]] ([[User talk:DGerman|talk]]) 00:52, 22 May 2011 (UTC)
 
== A recent concept for file management ==
::Sorry for making this a long rant rather than a short answer, but I'm kind of exasperated! --[[User:Kim Bruning|Kim Bruning]] 11:38, 4 Apr 2004 (UTC)
 
The [[File_system#Database_file_systems|Database file systems]] section starts with "A recent concept for file management is" and yet that section ends with an external link to a [[The Register]] article that was written in March 2002. That is over 9 years ago, which is a ''long'' time when it comes to computers, see for instance [[Timeline of computing 2000–2009|this timeline]]. --[[Special:Contributions/82.171.70.54|82.171.70.54]] ([[User talk:82.171.70.54|talk]]) 14:45, 2 June 2011 (UTC)
:::I'll be brief: Abstraction is abstraction, your database information is pointless,
:::I don't understand why you would advocate the murder of someone who made two licenses incompatible, my "6Kb and 256C" arguments are perfectly valid, and finally, lynx can't display images in the first place.
 
== conversion / convertfs ==
:::You don't strike me as a particularly rational person, not to mention uninformed. If you can't understand any of the points I've made, then I would advise you to call for arbitration. --[[User:Darrien|Darrien]] 12:17, 2004 Apr 4 (UTC)
 
I’ve written a section on the (im)possibility of (in-place) file system conversion in [http://en.wikipedia.org/w/index.php?title=File_system&oldid=434042388 this version]. It includes a mention of convertfs, a program for in-place conversion via sparse files. The linked technical description is of some interest – it’s a clever idea – but the program itself is very rough and has been unsupported for years, so I want to avoid promoting its use, hence only link to the homepage in a footnote, not in the article text, and include serious caveats. Hope you enjoy!
::::Well, that's what's called a personal attack. Sheesh! But I think arbitration might be overkill for this particular dispute.
:—Nils von Barth ([[User:Nbarth|nbarth]]) ([[User talk:Nbarth|talk]]) 12:02, 13 June 2011 (UTC)
 
::There are operating systems other than Linux. [[User:121a0012|121a0012]] ([[User talk:121a0012|talk]]) 06:54, 14 June 2011 (UTC)
::::Okay well, on abstraction I'm trying to point out that FS is at a different abstraction layer than you suggested at first.
 
:::The section also discusses in-place conversion in Windows. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 16:57, 14 June 2011 (UTC)
::::Your claim was that it worked directly on magnetic particles on a Hard Disk, and my claim is that it actually works on sets of bits that have been predivided into partitions.
 
==Please restrict this article==
::::It's an almost pedantic point, sure. The reason I made it anyway is that there is a rule that says that it is Good Design to keep abstraction layers strictly separated.
to general definitions as there are many articles detailing the specifics of individual file systems
:::: * This should give you a clue to where you might have a flaw in your thinking. (A rather large flaw, since your definition precludes ram drives and flash memory. )
[[User:DGerman|DG12]] ([[User talk:DGerman|talk]]) 01:41, 30 July 2011 (UTC)
:::: * Thinking about layers of abstraction might also give you a clue as to how a folder icon might be relevant here.
 
==Yes DGerman, file systems make data understandable by humans==
::::You just answered why 6Kb and 256C are irrelevant by yourself in the very same sentance where you claim they are relevant.
I disagree with DGerman's recent edits removing the material about filesystems being human readable. I am bringing the discussion here rather than start an edit war since he/she has strong opinions enough to do a sudden mass-rewrite.
 
Computers don't need filesystems and programs don't care about directory/file names. They can just as easily access data directly at the block/sector level, though that is unwieldy for the end-user / operator. [[User:DMahalko|DMahalko]] ([[User talk:DMahalko|talk]]) 03:22, 30 July 2011 (UTC)
::::<s>Basically, what I'm saying is that you haven't thought things through properly on a number of levels, and it's showing in your arguments.</s> Compared to that, I don't mind much what happens to a silly image. (But I'd prefer to keep it just the same :-) ) --[[User:Kim Bruning|Kim Bruning]] 12:40, 4 Apr 2004 (UTC)
 
==DGerman, do you know what a "sector" is?==
:::::I shouldn't make what might be seen as a personal attack just after blaming someone else for doing the same, so I've struck that part through. (can't simply delete because I'm in a dispute here :-( ) My apologies. --[[User:Kim Bruning|Kim Bruning]] 12:51, 4 Apr 2004 (UTC)
It looks like you have no idea what you are talking about [[User:DGerman]] about blocks being the smallest unit file systems can address. Lots of editing there that doesn't any sense. Looks like a revert is in order. [[User:DMahalko|DMahalko]] ([[User talk:DMahalko|talk]]) 03:31, 30 July 2011 (UTC)
 
:DMahalko, I know what a sector is but most filesystems use multiple sector blocks and then there are media which have filesystems and don't have sectors. That is the term sector is too specific a for this article. <small><span class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:DGerman|DGerman]] ([[User talk:DGerman|talk]] • [[Special:Contributions/DGerman|contribs]]) 00:49, 1 August 2011 (UTC)</span></small><!-- Template:Unsigned --> <!--Autosigned by SineBot-->
:Please tell me how calling you irrational for endorsing the murder of a person who makes two licenses incompatible is a personal attack. --[[User:Darrien|Darrien]]
 
::Well, in the BSD fast file system ("[[Unix File System]]" or "UFS") there are what are called "blocks" and what are called "fragments", with a "block" containing multiple fragments, and with the ''fragment'', not the block, being the file system's smallest addressable unit. One might consider file system implementations to know about :
:: We both know that he shouldn't *really* be shot. Sheesh! --[[User:Kim Bruning|Kim Bruning]]
 
::*[[Disk sector|sector]]s, which are the smallest addressable unit on a disk;
:::Then why did you say that he should be? --[[User:Darrien|Darrien]]
 
::*some unit that's the smallest allocatable unit in the file system;
:::: I didn't, it's just a figure of speech. Sorry if you hadn't heard it used before. :-) Let's drop this line. --[[User:Kim Bruning|Kim Bruning]]
 
::*some notion of a contiguous collection of one or more "smallest allocatable unit"s.
:Please tell me how calling you uninformed for saying that images can be "turned off" in a browser that doesn't even support images is a personal attack. --[[User:Darrien|Darrien]]
 
::In some file systems, the latter two units might be the same; in others, you might have "blocks" composed of multiple "fragments", as per UFS, or [[Extent (file systems)|extents]] composed of multiple blocks or clusters or whatever the file system calls them. If we're going to use the term "block" for the smallest allocatable unit", we should perhaps note that UFS calls "blocks", in that sense, "fragments".
:: Well, words like "uninformed" and so can often be construed as such. Hmm, QED, since I actually thought you had made a personal attack :-)
:: Now why would I mention lynx if I knew it didn't support images? --[[User:Kim Bruning|Kim Bruning]]
 
::Sectors are typically ''not'' visible to clients of the file system; they're an implementation detail. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 01:16, 1 August 2011 (UTC)
:::I don't know. That is why I considered you to be uninformed. --[[User:Darrien|Darrien]]
 
:::BTW, this means that the discussion of "blocks" and "clusters" in the "Space Management" section appears to contradict itself; the first paragraph says "The block is the smallest individual unit that the file system allocates.", but the second paragraph says "Some file systems allocate storage through an abstraction layer of clusters which contain a number of blocks. Each layer of abstraction results in wasted space when a file is smaller than the smallest allocation unit the file system is capable of tracking." If the first sentence is true, then a file could contain a fractional number of clusters, as per UFS (with "block" meaning "fragment" and "cluster" meaning "block"); if the second sentence is true, then a "block" is really a cluster. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 01:26, 1 August 2011 (UTC)
:::: I give up. Let's skip the lynx line of reasoning. --[[User:Kim Bruning|Kim Bruning]]
::::reworded [[User:DGerman|DG12]] ([[User talk:DGerman|talk]]) 21:57, 3 August 2011 (UTC)
 
== The article eliminates the level of software abstraction involved: ==
:Go back and reread my first message, paying particular attention to the "most commonly" part. --[[User:Darrien|Darrien]]
 
The article hides the fact that filesystem development is also categorized as software system development, hence, the users will be uninformed that filesystems are actually software. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.97|174.141.208.97]] ([[User talk:174.141.208.97|talk]]) 20:53, 9 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:: Ahhh, yup, you did say most commonly. Still what I said about levels of abstraction holds true. Perhaps we'll find out we're in violent agreement with each other in a minute. Let's see. --[[User:Kim Bruning|Kim Bruning]]
 
:I suspect that [[User:151.75.122.123]] was, in his or her recent changes, noting that "file system" can refer to the layout of data on the storage medium, as per "A fs is a data structure; fs implementations are drivers.". A given on-disk file system layout can have ''multiple'' software implementations - the various flavors of the [[File Allocation Table|FAT file system]] have several implementations on several different operating systems, for example. So a given storage-medium-based file system may have a single specification for the on-medium layout and multiple software implementations, a given network-based file system may have a single specification for the over-the-wire protocol and multiple software implementations, and a given pseudo-filesystem may have a single specification for the semantics of the files and directories in it and multiple software implementations. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 22:44, 9 November 2012 (UTC)
:I never said anything about the level of abstraction. A file system is an abstraction regardless of what level of abstracion it uses. You are trying to throw a red herring into this discussion. Please answer only the relevant points. --[[User:Darrien|Darrien]]
 
::The third sentence of [[User:151.75.122.123]] version did say that, "by extension", a file system also included the software that implements the abstraction. However, that buried the "it's implemented by software" (or firmware...) at the end of the paragraph, and [[abstraction (computer science)]] went to a page that's a bit technical ''and'' that talks about abstractions in a fashion that sounds more as if the API used to access file systems would be the abstraction, abstracting away the details of the particular file system or file systems underneath it. The layer of abstraction at which I see a file system residing has the on-disk data structures or on-the-network protocols or semantics of files and directories in a pseudo-filesystem as part of the abstraction and the software implementations using those on-disk data structures or protocols and implementing those pseudo-filesystem semantics as being what's abstracted away. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 23:23, 9 November 2012 (UTC)
:: Alright, well, a folder is also a level of abstraction, right overtop of a file system in fact, and is definately very strongly related to it. --[[User:Kim Bruning|Kim Bruning]]
 
:::It's incorrect to say that a [[filesystem]] is an [[abstraction (computer science)]] of something when the filesystem itself is software. The API that accesses the filesystem itself is also software. The [[software]] page even states that software is "something that tells the computer what to do and how to do it". Everything on the computer is first seeked and decoded by the processor, so technically almost everything on a computer that is executed is "software" in some tangible sense. It may not necessarily be a "computer program that does a task, or a specific set of tasks" but it is still some form of software that either aids in structuring, maintaining, or guiding some specific details to be done a certain way, and that may be what's abstracted beneath the language. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.108|174.141.208.108]] ([[User talk:174.141.208.108|talk]]) 17:15, 11 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:::Exactly my point. A folder is not part of a file system. It ''can'' be overtop, but there are also flat file systems with no concept of folders or directories. --[[User:Darrien|Darrien]]
 
::::A specification only "tells [a] computer what to do and how to do it" if you have software that, for example, reads a specification and generates software that follows the specification; in general, a specification tells a ''programmer'' what to do and how to do it. As such, I, at least, would not consider a specification to be "software" in the same sense that a particular file system implementation is. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 19:31, 11 November 2012 (UTC)
:::: The flattest possible filesystem can still be mapped to a folder representation. (see below, else we're going to get a lot of indentation :-) ) --[[User:Kim Bruning|Kim Bruning]]
 
:::::The only "specification" a programmer would need is a way to implement code to abstract hardware device infrastructure. In such a case, however, the "specification" that tells the programmer what to is creating a process known as [[software]] development in one form or another to implement this [[filesystem]] to work with the kernel's API(or higher-half kernel). There's no getting away from the fact that a file system is software, whether or not it's written in a language such as C. The abstraction doesn't change this, and the article should be better configured to entail this. Also, this article is back-and-fourth confusing and perplexed; it should be rewritten almost entirely in some areas. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.107|174.141.208.107]] ([[User talk:174.141.208.107|talk]]) 22:39, 11 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:Explain how the 256 color and 6kb is irrelevant. If you knew anything about logic or proper debate, you would know that the burden of proof is on the accuser. "You just answered why 6Kb and 256C are irrelevant by yourself" is not a sufficient rebuttal. --[[User:Darrien|Darrien]]
 
::::::"The only "specification" a programmer would need is a way to implement code to abstract hardware device infrastructure." If by "a programmer" you mean "a programmer writing an implementation of a file system", that's not the case; if you want to, for example, implement [[File Allocation Table|a FAT file system]] or [[Unix File System|UFS]] or [[HFS Plus]] or [[NTFS]] or [[ext2]] or..., you would also need a specification that tells you what to put into the blocks you're writing to the storage medium (and the hardware device infrastructure has probably mostly been abstracted away from you already, except perhaps things such as "is this a disk or is it flash memory" - you're probably not writing disk controller drivers, you're probably ''calling'' disk controller drivers). Nobody here is arguing that file systems aren't implemented in software (or firmware); however, a given file system may have multiple collections of code that implement it. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 00:15, 12 November 2012 (UTC)
:: Well, you basically said "This picture adds 6Kb to a page download, and doesn't look right in 256 colors, besides, lynx doesn't support images at all, are you uninformed?" Ahuh, okay, right... --[[User:Kim Bruning|Kim Bruning]]
 
::::::::No, my friend, an "implementation" of something is not concocted by source code or program data in any rational sense. But then again, seriously, this article is not about the fact that a filesystem follows an implementation or specification, it's about what a filesystem is and does. People here seem to be arguably challenging each other on irrelevant areas. The specification a filesystem must use, or will use, doesn't arguably make a filesystem any less software or firmware than if there was no implementation or guidelines. That's like telling a graphics framebuffer that a set of pixels isn't an image because there's no implementation of a specific image, or rules regarding an image, from a GUI. A filesystem's integral purpose isn't solely based on a specification, nor is the definition or existence of it readily used by a specification only. The software works AROUND THE SPECIFICATION! So it is, again, software following a specification. Why, tell me, my friend, am I seeing an article with a starting sentence telling me that my FAT32 is "an abstraction to do something" rather than "software following a specification to do something along an abstraction"? <small><span class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:174.141.208.113|174.141.208.113]] ([[User talk:174.141.208.113|talk]] • [[Special:Contributions/174.141.208.113|contribs]]) 22:11, 12 November 2012‎ (UTC)</span></small><!-- Template:Unsigned -->
:::When I introduced the 256 color and 6kb arguments, I made no mention of lynx. This is the point you should have rebutted. The sentence I believe you are refering to, separated 256 colors and 6kb from lynx with a comma, and the word "finally". Which should obviously make them separate points. --[[User:Darrien|Darrien]]
 
:::::::::An [[implementation]] is, as the article says, "Implementation is the realization of an application, or execution of a plan, idea, model, design, specification, standard, algorithm, or policy." In particular, "In computer science, an implementation is a realization of a technical specification or algorithm as a program, software component, or other computer system through programming and deployment." So, yes, an "implementation" of something could be source code for a program that implements a specification.
:::: Alright Alright. Let's drop lynx for now. In any case, if you have trouble downloading images, you can just turn off images in your browser, so that's not really a problem. And image sizes and colordepths etc. are really very pedantic indeed. Can we just drop it and concentrate on your main line of reasoning? --[[User:Kim Bruning|Kim Bruning]]
 
:::::::::And the specification for a file system is, in many cases, a very important part of what the file system is. If you write some code that purports to implement [[Universal Disk Format|UDF]] but that doesn't match the spec, it may be file system software, but it's not UDF - if it can't read your DVD, it's not UDF. If you write some code that purports to implement, say, [[NTFS]], but that incorrectly reads files or incorrectly writes to the file system, it may be file system software, but it's not NTFS. And the spec alone, if never implemented, isn't a file system useful in the real world; it might be an interesting source of ideas for a real-world file system, but it won't be storing any data. So, as [[User:Loadmaster]] said, "I would say that a "file system" is 1) an abstraction of some logical (and usually physical) layout of data within a storage device that embodies file and directory structures within that device; and 2) the executing file system itself, i.e., the software that actualizes the file system structure upon or within the storage device." A particular piece of software, by itself, isn't "NTFS" or "UDF" or..., it's one particular implementation of NTFS or UDF or, so the software isn't all there is to the file system; there's also the stuff that the software has to do in order to be a valid implementation of NTFS or UDF or..., regardless of how the software is written.
== Folder represenation of a filing system ==
 
:::::::::"A set of pixels" isn't like a file system; it's like a set of bits written to the disk. "A set of pixels showing a button the user can click on" is more like a particular file system - an arbitrary set of pixels isn't a button, and an arbitrary set of bits written to the disk isn't an NTFS or UDF or UFS or... file system. So, whilst an arbitrary set of pixels is an image, regardless of any specification, it's not a button unless it at least matches what people expect GUI buttons to look like.
''Note that I'm differentiating between "folder" (a representation of an FS or Directory) and "directory" (a special file or area that contains references to files, directories, and/or other special files or areas) here.''
 
:::::::::So FAT32 is a way of storing stuff on a storage medium, and the implementation or implementations, in software or firmware (or conceivably hardware, but purely-hardware implementations of file systems are probably pretty rare; embedded-software or embedded-firmware and perhaps even microcode implementations don't count), of that way of storing stuff. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 22:34, 12 November 2012 (UTC)
Any filing system with an appropriate interface can be accessed by a filing system viewer, and be represented in this way. A folder is simply a representation or symbol that stands for either a filing system, or -if the FS supports it- a (sub)directory in that filing system.
 
::::::::::I'm done debating with you people - you're all totalitarians giving by to what you and others say. I'm a software programmer with hardware knowledge. Why don't we make a deal and I develop a filesystem on an OS and show you how I implement it, and how it actually works. Until then you people can babble and argue till you're blue in the face about the "specifications" of it, but I know how it all works under the code. Good day in your Wiki lives. I'm done. Also, to add one more thing, my set of pixels was an example to the realization of the filesystem, not an EQUIVALENT to a filesystem; again, I'm a developer, and I don't know what you people do, but I'm done wasting time with you. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.107|174.141.208.107]] ([[User talk:174.141.208.107|talk]]) 22:44, 12 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
I can draw a folder on a piece of paper and say it represents my filing system, even if there is no actual UI on the machine involved in the process. Actually I probably won't even need to explain. If I were to take a piece of paper and draw a tree of folders (using the folder symbol), a random person these days will probably be able to read my diagram.
 
== Definition ==
Since the symbol actually represents a filing system, it should be here. --[[User:Kim Bruning|Kim Bruning]] 16:29, 4 Apr 2004 (UTC)
 
[[NTFS-3g]] (the software) is not [[NTFS]] (the file system). When you create a file system with [your favorite partitioning tool here] or [[mkfs|mk*fs]] on Unix/Linux systems, you are definitely not writing software instructions. NTFS is an abstract data structure defined by a technical specification. Different operating systems use different drivers (thus different instructions) to deal with the same file system. However, a kernel driver is often referred to as 'the' file system, though it is technically incorrect. --[[Special:Contributions/151.75.122.123|151.75.122.123]] ([[User talk:151.75.122.123|talk]]) 15:42, 10 November 2012 (UTC)
:We obviously aren't going to come to an agreement. You should call for arbitration. --[[User:Darrien|Darrien]] 07:32, 2004 Apr 5 (UTC)
:<small>Edit: Sorry, replace "it is technically incorrect", with "strictly speaking, it is not". --[[Special:Contributions/151.75.122.123|151.75.122.123]] ([[User talk:151.75.122.123|talk]]) 11:35, 12 November 2012 (UTC)</small>
:Wrong. On the [[software]] article, suffice it to say, implementation of a software instructed "machine" would have to entail the environment of all systems, sub-systems, and "instructions" being carried out by the computer's processor and ISA. Therefore, a [[filesystem]] would have to have instructions, since it is a specification to tell the processor how the files should be stored on a storage medium. If it didn't give [[software]] instructions then it wouldn't be an abstraction. And a kernel's driver IS NOT a file system. A file system is, believe it or not, a specification of software (or instructions) that aid the processor in a task. As a matter of fact, operating system development sites, kernel-specific development sites, and many high-end computer programmers implement the basics of filesystem development and design through higher-level programming languages such as C/C++. Hobbyists developers implement the basic filesystem structure as software written and compiled through upper-level programming languages. How on Earth can someone tell me this isn't some form of "software"? <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.99|174.141.208.99]] ([[User talk:174.141.208.99|talk]]) 17:09, 11 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
::"A file system is, believe it or not, a specification of software (or instructions) that aid the processor in a task." But it's not software, it's a specification for what software must do. There may be more than one piece of software that implements that specification. [[User:151.75.122.123]] isn't saying file systems aren't implemented in software (I'd add "firmware" to that - some boot ROMs, for example, can read file systems), he or she is saying that a file system is not, in general, solely defined by a ''particular'' piece of software. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 19:28, 11 November 2012 (UTC)
:: Arbitration will just force the issue to a resolution, but won't really actually do much else, we'd simply have the same arguments, but then in arbitration. I regret typing my first rant so quickly now, so it looked less coherent than it could have been.
:::174.141, I have no doubt you are editing in good faith, but please, do not offer your own reasoning/speculation as if they were facts. Software instructions are machine-coded operations; rather, a specification gives ''human-worded'' instructions to ''humans'' on how to write software instructions. As I understand it, your sentence "[http://en.wikipedia.org/w/index.php?title=File_system&diff=prev&oldid=522235247 A filesystem is a software to retrieve files]" means that it is the driver, and I'm saying that this is not the case. --[[Special:Contributions/151.75.122.123|151.75.122.123]] ([[User talk:151.75.122.123|talk]]) 22:28, 11 November 2012 (UTC)
 
::::And please scurry away from your speculations about my speculations. I am a developer; I write software, know how computers work, and I'm a computer programmer. I know for a fact that a [[filesystem]] is software because I've dealt with people who have written one themselves. There is no driver necessary to interact specifically with software, because drivers are software that helps instruct the processor to interact with other hardware devices. Exactly as you put it: "Software instructions are machine-coded operations". A filesystem carries out compiled and linked (usually) source code to machine code byte(s).
::Let's try a third avenue and compromise here: do you have a proposal for different illustrations for each of folder, directory, and filing system? And can you provide those? That'd be constructive.
::::The specification on its part to the developer who must implement the code changes no fact that the existence of a file system is ultimately software from either end. Please refrain from trying to debate with me further if this is how you're going to go about with a discussion. I know what I'm saying, my friend. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.101|174.141.208.101]] ([[User talk:174.141.208.101|talk]]) 23:42, 11 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
:::::Again, nobody here is saying that file systems aren't ''implemented'' in software (some of the code I've written was part of file system implementations). The question is whether the abstract specification that says "here's the data structures on the storage medium" is "software". I think calling it "software" will confuse people who think of "software" as programs - the abstract specification is ''not'' a set of machine-code operations (or interpreted-code operations - as I remember, [[Open Firmware]] had code that could at least read some file systems, and it was in interpreted [[Forth (programming language)|Forth]] code).
* [[folder]] : <s>folder.png</s> folder_cyan.png is an actual folder, so that's hard to dispute. But go ahead if you have a better one.
* [[directory]] : well, a folder is a representation for a dir, but if you can actually find some nice schematic for how directories are set up on some fs, that'd be excellent.
* [[file system]] : Well, ''a'' picture is better than none IMHO. But if you have schematics for FS organisation. (Maybe you can draw some for dos, or use some off of the reiserfs site if I recall correctly) then replace the image with something you have.
 
:::::As for "driver", unfortunately the term "driver" is not always used to refer to code that runs hardware (or provides pseudo-device functionality - I've written [http://www.opensource.apple.com/source/autofs/autofs-207/autofs_kext/auto_vfsops.c some of that], although OS X autofs's devices are mainly hacks to let the kernel know when a given process has exited...). Microsoft, for example, calls the kernel modules that implement file systems [http://msdn.microsoft.com/en-us/library/windows/hardware/ff551834(v=vs.85).aspx "installable file system drivers"]. It might be best if a term other than "driver" were used in this discussion to refer to compiled-in or [[loadable kernel module]]s that implement file systems, in order to avoid misinterpretation. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 00:36, 12 November 2012 (UTC)
::So my proposal is this:
 
:::::: Having been a programmer on a wide variety of architectures (ranging across IBM S/370, AS/400 (iSeries), Unix, DOS, Windows, and several others), I would say that a "file system" is 1) an abstraction of some logical (and usually physical) layout of data within a storage device that embodies ''file'' and ''directory'' structures within that device; and 2) the executing file system itself, i.e., the software that actualizes the file system structure upon or within the storage device. So you're both right, but we need to clarify in the article whether we're talking about the logical ''structure'' or the executing ''software'' as a "file system" (or both). When an OS connects to (mounts) a file system, is it simply reading the "system" (in the sense of "logical abstraction system") of logical data structures (files and directories) on a device, or is it also executing a "system" (in the sense of "operating system or subsystem") of code that interprets the raw data on the device as abstract structures? — [[User:Loadmaster|Loadmaster]] ([[User talk:Loadmaster|talk]]) 04:45, 12 November 2012 (UTC)
::I recognize that you disagree with <s>folder.png</s> Folder_cyan.png on some of those pages. As soon as you have a better image to replace it on each, replace it then. I won't disagree with you.
 
:::::::Quoting the article: ''By extension, the term also identifies software or firmware that implements the abstraction.'' It's at the beginning. This does include a C++ implementation!
::Remember it's often better to leave something that's just about right on wikipedia, than to delete everything that is remotely slightly off.
:::::::But you cannot ''define'' a filesystem as a software until you show the source code of NTFS - not NTFS-3g or the like. Guy Harris has said the rest (and perfectly understood my thought).
Try to ''improve'' on what's there. Don't simply delete. :-) --[[User:Kim Bruning|Kim Bruning]] 09:33, 5 Apr 2004 (UTC)
:::::::You are stating your personal opinion as if it were the facts: "A file system is, believe it or not" (cit. 174.141, 11 nov 17:09). Please don't take my comment above personally. I'd find it odd if anyone writing a file system implementation didn't call the implementation as the file system, most if not all times, and the article is currently saying that it is fine. On my side, I was wrong to say "it is technically incorrect", I'd have worded it as: "strictly speaking, it is not" --[[Special:Contributions/151.75.122.123|151.75.122.123]] ([[User talk:151.75.122.123|talk]]) 11:23, 12 November 2012 (UTC)
 
::::::::All device drivers are software that helps interact with hardware per se, and there's no changing that.
:I am through discussing this.
::::::::You may take the terminology of the word "driver" as far to the etymology or history as you wish, but most people who use the term "driver" in computing mean device drivers, or lower-level software to "abstract" the user and/or developer from such a point. There's no such thing as a "device driver" for a filesystem, as it's not hardware it's a system for organizing files in software ON TO hardware. You can debate on the abstraction of it forever if you wish, but it doesn't change the fact that it's software written(regardless of either program code in firmware or not). This article is confusing by telling a user that a [[filesystem]] is a piece of abstraction, when it's simply code that entails some form of abstraction like most other things in user space, or from an interface-perspective. By simply telling people and linking them to an article on computer science and abstractions you're throwing them towards a whole new article that has endless babble on abstraction theories in computing, rather than simplifying the software and abstraction in a more straightforward sense. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.101|174.141.208.101]] ([[User talk:174.141.208.101|talk]]) 17:04, 12 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
 
:::::::::The person who wrote [http://msdn.microsoft.com/en-us/library/windows/hardware/ff551834(v=vs.85).aspx this page], who presumably works for [[Microsoft|a company involved in computing]] given that it's a page in [[MSDN|that company's Web site for developers of hardware and software]], is using the term "driver" to refer to things that doesn't directly control hardware. (And, as per the paragraph two paragraphs down, at least in [[Windows NT]]-family OSes, the [[loadable kernel module]]s for file systems are in a directory named "Drivers", so I guess Microsoft likes that term.) Personally, I ''don't'' like using "driver" for file systems; for better or worse, [[User:151.75.122.123]] did, and that caused some confusion, which is causing some off-topic discussion. As I said above, it would probably be best if "driver" weren't used in this discussion to refer to the modules that implement file systems in operating systems, so that we don't get bogged down in those off-topic disussions.
:After your outright lies on my talk page, and throwing in Folder.png when this entire discussion centers on Folder_cyan.png, I strongly suspect that you are in this discusion only to stir up trouble. --[[User:Darrien|Darrien]]
 
:::::::::And, yes, I think the [[abstraction (computer science)]] page doesn't make it sufficiently clear at what level the abstraction for a file system exists above the implementation or implementations (plural) for a given file system.
:: Sorry, that was just a typo. Sheesh! Corrected. I'm surprised folder.png actually exists. I guess that's the other image on that page eh?
:: re: Lies , um, you do realize that the page history is recorded right? --[[User:Kim Bruning|Kim Bruning]] 12:32, 5 Apr 2004 (UTC)
 
:::::::::However, I also think that, for at least some file systems, and arguably for most if not all of them, they exist, in a sense, independent of any software or firmware that implements them. Consider, for example, [[Universal Disk Format|UDF]], the latest version of which is specified by [http://www.osta.org/specs/pdf/udf260.pdf this document]. Is [http://www.osta.org/specs/pdf/udf260.pdf this] "software"? It is a document separate from, for example, the code contained in <tt>C:\Windows\System32\Drivers\udfs.sys</tt> on Windows, or the code contained in <tt>/System/Library/Extensions/udf.kext/Contents/MacOS/udf</tt> on [[OS X]], or the code contained in a directory such as <tt>/lib/modules/</tt>''kernel_version''<tt>/kernel/fs/udf/udf.ko</tt> in a [[Linux distribution]], or.... So, at least in the case of UDF, not only is there no single piece of software that "is" UDF, there's also a document that "is" UDF, independent of all those pieces of software. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 18:21, 12 November 2012 (UTC)
 
::::::::Show the source code of NTSF, 151.75.122.123? That's appalling and ridiculous. Just ask Tom Miller from Microsoft who, by the way, is a SOFTWARE DEVELOPER. The abstraction that follows the design and specification for it mean nothing in this case of the debate when the end result is software(or embedded firmware)that embodies a completed and executed filesystem, mounted or not. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.114|174.141.208.114]] ([[User talk:174.141.208.114|talk]]) 17:10, 12 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:If you don't drop this, then we will be forced call for arbitration. It's the only way this dispute will be resolved. Please tell me if you are going to concede or if you wish to call for arbitration. --[[User:Darrien|Darrien]] 11:31, 2004 Apr 5 (UTC)
 
:::::::::I suspect Mr. Miller would indicate that there is an internal specification document for NTFS. It's not, as far as I know, a ''public'' document, so the implementations of NTFS ''other'' than Microsoft's <tt>ntfs.sys</tt> were developed by reverse engineering involving looking at what public documents ''do'' exist and at the contents of NTFS-formatted disks. However, multiple implementations of it exist, so it's not as if <tt>ntfs.sys</tt> "is" NTFS in some sense stronger than the internal NTFS document being NTFS; <tt>ntfs.sys</tt> could be argued to be a ''reference'' implementation, but that's it.
:: Well, usually it's a good idea to just ask a third wikipedian to take a look, I'll ask for a wise person who happens to be a sysop to drop by. --[[User:Kim Bruning|Kim Bruning]] 12:32, 5 Apr 2004 (UTC)
 
:::::::::For UDF, however, as noted above, there ''is'' a public specification, which arguably "is" UDF in a sense stronger than any of the several implementations of UDF being UDF. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 18:29, 12 November 2012 (UTC)
 
::::::::::NTFS.sys is a device driver in Windows that is used as an "inbetween" to access, read/write, files to a storage medium capable by providing a bridge between software and the kernel to hardware. The file system's specification follows along the guidelines of how it must perform this action in tangible, suitable, or otherwise realistic sense. So NTFS.sys is a device driver, or just driver as most would refer to it, and it uses the filesystem as an intermediary through low-level system calls to retrieve and store information from the kernel to higher-level abstracted user space. However, if you didn't actually see this coming, the filesystem is still not a piece of hardware, it's just used in a piece of low-level software to accordingly read and write blocks of bytes (or whatever term used) to a medium. Disk controller drivers may be unnecessary altogether in some cases. So what you should be crunching up is a new starting sentence for the article: "A filesystem is software (or system software) following a specification to implement the storage of files on a storage medium. The process may or may not involve disk controller device drivers, and may be accessed through device drivers, as in case with Windows OS's NTFS.sys,", etc., etc., etc. Take it or leave it. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.101|174.141.208.101]] ([[User talk:174.141.208.101|talk]]) 22:04, 12 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
* For what it's worth (and maybe I'll regret getting into the middle of this), I can't honestly see what a stylised icon of a folder, taken from a fairly obscure desktop (for most people), adds to an article about "File Systems." The image is already used (more appropriately) in the Folder and Directory articles... both of these articles are linked to from "File Systems." It doesn't really fit here, and it certainly isn't worth fighting over. Perhaps one of you can find an image showing how inodes link under an Ext2-style FS, or how the old DOS FAT system worked. --[[User:Motor|Motor]] 18:51, 5 Apr 2004 (UTC)
 
:::::::::::So presumably you either disagree with [[User:174.141.208.99]], who said "And a kernel's driver IS NOT a file system.", or you disagree that the software that implements [[NTFS]] in Windows, namely <tt>ntfs.sys</tt>, is a file system. If a kernel's driver is not a file system, and <tt>ntfs.sys</tt> is a driver, then it is not a file system, as it's a driver (and runs in kernel mode), and thus the software that implements a file system (<tt>ntfs.sys</tt> is the Windows [[loadable kernel module]] that implements NTFS) is not itself a file system.
** Well, afaict he wanted to remove the image from both those as well. I agree the icon is less useful here, I just tossed it in so that there's at least *some* illustration, and imho it was defensible to do so at the time. :-)
*:I agree we should have FS organisation diagrammes. I'd suggest at some point to have or link to discussions on DOS FAT, EXT2 , and maybe ReiserFS (examples of fses from very roughly the 80's, 90's and 00's for which good documentation exists or can be obtained.)
*:Hmm, looks like it's almost time for me to set up a TODO list :-P --[[User:Kim Bruning|Kim Bruning]] 09:59, 6 Apr 2004 (UTC)
 
:::::::::::If <tt>ntfs.sys</tt> "uses the filesystem", what is "the filesystem"? The code that knows what data to read from or write to a storage medium containing an NTFS file system is in <tt>ntfs.sys</tt>; what ''other'' code would it uses that would constitute "the filesystem"?
----
 
:::::::::::Or, to put it another way, if "a filesystem is software (or system software) following a specification to implement the storage of files on a storage medium", the software in question, for the NTFS file system on Windows, is stored in a file named <tt>ntfs.sys</tt>, so, by the definition given in that sentence, <tt>ntfs.sys</tt> is "the filesystem". [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 22:52, 12 November 2012 (UTC)
And here I am. Well.....this seems like a tempest in a teapot to me (note: not an actual storm, which of course could not physically appear in a small porcelain container), but it seems to have raised hackles. I would suggest that the picture should stay, but that Darrien should add some language to the article and/or caption explaining why it's not actually a file system. When dealing with computers, every viewable image is an abstraction of sorts. I think it would actually be quite instructive if Darrien added something like the following (and I don't know huge amounts concerning file systems, so I may be incorrect in this -- please don't yell at me if I am, but do inform me): "The image at right is an icon commonly used in Windows operating systems to graphically represent the directory/folder structure of the file system used in Windows. For most computer users worldwide, this image is synonymous with file systems and managing files, although it is in fact representative only of the particular file system used in Windows." That paragraph is inelegant and in need of some fixing, but I hope you see my point. When an image is misleading, Darrien, I'd say nine times out of ten it's best to explain it rather than cut it. And Kim, Darrien is very new here, judging from User Contributions -- I think perhaps there could have been a slightly friendlier approach to this dispute which might have stopped short of the above argument.
 
::::::::::::The real problem with you bitches is that you're not using machine code instructions to CREATE the filesystem. If you're using higher-level languages you're hiding the abstraction from the machine, therefore, you aren't controlling the machine you're depending and relying on another written program to control the machine per se <small><span class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:A00 H|A00 H]] ([[User talk:A00 H|talk]] • [[Special:Contributions/A00 H|contribs]]) 22:36, 12 November 2012‎ (UTC)</span></small><!-- Template:Unsigned -->
That's my attempt at frontier justice. I think you can both have part of what you want here. And Darrien, I have no idea how you know about arbitration after being here a week, but you obviously haven't learned yet that arbitration is not used to settle disputes like this. A few old hands like myself are dragged in to try and make everyone be nice to each other and compromise, and if that doesn't work, the community is invited to discuss things and then cast their vote for the best possible solution. This takes weeks to accomplish, and so it's easier for everyone if we settle things amicably. I encourage you to try it. --[[User:Jwrosenzweig|Jwrosenzweig]] 17:46, 5 Apr 2004 (UTC)
 
== If this article is "too technical", one might agree that the starting sentence may be the culprit ==
:Why do you say that I've been here for only a week? My first contribution was in June of 2003 and I have been a reader for longer than that.
 
Most people will read the first few sentences and expect to somewhat get the idea of what they're trying to understand or learn.
:Arbitration has been used for thousands of years to resolve disputes. Why do you think that I shouldn't know about methods of settling disputes?
:I explained why I removed the image in my commit summary, it's unneccesary. Having a picture of a folder on a page about file systems is like having a picture of a paintbrush on a page about color. Yes, there is a slight relationship between them, but not enough to warrant its inclusion.
:Also, nothing personal, but if you, by your own admission, don't have much knowlege of what a file system is, then perhaps you shouldn't be arbitrating this discussion. --[[User:Darrien|Darrien]] 14:35, 2004 Apr 6 (UTC)
 
Seeing "a '''filesystem''' is an '''abstraction''' to '''store''', '''retrieve''' and '''update''' a set of files does no good to the average reader regarding this perplexed starting sentence.
::I'm afraid that Darrien is right. The image adds nothing whatever to the article, except distraction. If it were meaningful, sure. But it bears no relationship to the topic, and serves only to imply that a file system is something to do with cutsie pictures on your screen. Strikes me as a classic case of Powerpointitis: there is nothing to illustrate, so let's have an illustration anyway. But why a folder? Folders are pretty boring, after all. Wouldn't a nice fluffy kitten look better? --[[User:Tannin|Tannin]] 14:45, 6 Apr 2004 (UTC)
 
Perhaps we should aim for something along the lines of:
* How about actual illustrations to do with how an FS is organised? (see above) :-) --[[User:Kim Bruning|Kim Bruning]] 16:51, 6 Apr 2004 (UTC)
** In fact: see here: http://www.namesys.com/v4/v4.html , we'd have to ask politely, and it's a slightly off-the-norm FS. I knew that page existed already. I wonder if there's other pages like that. --[[User:Kim Bruning|Kim Bruning]] 17:08, 6 Apr 2004 (UTC)
** Here's ext2 : http://www.tldp.org/LDP/tlk/fs/filesystem.html --[[User:Kim Bruning|Kim Bruning]] 17:11, 6 Apr 2004 (UTC)
** No images, but something might be made, based on http://www.tldp.org/HOWTO/Filesystems-HOWTO.html#toc2 --[[User:Kim Bruning|Kim Bruning]] 17:20, 6 Apr 2004 (UTC)
** Existing illustrations for FAT (may require permission): http://students.cs.byu.edu/~cs345ta/labs/fall03_specs/lab_fat_help.htm --[[User:Kim Bruning|Kim Bruning]] 17:23, 6 Apr 2004 (UTC)
 
"A filesystem is an implementation of software that acts as an abstraction to store, retrieve, and update a set of file blocks on a storage drive. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.111|174.141.208.111]] ([[User talk:174.141.208.111|talk]]) 16:17, 15 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
:::Okay, that covers all the bases. It's on my todo list, unless one of you wise guys beats me to it ;-)
 
I'm afraid that doesn't help at all. Writers, you aim to target people who are looking for information when they don't know the subject (very well). It is no good writing in jargon that the writer understands. If they understand it, they don't need the article. If technical writers write in THEIR language, readers don't understand. This is the greatest flaw in Wikipedia, whether it be people writng about science, finance, mathematics or whatever.
:::have a nice day! --[[User:Kim Bruning|Kim Bruning]] 17:23, 6 Apr 2004 (UTC)
 
Wikipedia has yet to produce an article that explains the credit crunch, for instance, that anyone, including the authors, can properly understand. [[User:Cannonmc|Cannonmc]] ([[User talk:Cannonmc|talk]]) 17:30, 5 January 2013 (UTC)
----
 
:Well, I rewrote the intro to try to make it more understandable. Further improvements welcome. I'm not sure what credit crunch article you are talking about, but I agree it can definitely be a problem in certain subject areas. Fortunately, this is a "flaw in Wikipedia" you can fix by rewriting jargon into beautiful shiny prose. If you don't have the expertise or time, well, that's what the "too technical" tag is on this article for. Editors who do have subject expertise would benefit if you could help them toward something more comprehensible, perhaps by explaining exactly what you are stumbling over or what sort of statement you are looking for. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 20:08, 25 March 2013 (UTC)
== Secure Computing==
 
== Why not add source code examples of filesystem implementations in software? ==
[[Secure computing]] explicitly discusses Capabilities versus ACLs. I think this is going to be rather straightforward. :-) --[[User:Kim Bruning|Kim Bruning]] 11:09, 27 Jun 2004 (UTC)
 
Perhaps C, C++, C#, etc. Even Java, if you will.
[[Access control list]] also states that there is some difficulty with them, and reccomends use of Capabilities instead. So hmm, apparently that's the consensus on wikipedia then. An existing consensus can always be wrong of course. If you diagree with what's written there, I suggest you take it up with the writers of [[access control list]] and [[secure computing]] first, to prevent duplication of effort.
 
This article is pretty terrible. 2 stars at most I'd give it. Not recommending. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/174.141.208.117|174.141.208.117]] ([[User talk:174.141.208.117|talk]]) 19:19, 19 November 2012 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
Have a nice day! --[[User:Kim Bruning|Kim Bruning]] 11:37, 27 Jun 2004 (UTC)
 
:unsigned int PTR* NULL;
:The paragraph as it now stands is acceptable&mdash;or at least more so than my desire to argue it. I would prefer it to move out of the introduction and into its own section discussing ACLs and other security mechanisms as applied specifically to filesystems, however. (Honestly, this article in general could do with a complete rewrite...) --[[User:Lady Lysine Ikinsile|&mdash;''Lady Lysi&#0331;e Iki&#0331;sile'']] | [[User talk:Lady Lysine Ikinsile|Talk]] 14:03, 2004 Jun 27 (UTC)
 
:Happy? <small><span class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:169.139.19.117|169.139.19.117]] ([[User talk:169.139.19.117|talk]] • [[Special:Contributions/169.139.19.117|contribs]]) 21:48, 10 December 2012‎ (UTC)</span></small><!-- Template:Unsigned -->
== File names from the perspective of persons doing normal office work ==
 
:OK, [http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=tree;f=fs/ext2;hb=HEAD here's the source code to the ext2 file system], and [http://opensource.apple.com/source/xnu/xnu-2050.18.24/bsd/hfs/ here's the OS X 10.8.2 version of HFS+], and [http://svnweb.freebsd.org/base/head/sys/ufs/ here's the FreeBSD version of UFS]. Copying and pasting ''that'' to the article would make it rather big, and I'm not sure even most programmers would be able to understand much of that (obviously it would be complete gibberish to non-programmers). The [[Version 6 Unix|Unix Version 6]] source has a simpler file system - see, for example, the [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/ken/iget.c iget.c], [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/ken/nami.c nami.c], [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/ken/rdwri.c rdwri.c], and [http://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/ken/subr.c subr.c] files, along with the header files (and any other kernel routines they call or are called by), but even that isn't just a simple piece of code that most programmers would necessarily understand.
A search for an article on file names is redirected here to the file system. Should there not be an article for file names per se, to cover the customs and practices and the art and science of naming files from the perspective of persons doing normal office work, and not from the very limited perspective of computer science? --[[User:AlainV|AlainV]] 21:02, 2 Sep 2004 (UTC)
 
:For people who want to understand how (local) file systems are implemented, [[Dominic Giampaolo]]'s [http://www.nobius.org/~dbg/practical-file-system-design.pdf Practical File System Design with the Be File System] book might be better than just a blob of out-of-context source code. As Dominic notes on [http://www.nobius.org/~dbg/ his home page], he also makes the "File System Construction Kit", mentioned in the appendix of his book, on-line. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 22:13, 10 December 2012 (UTC)
:: Don't think so- this is an article about the very specialized and restricted field of logically storing and organizing data on physical computer-read media, and the abstract structures they embody. You might want to look into more general areas like the Dewey decimal system or stuff like that. --[[User:marudubshinki| Maru Dubshinki]] 07:50 PM Monday, 07 March 2005
 
==Old discussions==
 
Why!!!??? Who in their right mind wants to read an article that includes source code when all they were trying to do was find out what the article was about. I'm afraid the 'Talk' is even worse than the article. Is it beyond Wikipedia editors to write in plain language that mortals can understand?
[[User:Cannonmc|Cannonmc]] ([[User talk:Cannonmc|talk]]) 02:48, 6 January 2013 (UTC)
 
Those source codes for those filesystems are easy to understand. Any decent programmer with knowledge of storage drives should be able to break that code down in a matter of minutes. It makes perfect sense to me. <span style="font-size: smaller;" class="autosigned">— Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[Special:Contributions/169.139.19.117|169.139.19.117]] ([[User talk:169.139.19.117|talk]]) 22:35, 4 February 2013 (UTC)</span><!-- Template:Unsigned IP --> <!--Autosigned by SineBot-->
=== partition types ===
 
:Then add ''links'' to them, maybe, but if you pasted even the source code to the V6 file system, the article would bloat up. And I'm skeptical that "Any decent programmer with knowledge of storage drives should be able to break that code down in a matter of minutes." - maybe those of us who've had some experience with file systems already might, but if all you know about is storage drives, i.e. linear arrays of fixed-size blocks, a little tutorial information, such as Dominic's book, would be better. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 23:15, 4 February 2013 (UTC)
Programs that are used to [[partition]] a disk drive (fdisk et al.) sets a partition type, e.g.,
 
::[[Wikipedia:Make technical articles understandable|Wikipedia is targeted at a general audience]], not merely programmers. For a top-level article, source code is such an intricate level of detail that it would both not be appropriate to a general audience and it would be too detailed for this article (which is already on the long side). I don't think any filesystem-implementing source code is needed on Wikipedia, but I do agree that links to source would be helpful for technical readers who want to know more. I would start with putting them on the articles about the specific filesystem in question, though. -- [[User:Beland|Beland]] ([[User talk:Beland|talk]]) 19:59, 25 March 2013 (UTC)
0C for FAT32
82 for Linux swap
83 for EXT2 or EXT3 ( Linux )
 
There is a clear consensus that adding source code is not a good idea. I suggest we close this discussion thread. [[User:Jjk|Jjk]] ([[User talk:Jjk|talk]]) 14:00, 19 September 2013 (UTC)
(see http://www.symantec.com/techsupp/primus/id4279.html for a long list)
 
== Semantic File System ==
There are perhaps some 50-100 allocated numbers. Where does these numbers come from? Where is the standard?
 
Why is there no link from this article to https://en.wikipedia.org/wiki/Semantic_file_system <!-- Template:Unsigned --><small class="autosigned">—&nbsp;Preceding [[Wikipedia:Signatures|unsigned]] comment added by [[User:B0ef|B0ef]] ([[User talk:B0ef#top|talk]] • [[Special:Contributions/B0ef|contribs]]) 14:13, 12 March 2017 (UTC)</small> <!--Autosigned by SineBot-->
What is the origin of the standard? IBM PC, IDE, ATA, Microsoft or what? Does SCSI drives on a PC use the name partition type number standard? SCSI drives on a Cray?
 
:[[WP:JUSTDOIT|Because nobody's added one]]. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 18:18, 12 March 2017 (UTC)
-- [[User:DavidCary|DavidCary]] 03:41, 23 May 2004 (UTC) and
::LOL :) [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 17:22, 16 March 2024 (UTC)
[[User:Hif|hif]] dec 24 2003.
 
== Proposed merge with [[Disk quota]] ==
:Those are good questions for the page about partitions.--[[User:Chealer|Chealer]] 19:01, 2005 Feb 20 (UTC)
{{Discussion top|result=To '''not''' merge [[Disk quota]] given that '''no consensus''' for any particular target after more than a year and discussion stale. The is some interest in renaming or restructuring this page. [[User:Klbrain|Klbrain]] ([[User talk:Klbrain|talk]]) 17:20, 27 April 2019 (UTC)}}
The article [[Disk quota]] is largely a [[WP:DICTDEF]]. Disk quotas are not discussed at all at [[File system]] currently, and they probably should be. [[User:power~enwiki|power~enwiki]] ([[User talk:Power~enwiki|<span style="color:#FA0;font-family:courier">π</span>]], [[Special:Contributions/Power~enwiki|<span style="font-family:courier">ν</span>]]) 21:58, 24 October 2017 (UTC)
 
:Actually [[Disk quota]] and [[File_system#Unix_and_Unix-like_operating_systems|the UNIX part of this article]] should be moved to [[Unix_File_System]] and the UNIX section in [[File system]] should be reduced and point to the [[Unix_File_System|main article]]. Disk quotas it seems are a UNIX issue and belong there not here. [[User:Tom94022|Tom94022]] ([[User talk:Tom94022|talk]]) 18:18, 8 January 2019 (UTC)
There is no standard nor administrating body. These numbers are used in the BIOS partition table, which is a PC-specific structure that originated with DOS, I believe. It doesn't have anything to do with IDE, SCSI, etc., because it's just an assignment for numbers stored in the partition table on the disk, while ATA and SCSI just provide byte soup. There have been overlaps in the numbers assigned when one group isn't careful not to use the same number as some other group.
 
::Disk quotas don't seem to be a UNIX issue to anybody familiar with [https://docs.microsoft.com/en-us/windows/desktop/fileio/managing-disk-quotas Windows] or [https://www.itec.suny.edu/scsys/vms/ovmsdoc073/v73/6017/6017pro_038.html {Open}VMS], for example. [[Disk quota#Quotas]] even mentions those OSes in the last paragraph.
==Filesystem or file system?==
 
::Furthermore, whilst the [[Unix File System]], in the sense of "the file system that was originally called the Fast File System in BSD", was probably the first ''Unix'' file system to support disk quotas, it's not the ''only'' file system for Unix that supports disk quotas. (Heck, Apple even added disk quota support to the not-originally-designed-for-Unix [[HFS+]]
People usually use both "filesystem" in one word, or "file system" in two words and even within one and the same text, you very often see those two variants mixed. If there exists something interesting to say or some recommendation about which to use, then add it.
 
::So, no, [[disk quota]] should most definitely ''not'' be moved to [[Unix File System]] - and "the UNIX section in [[File system]]" - by which you presumably mean [[file system#Unix and Unix-like operating systems]] - shouldn't be reduced and point to [[Unix File System]], given that said section lists a whole bunch of file systems for [[Unix-like]] operating systems (whether derived, in whole or in part, from AT&T code, and whether licensed to use the Unix trademark) that ''aren't'' UFS. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 19:07, 8 January 2019 (UTC)
The same could be said about filesize, filetype, etc.
<small>--by anonymous user [[User:83.78.187.157|83.78.187.157]]</small>
 
:::For that matter, [[RSTS/E|RSTS-11]] had disk quotas at least as far back as February 1975,<ref>{{cite book|url=http://bitsavers.org/pdf/dec/pdp11/rsts/V04/DEC-11-ORSMA-B-D_RSTSmgr_73.pdf|title=RSTS-11 System Manager's Guide|at=p. 2-56}}</ref> before even [[Version 6 Unix]], much less 4.2BSD (the first big UNIX flavor with disk quotas), had been released. (One of the earliest Unix implementations of disk quotas was the University of Melbourne implementation; it was the basis of the version incorporated into 4.2BSD.<ref>{{cite web|url=https://people.freebsd.org/~bapt/pdfdocs/smm/Disc_Quotas_in_a_UNIX*_Environment.pdf|title=Disc Quotas in a UNIX* Environment|author=Robert Elz|authorlink=Kevin Robert Elz}}</ref>) [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 21:00, 8 January 2019 (UTC)
:i prefer seperation into two words which makes it imo easier to read and seems to better fit into the common usage of the english language. --[[User:Pythagoras1|Pythagoras1]] 15:59, 12 February 2006 (UTC)
 
::::OK, like most users, "disc quotas will either be of no concern, or a fact of life that cannot be avoided." Since they are in multiple file systems then I suggest the [[disk quota]] article should remain as the main article with a link from this article. I also suggest that the [[File_system#Unix_and_Unix-like_operating_systems|the UNIX part of this article]] should be moved to [[Unix_File_System]] as the main article with only a link in this article. [[User:Tom94022|Tom94022]] ([[User talk:Tom94022|talk]]) 00:46, 9 January 2019 (UTC)
== HFS+ is Case Sensitive ==
 
:::::Why should a section that discusses a whole bunch of different file systems, most of which are not the Berkeley Fast File System, be moved to a page about the Berkeley Fast File System?
HFS+J is now case-sensitive (selectable). Edited to reflect that
 
:::::Are you suggesting that the [[Unix File System]] page change from a page about the Berkeley Fast File System, as it is now, to a page about file systems, plural, for Unix? If so, then note that a better choice would be to rename [[Unix File System]] to "Berkeley Fast File System" or something such as that, and then create a page called "Unix file systems" or "List of file systems for Unix" or something such as that, and move the stuff in [[File_system#Unix_and_Unix-like_operating_systems|the UNIX part of this article]] to the ''latter'' page.
[[User:66.115.245.120|66.115.245.120]] 02:51, 25 June 2006 (UTC)JP
 
:::::The name nonwithtanding, there is no such thing as "the" Unix file system, for "file system" referring to a particular design for an on-disk layout of file system data. When the Berkeley Fast File System was being developed, there was already a file system in common use on UNIX - the V7 file system - so the FFS was at best the ''second'' file system for UNIX (third if you count the V6 file system; we'll ignore earlier ones as they weren't generally available). Now, there are and have been several on-disk file systems for Unix and Unix-like systems in addition to the V7 file system and the Berkeley Fast File System, such as [[ZFS]], [[APFS]], [[JFS (file system)|JFS]], [[ext2]]/[[ext3]]/[[ext4]], [[btrfs]], [[VxFS]], [[XFS]], [[AdvFS]], and [[HAMMER]], as well as [[HFS+]] (which was not originally designed for a UNIX, but was the main on-disk file system for macOS/iOS/tvOS until the switch to APFS).
:You're right, but unfortunately people here have a misunderstanding about what HFSX is. For whatever reason, people think it is a new format rather than just HFS+ rev 2. It'll probably get reverted. -- [[User:Sdfisher|Steven Fisher]] 14:27, 25 June 2006 (UTC)
 
:::::I think it's reasonable to have a page that discusses the Berkeley Fast File System, including its evolution (UFS2, etc.). I don't think it's reasonable to have that page talk about ''other'' file systems designed for, or used as the primary file system on, UN*X systems. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 02:29, 9 January 2019 (UTC)
== Tools (resize,defrag,undelete) ==
 
:::::As for whether [[disk quota]] should be merged here or not, the fact that disk quotas are supported by multiple file systems is not sufficient to indicate that it shouldn't be moved here. The question there is whether it's a topic of sufficient interest to be worthy of its own article or if it's just an [[File system#Aspects of file systems|aspect of a file system]] or an [[File system#Space management|aspect of space management of a file system]] that should be moved here. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 02:39, 9 January 2019 (UTC)
A table of the available tools is missing. Tools that come to my mind are: shrink / enlarge (offline or online), defragment (online/offline), undelete, shred.--[[User:Hhielscher|Hhielscher]] 23:09, 29 June 2006 (UTC)
 
::::::{{ping|Guy Harris}} makes a number of good points:
== Different meanings of the term "file system" ==
::::::*IMO [[Disk quota]] should remain as a separate article with a pointer in this article to it as the main article.
::::::*Regarding [[Unix File System]] article, it probably should be renamed to Berkeley File System with a new article Unix File System'''s''' (plutral) created from the material in this article and linking to all the various articles. Alternatively, I suppose this article's section could be come the main article with a redirect from Unix File System'''s''' (plutral); that's inconsistent with the treatment of other file systems in this article, but a foolish conisistency ...
::::::My 2 cents :-) [[User:Tom94022|Tom94022]] ([[User talk:Tom94022|talk]]) 20:11, 25 January 2019 (UTC)
{{Discussion bottom}}
{{reflist-talk}}
 
== Comments on "Multiple file systems.." section ==
There are at least two meanings for the phrase "file system":
 
I suspect this entire section is beyond the scope of what is needed for the general population. It also has a lot of statements that appear false or misleading if taken at face value.
# a set of data structures and algorithms for managing data in a data store, i.e. "a method for storing and organizing computer files and the data they contain to make it easy to find and access them" description;
* Para 2 needs to discuss partitions in general before talking about multiple file systems. Article seems to ignore, or at least gloss over, having multiple disk drives in a system.
* Para 2 discusses having partitions with different allocation sizes. This can also be done with the same file system. See, for example, [https://support.microsoft.com/en-us/help/140365/default-cluster-size-for-ntfs-fat-and-exfat].
* Para 2 mentions that one file system could be read-only and the other writable. This is also unrelated to "multiple" file systems.
* I doubt that the comments in para 3 discussing virtualization, ext4, ntfs, and hypervisor are understandable to anyone who doesn't already grasp these concepts.
* Likewise, it seems to me that almost everything in para 4 can be done with a type of single file system on multiple partitions.
'''If''' this section is deemed useful, then at this point I think the simplest approach would be to change the heading to something like '''Multiple partitions within a single system''' (ugh) and revise to article to eliminate almost all references to "file system". If that is too simplistic, then IMO this entire section needs to be rewritten with the differences between partitions and file systems firmly in mind.
 
-[[User:Jvasil|Jvasil]] ([[User talk:Jvasil|talk]]) 23:24, 12 August 2020 (UTC)
# code that provides the usual set of file system primitives for use by applications running atop it (e.g., something that plugs into an operating system's or desktop environment's [[virtual file system]] layer) - that includes the previous description, as well as the "provide access to data on a file server by acting as clients for a network protocol (e.g., [[NFS]], [[SMB]], or [[9P]] clients)" and "virtual and exist only as an access method for virtual data (e.g. [[procfs]])" descriptions.
 
:I agree that the section is hard to read, but I think there is good info in there. I just spent a few hours working on this article and am too tired to work on this section rn. ...Maybe the section should be titled ''Partitions'' Stevebroshar (talk) 17:20, 16 March 2024 (UTC) [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 17:22, 16 March 2024 (UTC)
Is this page intended to cover both of those meanings, or just one of them? The first sentence of the first paragraph discusses the first meaning, while the next sentence discusses the second meaning.
::The machine on which I'm typing this has several file systems on its SSD, but they're not on separate partition - they share a single free-space pool. The file systems are [[APFS]], but, if I remember correctly, [[ZFS]] also supports that, and other file systems may do so as well. [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 20:05, 16 March 2024 (UTC)
:::Interesting that you use 'file system' to mean an instance. I think of file system as a service that acts on storage. To me 'database engine' is to 'file system' as 'database' is a storage configured for a file system. ... Anyway, how can multiple file systems (instances) share the same storage? How do they not clobber each other? Are the multiple instances of APFS configured to co-exist? Or do they share conventions that prevent incompatible access to the same storage? [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 03:12, 17 March 2024 (UTC)
::::{{tq|Interesting that you use 'file system' to mean an instance.}} Apple tends, I think, to use the term "volume", but the term "mounted file system" is one term used in UN*Xland.
::::{{tq|Anyway, how can multiple file systems (instances) share the same storage? How do they not clobber each other?}} They share a common pool of free storage, and use block numbers within the container rather than the volume. See, for example, [https://developer.apple.com/documentation/foundation/file_system/about_apple_file_system#2990506 the "Free Space Is Shared Between Volumes" section of [ the About Apple File System] and the "Container" section in [https://developer.apple.com/support/downloads/Apple-File-System-Reference.pdf the Apple File System Reference].
::::This is not a concept unique to APFS. In [[ZFS]], multiple datasets (think "volumes", in Apple terminology, or "mountable file systems") can share the same zpool (storage pool). [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 21:52, 11 April 2024 (UTC)
:::::"Apple File System supports multiple volumes within a single partition" ... "All of the volumes in an Apple File System partition can grow and shrink independently" ... so, ''volume'' is not synonymous with ''file system''. I think a partition can have one and in some cases multiple volumes. I think a partition can only one file system. [[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 17:52, 12 April 2024 (UTC)
{{outdent}}
 
In "Apple File System", "File System" means "on-disk data structures (and algorithms to implement operations on those data structures)", so there's only one such file system on the planet, with many ''instances'' of that file system on my laptop, my cell phone, and all the other watches/eyeglasses/cell phones/tablets/set-top boxes/speakers/laptop computers/desktop computers out there. The same applies to [[HFS+]], [[UFS]], [[ext2]]/[[ext3]]/[[ext4]], [[btrfs]], [[ZFS]], etc.
== FAT and Long File Names ==
 
On my laptop, there's a hierarchical directory structure that spans multiple volumes:
The article was recently changed to say that FAT32 removed the length restriction on file names... AFAIK, that's rubbish, as long file names work equally well with FAT12 and FAT16. --[[User:StuartBrady|StuartBrady]] ([[User talk:StuartBrady|Talk]]) 14:17, 24 July 2006 (UTC)
 
$ mount
Perhaps you are right, though I've never seen FAT16 file system be able to have a file name longer than the classic 8.3 format, and certainly the same case for FAT12. If you can provide proof to the contrary, I'd love to see it. --[[User:SolarisBigot|SolarisBigot]] 14:33, 24 July 2006 (UTC)
/dev/disk1s1s1 on / (apfs, sealed, local, read-only, journaled)
devfs on /dev (devfs, local, nobrowse)
/dev/disk1s3 on /System/Volumes/Preboot (apfs, local, journaled, nobrowse)
/dev/disk1s5 on /System/Volumes/VM (apfs, local, noexec, journaled, noatime, nobrowse)
/dev/disk1s6 on /System/Volumes/Update (apfs, local, journaled, nobrowse)
/dev/disk1s2 on /System/Volumes/Data (apfs, local, journaled, nobrowse)
/dev/disk1s7 on /Volumes/Case-sensitive (apfs, local, journaled)
map auto_home on /System/Volumes/Data/home (autofs, automounted, nobrowse)
/dev/disk1s1 on /System/Volumes/Update/mnt1 (apfs, sealed, local, journaled, nobrowse)
 
with some weirdness (e.g., {{mono|/Users}} is on {{mono|/System/Volumes/Data}}, but {{mono|/Users}} isn't a symlink - this is something Apple added). That directory structure could be considered the "file system" on that laptop.
: Haven't you ever seen long file names with FAT12 on a floppy disk? Also, I was using long file names with Windows 95, upgraded from DOS 6. There was no FAT16 -> FAT32 converter back then. --[[User:StuartBrady|StuartBrady]] ([[User talk:StuartBrady|Talk]]) 14:38, 24 July 2006 (UTC)
 
And, as noted, there are several volumes, which are, in some sense, self-contained sets of files (although some of them share a single free block store with each other, as noted above), each of which is mounted on a given mount point, making them "mounted file systems". In what way are all of the volumes within one partition a single "file system", other than storing a common storage pool?
::LFNs (or Long File Names) works with FAT12, FAT16, FAT32 and FAT-X.
::&mdash;[[User:Claunia|Claunia]] 14:50, 24 July 2006 (UTC)
 
So it's not clear that there's a single referent for the term "file system". [[User:Guy Harris|Guy Harris]] ([[User talk:Guy Harris|talk]]) 20:22, 12 April 2024 (UTC)
:::All great claims, but we need to see a reference somewhere, hopefully from Microsoft. The data structures in FAT12 and FAT16 do not allow for a long filename. I'm going based upon that. Update: See http://www.microsoft.com/technet/archive/winntas/tips/techrep/filesyst.mspx?mfr=true which has some discussion; it is VFAT (Win95 and later) that added long name support as per StuartBrady's claim. Pure FAT cannot do LFN, as is correct in the article. That's VFAT, which is NOT FAT12, FAT16 or FAT32. --[[User:SolarisBigot|SolarisBigot]] 15:03, 24 July 2006 (UTC)
 
== exFAT update needed ==
::::Almost right. VFAT was the module in Windows that provided "LFN support". Anyway, you are probably right, but I don't think it's as clear as it could be... "Older versions of the FAT file system (FAT12 and FAT16) had file name length limits [...] FAT32 lifted many of those limits". A reader, ''might'' assume that long filename support was one of them, especially since it's already a common misconception. --[[User:StuartBrady|StuartBrady]] ([[User talk:StuartBrady|Talk]]) 16:07, 24 July 2006 (UTC)
 
Please update the section about exFAT. It's already disclosed to public ___domain and supported by linux kernel [[Special:Contributions/213.228.137.159|213.228.137.159]] ([[User talk:213.228.137.159|talk]]) 08:35, 14 November 2023 (UTC)
:::::Noted, and I will take a look at cleaning up those references which are confusing. --[[User:SolarisBigot|SolarisBigot]] 16:15, 24 July 2006 (UTC)
 
== Edited ==
::::::Thanks! BTW, reading the MS page you linked to, I see that they refer to it as VFAT, so that name is fine. It's probably still more accurate to refer to is as LFN support, but I don't think that really matters. (They most likely called it "VFAT" because that name is better known.) --[[User:StuartBrady|StuartBrady]] ([[User talk:StuartBrady|Talk]]) 16:20, 24 July 2006 (UTC)
 
In general, this article is too long. Surely it goes off topic. But, I didn't remove much. Just noted that.
:::::::Fixed. The official name is VFAT, it was implemented as a VxD (virtual device driver) in Windows 95, was originated in Windows NT 3.5, and portions were even backported for WfW 3.11 (but only for 32-bit access). See the [[FAT]] page for more discussion, including the gory details on VFAT (there's a section called VFAT and LFN). Hope this addresses your concern. Thank you. --[[User:SolarisBigot|SolarisBigot]] 16:25, 24 July 2006 (UTC)
 
Like other pages I've looked at and edited, this one is for a popular tech topic with a long history. It has been edited a zillion times and suffers from drift -- in focus and in quality.
==Question about Limits==
I'd like to see columns "number of files per directory" and "number of files per filesystem" added to the limits section --[[User:WhiteDragon|WhiteDragon]] 20:19, 9 August 2006 (UTC)
 
I edited the lede and a few sections after that. By page 20 I lost interest :)
==FAT16 was introduced with DOS 3.0==
FAT16 was introduced together with the IBM PC AT and with DOS 3.0. So the table in "General information" should be changed.
 
Notes on what was wrong and why I edited:
== Special-purpose database ==
 
* A file system is not a data structure even though it does involve data and structure and an implementation surely includes various data structures
The second paragraph of the introduction says that it’s debatable whether a file system is a special-purpose database. But that seems to be the article’s only mention of that debate. If it’s so important to warrant a mention in the introduction, then the article address the topic in more depth. And could someone please provide some citations (say, one anti, one pro) regarding the debate? --[[User:Rob Kennedy|Rob Kennedy]] 04:23, 15 September 2006 (UTC)
* Removed duplicate etymology info from lede since didn't add value (as duplicate) and lede was too long anyway. Also renamed section on etymology as 'etymology'
* The history and market share of HDD is off topic, removed
* Distinguished between local vs distributed file systems throughout
[[User:Stevebroshar|Stevebroshar]] ([[User talk:Stevebroshar|talk]]) 17:12, 16 March 2024 (UTC)