قبل از ورود به بحث inode در لینوکس خوب است تا به عنوا یک لینوکس کار با مفاهیم زیر آشنا باشید:
(user id) UID
لینوکس به هر کاربر شمارهای اختصاص میدهد و با آن شماره در ارتباط است.
(group id) GID
شمارهای است که به هر گروه در لینوکس اختصاص مییابد.
(process id) PID
هر فرایند در لینوکس شمارۀ مختص به خود را دارد و سیتم عامل با این شماره کار خواهد کرد.
inode در لینوکس
زمانی که شما به عنوان کاربر در جستجوی فایل خاصی هستید با نام آن فایل کار خواهید کرد، آیا سیستم عامل هم با اسم فایل در تعامل است؟خیر
“inode” شمارهای است که سیستم عامل به هر فایل اختصاص می دهد. برای مشاهدۀ اسن شماره از دستور ls -i استفاه میکنیم.
تعداد این شمارهها به سایز فایل سیستم، نوع فایل سیستم و تنظیمات اعمال شده بر فایل سیستم بستگی دارد. نکته ضروری اینکه در یک فایل سیستم لینوکسی به تعداد inodeها، ظرفیت فایل وجود دارد.(حتی اگر دیسک فضای خالی داشته باشد)
فرض کنید فضای روی دیسک ما ۸۰GB است ویک فایل ۱۰GB به شماره ۶۹۶۸داریم. اگر این فایل را:
کپی کنیم؛ همین مقدار فضا را اشغال کرده و دارای inode جدیدی میشود.
در محیط گرافیکی حذف کنیم صرفا برچسب نام فایل حذف میشود اما بلاک حافظه ی آن به همراه اطلاعات خاصی که سیستم عامل جهت بازیابی نگهداری میکند باقی خواهند ماند.
در محیط خط فرمان حذف کنیم تمام اطلاعات و حتی بلاک حافظه اشغال شده آزاد خواهند شد.
انتقال دهیم همان ۱۰ گیگ را اشغال کرده و بدون تغییر inode منتقل میشود.
فقط زمانی که فایل را به دایرکتوری root متقل کنیم(move) شماره inode در لینوکس تغییر خواهد یافت.دلیل این اتفاق تفاوت مکان پارتیشن فیزیکی این دایرکتوری با باقی دایرکتوری های موجود در لینوکس است.در اصطلاح به این دایرکتوری mount point میگویند. درتعریفی کوتاه، به دایرکتوری هایی که در سطح انتزاع به پارتیشن های فیزیکی اختصاص داده میشوند گویند و این عمل را mount کردن می خوانند.