COMP5102 Lecture 3 Operating Systems (OS) File systems phones off (please)
© De Montfort University, 2005Comp5102/ L32 Lecture Outline File Types Files information File Access File Structure –Disk Construction –File Allocation Tables
© De Montfort University, 2005Comp5102/ L33 File Types A file may have a specific type or purpose, e.g. regular files, directories, character/block special files, pipes Some systems have specific types for things like –ASCII (text) files –executable (machine code) files File types may be enforced –MS-DOS executable must have ‘.exe’ extension or not (they are just a hint to the user) –UNIX text files may have ‘.txt’ extension File types may have associations –Apple Mac types associate a file with its creator
© De Montfort University, 2005Comp5102/ L34 File Types – Name, Extension
© De Montfort University, 2005Comp5102/ L35 Unix File Types Four basic types: Regular Files –may contain text, a program, or other data, either in ASCII, in the numerical range 0 to 127, i.e. in the 7-bit range or a binary file, whose bytes can be of all possible values 0 to 255, in the 8-bit range. Directory Files –A directory containing files within a directory E.g. directory x may contain a, b and c, and that b is a directory, containing files u and v. b can be viewed as a directory, containing files and as a file itself.
© De Montfort University, 2005Comp5102/ L36 Unix File Types …. Device Files –In Unix, physical devices (printers, terminals etc.) are represented as ``files.'' In his way, the same read() and write() functions used to read and write real files can also be used to read from and write to these devices. Link Files –new name for another file –suppose we have a file X, and type ln X Y If we then run ls, it will appear that a new file, Y, has been created, as a copy of X,
© De Montfort University, 2005Comp5102/ L37 Files info. In a given Directory The `a' (``all'') and `l' (``long'') options of the ls command can give us a lot of information about files in a specified directory: bash-2.05$ ls -al total 448 drwx--x--x 3 msaf csstf 4096 Nov 17 10:44. drwx--x--x 69 msaf csstf Nov 17 10:39.. -rwx--x--x 1 msaf csstf Nov a.out -rwx--x--x 1 msaf csstf Oct prg1 -rw msaf csstf 343 Oct prog1.c
© De Montfort University, 2005Comp5102/ L38 Files info. … The output is separated into six columns: 1st column - access permissions (see below) 2nd column - number of file entries (in the case of directory files) 3rd column - owner 4th column - size in bytes 5th column - date and time of last modification 6th column – file name
© De Montfort University, 2005Comp5102/ L39 File Access Control In Unix, all files are protected under some access control mechanism –the owner of a file can deny access of his files to others. e.g. drwxr-xr-x. The meanings of the flags are shown below: file type: d (directory) - (ordinary file) l (symbolic link)
© De Montfort University, 2005Comp5102/ L310 File Access … permissions for the owner: – r (read) – w (write) – x execute – r-x read and execute permission are granted, but not write permission, for other users. To change or delete a file you need to have write permission To view a file you need to have read permission
© De Montfort University, 2005Comp5102/ L311 Some File Commands chmod change access permissions of any of your own file. –u user (i.e. owner) –g group –o others –+ add permission –- remove permission –r read –w write –x execute
© De Montfort University, 2005Comp5102/ L312 e.g. –chmod ugo+rw prog2 –adds read and write permission for all users to the prog2 file or directory of the person issuing this command. In some cases it is useful for a user to deny himself/herself permission to write to a file, –e.g. to make sure the file not deleted by mistake.
© De Montfort University, 2005Comp5102/ L313 du and df The du command displays the sizes in kilobytes of all files in the specified directory, and the total of all those sizes; The df command displays the amount of unused space left in your disk systems. diff displays line-by-line differences between two ASCII files. If for example, you have two versions of a C source file but don't remember how the new version differs from the old one, you could type diff oldprog.c newprog.c
© De Montfort University, 2005Comp5102/ L314 Wild Cards –There are two wild-card characters in Unix, `*' and `?'. rm *.c rm x?b.c rm test[1-3].c
© De Montfort University, 2005Comp5102/ L315 File Access Methods There are two distinct classes of access method –sequential access –suited to magnetic tape devices the information in a file (bytes or records) can only be written at the end (appended) or read in sequential order –random access –suited to hard disks bytes or records can be read or written in any order sometimes this is implemented by each read and write operation specifying a position parameter, or
© De Montfort University, 2005Comp5102/ L316 File System Structure Hard disks provide the bulk of secondary storage on which a file system is maintained –to improve input / output efficiency, I/O transfers are performed in units of blocks Each block consists of one or more physical hard disk sectors –typical physical sector sizes vary from 32 to 4K bytes –usually, particularly on PC’s, sectors are 512 bytes Hard disks have two important characteristics –blocks can be read, modified and written (in place) –blocks can be directly accessed in any order
© De Montfort University, 2005Comp5102/ L317 File System Layers In order to provide convenient and efficient user access to the disk, the operating system imposes a file system structure –this generally comprises a number of layers to insulate the logical structure from device dependencies application programs logical file system basic file system I/O control hardware devices (files, directories, etc) (block read & write) (interrupts, device drivers)
© De Montfort University, 2005Comp5102/ L318 Disk Construction A hard disk consists of a number of platters –made of aluminium or glass –with a thin magnetic film on the surface –common platter diameters range from inches Information is stored magnetically on both surfaces (sides) of each platter The platters rotate at a fixed rate on the spindle –e.g. modern PC drives rotate at 5,400 or 7,200 rpm
© De Montfort University, 2005Comp5102/ L319 Read / Write Heads side view r/w headsarmsactuator Each surface has a read/write head to access the magnetic fields –the heads are mounted on arms and their movement is controlled by an actuator all the heads move together The heads do not touch the surface, but ‘fly’ a very small distance above the surface –the fly height typically between around 0.2 to 0.07 mm
© De Montfort University, 2005Comp5102/ L320 The Disk Surface The surface of a disk is logically divided into concentric circular tracks –1,000’s are now common The surface is also divided into segments –a track through a particular segment is a sector note: often the term sector is confusingly used to refer to both segments and sectors! –on typical PC disks, each sector holds 512 bytes
© De Montfort University, 2005Comp5102/ L321 data capacity of a disk is described best by: Disk Capacity = Cylinders * Heads * Sectors * (# bytes / disk block) A typical example for a 2.1 GB IDE disk on a Linux-based PC would be: C/H/S = 1024/64/63 Disk Capacity = 1024 * 64 * 63 * 512 bytes/block = bytes = 2.11 gigabytes
© De Montfort University, 2005Comp5102/ L322 File Allocation Tables The FAT is an index array of linked-list block numbers kept in its own disk block –the FAT contents are critical to finding all file blocks, so it is (usually) held twice at the start of each partition the root directory immediately follows the FATs The directory entry holds the start block of a file –the FAT entry indexed by that block number contains the block number of the next block in the chain –there is a special value to signify end of file Special values signify free blocks and bad blocks
© De Montfort University, 2005Comp5102/ L323 File Systems in Unix In Unix, the files are organized into a tree structure with a root named by the character '/'. –The first few levels of the tree look like this: