Open
Conversation
This documents serves as a guideline for working inside a team. It encourages members to use git and PR, work on a common design, split the work into smaller tasks and then doing peer review. The final result should be the code together with git history logs. Signed-off-by: Daniel Baluta <daniel.baluta@nxp.com>
Signed-off-by: Mara-Ioana Nicolae <maraioana9967@gmail.com>
Signed-off-by: Mara-Ioana Nicolae <maraioana9967@gmail.com>
Signed-off-by: Mara-Ioana Nicolae <maraioana9967@gmail.com>
Signed-off-by: Mara-Ioana Nicolae <maraioana9967@gmail.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Laborator 8
myfs
Exercitiul 1
Structura
file_system_typea fost initializata pentru sistemul de fisiere virtualmyfs. In functia de mount specifica acestuia am folositmount_nodevintrucat filesystem-ul este virtual si nu are nevoie de suport fizic. In functiile de init si exit ale modulului am inregistrat/eliminat sistemul de fisiere.Corectitudinea implementarii am verificat-o prin urmatoarea serie de comenzi in masina virtuala:
Exercitiul 2
In structura de tipul
super_operationsam definit functiile superblock-ului utilizandu-le pe cele genericegeneric_delete_inode()sisimple_statfs()pentru o functionalitate minimala. Dupa aceea am completat functiafill_supercompletand restul campurilor din superblock.Exercitiul 3
Completand functia
myfs_get_inodeam initializat inode-ul radacina. Prelunad informatiile din namespace-ul root am completat campurileuid,gidsimodeale inode-ului. Fiind un director, am adaugat operatiile specifice si am incrementat numarul de link-uri.Exercitiul 4
Corectitudinea rezolvarii se poate observa din outputul urmator:
minfs
Exercitiul 1
In functia de mount
myfs_mountam folositmount_bdevintrucat filesystem-ul este nu mai este virtual ci are nevoie de suport fizic. Campulfs_flagsal structurii de tipulfile_system_typeare valoareaFS_REQUIRES_DEVpentru a indica un filesystem ce utilizeaza un disk.Verificam ca filesystem-ul a fost creat cu succes:
Exercitiul 2
Cu ajutorul functiei
sb_breadcitim block-ul de la index 0, campuluib_datai se face cast la structura de tip superblockstruct minfs_super_block(structura custom) si se verifica valoarea magic number-ului. Se copiaza valorile obtinute in superblock-ul generic si in structura de tipulstruct minfs_sb_info.Exercitiul 3
Am completat functiile
minfs_alloc_inodepopuland campulvfs_inodeal structurii alocate folosind functiainode_init_once. Conform functiei utilizate,initializare se face o singura data, campurile inode-ului fiind idempotent (nu se modifica in urma operatiilor). Apoi am completat functia de dezalocare asociata.Exercitiul 4
Cu ajutorul functiei
sb_breadcitim block-ul de la index 1, apoi extragem inode-ul de index-ulino. Am completat campurileuid,gid,modesisizeale variabileiinode(VFS inode). In cazul in care inode-ul este director, atunci se completeaza si campurilei_opsii_fopsi incrementam numarul de link-uri.Acum inlocuim apelul functiei
myfs_get_inodecu aceasta functieminfs_iget.Exercitiul 5
Testam corectitudinea implementarii:
Setup: