Early computer operating systems did not name files: files were submitted by their owners for processing, and were handled one at a time by human computer operators. It soon became evident that something better was needed if file processing was to be automated: files need names that humans can use to classify and manage them, and that computers can use to identify them.
Once we can assign names to files, we soon discover the need to handle name collisions that arise when the same name is assigned to two or more different files. Modern filesystems solve this problem by grouping sets of uniquely named files into logical collections called directories, or folders. We look at these in Section B.4 later in this Appendix.
We name files using characters from the host operating system's character set. In the early days of computing, there was considerable variation in character sets, but the need to exchange data between unlike systems made it evident that standardization was desirable.
In 1963, the American Standards Association  proposed a 7-bit character set with the ponderous name American Standard Code for Information Interchange, thankfully known ever since by its initial letters, ASCII (pronounced ask-ee). Seven bits permit the representation of 27 = 128 different characters, which is sufficient to handle uppercase and lowercase letters of the Latin alphabet, decimal digits, and a couple of dozen special symbols and punctuation characters, including space, ...