Home Mail service Add to favorites  
فیزیک مهندسی و ریاضی زیست شناسی    
شیمی کیهان شناسی و اختر فیزیک فلسفه و تاریخ خدمات ایمیل

تماس با ما
در باره ما
دایره المعارف
تالار گفتمان
اخبار
کتابخانه
ژورنال
روزنامه

شنبه 20 شهریور 1389
 
 

خانه دایره المعارف --> شاخه : [ مهندسی ] --> زیر شاخه : [ كامپيوتر ]


Detailness
Generalness
 
 
Stubbiness
Long minded
مراجع:
بله
زبان دیگر:
بله
خوب
برررسی ساختارهای مورد استفاده در فایل سیستم مجازی لینوکس
فایل سیستم مجازی (Virtual File System):: یکی از قابلیت های Linux که امکان برقراری ارتباط آن را با سیستم ها و قالب های دیگر فراهم میکند وجود فایل سیستم مجازی است (VFS) . ایده سازنده VFS آنست که اشیای حاوی فایل ها و فایل سیستم ها در حافظه هسته (Kernel) طیف گسترده ای از اطلاعات را نگه می¬دارد . در VFS برای هر عمل یک تابع معادل آن وجود دارد که هسته آن را با تابع مناسب آن قالب جایگزین می¬کند . نقش VFS : VFS یک نرم افزار در لایه هسته است که تمامی فراخوان های سیستمی را پاسخ می¬دهد . قدرت اصلی آن در ایجاد یک رابط مناسب با فایل سیستم های مختلف است . VFS یک لایه انتزاعی میان برنامه های کاربردی و هسته است . برای مثال دستور زیر را بررسی می¬کنیم : cp /floppy/test /tmp/test
[ شنبه 17 آذر 1386 ] [ بازدید : 813 ]
كامپيوتر


برررسی ساختارهای مورد استفاده در فایل سیستم مجازی لینوکس
فایل سیستم مجازی (Virtual File System):: یکی از قابلیت های Linux که امکان برقراری ارتباط آن را با سیستم ها و قالب های دیگر فراهم میکند وجود فایل سیستم مجازی است (VFS) . ایده سازنده VFS آنست که اشیای حاوی فایل ها و فایل سیستم ها در حافظه هسته (Kernel) طیف گسترده ای از اطلاعات را نگه می¬دارد . در VFS برای هر عمل یک تابع معادل آن وجود دارد که هسته آن را با تابع مناسب آن قالب جایگزین می¬کند . نقش VFS : VFS یک نرم افزار در لایه هسته است که تمامی فراخوان های سیستمی را پاسخ می¬دهد . قدرت اصلی آن در ایجاد یک رابط مناسب با فایل سیستم های مختلف است . VFS یک لایه انتزاعی میان برنامه های کاربردی و هسته است . برای مثال دستور زیر را بررسی می¬کنیم : cp /floppy/test /tmp/test
[ شنبه 17 آذر 1386 ]
برررسی ساختارهای مورد استفاده در فایل سیستم مجازی لینوکس

برررسی ساختارهای مورد استفاده در فایل سیستم مجازی لینوکس

ترجمه از کتاب  : Understanding the Linux  kernel

 

بصير شريعت رضوي 810182201

محمد مقيمي نجف آبادي 810182235

 

فایل سیستم مجازی   (Virtual File System)::

یکی از قابلیت های Linux   که امکان برقراری ارتباط آن را با سیستم ها و قالب های دیگر فراهم میکند وجود فایل سیستم مجازی است (VFS) .

ایده سازنده VFS آنست که اشیای حاوی فایل ها و فایل سیستم ها در حافظه هسته (Kernel)  طیف گسترده ای از اطلاعات را نگه می­دارد . در VFS برای هر عمل یک تابع معادل آن وجود دارد که هسته آن را با تابع مناسب آن قالب جایگزین می­کند .

نقش VFS :

VFS یک نرم افزار در لایه هسته است که تمامی فراخوان های سیستمی را پاسخ می­دهد . قدرت اصلی آن در ایجاد یک رابط مناسب با فایل سیستم های مختلف است . VFS یک لایه انتزاعی میان برنامه های کاربردی و هسته است . برای مثال دستور زیر را بررسی می­کنیم :

cp      /floppy/test /tmp/test

 

فایل سیستم هایی که توسط VFS مورد استفاده و پشتیبانی قرار می­گیرند در 3 دسته زیر تقسیم می­شوند :

1-  فایل سیستم های مبتنی بر دیسک .

2-  فایل سیستم های شبکه .

3-  فایل سیستم های خاص .

 

مدل معمول فایل :

 

یکی از ایده های سازنده VFS مدل معمول فایل است . برای مثال در مدل معمول فایل هر پوشه یک فایل است که لیستی از فایل ها و پوشه های دیگر را داراست .

یک نمونه از عملکرد VFS : VFS  برای انجام عمل خواندن از شئ فایل به صورت زیر عمل می­کند:

 

file à f_op à read(…);

