This document provides an overview of operating system file systems. It defines what a file is and discusses different file structures, directory structures like single level, two-level, tree-structured and acyclic graph structures. It also covers file types, file operations, space allocation techniques, security and protection methods. The document concludes with describing the basic architecture and commands of the Linux operating system.
2. Definition
• A file is a named collection of related information that is recorded on
secondary storage such as magnetic disks, magnetic tapes and optical
disks.
• In general, a file is a sequence of bits, bytes, lines or records whose
meaning is defined by the files creator and user.
3. Agenda
• Definition
• File Structure
• Directory Structure: Single level, Two-level, Tree-structured , Acyclic graph,
General graph.
• File Type and operations
• Major functions of OS in respect of File system
• File Access Mechanisms and Space Allocation
• Security and Protection
• Program and system Threats
• LINUX OPERATING SYSTEM: Architecture and basic commands
4. File Structure
• A File Structure should be according to a required format that the
operating system can understand.
• A file has a certain defined structure according to its type.
• A text file is a sequence of characters organized into lines.
• A source file is a sequence of procedures and functions.
• An object file is a sequence of bytes organized into blocks that are
understandable by the machine.
• When operating system defines different file structures, it also
contains the code to support these file structure. Unix, MS-DOS
support minimum number of file structure.
5. Single level directory
• It is simplest directory structure.
• In it all files are contained in same directory which make it easy to support and understand.
• A single level directory has a significant limitation, however, when the number of files increases or when the
system has more than one user. Since all the files are in the same directory, they must have the unique name
.
• If two users call their dataset test, then the unique name rule violated.
6. Advantages:
• Since it is a single directory, so its implementation is very easy.
• If the files are smaller in size, searching will become faster.
• The operations like file creation, searching, deletion, updating are very easy in
such a directory structure.
Disadvantages:
• There may chance of name collision because two files can not have the same
name.
• Searching will become time taking if the directory is large.
• In this can not group the same type of files together.
7. Two-level directory
•
In the two-level directory structure, each user has there own user files directory (UFD).
• The UFDs has similar structures, but each lists only the files of a single user. system’s master file directory (MFD) is
searches whenever a new user id=s logged in.
• The MFD is indexed by username or account number, and each entry points to the UFD for that user.
8. Advantages:
• We can give full path like /User-name/directory-name/.
• Different users can have same directory as well as file name.
• Searching of files become more easy due to path name and user-grouping.
Disadvantages:
• A user is not allowed to share files with other users.
• Still it not very scalable, two files of the same type cannot be grouped
together in the same user.
9. Tree-structured directory
A two-level directory as a tree of height 2, the natural generalization is to extend the directory structure to a
tree of arbitrary height.
This generalization allows the user to create there own subdirectories and to organize on their files accordingly.
A tree structure is the most common directory structure. The tree has a root directory, and every file in the
system have a unique path.
10. Advantages:
• Very generalize, since full path name can be given.
• Very scalable, the probability of name collision is less.
• Searching becomes very easy, we can use both absolute path as well as
relative.
Disadvantages:
• Every file does not fit into the hierarchical model, files may be saved into
multiple directories.
• We can not share files.
• It is inefficient, because accessing a file may go under multiple directories
11. Acyclic graph directory
An acyclic graph is a graph with no cycle and allows to share subdirectories and
files.
The same file or subdirectories may be in two different directories. It is a natural
generalization of the tree-structured directory.
It is used in the situation like when two programmers are working on a joint project
and they need to access files.
The associated files are stored in a subdirectory, separating them from other
projects and files of other programmers, since they are working on a joint project
so they want the subdirectories to be into their own directories.
The common subdirectories should be shared. So here we use Acyclic directories.
• It is the point to note that shared file is not the same as copy file . If any
programmer makes some changes in the subdirectory it will reflect in both
subdirectories.
12. Advantages:
• We can share files.
• Searching is easy due to different-different paths.
Disadvantages:
• We share the files via linking, in case of deleting it may create the problem,
• If the link is softlink then after deleting the file we left with a dangling pointer.
• In case of hardlink, to delete a file we have to delete all the reference associated with it.
Fig.1.A cyclic Graph Directory Structure
13. General graph directory structure
In general graph directory structure, cycles are allowed within a directory structure where multiple directories can
be derived from more than one parent directory.
The main problem with this kind of directory structure is to calculate total size or space that has been taken by the
files and directories.
Fig.2. General graph directory structure
14. Advantages:
• It allows cycles.
• It is more flexible than other directories structure.
Disadvantages:
• It is more costly than others.
• It needs garbage collection.
15. File Types
File type refers to the ability of the operating system to distinguish different types of file such as text files
source files and binary files etc. Many operating systems support many types of files. Operating system like MS-
DOS and UNIX have the following types of files −
• Ordinary files
• These are the files that contain user information.
• These may have text, databases or executable program.
• The user can apply various operations on such files like add, modify, delete or even remove the entire
file.
• Directory files
• These files contain list of file names and other information related to these files.
• Special files
• These files are also known as device files.
• These files represent physical device like disks, terminals, printers, networks, tape drive etc.
These files are of two types −
• Character special files − data is handled character by character as in case of terminals or printers.
• Block special files − data is handled in blocks as in the case of disks and tapes.
16. File Operations
• A file is name collection of related information which is stored on sec. storage. OS
maps the files onto sec. storage devices. Some of the major operations
performed are listed below:
• Name
• Identifiers
• Type
• Location
• Size
• Protection
• Time, Date, User Identification.
• File system
17. Major functions of OS in respect of File system
• Creation, manipulations and deletions of files and directories.
• Protection of file system control access rights of files and directories.
• Controlled of sharing files.
• Support backup and recovery of files.
• Support encryption and decryption of sensitive files
18. File Access Mechanisms
• File access mechanism refers to the manner in which the records of a
file may be accessed. There are several ways to access files −
• Sequential access
• Direct/Random access
• Indexed sequential access
19. Sequential access
• A sequential access is that in which the records are accessed in some sequence, i.e., the
information in the file is processed in order, one record after the other. This access
method is the most primitive one. Example: Compilers usually access files in this fashion.
Direct/Random access
• Random access file organization provides, accessing the records directly.
• Each record has its own address on the file with by the help of which it can be directly
accessed for reading or writing.
• The records need not be in any sequence within the file and they need not be in adjacent
locations on the storage medium.
Indexed sequential access
• This mechanism is built up on base of sequential access.
• An index is created for each file which contains pointers to various blocks.
• Index is searched sequentially and its pointer is used to access the file directly.
20. Space Allocation
• Files are allocated disk spaces by operating system. Operating systems
deploy following three main ways to allocate disk space to files.
• Contiguous Allocation
• Linked Allocation
• Indexed Allocation
Contiguous Allocation
• Each file occupies a contiguous address space on disk.
• Assigned disk address is in linear order.
• Easy to implement.
• External fragmentation is a major issue with this type of allocation technique.
21. Linked Allocation
• Each file carries a list of links to disk blocks.
• Directory contains link / pointer to first block of a file.
• No external fragmentation
• Effectively used in sequential access file.
• Inefficient in case of direct access file.
Indexed Allocation
• Provides solutions to problems of contiguous and linked allocation.
• A index block is created having all pointers to files.
• Each file has its own index block which stores the addresses of disk space
occupied by the file.
• Directory contains the addresses of index blocks of files.
22. Security and protection
• It refers to providing a protection system to computer system resources such as
CPU, memory, disk, software programs and most importantly data/information
stored in the computer system. If a computer program is run by an unauthorized
user, then he/she may cause severe damage to computer or data stored in it. So a
computer system must be protected against unauthorized access, malicious
access to system memory, viruses, worms etc.
• Authentication
• One Time passwords
• Program Threats
• System Threats
• Computer Security Classifications
23. Authentication
• It refers to identifying each user of the system and associating the
executing programs with those users. It is the responsibility of the
Operating System to create a protection system which ensures that a user
who is running a particular program is authentic. Operating Systems
generally identifies/authenticates users using following three ways −
• Username / Password − User need to enter a registered username and password
with Operating system to login into the system.
• User card/key − User need to punch card in card slot, or enter key generated by key
generator in option provided by operating system to login into the system.
• User attribute - fingerprint/ eye retina pattern/ signature − User need to pass
his/her attribute via designated input device used by operating system to login into
the system.
24. One Time passwords
• It provide additional security along with normal authentication. In
One-Time Password system, a unique password is required every time
user tries to login into the system. Once a one-time password is used,
then it cannot be used again. One-time password are implemented in
various ways.
• Random numbers − Users are provided cards having numbers printed along
with corresponding alphabets. System asks for numbers corresponding to few
alphabets randomly chosen.
• Secret key − User are provided a hardware device which can create a secret id
mapped with user id. System asks for such secret id which is to be generated
every time prior to login.
• Network password − Some commercial applications send one-time
passwords to user on registered mobile/ email which is required to be
entered prior to login.
25. Program Threats
• Operating system's processes and kernel do the designated task as instructed. If a user
program made these process do malicious tasks, then it is known as Program Threats.
One of the common example of program threat is a program installed in a computer
which can store and send user credentials via network to some hacker. Following is the
list of some well-known program threats.
• Trojan Horse − Such program traps user login credentials and stores them to send to
malicious user who can later on login to computer and can access system resources.
• Trap Door − If a program which is designed to work as required, have a security hole in its
code and perform illegal action without knowledge of user then it is called to have a trap
door.
• Logic Bomb − Logic bomb is a situation when a program misbehaves only when certain
conditions met otherwise it works as a genuine program. It is harder to detect.
• Virus − Virus as name suggest can replicate themselves on computer system. They are highly
dangerous and can modify/delete user files, crash systems. A virus is generally a small code
embedded in a program. As user accesses the program, the virus starts getting embedded in
other files/ programs and can make system unusable for user
26. System Threats
• It refers to misuse of system services and network connections to put user in trouble.
System threats can be used to launch program threats on a complete network called as
program attack. System threats creates such an environment that operating system
resources/ user files are misused. Following is the list of some well-known system
threats.
• Worm − Worm is a process which can choked down a system performance by using
system resources to extreme levels. A Worm process generates its multiple copies
where each copy uses system resources, prevents all other processes to get required
resources. Worms processes can even shut down an entire network.
• Port Scanning − Port scanning is a mechanism or means by which a hacker can
detects system vulnerabilities to make an attack on the system.
• Denial of Service − Denial of service attacks normally prevents user to make
legitimate use of the system. For example, a user may not be able to use internet if
denial of service attacks browser's content settings.
27. LINUX OPERATING SYSTEM
• Linux is one of popular version of UNIX operating System.
• It is open source as its source code is freely available.
• It is free to use.
• It was designed considering UNIX compatibility.
• Its functionality list is quite similar to that of UNIX.
28. Components of Unix System
• Unix Operating System has primarily three components
• Kernel − Kernel is the core part of Linux. It is responsible for all major activities of
this operating system. It consists of various modules and it interacts directly with the
underlying hardware. Kernel provides the required abstraction to hide low level
hardware details to system or application programs.
• System Library − System libraries are special functions or programs using which
application programs or system utilities accesses Kernel's features. These libraries
implement most of the functionalities of the operating system and do not requires
kernel module's code access rights.
• System Utility − System Utility programs are responsible to do specialized, individual
level tasks.
30. Kernel Mode vs User Mode
• Kernel component code executes in a special privileged mode called kernel
mode with full access to all resources of the computer.
• This code represents a single process, executes in single address space and
do not require any context switch and hence is very efficient and fast.
• Kernel runs each processes and provides system services to processes,
provides protected access to hardware to processes.
• Support code which is not required to run in kernel mode is in System
Library. User programs and other system programs works in User
Mode which has no access to system hardware and kernel code.
• User programs/ utilities use System libraries to access Kernel functions to
get system's low level tasks.
31. Important Features
Some of the important features of Linux Operating System are as follows:
• Portable
• Open Source
• Multi-User
• Multiprogramming
• Hierarchical File System
• Shell
• Security
32. Architecture of a Unix system −
Fig.4. Architecture of Unix Operating System
33. Architecture of a Unix System
• The architecture of a Unix System consists of the following layers −
• Hardware layer − Hardware consists of all peripheral devices (RAM/ HDD/
CPU etc).
• Kernel − It is the core component of Operating System, interacts directly with
hardware, provides low level services to upper layer components.
• Shell − An interface to kernel, hiding complexity of kernel's functions from
users. The shell takes commands from the user and executes kernel's
functions.
• Utilities − Utility programs that provide the user most of the functionalities of
an operating systems.
34. Unix Commands
The listed commands can be run on terminal:
• pwd command: This command prints the absolute path to current
working directory.
• Syntax:
$ pwd
/home/raghu
• cal command: Displays the calendar of the current month.
• Syntax
$ cal
35. • echo command: This command will echo whatever you provide it.
Syntax: $ echo "linoxide.com"
linoxide.com
• date command: Displays current time and date.
Syntax: $ date
Fri Feb 13 01:07:09 IST 2020
• tty command: Displays current terminal.
• Syntax: $ tty
/dev/pts/0
36. • Changing Directories Command: Change the current working directory to the
directory provided as argument. If no argument is given to ‘cd’, it changes the
directory to the user's home directory. The directory path can be an absolute
path or relative to current directory. The absolute path always starts with /. The
current directory can be checked with ‘pwd’ command
Syntax: $ cd [path-to-directory]
$ pwd
/home/raghu
$ cd /usr/share/
$ pwd
/usr/share
$ cd doc
$ pwd
/usr/share/doc
37. Creating files and directories
mkdir command: To create a directory, the ‘mkdir’ command is used.
Syntax: $ mkdir example
$ ls -l
total 4
drwxr-xr-x 2 raghu raghu 4096 2012-07-06 14:09 example
38. Copy, move commands
copy command: To copy file cp command is used.
Syntax: $cp source destination
move command: To Move files or directories. The 'mv' command works
like 'cp' command, except that the original file is removed. But, the mv
command can be used to rename the files (or directories).
Syntax: $ mv source destination
39. References
• Silberschatz Galvin Gagne, Operating Systems Concepts, Wiley Publication, Nine Edition, 2012.
• A S Tanenbaum, Modern Operating Systems, Prentice Hall of India New Delhi, Fourth Edition,
2015
• Maurice J. Bauch , Design of UNIX Operating System, Prentice Hall of India, Third Edition, 2007
• SibsankarHaldar Operating Systems,Pearson Publications, First Edition, 2010
• Garry Nutt, Operating Systems, Pearson Publications, Third edition, 2004
• Andrew S. Tanenbaum, Modern Operating Systems, 2nd Edition; GOAL Series, 2004.
• Evi Nemeth, Garth Snyder, The UNIX System Administration Handbook, Prentice Hall, First Edition,
2014
• Iain D. Craig , virtual machines, First Edition, Springer, 2005
• Basics of File System. Available at:
https://www.tutorialspoint.com/operating_system/os_file_system.htm [accessed on 15 April
2020]
• Basics of File System. Available at: https://www.geeksforgeeks.org/file-systems-in-operating-
system/ [accessed on 15 April 2020]