4.2.35 · D5 · HinglishOperating Systems
Question bank — ext4 structure — superblock, block groups, inodes
4.2.35 · D5· Coding › Operating Systems › ext4 structure — superblock, block groups, inodes
True ya false — justify karo
Ek ext4 filesystem par har file ka exactly ek inode hota hai.
True. Ek inode file ki identity hai; file hai hi inode. Ek file ke kai naam ho sakte hain (hard links) lekin inode hamesha ek hi hoga — isliye naam nahi, inode link count rakhta hai.
Ek directory ka apna koi inode nahi hota.
False. Directory bas ek special file hai jiska data (name → inode number) pairs ki table hai, isliye use apna inode chahiye hota hai jisme uska mode, size, aur data-block location ho — naam us table mein kyun rehte hain, yeh Hard links vs Symbolic links mein dekho.
Superblock disk ke block 0 par hota hai.
False. Pehle 1024 bytes boot sector ke liye reserved hain, isliye primary superblock byte offset 1024 par hota hai. Block 0 ko chhod diya jaata hai.
Hard link delete karne se hamesha file ke data blocks free ho jaate hain.
False. Link delete karne se sirf inode ka link count kam hota hai; data tab free hota hai jab count 0 ho jaye aur koi bhi process file ko khula na rakhe.
Block bitmap aur inode bitmap ka size same hota hai.
Meaning mein False, bytes mein aksar equal. Dono exactly ek block ke hote hain, lekin block bitmap mein har block ke liye ek bit hai jabki inode bitmap mein group ke har inode ke liye — ye alag-alag pools track karte hain jo ek-ek block mein fit ho jaate hain.
Backup superblocks mein primary jaisi hi core geometry hoti hai.
True. Redundancy ka yahi poora point hai: agar offset 1024 wala primary corrupt ho jaye,
fsck backup se rebuild kar sakta hai kyunki backup identical block size, counts, aur layout describe karta hai.Extents file ke byte offset ka idea replace kar dete hain — ab tumhe logical block numbers ki zaroorat nahi.
False. Extents ab bhi logical block ranges ko physical ranges se map karte hain; ye sirf ek pointer-per-block ki jagah ek record mein bahut saare contiguous blocks describe karte hain. Logical offsets hi wo tarika hai jisse OS byte dhundta hai.
Ek empty file (0 bytes) phir bhi ek inode consume karta hai.
True. Jis moment file banti hai inode exist karta hai, jisme mode, owner, aur timestamps hote hain; zero data blocks ke bawajood inode-table slot kharach hoti hai. Isliye
df -i 0 dikha sakta hai jabki df free space dikhata ho.SSDs par block groups bekar hain kyunki SSDs mein seek time nahi hota.
False. Locality asli motive tha, lekin groups bitmap size ko bound bhi karte hain, related metadata ko localize karte hain, aur fragmentation reduce karte hain — ye sab flash par bhi valuable hain. Dekho ext2 vs ext3 vs ext4.
Magic number 0xEF53 filesystem ka UUID hai.
False.
0xEF53 ek fixed constant hai jo filesystem type (ext2/3/4) identify karta hai; UUID ek unique per-filesystem identifier hai jo superblock mein alag se store hota hai.Error dhundho
"Inode 0 root directory hai, isliye path resolution wahan se shuru hoti hai."
Do errors hain: inode numbering 1-based hai (koi normal file inode 0 nahi hoti), aur root inode 2 hai (inodes 1–10 reserved hain). Resolution inode 2 se shuru hoti hai.
"File rename karne ke liye, ext4 inode ko naye naam se rewrite karta hai."
Inode ne kabhi naam store nahi kiya. Rename karne se sirf directory entry edit hoti hai (ya entry kisi doosri directory ke data mein move hoti hai), inode untouched rehta hai.
"Ek group inodes hold karta hai kyunki inode bitmap ek block ka hota hai."
formula blocks per group deta hai, jo block bitmap se drive hota hai. Inodes-per-group ek independent
mkfs parameter hai (jaise 8192), se force nahi hota."Kyunki superblock free counts store karta hai, ise padhne se pata chalta hai exactly kaun se blocks free hain."
Superblock sirf kitne free hain ye store karta hai, kaun se nahi. Per-group block bitmap "kaun se" ka jawab deta hai; superblock sirf totals summarise karta hai — dekho Bitmaps for allocation.
"ext4 by default file data ko journal karta hai isliye crash par koi byte kabhi lost nahi hoti."
Default mein ext4 metadata journal karta hai (ordered mode), full data nahi. Full data journaling exist karta hai lekin opt-in hai aur slower hai. Dekho Journaling.
"Symbolic link aur hard link dono target ka inode share karte hain."
Sirf hard link inode share karta hai. Symbolic link ek alag file hai jiska data target ka ek text path hai, apne inode ke saath — Hard links vs Symbolic links.
"Inode table files create hone par allocate hoti hai, isliye ye demand par grow karti hai."
Inode table format (
mkfs) ke time pre-allocate hoti hai. Iska size hamesha ke liye fixed hai; bina reformat kiye inode pool baad mein grow nahi ho sakta.Why questions
Filename directory mein kyun rakha jaata hai, inode mein kyun nahi?
Taaki multiple naam ek inode ko point kar sakein (hard links). Agar naam inode mein hota, ek file ka sirf ek hi naam ho sakta, aur hard links impossible ho jaate.
Single block bitmap block group ka size kyun cap karta hai?
Bitmap mein jo blocks wo track karta hai unme se har ek ke liye ek bit honi chahiye aur ye exactly ek block ( bits) ka hota hai. Tumhare paas jitne bits hain usse zyada blocks track nahi kar sakte, isliye group mein zyada se zyada blocks ho sakte hain.
ext4 metadata (inode table, bitmaps) disk ke front par rakhne ki bajaye har group ke andar kyun rakhta hai?
File ke inode ko uske data ke physically paas rakhne ke liye, disk par head travel minimize karne aur us metadata ko localize karne ke liye jise bitmap describe karta hai — yeh locality argument Disk Scheduling se linked hai.
Large files ke liye ext2/3 indirect block pointers se extents prefer kyun karein?
Ek extent poore contiguous run (jaise 100 blocks) ko ek single record mein describe karta hai, jabki indirect pointers ko har block ke liye ek pointer chahiye. Extents bahut zyada compact hain aur walk karne mein fast hain.
Group/index math mein kyun use karna padta hai?
Inode numbers 1-based hain lekin inode table 0-based array hai. skip karne par har calculation shift ho jaati hai aur tum exactly group boundaries par galat group mein land karte ho.
Ek full filesystem phir bhi naya file create karne se kyun mana kar sakta hai?
Files ko ek free inode chahiye, jo ek alag fixed pool hai jo format time par set hota hai. Inodes exhaust karna (laakhon chhoti files) creation block kar deta hai chahe free bytes hon — classic
df vs df -i split.Superblock duplicate kyun hota hai lekin inode table nahi?
Superblock poore filesystem ko describe karne wala single point of failure hai, isliye redundancy sasti aur zaroori hai. Inode table badi hoti hai aur per-group hoti hai; ise duplicate karna enormous space waste karega, aur iska loss localized hota hai.
Edge cases
Ek brand-new, empty directory ka link count kya hota hai?
Do. Uske parent ka ek entry uski taraf point karta hai, aur uska apna
. entry khud ki taraf point karta hai — dono directory ke inode ke hard links count hote hain.Jab koi process file padhte waqt last hard link remove ho jaaye tab open file descriptors ka kya hota hai?
Directory entry gayab ho jaati hai isliye naam chala jaata hai, lekin inode aur uska data tab tak survive karta hai jab tak process descriptor close na kare; link count 0 hai lekin open count nahi.
Agar disk size group size ka poora multiple nahi hai, toh last group ka kya hota hai?
Aakhri block group simply chhota hota hai — isme kam data blocks hote hain. Iska bitmap non-existent blocks ko used mark karta hai taaki allocation kabhi unhe na de.
Kya inode number 0 kabhi kisi file ko assign ho sakta hai?
Nahi. Inode 0 directory entries mein "no inode / empty" sentinel ki tarah use hota hai, isliye ek valid file ka inode 0 kabhi nahi hota — isliye numbering 1 se shuru hoti hai.
Ek deleted file ke slot ki taraf point karne wali directory entry kaisi dikhti hai?
Uska inode field 0 set hota hai, jo slot ko free/unused mark karta hai taaki future lookups ise skip karein aur naye entries space reuse kar sakein.
Agar block size 4 KiB ki jagah 1 KiB hoti, toh group geometry kaise change hoti?
Blocks per group blocks ho jaata hai, isliye har group sirf span karta hai — chhote groups, zyada groups, aur relatively zyada metadata overhead.
Recall Jaane se pehle ek-line self-test
Ye cover karo aur answer do: Filename kahan hai, root kaun sa inode hai, aur block group ka size kya cap karta hai? Filename ::: directory entry mein (name → inode number), inode mein kabhi nahi. Root inode ::: inode 2 (1–10 reserved). Group size cap ::: single block bitmap — bits matlab group mein zyada se zyada blocks.