A filename extension is a suffix to the name of a computer file applied to show its format.
It is commonly used to infer information about what sort of data might be stored in the file.
The description above is meant to mostly explain the intent of filename extensions: a true definition, giving the criterion for deciding what part of the file name is its extension, belongs to the rules of the specific filesystem used; most times the extension is the substring which follows the last occurrence, if any, of the dot character (e.g. “txt” is the extension of the filename “readme.txt”, “html” the extension of “mysite.index.html”).
On filesystems on mainframe systems such as MVS, VMS, and PC systems such as CP/M and derivative systems such as Microsoft DOS, the extension is actually a separate namespace from the filename.
This is different from Unix-like operating systems, where filesystems do not actually support the notion of an extension, where a suffix is not a separate namespace, and where even having a suffix is voluntary for executables, as permissions are used to decide whether a file is executable.