Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

CVFS #56

Open
wants to merge 5 commits into
base: main
Choose a base branch
from
Open

CVFS #56

wants to merge 5 commits into from

Conversation

SwapnilRandive
Copy link

Project Name:- Customised virtual file system(CVFS):-

  1. Programming language :- To develope this project we select C programming as a native programming language.
  2. Operating system used:- As this project executes on a primary storage that is RAM there is no special requirement of an operating system(We can use any operating system).

File system layout:-

  1. The above layout indicates the file system.
  2. File system is divided into four parts:-
    A. Boot Block:- Its a block of 1kb size which contains the information used to start the operating system.
    When we press Power on button of laptop or desktop the code from the boot block gets executed.

B. Super Block:- Its a block of 1kb size which contains the information about whole file system.
This bolck contains the information about total number of inodes, used indoes, free inodes, total number of blocks, free blocks, used blocks, etc.

C. Disk Inode List Block(DILB):- It is a linklist of inodes.(Doubly Circular linklist)
Inode is considered as a structure(Data type) which contains information about the file.
For every file there is an saperate inode.
Operating system will access the file by considering the containts stored inside an inode.
Inode contains below things in it:-
1. Inode number
2. Name of file
3. Size of file (Allocated mamory)
4. Actual size of file (Size of data)
5. Permissions of that file
6. Last access and modification time
7. Link count
8. Block number allocatad to the file
D. Data Block:- This is one of the biggest section of file system.
The data block contains the actual data that we stored inside the file.
Each block from the data block is of 1kb size(1024 bytes).
Inside the data block there is no information about the file.
This consept of file system is applicable in any type of operating system.
All the above information is releted to the hard disk only.

(N+1) UAREA N-for processes, +1-for kernel(OS).

Data structures of file susbsystem from RAM:-

  1. UAREA:- It is called as user area.
    For every running process saperate uarea gets created.

  2. UFDT:- (User File Descriptor Table).
    It is considered as array of pointers which points to the entrys from file table.
    In UFDT first three entrys are reserved one for stdin(Keybord), one for stdout(Monitor) and one for stderr(Monitor).

  3. File Table:- This table contains the information about the opened files.
    This table contains the offsets from where we can read and write, it contains mode in which file is opened, it contains one field named as count which is associated with new process creation, it contains the pointer which points to the IIT(InCore Inode Table)

  4. InCore Inode Table:- This table holds all such inodes whose files are opened by the running processes.
    The actual inodes are stored in DILB but when any process opens the file the inode of that file gets loaded into the RAM and it gets sotred inside IIT.
    The inode from IIT contains the information like :-
    Name of file, Its inode number, Size of file, Actual size, Reference count, Block number from data block, etc.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

1 participant