unix file system V filename limit

Why unix system V has a filename size limit of 14 characters.How other versions of Unix got around this problem.Can anybody help?

The original Unix filesystem had a limitation of 14 characters. Other versions of Unix used different filesystems with much larger limitations. A very few people actually liked that 14 character limit. To accommodate them, some versions of Unix allow you to force this limit artificially. For example, HP-UX allows a -S flag when creating a UFS filesystem. And they have a convertfs command to take a one-way trip into longer filenames. Other versions of Unix may have something like that too. But if your version of Unix is still using the old filesystem, you probably have no way around it except to upgrade to a more modern version of Unix.

Why was that limited to 14 characters.That has something to do with inode and storage considerations.Help me

Ken Thompson thought is was an acceptable limit. He could have made it 15 or 16 just as easily. Or 12 or 13. There was nothing magical about 14. In the early 70's 14 seemed like a lot for a filename.

Wont the increase in filename size decrease the stroage limit of filesystem.?

Space allocated to filenames is not available for file data, but that's always true. What are you really asking these questions for?

I am not getting my basics right.Can you please explain to me where the filename space is allocated and why the filename size increase does not affect the storage space

The filenames are stored in the directory. A directory is a table with a name and an inode number. The directory called "etc" in the "/" filesystem might have an entry like (passwd,3115) and this means that the file called "passwd" is inode 3115, so we can read inode 31115 to get /etc/passwd. The directory does indeed consume space. That's why I said that "space allocated to filenames is not available for file data". If you create a directory and put 10,000 files in it, you will have a large directory and that directory does indeed consume space that otherwise could have been used for file data.

With the original unix file system, directory enties were fixed in size. 14 bytes is all that was allocated to names. This made changing your mind later very hard, but it could have been just as easily designed with a different fixed size. These days just about everyone has variable sized directory entries and that include HP-US UFS which is willing to enforce that 14 character limit.