Inodes در لینوکس چیست و چگونه استفاده می شود؟

همه چیز در لینوکس(Linux) یک فایل برای حفظ ثبات در نظر گرفته می شود. این شامل دستگاه های سخت افزاری، چاپگرها، دایرکتوری ها و فرآیندها می شود. فایل‌های معمولی مانند موسیقی، متن، ویدئو و سایر فایل‌های چندرسانه‌ای نیز داده‌های اضافی مرتبط با آنها به نام متادیتا دارند.

Inodes در لینوکس(Linux) چیست ؟ ورودی های Inode(Inode) اساس سیستم فایل لینوکس هستند(Linux file system) . آنها ابرداده‌های مربوط به یک فایل را مدیریت می‌کنند و بخش‌های ضروری از عملکرد داخلی لینوکس(Linux) هستند. 

ساختار یک فایل سیستم چیست؟(What Is The Structure Of a File System?)

یک سیستم فایل به دو بخش تقسیم می شود - بلوک های داده و inode. تعداد بلوک ها پس از ایجاد ثابت است و نمی توان آن را تغییر داد.

نام، مسیر، مکان، پیوندها و سایر ویژگی‌های فایل در فهرست قرار ندارند. دایرکتوری ها به سادگی جداولی هستند که حاوی نام فایل ها با شماره inode منطبق هستند.

می توانید یک پیوند سخت ایجاد کنید که منجر به بیش از یک نام برای یک فایل می شود. هنگامی که یک پیوند سخت ایجاد می کنید، یک نام جدید در جدول با inode ایجاد می کند اما فایل را جابجا نمی کند.

اگر بخواهید یک فایل بزرگ را جابجا کنید، زمان زیادی طول می کشد. ایجاد ورودی نام در یک فهرست جدید و حذف ورودی قدیمی کارآمدتر است. همچنین می توانید نام فایل ها را به همین روش تغییر دهید.

قسمت بالای سلسله مراتب، خود سیستم فایل است. در سیستم فایل، نام فایل ها وجود دارد. نام فایل ها به inode ها پیوند دارند. اینودها به داده های فیزیکی پیوند دارند.

Inodes در لینوکس چیست؟(What Are Inodes In Linux?)

inode یک ساختار داده است. یک فایل یا دایرکتوری را در سیستم فایل تعریف می کند و در ورودی دایرکتوری ذخیره می شود. Inode ها به بلوک هایی اشاره می کنند که یک فایل را می سازند. inode حاوی تمام داده های مدیریتی مورد نیاز برای خواندن یک فایل است. ابرداده (metadata)هر(Every) فایل در اینودها در ساختار جدول ذخیره می شود.

هنگام استفاده از برنامه‌ای که به یک فایل با نام اشاره می‌کند، سیستم به فایل ورودی فهرستی که در آن وجود دارد نگاه می‌کند تا inode مربوطه را بالا ببرد. این به سیستم شما داده های فایل و اطلاعات مورد نیاز برای انجام فرآیندها یا عملیات را می دهد.

اینودها معمولاً در نزدیکی ابتدای یک پارتیشن(beginning of a partition) قرار دارند. آنها تمام اطلاعات مرتبط با یک فایل را به جز نام فایل و داده های واقعی ذخیره می کنند. همه فایل‌ها در هر دایرکتوری لینوکس یک نام فایل و یک شماره inode دارند. (Linux)کاربران می توانند ابرداده یک فایل را با ارجاع به شماره inode بازیابی کنند.

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

شماره Inode چیست؟(What Is The Inode Number?)

هر inode در ساختار لینوکس(Linux) دارای یک شماره منحصر به فرد است که با آن مشخص می شود. به آن شماره شاخص نیز می گویند و دارای ویژگی های زیر است:

  • اندازه
  • مالک
  • وقت قرار
  • مجوزها و کنترل دسترسی
  • مکان روی دیسک
  • انواع فایل
  • تعداد لینک ها
  • فراداده اضافی در مورد فایل

برای بررسی لیست اعداد inode از دستور زیر استفاده کنید:

ls -i

تصویر زیر فهرستی را نشان می‌دهد که اعداد ایند در ستون سمت چپ ظاهر می‌شوند.

Inodes چگونه کار می کند؟(How Do Inodes Work?)

هنگامی که یک فایل جدید ایجاد می کنید، یک نام فایل و شماره inode به آن اختصاص داده می شود. هر دو به عنوان ورودی در یک فهرست ذخیره می شوند. با اجرای دستور ls (ls -li ) لیستی از نام فایل ها و شماره های inode که در یک دایرکتوری ذخیره شده اند را به شما نشان می دهد.

از دستور زیر برای فهرست کردن اطلاعات inode برای هر فایل سیستم استفاده کنید.

df - سلام(df -hi)

از چند Inode استفاده می کنید؟

یکی از راه‌های خالی شدن فضای خالی در سیستم فایل، استفاده از تمام اینودها است. حتی اگر فضای خالی کافی روی دیسک خود داشته باشید، نمی توانید فایل های جدیدی ایجاد کنید.

استفاده از تمام اینودها همچنین می تواند منجر به توقف ناگهانی سیستم شما شود. برای مشاهده لیستی از آمار استفاده از inode مانند استفاده شده، رایگان و درصد استفاده شده، دستور زیر را تایپ کنید:

sudo df -ih

راه های اضافی استفاده از Inodes(Additional Ways Inodes Are Used)

نحوه عملکرد inode ها در لینوکس(Linux) ، وجود اعداد inode متضاد را غیرممکن می کند. ایجاد یک لینک سخت در سیستم های فایل مختلف امکان پذیر نیست. با این حال، می توانید از لینک های نرم در سیستم های فایل مختلف استفاده کنید. می‌توانید فایل‌های اصلی را حذف کنید و همچنان داده‌ها را از طریق پیوند سخت در دسترس داشته باشید.

با حذف یک فایل، تنها کاری که انجام داده اید این است که یکی از نام هایی که به یک شماره inode خاص اشاره دارد را حذف کنید. داده ها تا زمانی که همه نام های مرتبط با شماره inode یکسان را حذف نکنید، باقی خواهند ماند. سیستم های لینوکس(Linux) بدون نیاز به راه اندازی مجدد سیستم به روز رسانی می شوند تا حد زیادی به دلیل نحوه کار inodes. 

یک فرآیند می تواند همزمان از یک فایل کتابخانه ای استفاده کند که فرآیند دیگری همان فایل را با نسخه به روز شده جدیدتر جایگزین می کند و یک inode جدید ایجاد می کند. روند در حال اجرا همچنان از فایل قدیمی استفاده می کند. دفعه بعد که از همان فرآیند استفاده می کنید، از نسخه جدید استفاده می کند.

کاربران مستقیماً با inode ها تعامل ندارند، اما یک جزء اساسی از ساختار فایل لینوکس را نشان می دهند.(Linux)



About the author

من یک توسعه دهنده ماهر iOS با بیش از دوازده سال تجربه هستم. من روی هر دو پلتفرم iPhone و iPad کار کرده‌ام و می‌دانم چگونه برنامه‌ها را با استفاده از آخرین فناوری‌های اپل ایجاد و سفارشی‌سازی کنم. علاوه بر مهارت‌هایم به‌عنوان توسعه‌دهنده aiOS، تجربه قوی در استفاده از Adobe Photoshop و Illustrator و همچنین توسعه وب از طریق چارچوب‌هایی مانند WordPress و Laravel دارم.



Related posts