در یونیکس ها همه چیز فایل است حتی دایرکتوری ها و دیوایس های سخت افزاری مانند هارد دیسک ها و ماوس و کی بورد. از دستور ls برای تعیین نوع یک فایل استفاده می شود که در خروجی آن علامت – نشان دهنده یک فایل معمولی مانند فایل های متنی و d نشان دهنده دایرکتوری و c نشان دهنده دیوایس های کاراکتری مانند کی بورد و b نشان دهنده دیوایس های بلاکی مانند هارد ها و l نشان دهنده لینک ها هستند. فایل ها دارای نامی هستند و درون دایرکتوری ها قرار دارند و خود دایرکتوری ها هم درون دایرکتوری های دیگری قرار دارند. ما برای دسترسی به یک فایل آنرا درون یک دایرکتوری با نامی ذخیره می کنیم ولی خود سیستم عامل برای دسترسی به یک فایل یا دایرکتوری از یک ساختار به نام inode یا index node استفاده می کند. هر فایل یا دایرکتوری دارای شماره ای است که به آن inode یا inode number می گویند و خود ionde ها در جدولی به نام inode table ذخیره می شوند.
اطلاعاتی که از هر فایل در ساختار inode مربوط به آن فایل ذخیره می شوند :
- اشاره گری به آدرس محل فیزیکی ذخیره فایل
- مالک فایل و گروه فایل
- قوانین دسترسی به فایل
- اندازه فایل
- زمان اخرین دسترسی به فایل
- زمان آخرین تغییر در فایل
- زمان اخرین تغییر در inode فایل
در اصل در سیستم فایل خود فایل با inode مربوطش شناخته می شود و اگر ساختار inode خراب شود دیگر نمی توان به فایل دسترسی داشت چون سیستم عامل کاری به نام فایل ندارد و از روی شماره inode به ساختار inode فایل دسترسی پیدا می کند. چیزی که در inode مربوط به هر فایل ذخیره نمی شود نام فایل است. نام فایل بجای ذخیره در ساختار inode فایل در ساختار inode مربوط به دایرکتوری که فایل در آن ذخیره شده است ذخیره می شود. شکل زیر ساختار inode های مربوط به دایرکتوری و فایل را نشان می دهد.
با دستور
df -ih
می توانید متوجه شوید چند درصد از inode پر شده است.
inode در سیستم عامل های یونیکسی به صورت غیر رسمی معرف فایل سیستم هست. در صنعت میزبانی به تعداد اشیاء بر واحد فایل سیستم سرور گفته میشه. بنابراین شرکت های میزبانی تعداد فایل در واحد فضا رو مبنا قرار میدن برای محدود کردن کاربر.