مدل معمول فایل اشیای زیر را در خود دارد :

1-  شئ SuperBlock:

اطلاعات مربوط به یک فایل سیستم mount شده را در خود نگه می­دارد .

2- شئ inode :

  اطلاعات کلی مربوط به یک فایل را ذخیره می­کند .

3- شئ file :

  اطلاعات مربوط به یک پروسه در حال اجرا و یک فایل باز شده توسط آن و تعاملات آنها را نگه می­دارد .

4-  شئ dentry :

اطلاعات مربوط یه یک پوشه و فایل متعلق به آن را نگهداری می­کند .

 

 

شرح ساختمان داده های VFS:

هر شئ از اشیای چهارگانه VFS  در یک ساختمان داده مناسب ذخیره می­شود . این ساختمان داده ، داده های مربوط به آن شی و اشارهگر به توابع را دربر دارد  .

شرح اشیای چهارگانه :

1-  شئ SuperBlock  :

 

 

 

تمام اشیای SuperBlock در یک لیست پیوندی دوطرفه نگهداری می­شوند .آدرس نخستین و آخرین عنصر لیست در فیلدهای next  و prev نگهداری می­شوند .

 

فیلد u اطلاعات مربوط به یک فایل سیستم خاص که آن SuperBlock به آن تعلق دارد نگهداری می­کند . برای نمونه اگر شی SuperBlock به یک فایل سیستم Ext2 اشاره بکند فیلد u یک ساختمان از نوع Ext2_sb_info را نگه می­دارد .

 

یک مساله رایج در این میان عدم همخوانی اطلاعات شی SuperBlock و فضای متناظر با آن روی دیسک است به همین دلیل یک پرچم به نام s_dirt  در نظر گرفته می­شود که مشخص می­کند که آیا اطلاعات روی دیسک به بازنویسی دارند .

آدرس توابعی که به SuperBlock متناظر شده اند در یک ساختمان از نوع super_operations به نام s_op نگهداری می­شوند .  هر فایل سیستم توابع SuperBlock  خاص خود را دارد و این توابع به صورت زیر فراخوانی می­شوند :

 

sb à s_op à read_ionde(inode);

شرح گذرای عملکرد توابعی که اعمال سطح بالا را پیاده سازی می کند در زیر می­آید :

Read_inode(inode);

داده های شئ فرستاده شده را از روی دیسک پر می­کند .

Write_inode(inode);

داده های فایل سیستم را از روی شی فرستاده شده بروز رسانی می­کند .

Put_inode(inode);

شی فرستاده شده را آزاد می­کند در حالت معمول آزاد کردن یک شئ مترادف آزاد کردن حافظه مربوط به آن نیست . چون ممکن است برنامه های دیگر در حال استفاده از آن باشند .

Delete_inode(inode);

فضای روی دیسک متناظر با شی فرستاده شده را آزاد می­کند .

Notify_change(dentry,iattr);

بعضی از فیلد های indoe را بر اساس  iattr عوض می­کند .

Put_super(super);

شئ SuperBlock فرستاده شده را آزاد می­کند .(Unmounting)

Write_super(super);

اطلاعات روی دیسک متناظر با SuperBlock داده شده را بروز رسانی می­کند .

Statfs(super,buf , bufSize);

اطلاعات آماری فابل سیستم را در buf قرار می­دهد .

Remount_fs(super ,flags , data);

فایل سیستم را مشخصه جدید مجددا mount می­کند .

Clear_inode(inode);

مشابه put_inode عمل می­کند ولی کلیه صفحات در بردارنده اطلاعات مربوط به فایل را آزاد می­کند .

Umount_begin(super);

عمل mount را متوقف می­کند .

اگرچه تمام توابع بالا برای تمام فایل سیستم ها موجود می­باشد تنها بعضی از آنها برای هر فایل سیستم پیاده سازی شده اند و آنهایی که پیاده سازی نشده اند Null می­باشند .

 

2-  شئ Inode :

تمام اطلاعاتی که فایل سیستم برای کار با یک فایل مورد نیاز است در یک ساختمان که inode نام دارد ، ذخیره  می­شوند. نام فایل یک برچسب است که به یک فایل نسبت داده می­شود که ممکن است تغییر کند .. درحالی که inode برای یک فایل یکتاست و تا زمانی که فایل وجود دارد ثابت می­ماند .  یک شئ inode که در حافظه قرار دارد یک ساختمان است 

 

فیلد u برای نگهداری داده های مربوط به inode فایل سیستم های خاص مورد استفاده قرار می­گیرد. هر شئ inode



منبع : ترجمه از کتاب : Understanding the Linux kernel
بازدید : 813
   

 

لیست شاخه ها
 
فیزیک
 
شیمی
 
ریاضی
 
ستاره شناسی
 
مهندسی

 
 
     
Untitled Document
Copyright © 2007 By VMR-PCR . Alireza Yaghoubi
All Right Reserved For VMR-PCR
Design By: Saeed .S. Jahromi