File systems are a built-in part of any operating systems with the capability for long term storage. There are two distinct elements of a file system, the mechanism for storing files and the directory structure into which they are organised. In modern operating systems where it is feasible for several user to access exactly the same files simultaneously it has also become required for such features as access control and different forms of file protection to be implemented.
A file is an accumulation of binary data. A file could represent a program, a file or in some cases area of the file system itself. In modern computing it is quite common for their to be a number of different storage devices mounted on exactly the same computer. A typical data structure such as a file system allows the computer to access many different storage devices in exactly the same way, for example, when you go through the contents of a hard disk or perhaps a cd you view it through exactly the same interface even though they are completely different mediums with data mapped in it in completely different ways. Files can have completely different data structures within them but can all be accessed by exactly the same methods built to the file system. The arrangement of data within the file is then decided by this system creating it. The file systems also stores a number of attributes for the files within it.
All files have a name where they can be accessed by the user. In most modern file systems the name contains of three parts, its unique name, a period and an extension. Including the file ‘bob.jpg’ is uniquely identified by the very first word ‘bob’, the extension jpg indicates that it is a jpeg image file. The file extension allows the operating system to choose what to do with the file if someone tries to open it. The operating system maintains a list of file extension associations. Should a user try to access ‘bob.jpg’ then it would most likely be opened in long lasting systems default image viewer is.
The machine also stores the place of a file. In certain file systems files can only just be stored together contiguous block. It’s simplifies storage and use of the file as the device then only needs to learn where the file begins on the disk and how large it is. It will however cause complications if the file is to be extended or removed as there may not be room enough available to fit the larger version of the file. Most modern file systems overcome this dilemma by using linked file allocation. This allows the file to be stored in any number of segments. The file system then must store where every block of the file is and how large they are. This greatly simplifies file space allocation but is slower than contiguous allocation because it is feasible for the file to be disseminate throughout the disk. Modern operating systems overome this flaw by providing a computer defragmenter. This is a utility that rearranges all of the files on the disk in order that they are typical in contiguous blocks.
Information about the files protection is also incorporated into the file system. Protection can range from the simple systems implemented in the FAT system of early windows where files could be marked as read-only or hidden to the more secure systems implemented in NTFS where the file system administrator can set up separate read and write access rights for different users or user groups. Although file protection adds a great deal of complexity and potential difficulties it is important in an environment where many different computers or user can have use of exactly the same drives with a network or time shared system such as for instance raptor.
Some file systems also store data about which user created a file and at what time they created it. Although this isn’t essential to the running of the file system it is useful to the users of the system.
In order for a file system to function properly they want a number of defined operations for creating, opening and editing a file. Nearly all file systems provide exactly the same basic set of methods for manipulating files.
A file system must be able to create a file. To get this done there must be room enough left on the drive to fit the file. There must be no other file in the directory it is to be placed with exactly the same name. Once the file is established the device can make a record of all the attributes noted above.
Once a file has been created we could need to edit it. This may be simply appending some data to the finish of it or removing or replacing data already stored within it. When doing this the device keeps a write pointer marking where the following write operation to the file should take place.
In order for a file to be useful it must of course be readable. To get this done all you need to know the name and path of the file. From this the fb2 convert file system can ascertain where on the drive the file is stored. While reading a file the device keeps a read pointer. This stores which area of the drive is to be read next.
Sometimes it is difficult to simply read all of the file into memory. File systems also permit you to reposition the read pointer inside a file. To execute this operation the device needs to learn how far to the file you would like the read pointer to jump. A typical example of where this would be useful is a database system. Each time a query is made on the database it is obviously inefficient to see the entire file up to the point where the required data is, instead the application form managing the database would determine where in the file the required bit of data is and jump to it. This operation is often known as a file seek.
File systems also permit you to delete files. To get this done it needs to learn the name and path of the file. To delete a file the systems simply removes its entry from the directory structure and adds all the space it previously occupied to the free space list (or whatever other free space management system it uses).
They’re the absolute most basic operations required by a file system to function properly. They are contained in all modern computer file systems but the direction they function may vary. For instance, to execute the delete file operation in a modern file system like NTFS that has file protection built engrossed would be harder compared to same operation in an older file system like FAT. Both systems would first check to see whether the file was being used before continuing, NTFS would then have to check whether the user currently deleting the file has permission to complete so. Some file systems also allow multiple visitors to open exactly the same file simultaneously and have to choose whether users have permission to create a file back once again to the disk if other users currently own it open. If two users have read and write permission to file should one be allowed to overwrite it while one other really has it open? Or if one user has read-write permission and another only has read permission on a file should the user with write permission be allowed to overwrite it if theres no potential for one other user also trying to do so?