[pso] [Tema4][linux] Interebari structura filesystem

Claudiu Mihail claudiu.bogdan.mihail at gmail.com
Sun Apr 24 21:45:49 EEST 2011


Merci pentru raspunsuri.

Uitandu-ma peste tester si programul de partitionare incepusem sa ma prind
si eu incet incet.
Practic superblock-ul tine acel pointer void unde pun private data care imi
da toate informatiile
de care am nevoie (prin intermediul pitix_sb_info *sbi). Si cum oricum
fiecare inode are un pointer
catre superblock pot oricand sa fac rost de ce date am nevoie.

Totusi campul unsigned long imap din structura pitix_sb_info ce semnificatie
are?

Claudiu

2011/4/24 Alexandru Juncu <alexandru.juncu at cs.pub.ro>

> 2011/4/24 Claudiu Mihail <claudiu.bogdan.mihail at gmail.com>:
> > Salut,
> > As avea cateva intrebari legate de structura sistemului de fisiere pitix.
> Ca
> > sa fiu mai direct o sa le exprim punctual.
> > 1) Superblock-ul are dimensiunea 4096 bytes. Celelalte block-uri cat au?
> Tot
> > atat?
>
> Superblock-ul _sigur_ are 4K. Mărimea restul blocurilor este dată de
> câmpul block_size_bits din struct pitix_super_block.
> Deci citești superblock-ul și vezi acolo cum trebuie să interpretezi
> restul partiției. Noțiunea de block ar trebui să fie relativ la ce
> informație este în sb (chiar dacă checker-ul s-ar putea să testeze
> doar cu block-uri de 4K).
>
> > 2) Legat de functiile definite in pitix.h, cam ce rol ar avea de exemplu
> > static inline long get_blocks(struct super_block *sb)
> > {
> >          return 8*sb->s_blocksize;
> > }
> > Nu ma prind acel 8 de unde vine exact. Iar oarecum legat de 1)
> s_blocksize
> > banuiesc ca il setez cu sb_set_blocksize in pitix_fill_super.
>
> As far as I remember, e vorba despre mărimea blockurilor de date (vezi
> desen). Folosește funcția doar dacă ai nevoie.
>
> > Dar revenind la 1) ce valoare ar trebui sa aiba s_blocksize? In sursele
> > Minix am vazut ca in minix_fill_super se foloseste constanta
> > BLOCK_SIZE (=1024) pentru asta.
>
> See 1)
>
>
> > 3) In structura pitix_sb_info campul imap la ce se refera mai exact?
> > Cam atat momentan. As incheia cu precizarea ca in pitix.h este o greseala
> > (care citind prin arhivele mailing list-ului este de anul trecut) si
> > anume ca pitix_alloc_block(struct super_block *sb); ar trebui sa
> > returneze struct inode* si nu int.
>
>
> Anul trecut era vorba despre pitix_alloc_inode(), care era într-adevăr
> greșit. Pentru blocks, implementarea s-ar putea să fie ok cu int
> pentru că ai nevoie de indexul în bitmap-ul unde ai alocat datele (de
> menționat că unele funcții din fișierul header sunt mai mult niște
> guide line-uri luate dintr-o temă mai veche, așa că folosiți .h-ul
> când vă ajută, și nu-l lăsați să vă încurce).
>
> --
> Alex Juncu
> _______________________________________________
> http://elf.cs.pub.ro/so2/wiki/resurse/lista-discutii
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://cursuri.cs.pub.ro/pipermail/pso/attachments/20110424/9d1e3dcb/attachment-0001.htm>


More information about the pso mailing list