In the beginning, when
computers were created,
there was only
memory (which was made of
bits,
beads,
digits
or whatever you call them),
and memory was organized into
registers, and registers were grouped
into a
register file. However, there was usually only one of them,
so it didn't need much of a filesystem. (Bits are made of
flop-flops,
which are put on
buses, but that's a different story.)
As technology advanced, and memory expanded beyond available address space
(i.e. the address bus ran out of bits), memory was then organized into
banks. Of course, you can never have enough memory (or money), so mechanical means
of duplicating large amounts memory for extended storage were needed,
so the drum was invented. The drum still used addresses,
for its organization.
Then there was tape. Tape was much bigger than drum, so it was organized
into fields and files. However, since the tape is linear, just putting
the files on tape one after the other was pretty much good enough.
(Some people used archives to collect multiple files into one file,
but I'm getting ahead of myself.)
Then there was disk. Disks had sectors, tracks, then cylinders,
and later, blocks and clusters, but that's just the physical organization, and the start of the mapping of the
physical to the logical.
On your disk, you could just put your files on the disk
one a after the other, like with a tape. Or, since disk is random access
(like memory), you could just address the blocks directly.
But this gets real cumbersome quick, especially when you forget which block
you started your file at, or if you had to put multiple growing
files on the disk at once. So, in the first file on the disk, you make an index to all the other files,
and call
it a directory. *POOF*, you now have a filesystem!
Later enhancements added the subdirectory and directory tree.
(And of course, you can then group multiple disk files into one big file
and put that on tape in an archive...or you could just make a
filesystem image, but I digress.)
Of course, the filesystem was invented, and reinvented for each new
computer system, and none of them were very compatible. Sometimes
filesystems were invented just for a specific media, and then people
suddenly want standards, so a few filesystems were created for that
purpose. And sometimes innovations like the journaling filesystem inspires
whole new filesystems.
That's the story of the filesystem.
Here's a few system specific filesystems... /msg me if you think of more.
Microsoft filesystems: fat, vfat, fat32, ntfs
CD-ROM and DVD filesystems: iso9660, rock ridge, high sierra, (Romeo),
joliet (mscdex), UDF
Unix filesystems: SysV "fs", BSD "fast filesystem", ufs, xfs ext2, (fsck)
Macintosh filesystems: HFS, HFS+
Network filesystems: (these are really virtual filesystems) NFS, AFS, SMB, CIFS, NDS
Journaling filesystems: IBM JFS, Veritas VxFS, NTFS, SGI XFS, Linux ext3, reiserfs, BeOS BFS, Novell NSS, HFS+ post os X 10.2.3
This was brought to you by the Save Our Archaic
Technical Terms Society.
I'd like to thank those that already noded the filesystems listed above.