اطلاعیه

بستن
هنوز اطلاعیه ای در دست نیست.

inode چیست ؟

بستن
X
 
  • فیلتر کردن
  • زمان
  • نمایش
Clear All
پست های جدید

    inode چیست ؟

    در یونیکس ها همه چیز فایل است حتی دایرکتوری ها و دیوایس های سخت افزاری مانند هارد دیسک ها و ماوس و کی بورد. از دستور ls برای تعیین نوع یک فایل استفاده می شود که در خروجی آن علامت – نشان دهنده یک فایل معمولی مانند فایل های متنی و d نشان دهنده دایرکتوری و c نشان دهنده دیوایس های کاراکتری مانند کی بورد و b نشان دهنده دیوایس های بلاکی مانند هارد ها و l نشان دهنده لینک ها هستند. فایل ها دارای نامی هستند و درون دایرکتوری ها قرار دارند و خود دایرکتوری ها هم درون دایرکتوری های دیگری قرار دارند. ما برای دسترسی به یک فایل آنرا درون یک دایرکتوری با نامی ذخیره می کنیم ولی خود سیستم عامل برای دسترسی به یک فایل یا دایرکتوری از یک ساختار به نام inode یا index node استفاده می کند. هر فایل یا دایرکتوری دارای شماره ای است که به آن inode یا inode number می گویند و خود ionde ها در جدولی به نام inode table ذخیره می شوند.

    اطلاعاتی که از هر فایل در ساختار inode مربوط به آن فایل ذخیره می شوند :

    اشاره گری به آدرس محل فیزیکی ذخیره فایل
    مالک فایل و گروه فایل
    قوانین دسترسی به فایل
    اندازه فایل
    زمان اخرین دسترسی به فایل
    زمان آخرین تغییر در فایل
    زمان اخرین تغییر در inode فایل

    در اصل در سیستم فایل خود فایل با inode مربوطش شناخته می شود و اگر ساختار inode خراب شود دیگر نمی توان به فایل دسترسی داشت چون سیستم عامل کاری به نام فایل ندارد و از روی شماره inode به ساختار inode فایل دسترسی پیدا می کند. چیزی که در inode مربوط به هر فایل ذخیره نمی شود نام فایل است. نام فایل بجای ذخیره در ساختار inode فایل در ساختار inode مربوط به دایرکتوری که فایل در آن ذخیره شده است ذخیره می شود. شکل زیر ساختار inode های مربوط به دایرکتوری و فایل را نشان می دهد.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	inode-structure-of-a-directory.png نمایش ها:	1 اندازه:	12.7 KB شناسه:	18343

    شکل بالا ساختار inode مربوط به یک دایرکتوری را نشان می دهد که چیزی جز نام فایل ها و دایرکتوری ها و inode های مربوط به آنها نیست. در اولین ستون عدد inode مربوط به دایرکتوری 3470036 است. در ستونی که DOT نوشته شده و یک نقطه وجود دارد عدد inode همان 3470036 است و این بخاط این است که علامت تک نقطه نشان دهنده دایرکتوری جاری است. در فیلد پایینی DOT DOT و دو نقطه یعنی دایرکتوری والد که عدد inode برابر 3470017 است. بطور مثال وقتی دستور .. cd را می زنید که یعنی برگرد به دایرکتوری والد دیتور cd از عدد 3470017 برای تعیین دایرکتوری والد استفاده می کند. در فیلد های بعدی هم فایل ها و پوشه های دیگری هستند که inode های خوشان را دارند. برای نمایش عدد inode هر فایل یا دایرکتوری می توان از یکی از دستور های زیر استفاده کرد.

    کد PHP:
    ls  -ali  FILE_NAME 
    در خروجی دستور بالا اولین عدد هر خط inode مربوط به همان عدد است.

    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	finode.png نمایش ها:	1 اندازه:	13.1 KB شناسه:	18344

    ودر خروجی دستور زیر اولین عدد inode دایرکتوری را نشان می دهد.

    کد PHP:
    ls  -dli  DIR_NAME 
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	dinode.png نمایش ها:	1 اندازه:	7.4 KB شناسه:	18345

    از دستور stat هم می توانید استفاده کنید که در خروجی اش خطی که inode رو نشان داده است.

    کد PHP:
    stat   FILE_NAME

    stat  DIR_NAME 
    اگر می خواهید inode مر بوط به هر یک از پارتیشن ها رو پیدا کنید از دستور زیر استفاده کنید.

    کد PHP:
    du  -
    برای بزرگتر شدن عکس روی آن کلیک کنید  نام:	pinode.png نمایش ها:	1 اندازه:	12.3 KB شناسه:	18346

    می توانیم با داشتن inode یک فایل یا دایرکتوری آن فایل را پیدا کرد ( جستجو برای یافتن آن فایل) و یا به یک دایرکتوری با دستور cd رفت. اولین خط از دستور های زیر چگونگی پیدا کردن یک فایل توسط inode آن توسط دستور find را نشان می دهد و دومین خط چگونگی پیمایش به دیک دایرکتوری دیگر با داشتن inode آن دایرکتوری را نشان می دهد.

    کد PHP:
    find  DIR_NAME  -inum  INODE_NUMBER

    (cd   $(find   -inum  INODE_NUMBER 
    بطور مثال اولین خط از دستور های زیر توسط دستور find و جستجو در دایرکتوری home/ و توسط سوپیچ inum- که مخفف inode number است فایلی با inode=31419 را پیدا می کند و سپس فایل یافته شده را به سوپیچ exec- می فرستد و دستور rm را روی فایل یافته شده انجام می دهد که یعنی آنرا پاک می کند.

    کد PHP:
    ;\ {} find  /home  -inum  31419  -exec  rm -
    و دستور زیر با یافتن یک فایل با inode=8003 و ارسال آن به دستور cd وارد آن دایرکتوری می شود.

    کد PHP:
    (cd $(find  -inum  8003 
    نتیجه گیری کلی اینکه :

    همه چیز در یونیکس ها فایل هستند حتی دایرکتوری ها و دیوایس هایی مانند هارد ها و کی بورد ها
    ساختار inode مربوط به یک فایل ساده با ساختار inode یک دایرکتوری و … فرق دارند چون ماهیت فایل ها با هم متفاوت است.
    سیستم عامل از شماره inode ها برای دسترسی به یک فایل استفاده می کند.

    آموزش های مرتبط :
    سیستم فایل در یونیکس/ لینوکس – بخش اول

    سیستم فایل در یونیکس/لینوکس – بخش دوم

    سیستم فایل در یونیکس/بینوکس – بخش سوم
    نویسنده نامی امیر
    آخرین ویرایش توسط Habili; در تاریخ/ساعت 01-12-2020, 12:20 AM.

درباره انجمن منطقه لینوکسی ها

انجمن منطقه لینوکسی ها با هدف ارتقاء سطح علمی کاربران در سطح جهانی و همچنین کمک به بالا بردن سطح علمی عمومی در زمینه های تخصصی فوق پایه گذاری شده است. انجمن منطقه لینوکسی ها از طریق کارشناسان و متخصصان پاسخگوی سوالات گوناگون کاربران مبتدی یا پیشرفته میباشد تا حد امکان تلاش شده که محیطی متنوع و کاربر پسند و به دور از هرگونه حاشیه جهت فعالیت کاربران در این انجمن ایجاد شود. لذا ما به صورت مستمر برای پیشرفت کمی و کیفی محتوی و اطلاعات انجمنمان میکوشیم که این برای ما ارزشمند و حائز اهمیت است. کلیه حقوق،اطلاعات و مقالات در این انجمن متعلق به سایت منطقه لینوکسی ها میباشد، و هرگونه نسخه برداری بدون ذکر منبع مورد پیگرد قانونی خواهد شد.

شبکه های اجتماعی
در حال انجام ...
X