ഫയൽ സിസ്റ്റങ്ങൾ ext2, ext3, XFS, ReiserFS, NTFS. Ext2 ടെസ്റ്റ് ഫലങ്ങളുടെ ഫിസിക്കൽ ഓർഗനൈസേഷൻ ആൻഡ്രൂ

14 ജൂൺ

ഫയൽ സിസ്റ്റങ്ങൾ ext2, ext3, XFS, ReiserFS, NTFS

ഫയൽ സിസ്റ്റം- കമ്പ്യൂട്ടറുകളിലെ ഏതെങ്കിലും ഇലക്ട്രോണിക് സ്റ്റോറേജ് മീഡിയയിലെ ഡാറ്റയുടെ ഓർഗനൈസേഷൻ, സംഭരണം, പേരിടൽ എന്നിവ നിർണ്ണയിക്കുന്ന ഒരു ഓർഡറാണിത്.

ഓരോന്നും അതിന്റെ നിർദ്ദിഷ്ട ടാസ്‌ക് പാക്കേജിനായി കണ്ടുപിടിച്ചതാണ് എന്ന വസ്തുതയാണ് വിവിധ ഫയൽ സിസ്റ്റങ്ങളെ വിശദീകരിക്കുന്നത്. ചിലർ ചെറിയ ഫയലുകൾ വളരെ വേഗത്തിൽ എഴുതുന്നു (പറയുക, 1GB വരെ), എന്നാൽ അതേ സമയം വലിയ ഫയലുകളുമായി മോശമായി ഇടപഴകുകയോ അവയിൽ പ്രവർത്തിക്കുകയോ ചെയ്യുന്നില്ല. ചിലത് സുരക്ഷയുടെ കാര്യത്തിൽ മികച്ചതാണ്, മറ്റുള്ളവ എഴുത്ത് / വായന വേഗതയുടെ കാര്യത്തിൽ. ഓരോ ഫയൽ സിസ്റ്റത്തിനും അതിന്റെ ഗുണങ്ങളും ദോഷങ്ങളും കേടുപാടുകളും വ്യതിരിക്തമായ സവിശേഷതകളും ഉണ്ട്.

IN ലിനക്സ്ഏറ്റവും സാധാരണയായി ഉപയോഗിക്കുന്ന ഫയൽ സിസ്റ്റങ്ങൾ ഇവയാണ്:

  1. ext2- നിലകൊള്ളുന്നു രണ്ടാമത്തെ വിപുലീകൃത ഫയൽ സിസ്റ്റം(രണ്ടാമത്തെ വിപുലീകൃത ഫയൽ സിസ്റ്റം). ലിനക്സ് കേർണലിനുള്ള ഫയൽ സിസ്റ്റമായി 1993-ൽ റെമി കാർഡ് വികസിപ്പിച്ചെടുത്തു, 1993-2001 വരെ ഇത് പ്രധാന ഫയൽ സിസ്റ്റമായിരുന്നു. ലിനക്സ്.
    ഉയർന്ന വായന / എഴുത്ത് വേഗതയാണ് നേട്ടം.
    സിസ്റ്റത്തിന്റെ പ്രധാന പോരായ്മ ext2ഇത് ജേർണൽ ചെയ്തിട്ടില്ല എന്നതാണ്, പക്ഷേ ഇതിന് മികച്ച പ്രകടനം കാഴ്ചവച്ചതിന് നന്ദി ( ലോഗിംഗ്- വിവിധ സിസ്റ്റം പരാജയങ്ങളിൽ ഫയൽ സിസ്റ്റത്തിന്റെ സമഗ്രത നിലനിർത്താൻ സഹായിക്കുന്ന മാറ്റങ്ങളുടെ ഒരു ലിസ്റ്റ് സംഭരിക്കുന്ന ഒരു ലോഗിംഗ് പ്രക്രിയയാണിത്);
  2. ext3- നിലകൊള്ളുന്നു മൂന്നാമത്തെ വിപുലീകൃത ഫയൽ സിസ്റ്റം(വിപുലീകരിച്ച ഫയൽ സിസ്റ്റത്തിന്റെ മൂന്നാം പതിപ്പ്). 2001-ൽ സ്റ്റീഫൻ ട്വീഡി വികസിപ്പിച്ചെടുത്തത്, ഇന്നുവരെ വിതരണങ്ങളിൽ ഉപയോഗിച്ചുവരുന്നു ലിനക്സ്. മെച്ചപ്പെട്ടവനായി ജനിച്ചു ext2.
    ഈ സംവിധാനത്തിന്റെ പ്രയോജനം അത് ജേർണൽ ചെയ്യപ്പെടുന്നു എന്നതാണ്, അതായത്, അതിന്റെ വിശ്വാസ്യത താരതമ്യം ചെയ്യുമ്പോൾ പല തവണ വർദ്ധിക്കുന്നു. ext2.
    പോരായ്മ അല്പം കുറഞ്ഞ പ്രകടനവും വായന / എഴുത്ത് വേഗതയുമാണ്.
  3. എക്സ്എഫ്എസ്- കമ്പനി വികസിപ്പിച്ചെടുത്തത് സിലിക്കൺ ഗ്രാഫിക്സ് 1993-ൽ, കേർണലിലേക്ക് ചേർത്തു ലിനക്സ് 2002-ൽ ഒരു ഫയൽ സിസ്റ്റമായി മുഴുവൻ വിതരണ കുടുംബത്തിനും ലിനക്സ്, നിലവിൽ വിതരണത്തിൽ "നേറ്റീവ്" ആയി ഉപയോഗിക്കുന്നു ചുവന്ന തൊപ്പി.
    മെറ്റാഡാറ്റ ലോഗിംഗിന്റെ സാന്നിധ്യം, ജോലിയുടെ ഉയർന്ന സ്ഥിരത, ഗ്രൂപ്പുകളായി ഐ / ഒ സ്ട്രീമുകളുടെ വിതരണം പിന്തുണയ്ക്കുന്നു, ഉയർന്ന വായന / എഴുത്ത് വേഗത, പാർട്ടീഷൻ മൌണ്ട് ചെയ്യുമ്പോൾ പോലും ഡീഫ്രാഗ്മെന്റ് ചെയ്യാൻ കഴിയും, കൂടാതെ നിങ്ങൾക്ക് വലുപ്പം വർദ്ധിപ്പിക്കാനും കഴിയും. ഫയൽ സിസ്റ്റത്തിന്റെ. വലിയ ഫയലുകളിൽ ഏറ്റവും ഫലപ്രദമായി പ്രവർത്തിക്കുന്നു.
    പാർട്ടീഷന്റെ വലുപ്പം കുറയ്ക്കാൻ കഴിയില്ല എന്നതാണ് പോരായ്മ, മെറ്റാഡാറ്റയുടെ പ്രോസസ്സിംഗ് അത്ര വേഗത്തിലല്ല, മറ്റ് തരത്തിലുള്ള ഫയൽ സിസ്റ്റങ്ങളെ അപേക്ഷിച്ച് ചെറിയ ഫയലുകളിൽ ഇത് വളരെ സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നു.
  4. ReiserFS- കമ്പനി വികസിപ്പിച്ചെടുത്തത് പേരുകൾ 2001-ൽ ഹാൻസ് റീസറിന്റെ നേതൃത്വത്തിൽ. ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ മാത്രം ഉപയോഗിക്കുന്നു ലിനക്സ്. കേർണലിലേക്ക് സ്വീകരിച്ച ആദ്യത്തെ ജേണലിംഗ് ഫയൽ സിസ്റ്റമായിരുന്നു അത്.
    ചെറിയ ഫയലുകളിൽ വളരെ വേഗത്തിൽ പ്രവർത്തിക്കുന്നു എന്നതാണ് ഈ ഫയൽ സിസ്റ്റത്തിന്റെ പ്രയോജനം (വായന/എഴുത്ത് വേഗത കുടുംബത്തേക്കാൾ കൂടുതലാണ്. ext4), ലോഗിംഗ് പിന്തുണയ്ക്കുന്നു.
    ഹെഡ് ഹാൻസ് റെയ്‌സറിന്റെ അറസ്റ്റ് കാരണം അതിന്റെ വികസനം ഗണ്യമായി കുറഞ്ഞു, പശ്ചാത്തല എൻക്രിപ്ഷൻ ഇല്ല എന്നതാണ് പോരായ്മ.
  5. NTFS- നിലകൊള്ളുന്നു പുതിയ സാങ്കേതിക ഫയൽ സിസ്റ്റം(പുതിയ സാങ്കേതിക ഫയൽ സിസ്റ്റം). കോർപ്പറേഷൻ 1993 ജൂലൈയിൽ വികസിപ്പിച്ചെടുത്തു മൈക്രോസോഫ്റ്റ്. വിവിധ ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലും വിവിധ സ്റ്റോറേജ് മീഡിയകളിലും ഇത് വ്യാപകമായി ഉപയോഗിക്കുന്നു.
    വ്യത്യസ്ത ഉപയോക്താക്കൾക്കായി ഡാറ്റയിലേക്കുള്ള ആക്സസ് പരിമിതപ്പെടുത്താനുള്ള ബിൽറ്റ്-ഇൻ കഴിവ്, അതുപോലെ തന്നെ പരമാവധി ഡിസ്ക് സ്പേസ്, ഒരു ജേണലിംഗ് സിസ്റ്റത്തിന്റെ ഉപയോഗം, ചെറിയ ഫയലുകൾ അതിവേഗ വായന / റൈറ്റിംഗ് എന്നിവയിൽ പരിധി നിശ്ചയിക്കുക എന്നിവയാണ് പ്രയോജനം.
    സ്ഥിരതയുള്ള പ്രവർത്തനത്തിന് ഒരു ചെറിയ പിസി റാം ആവശ്യമുണ്ട് എന്നതാണ് പോരായ്മ, ഇത് വലിയ ഫയലുകളിൽ സാവധാനത്തിൽ പ്രവർത്തിക്കുന്നു, ഫയൽ പാതയുടെ ദൈർഘ്യം പരിമിതമാണ് (32,767 യൂണികോഡ് പ്രതീകങ്ങൾ).

വളരെ ലളിതമായി, ഞങ്ങൾ "ഫയൽ സിസ്റ്റങ്ങൾ" കണ്ടെത്തി ext2, ext3, എക്സ്എഫ്എസ്, ReiserFS, NTFS«!

(രണ്ടാം വിപുലീകൃത ഫയൽ സിസ്റ്റം).

ലിനക്സ് ഫയൽ സിസ്റ്റങ്ങളുടെ വികസനത്തിന്റെ ചരിത്രം

ext2fs-ലെ ഡിസ്ക് പാർട്ടീഷൻ ഘടന

·

· കാറ്റലോഗുകൾ

· ഉപകരണ ഫയലുകൾ

·

·

EXT2fs ലൈബ്രറി

· EXT2fs സിസ്റ്റം ടൂളുകൾ

· പ്രകടന കണക്കുകൂട്ടൽ

മത്ഫക്

സോഫ്റ്റ്വെയർ

2nd കോഴ്സ് 5th gr.

ചിച്ചിറോവ് ആൻഡ്രി

ഫയൽ സിസ്റ്റം EXT2fs (രണ്ടാം വിപുലീകൃത ഫയൽ സിസ്റ്റം).

ലിനക്സ് ഫയൽ സിസ്റ്റങ്ങളുടെ വികസനത്തിന്റെ ചരിത്രം

Minix ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ അടിസ്ഥാനത്തിലാണ് Linux-ന്റെ ആദ്യ പതിപ്പുകൾ വികസിപ്പിച്ചെടുത്തത്. ഒരു പുതിയ ഫയൽ സിസ്റ്റം വികസിപ്പിക്കുന്നതിനേക്കാൾ രണ്ട് സിസ്റ്റങ്ങൾക്കിടയിൽ ഡിസ്കുകൾ പങ്കിടുന്നത് എളുപ്പമായിരിക്കും, അതിനാൽ ലിനക്സിൽ മിനിക്സ് ഫയൽ സിസ്റ്റത്തിനുള്ള പിന്തുണ അവതരിപ്പിക്കാൻ ലിനസ് ടോർവാൾഡ്സ് തീരുമാനിച്ചു. അക്കാലത്ത്, ഈ ഫയൽ സിസ്റ്റം താരതമ്യേന കുറച്ച് ബഗുകളുള്ള സാമാന്യം കാര്യക്ഷമമായ ഒരു സോഫ്റ്റ്‌വെയർ ആയിരുന്നു.

എന്നിരുന്നാലും, Minix ഫയൽ സിസ്റ്റത്തിന്റെ ഘടനയുമായി ബന്ധപ്പെട്ട പരിമിതികൾ വളരെ ഉയർന്നതാണ്, അതിനാൽ Linux-നായി ഒരു പുതിയ ഫയൽ സിസ്റ്റം വികസിപ്പിക്കുന്നതിനെക്കുറിച്ച് അവർ ചിന്തിക്കാൻ തുടങ്ങി.

ലിനക്സ് കേർണലിലേക്ക് ഒരു പുതിയ ഫയൽ സിസ്റ്റം അവതരിപ്പിക്കുന്നത് ലളിതമാക്കാൻ, ഒരു വെർച്വൽ ഫയൽ സിസ്റ്റം (VFS) വികസിപ്പിച്ചെടുത്തു. VFS യഥാർത്ഥത്തിൽ ക്രിസ് പ്രോവെൻസാനോ എഴുതിയതാണ്, തുടർന്ന് കേർണലിലേക്ക് സംയോജിപ്പിക്കുന്നതിന് മുമ്പ് ലിനസ് ടോർവാൾഡ്സ് വീണ്ടും എഴുതിയതാണ്.

VFS കേർണലിൽ ഇൻസ്റ്റാൾ ചെയ്ത ശേഷം, 1992 ഏപ്രിലിൽ ഒരു പുതിയ ഫയൽ സിസ്റ്റം EXTfs (എക്‌സ്റ്റെൻഡഡ് ഫയൽ സിസ്റ്റം) വികസിപ്പിക്കുകയും ലിനക്സ് പതിപ്പ് 0.96c-ലേക്ക് ചേർക്കുകയും ചെയ്തു. പുതിയ ഫയൽ സിസ്റ്റം Minix സിസ്റ്റത്തിന്റെ രണ്ട് പ്രധാന പരിമിതികൾ നീക്കംചെയ്തു: അതിന്റെ പരമാവധി വലിപ്പം 2 ജിഗാബൈറ്റ്, ഒരു ഫയൽ നാമത്തിന്റെ പരമാവധി ദൈർഘ്യം - 255 പ്രതീകങ്ങൾ. ഇത് Minix ഫയൽ സിസ്റ്റത്തേക്കാൾ ഒരു മെച്ചപ്പെടുത്തലായിരുന്നു, എന്നിരുന്നാലും ചില പ്രശ്നങ്ങൾ ഉണ്ടായിരുന്നു. സ്പ്ലിറ്റ് ആക്‌സസ്, ഐനോഡ് പരിഷ്‌ക്കരണം, ഫയൽ പരിഷ്‌ക്കരണ സമയ സെല്ലുകളുടെ പരിഷ്‌ക്കരണം എന്നിവയ്‌ക്ക് പിന്തുണയില്ല. ഈ ഫയൽ സിസ്റ്റം സ്വതന്ത്ര ബ്ലോക്കുകളിലും ഐനോഡുകളിലും പ്രവർത്തിക്കാൻ ലിങ്ക്ഡ് ലിസ്റ്റുകൾ ഉപയോഗിച്ചു, ഇത് സിസ്റ്റത്തിന്റെ പ്രവർത്തനത്തെ വളരെയധികം ബാധിച്ചു: കാലക്രമേണ, ലിസ്റ്റുകൾ ക്രമരഹിതമാവുകയും അടുക്കുകയും ചെയ്തു, ഇത് ഫയൽ സിസ്റ്റം വിഘടനത്തിലേക്ക് നയിച്ചു.

1993 ജനുവരിയിൽ രണ്ട് പുതിയ ഫയൽ സിസ്റ്റങ്ങളുടെ ആൽഫ പതിപ്പുകൾ പുറത്തിറക്കിയതാണ് ഈ പ്രശ്‌നങ്ങൾക്കുള്ള പരിഹാരം: Xia, EXT2fs (സെക്കൻഡ് എക്സ്റ്റൻഡഡ് ഫയൽ സിസ്റ്റം). മിക്കവാറും, Xia ഫയൽ സിസ്റ്റം കുറച്ച് പുതിയ സവിശേഷതകൾ ചേർത്തുകൊണ്ട് Minix അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ദൈർഘ്യമേറിയ ഫയൽ നാമങ്ങൾക്കൊപ്പം പ്രവർത്തിക്കാനുള്ള കഴിവ്, വലിയ ഡിസ്ക് പാർട്ടീഷനുകൾക്കുള്ള പിന്തുണ, മൂന്ന് ഫയൽ മാറ്റ സമയ സ്ലോട്ടുകൾക്കുള്ള പിന്തുണ എന്നിവയായിരുന്നു ഇവ പ്രധാനമായും. മറുവശത്ത്, EXT2fs നിരവധി മെച്ചപ്പെടുത്തലുകളും കൂട്ടിച്ചേർക്കലുകളും ഉള്ള EXTf-കളെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. ഭാവി വികസനത്തിനുള്ള അവസരങ്ങളും അവൾക്കുണ്ടായിരുന്നു.

ഈ രണ്ട് ഫയൽസിസ്റ്റങ്ങളും പുറത്തിറങ്ങിയപ്പോൾ, അവ പ്രവർത്തനപരമായി ഏകദേശം തുല്യമായിരുന്നു. Xia സിസ്റ്റം EXT2fs-നേക്കാൾ കൂടുതൽ വിശ്വസനീയമായിരുന്നു, അത് ചെറുതാക്കി. അവ കൂടുതൽ വ്യാപകമായി ഉപയോഗിക്കപ്പെട്ടപ്പോൾ, EXT2fs സിസ്റ്റത്തിൽ ബഗുകൾ കണ്ടെത്തി, കൂടാതെ ധാരാളം പുതിയ സവിശേഷതകളും മെച്ചപ്പെടുത്തലുകളും ചേർത്തു. നിലവിൽ, EXT2fs ഫയൽ സിസ്റ്റം വളരെ വിശ്വസനീയമാണ്, അത് യഥാർത്ഥ ലിനക്സ് ഫയൽ സിസ്റ്റമായി മാറിയിരിക്കുന്നു.

വിവിധ ഫയൽ സിസ്റ്റങ്ങൾ നൽകുന്ന പ്രവർത്തനത്തെക്കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങൾ ഇനിപ്പറയുന്ന പട്ടികയിൽ അടങ്ങിയിരിക്കുന്നു.

മിനിക്സ് എഫ്എസ്

ExtFS

Ext2FS

സിയ എഫ്എസ്

പരമാവധി ഫയൽ സിസ്റ്റം വലിപ്പം

പരമാവധി ഫയൽ ദൈർഘ്യം

ഫയൽനാമത്തിന്റെ പരമാവധി ദൈർഘ്യം

മൂന്ന് ഫയൽ പരിഷ്ക്കരണ സമയ സെല്ലുകൾക്കുള്ള പിന്തുണ

വിപുലീകരണത്തിനുള്ള സാധ്യത

വലുപ്പം മാറ്റാവുന്ന ബ്ലോക്ക്

വിവര സംരക്ഷണം

ആവശ്യമെങ്കിൽ, ഫയലിന്റെ പേരിന്റെ ദൈർഘ്യം Ext 2 1012 വരെ വർധിപ്പിക്കാം.

EXT2fs റൂട്ട് ഉപയോക്താവിനായി നിരവധി ബ്ലോക്കുകൾ റിസർവ് ചെയ്യുന്നു. ഇത് സാധാരണയായി മൊത്തം തുകയുടെ 5% ആണ്, ഇത് മറ്റ് ഉപയോക്താക്കളുടെ പ്രോസസുകളുടെ പ്രവർത്തനത്തിൽ നിറയുമ്പോൾ ഹാർഡ് ഡിസ്കിൽ ഇടം തീരുന്നത് ഒഴിവാക്കാൻ സിസ്റ്റം അഡ്മിനിസ്ട്രേറ്ററെ അനുവദിക്കുന്നു.

ext2fs-ലെ ഡിസ്ക് പാർട്ടീഷൻ ഘടന

ഹാർഡ് ഡ്രൈവ് നിർമ്മാതാക്കൾ സാധാരണയായി അവരുടെ ഉൽപ്പന്നങ്ങൾ കുറഞ്ഞ ഫോർമാറ്റിലാണ് അയയ്ക്കുന്നത്. എനിക്കറിയാവുന്നിടത്തോളം, 512 ബൈറ്റുകൾ വലിപ്പമുള്ള പ്രത്യേക ലേബലുകളുടെ സഹായത്തോടെ എല്ലാ ഡിസ്ക് സ്ഥലങ്ങളും "സെക്ടറുകളായി" തിരിച്ചിരിക്കുന്നു എന്നാണ് ഇതിനർത്ഥം. അത്തരം ഒരു ഡിസ്ക് (അല്ലെങ്കിൽ ഡിസ്ക് പാർട്ടീഷൻ) ഒരു പ്രത്യേക ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ ഉപയോഗിക്കുന്നതിന് തയ്യാറാക്കണം. MS-DOS-ലോ വിൻഡോസിലോ, തയ്യാറാക്കൽ പ്രക്രിയയെ ഫോർമാറ്റിംഗ് എന്നും ലിനക്സിൽ ഒരു ഫയൽ സിസ്റ്റം സൃഷ്ടിക്കൽ എന്നും വിളിക്കുന്നു. ഒരു ഫയൽ സിസ്റ്റം ഉണ്ടാക്കുന്നു ext2fsഡിസ്ക് പാർട്ടീഷനിൽ ഒരു നിശ്ചിത ലോജിക്കൽ ഘടന ഉണ്ടാക്കുക എന്നതാണ്. ഈ ഘടന ഇനിപ്പറയുന്ന രീതിയിൽ നിർമ്മിച്ചിരിക്കുന്നു. ആദ്യം, ഡിസ്കിൽ ഒരു ബൂട്ട് ഏരിയ അനുവദിച്ചിരിക്കുന്നു. ഏത് ഫയൽ സിസ്റ്റത്തിലും ബൂട്ട് ഏരിയ സൃഷ്ടിച്ചിരിക്കുന്നു. പ്രൈമറി പാർട്ടീഷനിൽ, അതിൽ ഒരു ബൂട്ട് എൻട്രി അടങ്ങിയിരിക്കുന്നു, സ്റ്റാർട്ടപ്പിൽ ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ ബൂട്ട് പ്രക്രിയ ആരംഭിക്കുന്ന ഒരു കോഡ്. ഈ പ്രദേശം മറ്റ് വിഭാഗങ്ങളിൽ ഉപയോഗിക്കുന്നില്ല. ബാക്കിയുള്ള ഡിസ്ക് സ്പേസ് ബ്ലോക്കുകളായി തിരിച്ചിരിക്കുന്നു. ഒരു ബ്ലോക്കിന് 1, 2, അല്ലെങ്കിൽ 4 കിലോബൈറ്റ് വലുപ്പമുണ്ടാകാം. ഡിസ്ക് സ്‌പെയ്‌സിന്റെ അഡ്രസ് ചെയ്യാവുന്ന യൂണിറ്റാണ് ബ്ലോക്ക്. ഫയലുകൾക്കായി സ്ഥലം അനുവദിക്കുന്നത് ബ്ലോക്കുകളിലാണ് ചെയ്യുന്നത്, അതിനാൽ ഒരു ബ്ലോക്ക് വലുപ്പം തിരഞ്ഞെടുക്കുമ്പോൾ നിങ്ങൾ വിട്ടുവീഴ്ച ചെയ്യേണ്ടതുണ്ട്. ഒരു വലിയ ബ്ലോക്ക് വലിപ്പം സാധാരണയായി ഒരു ഫയൽ വായിക്കുമ്പോഴോ എഴുതുമ്പോഴോ ഡിസ്ക് ആക്‌സസുകളുടെ എണ്ണം കുറയ്ക്കുന്നു, പക്ഷേ ഇത് പാഴായ സ്ഥലത്തിന്റെ അളവ് വർദ്ധിപ്പിക്കുന്നു, പ്രത്യേകിച്ചും ധാരാളം ചെറിയ ഫയലുകൾ ഉള്ളപ്പോൾ.

അവരുടെ പ്രദേശത്തെ ബ്ലോക്കുകൾ ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകളായി സംയോജിപ്പിച്ചിരിക്കുന്നു. ഒരു ഫയൽ സിസ്റ്റത്തിലെ ബ്ലോക്കുകളുടെയും ഒരു ഗ്രൂപ്പിനുള്ളിലെ ബ്ലോക്കുകളുടെയും ഗ്രൂപ്പുകൾ 1 മുതൽ തുടർച്ചയായി അക്കമിട്ടിരിക്കുന്നു. ഒരു ഡിസ്കിലെ ആദ്യത്തെ ബ്ലോക്ക് നമ്പർ 1 ആണ്, അത് ഗ്രൂപ്പ് നമ്പർ 1-ൽ ഉൾപ്പെടുന്നു. ഒരു ഡിസ്കിലെ മൊത്തം ബ്ലോക്കുകളുടെ എണ്ണം (ഒരു ഡിസ്ക് പാർട്ടീഷനിൽ) സെക്ടറുകളിൽ പ്രകടിപ്പിക്കുന്ന ഡിസ്ക് വലുപ്പത്തിന്റെ ഒരു ഡിവൈസർ. ബ്ലോക്ക് ഗ്രൂപ്പുകളുടെ എണ്ണം ബ്ലോക്കുകളുടെ എണ്ണം വിഭജിക്കേണ്ടതില്ല, കാരണം ബ്ലോക്കുകളുടെ അവസാന ഗ്രൂപ്പ് പൂർണ്ണമായിരിക്കില്ല. ബ്ലോക്കുകളുടെ ഓരോ ഗ്രൂപ്പിന്റെയും തുടക്കത്തിന് ഒരു വിലാസമുണ്ട്, അത് ((ഗ്രൂപ്പ് നമ്പർ - 1)* (ഗ്രൂപ്പിലെ ബ്ലോക്കുകളുടെ എണ്ണം)) ആയി ലഭിക്കും.

ബ്ലോക്കുകളുടെ ഓരോ ഗ്രൂപ്പിനും ഒരേ ഘടനയുണ്ട്. അതിന്റെ ഘടന ഇനിപ്പറയുന്ന പട്ടികയിൽ കാണിച്ചിരിക്കുന്നു.

ഒരു ഡിസ്ക് പാർട്ടീഷന്റെ ബ്ലോക്ക് ഗ്രൂപ്പ് ഘടന ext2fs

ഈ ഘടനയുടെ ആദ്യ ഘടകം (സൂപ്പർബ്ലോക്ക്) എല്ലാ ഗ്രൂപ്പുകൾക്കും തുല്യമാണ്, ബാക്കിയുള്ളവ ഓരോ ഗ്രൂപ്പിനും വ്യക്തിഗതമാണ്. ഓരോ ബ്ലോക്ക് ഗ്രൂപ്പിന്റെയും ആദ്യ ബ്ലോക്കിലാണ് സൂപ്പർബ്ലോക്ക് സംഭരിച്ചിരിക്കുന്നത് (ആദ്യ ബ്ലോക്കിൽ ബൂട്ട് റെക്കോർഡുള്ള ഗ്രൂപ്പ് 1 ഒഴികെ). സൂപ്പർബ്ലോക്ക്ഫയൽ സിസ്റ്റത്തിന്റെ ആരംഭ പോയിന്റാണ്. ഇതിന് 1024 ബൈറ്റുകൾ വലിപ്പമുണ്ട് എപ്പോഴും ഫയൽ സിസ്റ്റത്തിന്റെ ആരംഭം മുതൽ ഓഫ്സെറ്റ് 1024 ബൈറ്റുകളിൽ സ്ഥിതിചെയ്യുന്നു. സൂപ്പർബ്ലോക്കിന്റെ നിരവധി പകർപ്പുകളുടെ സാന്നിധ്യം ഫയൽ സിസ്റ്റത്തിന്റെ ഈ ഘടകത്തിന്റെ അങ്ങേയറ്റം പ്രാധാന്യത്താൽ വിശദീകരിക്കപ്പെടുന്നു. ക്രാഷുകൾക്ക് ശേഷം ഒരു ഫയൽ സിസ്റ്റം വീണ്ടെടുക്കുമ്പോൾ സൂപ്പർബ്ലോക്ക് ഡ്യൂപ്ലിക്കേറ്റുകൾ ഉപയോഗിക്കുന്നു.

സൂപ്പർബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങൾ ഡിസ്കിലെ ബാക്കി ഡാറ്റയിലേക്കുള്ള ആക്സസ് ഓർഗനൈസ് ചെയ്യാൻ ഉപയോഗിക്കുന്നു. സൂപ്പർബ്ലോക്ക് ഫയൽ സിസ്റ്റത്തിന്റെ വലുപ്പം, പാർട്ടീഷനിലെ പരമാവധി ഫയലുകളുടെ എണ്ണം, സ്വതന്ത്ര സ്ഥലത്തിന്റെ അളവ് എന്നിവ നിർണ്ണയിക്കുന്നു, കൂടാതെ അൺലോക്കേറ്റ് ചെയ്യാത്ത ഏരിയകൾ എവിടെയാണ് തിരയേണ്ടത് എന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു. OS ആരംഭിക്കുമ്പോൾ, സൂപ്പർബ്ലോക്ക് മെമ്മറിയിലേക്ക് റീഡ് ചെയ്യപ്പെടും, കൂടാതെ ഫയൽ സിസ്റ്റത്തിലെ എല്ലാ മാറ്റങ്ങളും ആദ്യം ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിൽ സ്ഥിതിചെയ്യുന്ന സൂപ്പർബ്ലോക്കിന്റെ പകർപ്പിൽ പ്രതിഫലിക്കുകയും ഇടയ്ക്കിടെ ഡിസ്കിലേക്ക് എഴുതുകയും ചെയ്യുന്നു. നിരവധി ഉപയോക്താക്കളും പ്രക്രിയകളും ഫയലുകൾ നിരന്തരം അപ്‌ഡേറ്റ് ചെയ്യുന്നതിനാൽ ഇത് സിസ്റ്റം പ്രകടനം മെച്ചപ്പെടുത്തുന്നു. മറുവശത്ത്, നിങ്ങൾ സിസ്റ്റം ഓഫാക്കുമ്പോൾ, സൂപ്പർബ്ലോക്ക് ഡിസ്കിലേക്ക് എഴുതണം, ഇത് പവർ ഓഫ് ചെയ്തുകൊണ്ട് കമ്പ്യൂട്ടർ ഓഫ് ചെയ്യാൻ നിങ്ങളെ അനുവദിക്കുന്നില്ല. അല്ലെങ്കിൽ, അടുത്ത ബൂട്ടിൽ, സൂപ്പർബ്ലോക്കിൽ എഴുതിയിരിക്കുന്ന വിവരങ്ങൾ ഫയൽ സിസ്റ്റത്തിന്റെ യഥാർത്ഥ അവസ്ഥയുമായി പൊരുത്തപ്പെടുന്നില്ല.

സൂപ്പർബ്ലോക്കിന് ഇനിപ്പറയുന്ന ഘടനയുണ്ട്

ഫീല്ഡിന്റെ പേര്

ടൈപ്പ് ചെയ്യുക

ഒരു അഭിപ്രായം

s_inodes_count

ULONG

ഫയൽ സിസ്റ്റത്തിലെ ഐനോഡുകളുടെ എണ്ണം

s_blocks_count

ULONG

ഫയൽ സിസ്റ്റത്തിലെ ബ്ലോക്കുകളുടെ എണ്ണം

s_r_blocks_count

ULONG

സൂപ്പർ യൂസറിനായി റിസർവ് ചെയ്ത ബ്ലോക്കുകളുടെ എണ്ണം

s_free_blocks_count

ULONG

സൗജന്യ ബ്ലോക്ക് കൗണ്ടർ

s_free_inodes_count

ULONG

സൗജന്യ ഇനോഡ് കൗണ്ടർ

s_first_data_block

ULONG

ഡാറ്റ അടങ്ങുന്ന ആദ്യ ബ്ലോക്ക്. ബ്ലോക്കിന്റെ വലുപ്പം അനുസരിച്ച്, ഈ ഫീൽഡ് 0 അല്ലെങ്കിൽ 1 ആകാം.

s_log_block_size

ULONG

ലോജിക് ബ്ലോക്ക് സൈസ് ഇൻഡിക്കേറ്റർ: 0 = 1 KB; 1 = 2 KB; 2 = 4 കെ.ബി.

s_log_frag_size

നീളമുള്ള

ഫ്രാഗ്മെന്റ് സൈസ് ഇൻഡിക്കേറ്റർ (ഒരു ശകലം എന്ന ആശയം നിലവിൽ ഉപയോഗിച്ചിട്ടില്ലെന്ന് തോന്നുന്നു)

s_blocks_per_group

ULONG

ബ്ലോക്കുകളുടെ ഓരോ ഗ്രൂപ്പിലെയും ബ്ലോക്കുകളുടെ എണ്ണം

s_frags_per_group

ULONG

ബ്ലോക്കുകളുടെ ഓരോ ഗ്രൂപ്പിലെയും ശകലങ്ങളുടെ എണ്ണം

s_inodes_per_group

ULONG

ഓരോ ബ്ലോക്ക് ഗ്രൂപ്പിലെയും ഐനോഡുകളുടെ എണ്ണം (ഇനോഡുകൾ).

s_mtime

ULONG

ഫയൽ സിസ്റ്റം അവസാനമായി മൌണ്ട് ചെയ്ത സമയം.

s_wtime

ULONG

ഫയൽ സിസ്റ്റം അവസാനമായി എഴുതിയ സമയം

s_mnt_count

USHORT

ഫയൽ സിസ്റ്റം മൗണ്ടുകളുടെ എണ്ണം. ഈ കൌണ്ടർ അടുത്ത ഫീൽഡിൽ (s_max_mnt_count) വ്യക്തമാക്കിയ മൂല്യത്തിൽ എത്തിയാൽ, ഫയൽ സിസ്റ്റം പരിശോധിക്കേണ്ടതാണ് (ഇത് പുനരാരംഭിക്കുമ്പോൾ ചെയ്യപ്പെടും), കൂടാതെ കൌണ്ടർ പൂജ്യത്തിലേക്ക് പുനഃസജ്ജമാക്കപ്പെടും.

s_max_mnt_count

ചെറുത്

ഫയൽ സിസ്റ്റം എത്ര തവണ മൌണ്ട് ചെയ്യാമെന്ന് വ്യക്തമാക്കുന്ന നമ്പർ

s_magic

USHORT

"മാജിക് നമ്പർ" (0xEF53) ഫയൽ സിസ്റ്റം ex2fs തരത്തിലാണെന്ന് സൂചിപ്പിക്കുന്നു

s_state

USHORT

ഫയൽ സിസ്റ്റത്തിന്റെ നിലവിലെ അവസ്ഥ സൂചിപ്പിക്കുന്ന ഫ്ലാഗുകൾ (ഇത് ശുദ്ധമാണോ മുതലായവ)

s_പിശകുകൾ

USHORT

പിശക് സന്ദേശ പ്രോസസ്സിംഗ് നടപടിക്രമങ്ങൾ വ്യക്തമാക്കുന്ന ഫ്ലാഗുകൾ (പിശകുകൾ കണ്ടെത്തിയാൽ എന്തുചെയ്യണം).

s_pad

USHORT

പൂരിപ്പിക്കൽ

s_അവസാന പരിശോധന

ULONG

അവസാന ഫയൽ സിസ്റ്റം പരിശോധനയുടെ സമയം

s_checkinterval

ULONG

ഫയൽ സിസ്റ്റം പരിശോധനകൾക്കിടയിലുള്ള പരമാവധി കാലയളവ്

s_creator_os

ULONG

ഫയൽ സിസ്റ്റം സൃഷ്ടിച്ച OS-ന്റെ തരം സൂചന

s_rev_level

ULONG

ഫയൽ സിസ്റ്റത്തിന്റെ പതിപ്പ് (റിവിഷൻ ലെവൽ).

s_reserved

ULONG

1024 ബൈറ്റുകൾ വരെ പാഡിംഗ്

സൂപ്പർബ്ലോക്കിന് ശേഷം ബ്ലോക്കുകളുടെ ഗ്രൂപ്പിന്റെ വിവരണം (ഗ്രൂപ്പ് ഡിസ്ക്രിപ്റ്ററുകൾ) ആണ്. ഈ വിവരണം ഇനിപ്പറയുന്ന ഘടനയുള്ള ഒരു ശ്രേണിയാണ്.

ഫീല്ഡിന്റെ പേര്

ടൈപ്പ് ചെയ്യുക

ഉദ്ദേശ്യം

bg_block_bitmap

ULONG

തന്നിരിക്കുന്ന ഗ്രൂപ്പിന്റെ ബ്ലോക്ക് ബിറ്റ്മാപ്പ് അടങ്ങുന്ന ബ്ലോക്കിന്റെ വിലാസം

bg_inode_bitmap

ULONG

ഈ ഗ്രൂപ്പിന്റെ ഐനോഡ് ബിറ്റ്മാപ്പ് അടങ്ങിയ ബ്ലോക്കിന്റെ വിലാസം

bg_inode_table

ULONG

ഈ ഗ്രൂപ്പിന്റെ ഐനോഡ് പട്ടിക അടങ്ങുന്ന ബ്ലോക്കിന്റെ വിലാസം

bg_free_blocks_count

USHORT

ഈ ഗ്രൂപ്പിലെ ഫ്രീ ബ്ലോക്കുകളുടെ എണ്ണത്തിന്റെ കൗണ്ടർ

bg_free_inodes_count

USHORT

ഈ ഗ്രൂപ്പിലെ സൗജന്യ ഐനോഡുകളുടെ എണ്ണം

bg_used_dirs_count

USHORT

ഈ ഗ്രൂപ്പിലെ ഡയറക്‌ടറികളായ ഐനോഡുകളുടെ എണ്ണം

bg_pad

USHORT

പൂരിപ്പിക്കൽ

bg_reserved

ULONG

പൂരിപ്പിക്കൽ

ബ്ലോക്ക് ഗ്രൂപ്പ് വിവരണത്തിന്റെ വലുപ്പം ഇങ്ങനെ കണക്കാക്കാം (block_group_size_in_ext2 * number_of_groups) / block_size(ആവശ്യമെങ്കിൽ ചുറ്റും).

ഗ്രൂപ്പ് വിവരണത്തിൽ സംഭരിച്ചിരിക്കുന്ന വിവരങ്ങൾ ബ്ലോക്ക്, ഐനോഡ് ബിറ്റ്മാപ്പുകൾ, ഐനോഡ് പട്ടിക എന്നിവ കണ്ടെത്തുന്നതിന് ഉപയോഗിക്കുന്നു. ബ്ലോക്കുകളും ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകളും 1 മുതൽ അക്കമിട്ടിട്ടുണ്ടെന്ന് ഓർമ്മിക്കുക.

ഒരു ബ്ലോക്ക് ബിറ്റ്മാപ്പ് ഒരു ഘടനയാണ്, ഓരോ ബിറ്റും അതിനോട് ബന്ധപ്പെട്ട ബ്ലോക്ക് ഏതെങ്കിലും ഫയലിന് നൽകിയിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്നു. ബിറ്റ് 1 ആണെങ്കിൽ, ബ്ലോക്ക് തിരക്കിലാണ്. ഒരു ഫയലിനായി സ്ഥലം അനുവദിക്കേണ്ടി വരുന്ന സന്ദർഭങ്ങളിൽ സൗജന്യ ബ്ലോക്കുകൾക്കായി തിരയാൻ ഈ മാപ്പ് ഉപയോഗിക്കുന്നു. ബ്ലോക്ക് ബിറ്റ്മാപ്പ്, ഇതിന് തുല്യമായ ബ്ലോക്കുകളുടെ എണ്ണം ഉൾക്കൊള്ളുന്നു. (നമ്പർ_ഓഫ്_ബ്ലോക്കുകൾ_ഇൻ_ഗ്രൂപ്പ് / 8) / ബ്ലോക്ക്_സൈസ്(ആവശ്യമെങ്കിൽ ചുറ്റും).

ഐനോഡ് ബിറ്റ്മാപ്പ് ഐനോഡ് ടേബിളിന് സമാനമായ ഒരു പ്രവർത്തനം നടത്തുന്നു: ഏതൊക്കെ ഇനോഡുകൾ തിരക്കിലാണെന്ന് ഇത് കാണിക്കുന്നു.

ബ്ലോക്ക് ഗ്രൂപ്പ് ഘടനയിലെ അടുത്ത ഏരിയ ഫയൽ ഐനോഡ് പട്ടിക സംഭരിക്കുന്നതിന് ഉപയോഗിക്കുന്നു. ഐനോഡിന്റെ ഘടന തന്നെ അടുത്ത ഉപവിഭാഗത്തിൽ കൂടുതൽ വിശദമായി ചർച്ചചെയ്യുന്നു.

ശരി, അവസാനമായി, ബ്ലോക്കുകളുടെ ഗ്രൂപ്പിൽ ശേഷിക്കുന്ന എല്ലാ സ്ഥലവും യഥാർത്ഥ ഫയലുകൾ സംഭരിക്കുന്നതിന് അനുവദിച്ചിരിക്കുന്നു.

ഫയൽ സിസ്റ്റം Ext 2-ന്റെ സവിശേഷത:

  • ശ്രേണിപരമായ ഘടന,
  • ഡാറ്റ അറേകളുടെ ഏകോപിത പ്രോസസ്സിംഗ്,
  • ഡൈനാമിക് ഫയൽ എക്സ്റ്റൻഷൻ,
  • ഫയലുകളിലെ വിവരങ്ങളുടെ സംരക്ഷണം,
  • പെരിഫറലുകളെ (ടെർമിനലുകളും ടേപ്പ് ഡ്രൈവുകളും പോലുള്ളവ) ഫയലുകളായി കണക്കാക്കുന്നു.

ഫയലുകളുടെ ആന്തരിക പ്രാതിനിധ്യം

ഒരു Ext 2 സിസ്റ്റത്തിലെ ഓരോ ഫയലിനും ഒരു പ്രത്യേക സൂചികയുണ്ട്. ഫയൽ ആക്സസ് ചെയ്യുന്നതിന് ഏത് പ്രക്രിയയ്ക്കും ആവശ്യമായ വിവരങ്ങൾ സൂചികയിൽ അടങ്ങിയിരിക്കുന്നു. നന്നായി നിർവചിക്കപ്പെട്ട സിസ്റ്റം കോളുകൾ ഉപയോഗിച്ച് ഫയലുകൾ ആക്‌സസ് ചെയ്യുന്നതും ഫയലിന്റെ പാത്ത് നെയിമായി പ്രവർത്തിക്കുന്ന ഒരു പ്രതീക സ്ട്രിംഗ് ഉപയോഗിച്ച് ഫയലിനെ തിരിച്ചറിയുന്നതും പ്രോസസ്സ് ചെയ്യുന്നു. ഓരോ സംയുക്ത നാമവും ഒരു ഫയലിനെ അദ്വിതീയമായി തിരിച്ചറിയുന്നു, ഇതുമൂലം സിസ്റ്റത്തിന്റെ കേർണൽ ഈ പേര് ഒരു ഫയൽ സൂചികയാക്കി മാറ്റുന്നു.ഇൻഡക്സിൽ ഫയൽ വിവരങ്ങൾ ഡിസ്കിൽ സ്ഥിതിചെയ്യുന്ന വിലാസങ്ങളുടെ പട്ടിക ഉൾപ്പെടുന്നു. ഡിസ്കിലെ ഓരോ ബ്ലോക്കിനെയും അതിന്റെ നമ്പർ ഉപയോഗിച്ച് അഭിസംബോധന ചെയ്യുന്നതിനാൽ, ഈ പട്ടിക ഡിസ്ക് ബ്ലോക്ക് നമ്പറുകളുടെ ഒരു ശേഖരം സംഭരിക്കുന്നു. ഫ്ലെക്സിബിലിറ്റി വർദ്ധിപ്പിക്കുന്നതിന്, ഒരു ഫയലിലേക്ക് കേർണൽ ഒരു ബ്ലോക്കുകൾ കൂട്ടിച്ചേർക്കുന്നു, ഇത് ഫയലിന്റെ വിവരങ്ങൾ ഫയൽ സിസ്റ്റത്തിലുടനീളം ചിതറിക്കിടക്കാൻ അനുവദിക്കുന്നു. എന്നാൽ അത്തരമൊരു ലേഔട്ട് ഡാറ്റ കണ്ടെത്തുന്നതിനുള്ള ചുമതല സങ്കീർണ്ണമാക്കുന്നു. വിലാസ പട്ടികയിൽ ഒരു ഫയലിന്റെ വിവരങ്ങൾ അടങ്ങിയ ബ്ലോക്ക് നമ്പറുകളുടെ ഒരു ലിസ്റ്റ് അടങ്ങിയിരിക്കുന്നു, എന്നാൽ ഒരു സൂചികയിലെ ഫയൽ ബ്ലോക്കുകളുടെ ലീനിയർ ലിസ്റ്റ് കൈകാര്യം ചെയ്യാൻ പ്രയാസമാണെന്ന് ലളിതമായ കണക്കുകൂട്ടലുകൾ കാണിക്കുന്നു. ചെറിയ സൂചിക ഘടന വലിയ ഫയലുകളിൽ പ്രവർത്തിക്കുന്നതിന്, ഡിസ്ക് ബ്ലോക്ക് വിലാസ പട്ടിക ചിത്രം 1 ൽ കാണിച്ചിരിക്കുന്ന ഘടനയുമായി വിന്യസിച്ചിരിക്കുന്നു.

ഒരു Ext 2 സിസ്റ്റത്തിലെ മിക്ക ഫയലുകളും 10 KB അല്ലെങ്കിൽ 1 KB-ൽ താഴെയാണ്! ഒരു ​​ഫയലിന്റെ 10 KB നേരിട്ടുള്ള വിലാസ ബ്ലോക്കുകളിലായതിനാൽ, ഫയലുകളിൽ സംഭരിച്ചിരിക്കുന്ന മിക്ക ഡാറ്റയും ഒരൊറ്റ ഡിസ്ക് ആക്‌സസ് ഉപയോഗിച്ച് ആക്‌സസ് ചെയ്യാൻ കഴിയും. അതിനാൽ, വലിയ ഫയലുകൾ ആക്സസ് ചെയ്യുന്നതിൽ നിന്ന് വ്യത്യസ്തമായി, ഒരു സ്റ്റാൻഡേർഡ് വലുപ്പത്തിലുള്ള ഫയലുകളിൽ പ്രവർത്തിക്കുന്നത് വേഗത്തിലാണ്.

ഫയൽ ഐനോഡുകൾ

ഡിസ്കിലെ ഓരോ ഫയലിനും ഒരേയൊരു ഫയൽ ഐനോഡ് മാത്രമേയുള്ളൂ, അത് അതിന്റെ ഓർഡിനൽ നമ്പറായ ഫയലിന്റെ ഐനോഡ് ഉപയോഗിച്ച് തിരിച്ചറിയുന്നു. ഇതിനർത്ഥം ഫയൽ സിസ്റ്റത്തിൽ സൃഷ്ടിക്കാൻ കഴിയുന്ന ഫയലുകളുടെ എണ്ണം ഐനോഡുകളുടെ എണ്ണം കൊണ്ട് പരിമിതപ്പെടുത്തിയിരിക്കുന്നു, ഇത് ഫയൽ സിസ്റ്റം സൃഷ്ടിക്കുമ്പോൾ അല്ലെങ്കിൽ ഡിസ്ക് പാർട്ടീഷന്റെ ഫിസിക്കൽ വലുപ്പത്തിൽ നിന്ന് കണക്കാക്കുമ്പോൾ വ്യക്തമായി സജ്ജീകരിച്ചിരിക്കുന്നു. ഇനോഡുകൾ ഡിസ്കിൽ സ്റ്റാറ്റിക് രൂപത്തിൽ നിലവിലുണ്ട്, അവയുമായി പ്രവർത്തിക്കുന്നതിന് മുമ്പ് കേർണൽ അവയെ മെമ്മറിയിലേക്ക് വായിക്കുന്നു.

ഫയൽ ഐനോഡിന് ഇനിപ്പറയുന്ന ഘടനയുണ്ട്:

ഫീല്ഡിന്റെ പേര്

ടൈപ്പ് ചെയ്യുക

വിവരണം

ഐ_മോഡ്

USHORT

ഈ ഫയലിന്റെ തരവും അനുമതികളും.

I_uid

USHORT

ഫയൽ ഉടമ ഐഡി (ഉടമയുടെ യുഐഡി).

I_size

ULONG

ഫയൽ വലുപ്പം ബൈറ്റുകളിൽ.

I_atime

ULONG

ഫയലിലേക്കുള്ള അവസാന പ്രവേശന സമയം (ആക്സസ് സമയം).

I_ctime

ULONG

ഫയൽ സൃഷ്ടിക്കുന്ന സമയം.

I_mtime

ULONG

ഫയൽ അവസാനം പരിഷ്കരിച്ച സമയം.

I_dtime

ULONG

ഫയൽ ഇല്ലാതാക്കൽ സമയം.

I_gid

USHORT

ഗ്രൂപ്പ് ഐഡി (GID).

I_links_count

USHORT

ലിങ്കുകളുടെ എണ്ണം.

ഐ_ബ്ലോക്കുകൾ

ULONG

ഫയൽ കൈവശപ്പെടുത്തിയിരിക്കുന്ന ബ്ലോക്കുകളുടെ എണ്ണം.

I_പതാകകൾ

ULONG

ഫയൽ ഫ്ലാഗുകൾ (ഫയൽ ഫ്ലാഗുകൾ)

I_reserved1

ULONG

OS-നായി കരുതിവച്ചിരിക്കുന്നു

ഐ_ബ്ലോക്ക്

ULONG

ഫയൽ ഡാറ്റ എഴുതിയ ബ്ലോക്കുകളിലേക്കുള്ള പോയിന്ററുകൾ (ചിത്രം 1-ൽ നേരിട്ടുള്ളതും പരോക്ഷവുമായ വിലാസത്തിന്റെ ഒരു ഉദാഹരണം)

ഐ_പതിപ്പ്

ULONG

ഫയൽ പതിപ്പ് (NFS-ന്)

I_file_acl

ULONG

ACL ഫയൽ ചെയ്യുക

I_dir_acl

ULONG

ഡയറക്ടറി ACL

I_faddr

ULONG

ശകലം വിലാസം

I_frag

ഉച്ചാർ

ശകലം നമ്പർ

I_fsize

ഉച്ചാർ

ശകലത്തിന്റെ വലിപ്പം

I_pad1

USHORT

പൂരിപ്പിക്കൽ

I_reserved2

ULONG

സംവരണം ചെയ്തിരിക്കുന്നു

ഫയൽ തരവും അനുമതികളുടെ ഫീൽഡും രണ്ട്-ബൈറ്റ് പദമാണ്, ഓരോ ബിറ്റും ഫയൽ ഒരു പ്രത്യേക തരവുമായി ബന്ധപ്പെട്ടതാണോ അതോ ഫയലിലെ ഒരു പ്രത്യേക അനുമതിയുടെ ക്രമീകരണമാണോ എന്ന് സൂചിപ്പിക്കുന്ന ഫ്ലാഗ് ആയി വർത്തിക്കുന്നു.

ഐഡന്റിഫയർ

അർത്ഥം

പതാകയുടെ ഉദ്ദേശ്യം (ഫീൽഡ്)

S_IFMT

F000

ഫയൽ തരം മാസ്ക്

S_IFSOCK

A000

ഡൊമെയ്ൻ സോക്കറ്റ് (സോക്കറ്റ്)

S_IFLNK

C000

S_IFREG

8000

സാധാരണ (സാധാരണ) ഫയൽ

S_IFBLK

6000

ബ്ലോക്ക് ഓറിയന്റഡ് ഉപകരണം

S_IFDIR

4000

കാറ്റലോഗ്

S_IFCHR

2000

ബൈറ്റ്-ഓറിയന്റഡ് (പ്രതീക) ഉപകരണം

എസ്_ഐഎഫ്ഐഎഫ്ഒ

1000

പേരിട്ടിരിക്കുന്ന പൈപ്പ് (ഫിഫോ)

S_ISUID

0800

SUID - ഉടമസ്ഥാവകാശം മാറ്റുക

S_ISGID

0400

SGID - ഗ്രൂപ്പ് മാറ്റ ബിറ്റ്

S_ISVTX

0200

ടാസ്ക് സ്റ്റിക്കി ബിറ്റ്

S_IRWXU

01C0

ഫയൽ ഉടമയുടെ അവകാശ മാസ്ക്

S_IRUSR

0100

വായിക്കാനുള്ള അവകാശം

S_IWUSR

0080

ശരിയായി എഴുതുക

S_IXUSR

0040

നിർവഹിക്കാനുള്ള അവകാശം

S_IRWXG

0038

ഗ്രൂപ്പ് അവകാശ മുഖംമൂടി

S_IRGRP

0020

വായിക്കാനുള്ള അവകാശം

S_IWGRP

0010

ശരിയായി എഴുതുക

S_IXGRP

0008

നിർവഹിക്കാനുള്ള അവകാശം

S_IRWXO

0007

മറ്റ് ഉപയോക്താക്കൾക്കുള്ള റൈറ്റ്സ് മാസ്ക്

S_IROTH

0004

വായിക്കാനുള്ള അവകാശം

S_IWOTH

0002

ശരിയായി എഴുതുക

S_IXOTH

0001

നിർവഹിക്കാനുള്ള അവകാശം

ഐനോഡുകളിൽ, പ്രത്യേക ആവശ്യങ്ങൾക്കായി നീക്കിവച്ചിരിക്കുന്നതും ഫയൽ സിസ്റ്റത്തിൽ ഒരു പ്രത്യേക പങ്ക് വഹിക്കുന്നതുമായ നിരവധി ഐനോഡുകൾ ഉണ്ട്. ഇവയാണ് ഇനിപ്പറയുന്ന വിവരണങ്ങൾ

ഐഡന്റിഫയർ

അർത്ഥം

വിവരണം

EXT2_BAD_INO

ഡിസ്കിലെ മോശം ബ്ലോക്കുകളുടെ വിലാസങ്ങൾ ലിസ്റ്റ് ചെയ്യുന്ന ഒരു ഐനോഡ് (മോശം ബ്ലോക്കുകൾ ഐനോഡ്)

EXT2_ROOT_INO

ഫയൽ സിസ്റ്റത്തിന്റെ റൂട്ട് ഡയറക്ടറിയുടെ ഐനോഡ് (റൂട്ട് ഐനോഡ്)

EXT2_ACL_IDX_INO

ACL ഐനോഡ്

EXT2_ACL_DATA_INO

ACL ഐനോഡ്

EXT2_BOOT_LOADER_INO

ബൂട്ട് ലോഡർ ഐനോഡ്

EXT2_UNDEL_DIR_INO

ഡയറക്‌ടറി ഐനോഡ് ഇല്ലാതാക്കുക

EXT2_FIRST_INO

ആദ്യം റിസർവ് ചെയ്യാത്ത ഐനോഡ്

ഈ ലിസ്റ്റിലെ ഏറ്റവും പ്രധാനപ്പെട്ട ഹാൻഡിൽ റൂട്ട് ഡയറക്ടറിയിലേക്കുള്ള ഹാൻഡിൽ ആണ്. ഈ ഡിസ്ക്രിപ്റ്റർ റൂട്ട് ഡയറക്‌ടറിയിലേക്ക് ചൂണ്ടിക്കാണിക്കുന്നു, എല്ലാ ഡയറക്‌ടറികളെയും പോലെ, ഇനിപ്പറയുന്ന ഘടനയുള്ള എൻട്രികൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു:

ഫീല്ഡിന്റെ പേര്

ടൈപ്പ് ചെയ്യുക

വിവരണം

ഇനോഡ്

ULONG

ഫയലിന്റെ ഐനോഡ് നമ്പർ (സൂചിക).

rec_len

USHORT

ഈ എൻട്രിയുടെ ദൈർഘ്യം

name_len

USHORT

ഫയലിന്റെ പേരിന്റെ ദൈർഘ്യം

പേര്

CHAR

ഫയലിന്റെ പേര്

ഒരൊറ്റ ഡയറക്‌ടറി എൻട്രിക്ക് ഒരു ബ്ലോക്ക് അതിർത്തി കടക്കാൻ കഴിയില്ല (അതായത്, ഇത് പൂർണ്ണമായും ഒരൊറ്റ ബ്ലോക്കിനുള്ളിൽ സ്ഥിതിചെയ്യണം). അതിനാൽ, അടുത്ത റെക്കോർഡ് ഈ ബ്ലോക്കിൽ പൂർണ്ണമായും യോജിക്കുന്നില്ലെങ്കിൽ, അത് അടുത്ത ബ്ലോക്കിലേക്ക് മാറ്റുന്നു, മുമ്പത്തെ റെക്കോർഡ് തുടരുന്നു, അങ്ങനെ അത് ബ്ലോക്ക് അവസാനം വരെ നിറയ്ക്കുന്നു.

ചിത്രം 1 സൂചികയിലെ നേരിട്ടുള്ളതും പരോക്ഷവുമായ വിലാസങ്ങളുടെ ബ്ലോക്കുകൾ

ചിത്രം 2 1 KB ബ്ലോക്ക് വലിപ്പമുള്ള ബൈറ്റുകളിൽ ഫയൽ വലുപ്പം

ചിത്രം 3. ഡിസ്ക് സൂചിക ഉദാഹരണം

ചിത്രം 3 ഒരു ഫയലിന്റെ ഡിസ്ക് ഐനോഡ് കാണിക്കുന്നു. ഈ ഐനോഡ് ഒരു സാധാരണ ഫയലിന്റെ ഉടമസ്ഥതയിലുള്ളതാണ്, അതിന്റെ ഉടമ "mjb" ആണ്, അതിന്റെ വലുപ്പം 6030 ബൈറ്റുകൾ ആണ്. സിസ്റ്റം "mjb" എന്ന ഉപയോക്താവിനെ ഫയൽ വായിക്കാനും എഴുതാനും പ്രവർത്തിപ്പിക്കാനും അനുവദിക്കുന്നു; "os" ഗ്രൂപ്പിലെ അംഗങ്ങൾക്കും മറ്റെല്ലാ ഉപയോക്താക്കൾക്കും ഫയൽ വായിക്കാനോ പ്രവർത്തിപ്പിക്കാനോ മാത്രമേ അനുവാദമുള്ളൂ, അതിലേക്ക് ഡാറ്റ എഴുതാൻ പാടില്ല. ഫയൽ അവസാനമായി വായിച്ചത് 1984 ഒക്ടോബർ 23-ന് 13:45-ന്, 1984 ഒക്ടോബർ 22-ന് 10:30-നാണ് അവസാനമായി എഴുതിയത്. 1984 ഒക്ടോബർ 23 ന് 13:30 ന് സൂചിക അവസാനമായി മാറ്റി, ആ സമയത്ത് ഫയലിൽ ഒരു വിവരവും എഴുതിയിരുന്നില്ല. കേർണൽ ഒരു സൂചികയിൽ മുകളിലുള്ള എല്ലാ ഡാറ്റയും എൻകോഡ് ചെയ്യുന്നു. സൂചികയിലെ ഉള്ളടക്കങ്ങളും ഫയലിലെ ഉള്ളടക്കങ്ങളും ഡിസ്കിലേക്ക് എഴുതുന്നതിലെ വ്യത്യാസം ശ്രദ്ധിക്കുക. ഫയൽ എഴുതുമ്പോൾ മാത്രമേ ഫയലിന്റെ ഉള്ളടക്കം മാറുകയുള്ളൂ. ഫയലിന്റെ ഉള്ളടക്കം മാറുമ്പോഴും ഫയലിന്റെ ഉടമ, ആക്‌സസ് അവകാശങ്ങൾ, പോയിന്ററുകളുടെ കൂട്ടം എന്നിവ മാറുമ്പോഴും സൂചികയിലെ ഉള്ളടക്കങ്ങൾ മാറുന്നു. ഒരു ഫയലിന്റെ ഉള്ളടക്കം സ്വയമേവ മാറ്റുന്നത് ഒരു സൂചിക തിരുത്തലിന് കാരണമാകുന്നു, എന്നാൽ ഒരു സൂചിക തിരുത്തൽ എന്നത് ഫയലിന്റെ ഉള്ളടക്കത്തിലെ മാറ്റത്തെ അർത്ഥമാക്കുന്നില്ല.

കാറ്റലോഗുകൾ

ഡയറക്‌ടറികൾ ഫയൽ സിസ്റ്റത്തിന്റെ ശ്രേണീകൃത ഘടന ഉണ്ടാക്കുന്ന ഫയലുകളാണ്; ഫയലിന്റെ പേര് ഒരു ഐനോഡ് നമ്പറാക്കി മാറ്റുന്നതിൽ അവ ഒരു പ്രധാന പങ്ക് വഹിക്കുന്നു. ഡയറക്‌ടറി എന്നത് ഒരു ഐനോഡ് നമ്പറും ഡയറക്‌ടറിയിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഒരു ഫയലിന്റെ പേരും അടങ്ങുന്ന ഒരു കൂട്ടം റെക്കോർഡുകളുടെ ഉള്ളടക്കമാണ്. ഒരു ശൂന്യമായ പ്രതീകം ഉപയോഗിച്ച് അവസാനിപ്പിച്ച് ഒരു സ്ലാഷ് ("/") ഉപയോഗിച്ച് ഒന്നിലധികം ഘടകങ്ങളായി വേർതിരിക്കുന്ന പ്രതീകങ്ങളുടെ ഒരു സ്ട്രിംഗാണ് സംയുക്ത നാമം. അവസാനത്തേത് ഒഴികെയുള്ള ഓരോ ഘടകവും ഒരു ഡയറക്ടറിയുടെ പേരായിരിക്കണം, എന്നാൽ അവസാന ഘടകം ഒരു ഡയറക്ടറി അല്ലാത്ത ഒരു ഫയലിന്റെ പേരായിരിക്കാം. UNIX സിസ്റ്റത്തിന്റെ V പതിപ്പ് ഓരോ ഘടകങ്ങളും 14 പ്രതീകങ്ങളായി പരിമിതപ്പെടുത്തുന്നു; അങ്ങനെ, ഐനോഡ് നമ്പറിലേക്ക് അനുവദിച്ച 2 ബൈറ്റുകൾക്കൊപ്പം, ഡയറക്‌ടറി എൻട്രിയുടെ വലുപ്പം 16 ബൈറ്റുകളാണ്.

ബൈറ്റ് ഓഫ്സെറ്റ്
ഒരു ഡയറക്ടറിയുടെ ഉള്ളിൽ

സൂചിക നമ്പർ
(2 ബൈറ്റുകൾ)

പേര്ഫയൽ

1798

init

1276

fsck

clri

1268

motd

1799

മൗണ്ട്

mknod

2114

പാസ്വേഡ്

1717

umount

1851

ചെക്ക്ലിസ്റ്റ്

fsdbld

കോൺഫിഗറേഷൻ

1432

ഗെറ്റി

തകര്ച്ച

mkfs

ചിത്രം 4 / etc ഡയറക്ടറി ഫോർമാറ്റ്

"etc" ഡയറക്‌ടറിയുടെ ഫോർമാറ്റ് ചിത്രം 4 കാണിക്കുന്നു. ഓരോ ഡയറക്‌ടറിയിലും പേരുകൾ ഒരു ഡോട്ടും രണ്ട് പിരീഡുകളും (".", "..") ഉള്ള ഫയലുകൾ അടങ്ങിയിരിക്കുന്നു, കൂടാതെ യഥാക്രമം തന്നിരിക്കുന്ന ഡയറക്‌ടറിയുടെയും പാരന്റ് ഡയറക്‌ടറിയുടെയും സൂചിക നമ്പറുകളുമായി പൊരുത്തപ്പെടുന്ന ഐനോഡ് നമ്പറുകൾ. "." ഫയലിനായുള്ള സൂചിക നമ്പർ ഡയറക്‌ടറിയിൽ "/etc" എന്നതിന് ഓഫ്‌സെറ്റ് 0-ലും മൂല്യം 83-ലും വിലാസമുണ്ട്. ".." എന്ന ഫയലിനുള്ള ഐനോഡ് നമ്പറിന് ഡയറക്ടറിയുടെ ആരംഭം മുതൽ ഓഫ്‌സെറ്റ് 16-ൽ വിലാസമുണ്ട്, മൂല്യം 2. ഡയറക്‌ടറിയിലെ എൻട്രികൾ ശൂന്യമായിരിക്കും, കൂടാതെ inode നമ്പർ 0 ആണ്. ഉദാഹരണത്തിന്, "/etc" ഡയറക്‌ടറിയിലെ വിലാസം 224-ലെ എൻട്രി ശൂന്യമാണ്, അതിൽ ഒരിക്കൽ "ക്രാഷ്" എന്ന് പേരുള്ള ഒരു ഫയലിന്റെ എൻട്രി പോയിന്റ് ഉണ്ടായിരുന്നുവെങ്കിലും. mkfs പ്രോഗ്രാം ഫയൽ സിസ്റ്റം ആരംഭിക്കുന്നു, അങ്ങനെ "." എന്നതിനായുള്ള ഐനോഡ് നമ്പറുകൾ കൂടാതെ റൂട്ട് ഡയറക്ടറിയിലെ ".." ഫയൽ സിസ്റ്റത്തിന്റെ റൂട്ട് ഐനോഡ് നമ്പറുമായി പൊരുത്തപ്പെടുന്നു.

ഡയറക്‌ടും പരോക്ഷവുമായ അഡ്രസ് ലെവലുകളുള്ള ഒരു സൂചിക ഘടനയും ബ്ലോക്കുകളും ഉപയോഗിച്ച്, ഒരു സാധാരണ ഫയൽ തരത്തിൽ ചെയ്യുന്നതുപോലെ, കേർണൽ ഒരു ഡയറക്ടറിയിൽ ഡാറ്റ സംഭരിക്കുന്നു. സാധാരണ ഫയലുകൾ വായിക്കുന്നത് പോലെ തന്നെ ഡയറക്‌ടറികളിൽ നിന്നുള്ള ഡാറ്റയും പ്രോസസ്സുകൾക്ക് വായിക്കാൻ കഴിയും, എന്നാൽ ഡയറക്‌ടറി ഘടന ശരിയാണെന്ന് ഉറപ്പാക്കാൻ ഡയറക്‌ടറിയിലേക്കുള്ള എക്‌സ്‌ക്ലൂസീവ് റൈറ്റ് ആക്‌സസ് കേർണൽ റിസർവ് ചെയ്‌തിരിക്കുന്നു. ഡയറക്‌ടറി അനുമതികൾക്ക് ഇനിപ്പറയുന്ന അർത്ഥങ്ങളുണ്ട്: റീഡ് പെർമിഷൻ പ്രോസസ്സുകൾക്ക് ഡയറക്‌ടറിയിൽ നിന്നുള്ള ഡാറ്റ വായിക്കാനുള്ള കഴിവ് നൽകുന്നു; ഒരു ഡയറക്‌ടറിയിൽ പുതിയ എൻട്രികൾ സൃഷ്‌ടിക്കുന്നതിനോ പഴയവ ഇല്ലാതാക്കുന്നതിനോ (creat, mknod, ലിങ്ക്, അൺലിങ്ക് സിസ്റ്റം പ്രവർത്തനങ്ങൾ എന്നിവ ഉപയോഗിച്ച്) ഒരു പ്രോസസ്സിനെ റൈറ്റ് പെർമിഷൻ അനുവദിക്കുന്നു, ഇത് ഡയറക്‌ടറിയിലെ ഉള്ളടക്കത്തെ മാറ്റുന്നു; എക്സിക്യൂട്ട് റൈറ്റ് ഫയലിന്റെ പേരിൽ ഒരു ഡയറക്‌ടറി തിരയാൻ ഒരു പ്രക്രിയയെ അനുവദിക്കുന്നു (കാരണം ഒരു ഡയറക്‌ടറി "എക്‌സിക്യൂഷൻ" ചെയ്യുന്നത് അർത്ഥശൂന്യമാണ്).

ഒരു പ്രോസസ്സ് ഫയൽ പാത്ത് ഉപയോഗിക്കുമ്പോൾ, ബന്ധപ്പെട്ട ഐനോഡ് നമ്പറിനായി കേർണൽ ഡയറക്ടറികൾ തിരയുന്നു. ഫയലിന്റെ പേര് ഒരു ഐനോഡ് നമ്പറിലേക്ക് പരിവർത്തനം ചെയ്ത ശേഷം, ആ ഐനോഡ് മെമ്മറിയിൽ സ്ഥാപിക്കുകയും തുടർന്നുള്ള അഭ്യർത്ഥനകളിൽ ഉപയോഗിക്കുകയും ചെയ്യുന്നു.

Unix ഫയൽ സിസ്റ്റങ്ങളുടെ ആശയത്തിൽ ഒരു ലിങ്ക് എന്ന ആശയം ഉൾപ്പെടുന്നു. ഒരു ഐനോഡിനെ നിരവധി ഫയൽനാമങ്ങളുമായി ബന്ധപ്പെടുത്താം. ഫയൽ ബന്ധപ്പെട്ടിരിക്കുന്ന നമ്പർ അടങ്ങുന്ന ഒരു ഫീൽഡ് ഡിസ്ക്രിപ്റ്ററിൽ അടങ്ങിയിരിക്കുന്നു. ഒരു ലിങ്ക് ചേർക്കുന്നത് ഐനോഡ് നമ്പർ മറ്റൊരു ഐനോഡിലേക്ക് പോയിന്റ് ചെയ്യുന്ന ഒരു ഡയറക്‌ടറി എൻട്രി സൃഷ്‌ടിക്കുകയും ഡിസ്‌ക്രിപ്‌റ്ററിലെ ലിങ്ക് കൗണ്ടർ വർദ്ധിപ്പിക്കുകയും ചെയ്യുന്നു. ഒരു റഫറൻസ് നീക്കം ചെയ്യുമ്പോൾ, കേർണൽ റഫറൻസ് കൗണ്ടറിനെ കുറയ്ക്കുകയും ആ കൌണ്ടർ പൂജ്യമായാൽ ഹാൻഡിൽ നീക്കം ചെയ്യുകയും ചെയ്യുന്നു.

അത്തരം ലിങ്കുകളെ ഹാർഡ് ലിങ്കുകൾ എന്ന് വിളിക്കുന്നു, അവ ഒരു ഫയൽ സിസ്റ്റത്തിൽ മാത്രമേ ഉപയോഗിക്കാൻ കഴിയൂ (മറ്റൊരു ഫയൽ സിസ്റ്റത്തിൽ നിന്ന് ഒരു ഫയലിനായി നിങ്ങൾക്ക് ഒരു ലിങ്ക് സൃഷ്ടിക്കാൻ കഴിയില്ല). മാത്രമല്ല, ഒരു ഹാർഡ് ലിങ്കിന് ഒരു ഫയലിലേക്ക് മാത്രമേ പോയിന്റ് ചെയ്യാൻ കഴിയൂ (ഒരു ഡയറക്‌ടറിയിലേക്കുള്ള ഹാർഡ് ലിങ്ക് ഫയൽ സിസ്റ്റത്തിൽ ഒരു ലൂപ്പിലേക്ക് നയിച്ചേക്കാം).

മിക്ക Unix സിസ്റ്റങ്ങളിലും, മറ്റൊരു തരം ലിങ്ക് ഉണ്ട്. ഫയലിന്റെ പേര് മാത്രം ഉൾക്കൊള്ളുന്ന ഈ ലിങ്കുകളെ പ്രതീകാത്മക ലിങ്കുകൾ എന്ന് വിളിക്കുന്നു. കേർണൽ അത്തരം ലിങ്കുകൾ പ്രോസസ്സ് ചെയ്യുമ്പോൾ, ഫയൽ പാത്ത് ഒരു ഐനോഡിലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ, കേർണൽ ലിങ്കിന്റെ പേര് ഡിസ്ക്രിപ്റ്ററിന്റെ ഉള്ളടക്കങ്ങൾ ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കുന്നു (അതായത്, ഡെസ്റ്റിനേഷൻ ഫയലിന്റെ പേര്) ഫയൽ പാത്ത് പുനർവ്യാഖ്യാനം ചെയ്യുന്നു. ഒരു പ്രതീകാത്മക ലിങ്ക് ഒരു ഐനോഡിലേക്ക് വിരൽ ചൂണ്ടാത്തതിനാൽ, മറ്റൊരു ഫയൽ സിസ്റ്റത്തിൽ സ്ഥിതിചെയ്യുന്ന ഫയലുകളിലേക്ക് ലിങ്കുകൾ സൃഷ്ടിക്കാൻ സാധിക്കും. ഈ ലിങ്കുകൾക്ക് അത് നിലവിലില്ലെങ്കിലും ഏത് തരത്തിലുള്ള ഫയലിലേക്കും പോയിന്റ് ചെയ്യാൻ കഴിയും. ഹാർഡ് ലിങ്കുകൾക്ക് സമാനമായ പരിമിതികളില്ലാത്തതിനാൽ പ്രതീകാത്മക ലിങ്കുകൾ വ്യാപകമായി ഉപയോഗിക്കപ്പെടുന്നു. എന്നിരുന്നാലും, അവർ ഡിസ്കിൽ കുറച്ച് സ്ഥലം എടുക്കുന്നു, അവിടെ ഐനോഡും ഡാറ്റ ബ്ലോക്കുകളും സ്ഥിതിചെയ്യുന്നു. ഫയൽ പാത്ത് ഒരു ഐനോഡിലേക്ക് പരിവർത്തനം ചെയ്യുമ്പോൾ അവയുടെ ഉപയോഗം ചില കാലതാമസങ്ങളിലേക്ക് നയിച്ചേക്കാം, ഇത് ഒരു പ്രതീകാത്മക ലിങ്ക് പ്രോസസ്സ് ചെയ്യുമ്പോൾ, കേർണൽ ഫയൽ പാത്ത് പുനർവ്യാഖ്യാനം ചെയ്യേണ്ടതാണ്.

ഉപകരണ ഫയലുകൾ

Unix പോലുള്ള ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ, ഉപകരണങ്ങൾ പ്രത്യേക ഫയലുകളിലൂടെ ആക്സസ് ചെയ്യപ്പെടുന്നു. അത്തരമൊരു ഫയൽ ഫയൽ സിസ്റ്റത്തിൽ ഇടം എടുക്കുന്നില്ല. ഇത് ഉപകരണ ഡ്രൈവറിലേക്കുള്ള ഒരു ആക്സസ് പോയിന്റ് മാത്രമാണ്.

രണ്ട് തരത്തിലുള്ള ഉപകരണ ഫയലുകൾ ഉണ്ട്: പ്രതീകവും ബ്ലോക്കും. പ്രതീക തരം ഉപയോഗിക്കുമ്പോൾ, പ്രതീക മോഡിൽ മാത്രമേ ഉപകരണവുമായി ഡാറ്റ കൈമാറ്റം ചെയ്യാൻ കഴിയൂ, അതേസമയം ബ്ലോക്ക്-ടൈപ്പ് ഉപകരണ ഫയലുകൾ ഒരു ബഫർ ഉപയോഗിച്ച് ബ്ലോക്കുകൾ മാത്രം കൈമാറാൻ അനുവദിക്കുന്നു. ഒരു ഉപകരണ ഫയലിലേക്ക് ഒരു I/O അഭ്യർത്ഥന നടത്തുമ്പോൾ, അഭ്യർത്ഥന ഉചിതമായ ഉപകരണ ഡ്രൈവറിലേക്ക് റീഡയറക്‌ട് ചെയ്യപ്പെടും. അത്തരം ഓരോ ഫയലിനും ഉപകരണ തരം തിരിച്ചറിയുന്ന ഒരു പ്രധാന നമ്പറും ഉപകരണത്തെ തന്നെ തിരിച്ചറിയുന്ന ഒരു മൈനർ നമ്പറും ഉണ്ട്.

EXT2fs-ന്റെ അധിക സവിശേഷതകൾ

സ്റ്റാൻഡേർഡ് യുണിക്സ് ഫീച്ചറുകൾക്ക് പുറമേ, യുണിക്സ് ഫയൽസിസ്റ്റം സാധാരണ പിന്തുണയ്ക്കാത്ത ചില അധിക ഫീച്ചറുകൾ EXT2fs നൽകുന്നു.

ഫയലുകളുടെ സെറ്റ് ഉപയോഗിച്ച് പ്രവർത്തിക്കുമ്പോൾ കേർണൽ എങ്ങനെ പ്രതികരിക്കുന്നു എന്നത് മാറ്റാൻ ഫയൽ ആട്രിബ്യൂട്ടുകൾ നിങ്ങളെ അനുവദിക്കുന്നു. നിങ്ങൾക്ക് ഒരു ഫയലിലോ ഡയറക്ടറിയിലോ ആട്രിബ്യൂട്ടുകൾ സജ്ജമാക്കാൻ കഴിയും. രണ്ടാമത്തെ സാഹചര്യത്തിൽ, ഈ ഡയറക്‌ടറിയിൽ സൃഷ്‌ടിച്ച ഫയലുകൾ ഈ ആട്രിബ്യൂട്ടുകൾ അവകാശമാക്കും.

സിസ്റ്റം മൌണ്ട് സമയത്ത്, ചില ഫയൽ ആട്രിബ്യൂട്ടുകളുമായി ബന്ധപ്പെട്ട സവിശേഷതകൾ സജ്ജമാക്കാൻ കഴിയും. ഫയലുകൾ എങ്ങനെ സൃഷ്ടിക്കണമെന്ന് തിരഞ്ഞെടുക്കാൻ മൌണ്ട് ഓപ്ഷൻ അഡ്മിനിസ്ട്രേറ്ററെ അനുവദിക്കുന്നു. ഒരു ബിഎസ്ഡി-നിർദ്ദിഷ്ട ഫയൽ സിസ്റ്റത്തിൽ, പാരന്റ് ഡയറക്ടറിയുടെ അതേ ഗ്രൂപ്പ് ഐഡി ഉപയോഗിച്ചാണ് ഫയലുകൾ സൃഷ്ടിക്കുന്നത്. സിസ്റ്റം V യുടെ സവിശേഷതകൾ കുറച്ചുകൂടി സങ്കീർണ്ണമാണ്. ഒരു ഡയറക്‌ടറിയുടെ സെറ്റ്‌ഗിഡ് ബിറ്റ് സജ്ജീകരിച്ചിട്ടുണ്ടെങ്കിൽ, സൃഷ്‌ടിച്ച ഫയലുകൾ ഡയറക്‌ടറിയുടെ ഗ്രൂപ്പ് ഐഡിയും സബ്‌ഡയറക്‌ടറികൾ ഗ്രൂപ്പ് ഐഡിയും സെറ്റ്‌ഗിഡ് ബിറ്റും അവകാശമാക്കുന്നു. അല്ലെങ്കിൽ, കോളിംഗ് പ്രക്രിയയുടെ പ്രാഥമിക ഗ്രൂപ്പ് ഐഡി ഉപയോഗിച്ചാണ് ഫയലുകളും ഡയറക്ടറികളും സൃഷ്ടിക്കുന്നത്.

EXT2fs സിസ്റ്റത്തിന് BSD സിസ്റ്റത്തിന് സമാനമായി സിൻക്രണസ് ഡാറ്റ പരിഷ്ക്കരണം ഉപയോഗിക്കാനാകും. എല്ലാ ഡാറ്റയും (ഇൻഡക്‌സ് ഡിസ്ക്രിപ്റ്ററുകൾ, ബിറ്റ് ബ്ലോക്കുകൾ, പരോക്ഷ ബ്ലോക്കുകൾ, ഡയറക്‌ടറി ബ്ലോക്കുകൾ) പരിഷ്‌ക്കരിക്കുമ്പോൾ അവ ഡിസ്‌കിലേക്ക് സിൻക്രൊണസ് ആയി എഴുതുമെന്ന് വ്യക്തമാക്കാൻ മൗണ്ട് ഓപ്ഷൻ അഡ്മിനിസ്ട്രേറ്ററെ അനുവദിക്കുന്നു. ഉയർന്ന എഴുത്ത് ത്രൂപുട്ട് നേടാൻ ഇത് ഉപയോഗിക്കാം, മാത്രമല്ല മോശം പ്രകടനത്തിന് കാരണമാകുകയും ചെയ്യും. വാസ്തവത്തിൽ, ഈ ഫംഗ്ഷൻ സാധാരണയായി ഉപയോഗിക്കാറില്ല, കാരണം പ്രകടനത്തെ തരംതാഴ്ത്തുന്നതിന് പുറമേ, ഫയൽ സിസ്റ്റം പരിശോധിക്കുമ്പോൾ അടയാളപ്പെടുത്താത്ത ഉപയോക്തൃ ഡാറ്റ നഷ്ടപ്പെടുന്നതിന് ഇത് ഇടയാക്കും.

ഒരു ഫയൽ സിസ്റ്റം സൃഷ്ടിക്കുമ്പോൾ ലോജിക്കൽ ബ്ലോക്കിന്റെ വലിപ്പം തിരഞ്ഞെടുക്കാൻ EXT2fs നിങ്ങളെ അനുവദിക്കുന്നു. ഇതിന്റെ വലിപ്പം 1024, 2048 അല്ലെങ്കിൽ 4096 ബൈറ്റുകൾ ആകാം. വലിയ ബ്ലോക്കുകളുടെ ഉപയോഗം വേഗത്തിലുള്ള I/O പ്രവർത്തനങ്ങളിലേക്ക് നയിക്കുന്നു (ഡിസ്കിലേക്കുള്ള അഭ്യർത്ഥനകളുടെ എണ്ണം കുറയുന്നതിനാൽ), തൽഫലമായി, തലകളുടെ ചലനം കുറയുന്നു. മറുവശത്ത്, വലിയ ബ്ലോക്കുകളുടെ ഉപയോഗം ഡിസ്ക് സ്പേസ് നഷ്ടപ്പെടുന്നതിലേക്ക് നയിക്കുന്നു. സാധാരണയായി ഒരു ഫയലിന്റെ അവസാന ബ്ലോക്ക് വിവരങ്ങൾ സംഭരിക്കുന്നതിന് പൂർണ്ണമായി ഉപയോഗിക്കാറില്ല, അതിനാൽ ബ്ലോക്കിന്റെ വലിപ്പം കൂടുന്നതിനനുസരിച്ച്, പാഴായ ഡിസ്ക് സ്ഥലത്തിന്റെ അളവ് വർദ്ധിക്കുന്നു.

ത്വരിതപ്പെടുത്തിയ പ്രതീകാത്മക ലിങ്കുകൾ ഉപയോഗിക്കാൻ EXT2fs നിങ്ങളെ അനുവദിക്കുന്നു. അത്തരം ലിങ്കുകൾ ഉപയോഗിക്കുമ്പോൾ, ഫയൽ സിസ്റ്റം ഡാറ്റ ബ്ലോക്കുകൾ ഉപയോഗിക്കില്ല. ഡെസ്റ്റിനേഷൻ ഫയലിന്റെ പേര് ഡാറ്റ ബ്ലോക്കിലല്ല, ഐനോഡിൽ തന്നെ സംഭരിച്ചിരിക്കുന്നു. ഡിസ്ക് സ്പേസ് ലാഭിക്കാനും പ്രതീകാത്മക ലിങ്കുകളുടെ പ്രോസസ്സിംഗ് വേഗത്തിലാക്കാനും ഈ ഘടന നിങ്ങളെ അനുവദിക്കുന്നു. തീർച്ചയായും, ഹാൻഡിലിനായി നീക്കിവച്ചിരിക്കുന്ന ഇടം പരിമിതമാണ്, അതിനാൽ എല്ലാ ലിങ്കുകളും ത്വരിതപ്പെടുത്തിയ ലിങ്കായി പ്രതിനിധീകരിക്കാൻ കഴിയില്ല. ത്വരിതപ്പെടുത്തിയ ലിങ്കിലെ ഒരു ഫയലിന്റെ പേരിന്റെ പരമാവധി ദൈർഘ്യം 60 പ്രതീകങ്ങളാണ്. സമീപഭാവിയിൽ, ചെറിയ ഫയലുകൾക്കായി ഈ സ്കീം വിപുലീകരിക്കാൻ പദ്ധതിയിട്ടിട്ടുണ്ട്.

EXT2fs ഫയൽ സിസ്റ്റത്തിന്റെ അവസ്ഥ നിരീക്ഷിക്കുന്നു. ഫയൽ സിസ്റ്റത്തിന്റെ അവസ്ഥ സൂചിപ്പിക്കാൻ സൂപ്പർബ്ലോക്കിൽ കേർണൽ ഒരു പ്രത്യേക ഫീൽഡ് ഉപയോഗിക്കുന്നു. ഫയൽ സിസ്റ്റം റീഡ്/റൈറ്റ് മോഡിൽ മൌണ്ട് ചെയ്തിട്ടുണ്ടെങ്കിൽ, അതിന്റെ അവസ്ഥ "വൃത്തിയല്ല" എന്ന് സജ്ജീകരിച്ചിരിക്കുന്നു. അത് അൺമൗണ്ട് ചെയ്യുകയോ റീഡ്-ഒൺലി മോഡിൽ റീമൗണ്ട് ചെയ്യുകയോ ആണെങ്കിൽ, അതിന്റെ അവസ്ഥ "ക്ലീൻ" ആയി സജ്ജീകരിക്കും. സിസ്റ്റം ബൂട്ട്, ഫയൽ സിസ്റ്റം ആരോഗ്യ പരിശോധനകൾ എന്നിവയ്ക്കിടെ, ഒരു ഫയൽ സിസ്റ്റം പരിശോധന ആവശ്യമാണോ എന്ന് നിർണ്ണയിക്കാൻ ഈ വിവരങ്ങൾ ഉപയോഗിക്കുന്നു. കേർണൽ ഈ ഫീൽഡിൽ ചില പിശകുകളും നൽകുന്നു. കേർണൽ ഒരു പൊരുത്തക്കേട് കണ്ടെത്തുമ്പോൾ, ഫയൽസിസ്റ്റം "തെറ്റായത്" എന്ന് അടയാളപ്പെടുത്തുന്നു. സിസ്റ്റം പരിശോധിക്കുന്നതിനായി ഫയൽ സിസ്റ്റം ചെക്കർ ഈ വിവരങ്ങൾ പരിശോധിക്കുന്നു, അതിന്റെ അവസ്ഥ യഥാർത്ഥത്തിൽ "ക്ലീൻ" ആണെങ്കിലും.

ഫയൽ സിസ്റ്റം ടെസ്റ്റിംഗ് വളരെക്കാലം അവഗണിക്കുന്നത് ചിലപ്പോൾ ചില ബുദ്ധിമുട്ടുകൾക്ക് ഇടയാക്കും, അതിനാൽ സിസ്റ്റം സ്ഥിരമായി പരിശോധിക്കുന്നതിനുള്ള രണ്ട് രീതികൾ EXT2fs-ൽ ഉൾപ്പെടുന്നു. സൂപ്പർബ്ലോക്കിൽ ഒരു സിസ്റ്റം മൗണ്ട് കൗണ്ടർ അടങ്ങിയിരിക്കുന്നു. ഓരോ തവണയും സിസ്റ്റം റീഡ്/റൈറ്റ് മോഡിൽ മൗണ്ട് ചെയ്യുമ്പോൾ ഈ കൌണ്ടർ വർദ്ധിപ്പിക്കും. അതിന്റെ മൂല്യം പരമാവധി മൂല്യത്തിൽ എത്തിയാൽ (അത് സൂപ്പർ ബ്ലോക്കിലും സംഭരിച്ചിരിക്കുന്നു), ഫയൽ സിസ്റ്റം ടെസ്റ്റ് ദിനചര്യ ഒരു ഫയൽ സിസ്റ്റം പരിശോധന നടത്തുന്നു, അതിന്റെ അവസ്ഥ "ക്ലീൻ" ആണെങ്കിലും. അവസാന പരിശോധന സമയവും ചെക്കുകൾക്കിടയിലുള്ള പരമാവധി ഇടവേളയും സൂപ്പർബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്നു. പരിശോധനകൾക്കിടയിലുള്ള പരമാവധി ഇടവേളയിൽ എത്തുമ്പോൾ, ഫയൽ സിസ്റ്റത്തിന്റെ അവസ്ഥ അവഗണിക്കപ്പെടുകയും അതിന്റെ പരിശോധന ആരംഭിക്കുകയും ചെയ്യുന്നു.

EXT2fs സിസ്റ്റത്തിൽ ഇത് ട്യൂൺ ചെയ്യാനുള്ള സൗകര്യങ്ങളുണ്ട്. മാറ്റാൻ tune2fs പ്രോഗ്രാം ഉപയോഗിക്കാം:

  • ഒരു പിശക് കണ്ടെത്തിയാൽ നടപടികൾ. കേർണൽ ഒരു പൊരുത്തക്കേട് കണ്ടെത്തിയാൽ, ഫയൽ സിസ്റ്റം "തെറ്റായത്" എന്ന് അടയാളപ്പെടുത്തുകയും ഇനിപ്പറയുന്ന മൂന്ന് പ്രവർത്തനങ്ങളിൽ ഒന്ന് നടപ്പിലാക്കുകയും ചെയ്യാം: എക്സിക്യൂഷൻ തുടരുക, ഫയൽ സിസ്റ്റത്തിന് കേടുപാടുകൾ സംഭവിക്കാതിരിക്കാൻ റീഡ്-ഒൺലി മോഡിൽ റീമൗണ്ട് ചെയ്യുക, പരിശോധിക്കാൻ സിസ്റ്റം റീബൂട്ട് ചെയ്യുക ഫയൽ സിസ്റ്റം.
  • പരമാവധി മൗണ്ട് മൂല്യം.
  • ചെക്കുകൾ തമ്മിലുള്ള പരമാവധി ഇടവേള.
  • റൂട്ട് ഉപയോക്താവിനായി കരുതിവച്ചിരിക്കുന്ന ലോജിക്കൽ ബ്ലോക്കുകളുടെ എണ്ണം.

കേർണൽ ഒരു പിശക് കണ്ടെത്തുന്നത് എങ്ങനെയെന്നത് മാറ്റാനും മൌണ്ട് ഓപ്ഷനുകൾ ഉപയോഗിക്കാം.

ആട്രിബ്യൂട്ടുകളുടെ ഉപയോഗം രഹസ്യ ഫയലുകൾ ഇല്ലാതാക്കാൻ ഉപയോക്താക്കളെ അനുവദിക്കുന്നു. അത്തരമൊരു ഫയൽ ഇല്ലാതാക്കുമ്പോൾ, ഈ ഫയൽ സ്ഥാപിക്കാൻ മുമ്പ് ഉപയോഗിച്ചിരുന്ന ബ്ലോക്കുകളിലേക്ക് ക്രമരഹിതമായ വിവരങ്ങൾ എഴുതപ്പെടും. ഡിസ്ക് എഡിറ്റർ ഉപയോഗിച്ച് ഈ ഫയലിന്റെ മുൻ ഉള്ളടക്കങ്ങളിലേക്ക് പ്രവേശനം നേടുന്നതിൽ നിന്ന് ഇത് പുറത്തുനിന്നുള്ളവരെ തടയുന്നു.

4.4 BSD ഫയൽ സിസ്റ്റത്തിൽ നിന്ന് എടുത്ത പുതിയ ഫയൽ തരങ്ങൾ EXT2fs-ലേക്ക് അടുത്തിടെ ചേർത്തു. ആദ്യ തരത്തിലുള്ള ഫയലുകൾ വായിക്കാൻ മാത്രം കഴിയും: അവ മാറ്റാനോ ഇല്ലാതാക്കാനോ ആർക്കും അവകാശമില്ല. പ്രധാനപ്പെട്ട കോൺഫിഗറേഷൻ ഫയലുകൾ സംരക്ഷിക്കാൻ ഇത് ഉപയോഗിക്കാം. മറ്റൊരു തരത്തിലുള്ള ഫയലുകൾ റൈറ്റ് മോഡിൽ തുറക്കാൻ കഴിയുന്ന ഫയലുകളാണ്, കൂടാതെ ഈ ഫയലിന്റെ അവസാനം മാത്രമേ ഡാറ്റ ചേർക്കാൻ കഴിയൂ. ഈ തരത്തിലുള്ള ഫയലുകൾ ഇല്ലാതാക്കാനോ പേരുമാറ്റാനോ കഴിയില്ല. അവ ലോഗ് ഫയലുകളായി ഉപയോഗിക്കാം, അവ വലുപ്പത്തിൽ മാത്രം വളരും.

പ്രകടന ഒപ്റ്റിമൈസേഷൻ

EXT2fs സിസ്റ്റത്തിൽ അതിന്റെ പ്രകടനം ഒപ്റ്റിമൈസ് ചെയ്യുന്ന നിരവധി സവിശേഷതകൾ അടങ്ങിയിരിക്കുന്നു, ഇത് ഫയലുകൾ വായിക്കുമ്പോഴും എഴുതുമ്പോഴും വിവര കൈമാറ്റത്തിന്റെ വേഗത വർദ്ധിപ്പിക്കുന്നതിന് കാരണമാകുന്നു.

EXT2fs ഡിസ്ക് ബഫർ വൻതോതിൽ ഉപയോഗിക്കുന്നു. ഒരു ബ്ലോക്ക് വായിക്കേണ്ടിവരുമ്പോൾ, കേർണൽ നിരവധി തുടർച്ചയായ ബ്ലോക്കുകളിലേക്ക് ഒരു I/O അഭ്യർത്ഥന നൽകുന്നു. അതിനാൽ, അടുത്തതായി വായിക്കേണ്ട ബ്ലോക്ക് ഡിസ്ക് ബഫറിൽ ലോഡ് ചെയ്തിട്ടുണ്ടെന്ന് ഉറപ്പാക്കാൻ കേർണൽ ശ്രമിക്കുന്നു. ഫയലുകൾ തുടർച്ചയായി വായിക്കുമ്പോഴാണ് സാധാരണയായി ഇത്തരം പ്രവർത്തനങ്ങൾ നടത്തുന്നത്.

EXT2fs സിസ്റ്റത്തിൽ ധാരാളം വിവര ലേഔട്ട് ഒപ്റ്റിമൈസേഷനുകളും അടങ്ങിയിരിക്കുന്നു. അനുബന്ധ ഐനോഡുകളും ഡാറ്റ ബ്ലോക്കുകളും ഗ്രൂപ്പുചെയ്യാൻ ബ്ലോക്ക് ഗ്രൂപ്പുകൾ ഉപയോഗിക്കുന്നു. ഒരേ ഗ്രൂപ്പിൽ ഒരു ഫയലിന്റെ ഡാറ്റ ബ്ലോക്കുകളും അതിന്റെ ഡിസ്ക്രിപ്റ്ററും ഉൾപ്പെടുത്താൻ കേർണൽ എപ്പോഴും ശ്രമിക്കുന്നു. ഡിസ്ക്രിപ്റ്ററും അതിന്റെ അനുബന്ധ ഡാറ്റ ബ്ലോക്കുകളും വായിക്കുമ്പോൾ ഡ്രൈവ് ഹെഡുകളുടെ ചലനം കുറയ്ക്കാൻ ഇത് ഉദ്ദേശിച്ചുള്ളതാണ്.

ഒരു ഫയലിലേക്ക് ഡാറ്റ എഴുതുമ്പോൾ, ഒരു പുതിയ ബ്ലോക്ക് സ്ഥാപിക്കുമ്പോൾ EXT2fs 8 തുടർച്ചയായ ബ്ലോക്കുകൾ വരെ പ്രീഅലോക്കേറ്റ് ചെയ്യുന്നു. കനത്ത സിസ്റ്റം ലോഡ് ഉപയോഗിച്ച് ഉയർന്ന പ്രകടനം നേടാൻ ഈ രീതി നിങ്ങളെ അനുവദിക്കുന്നു. ഫയലുകൾ അലോക്കേറ്റ് ചെയ്യുന്നതിനുള്ള തുടർച്ചയായ ബ്ലോക്കുകളും ഇത് അനുവദിക്കുന്നു, ഇത് അവയുടെ തുടർന്നുള്ള വായനയെ വേഗത്തിലാക്കുന്നു.

EXT2fs ലൈബ്രറി

EXT2fs ഉറവിടങ്ങളുടെ ഉപയോഗം ലളിതമാക്കുന്നതിനും ഈ ഫയൽ സിസ്റ്റത്തിന്റെ നിയന്ത്രണ ഘടനകൾ പ്രവർത്തിപ്പിക്കുന്നതിനും, libext2fs ലൈബ്രറി വികസിപ്പിച്ചെടുത്തു. ഈ ലൈബ്രറിയിൽ ഫിസിക്കൽ ഡിവൈസ് നേരിട്ട് ആക്സസ് ചെയ്യുന്നതിലൂടെ EXT2 ഫയൽ സിസ്റ്റം ഡാറ്റ നിർവചിക്കാനും പരിഷ്കരിക്കാനും ഉപയോഗിക്കാവുന്ന ഫംഗ്ഷനുകൾ അടങ്ങിയിരിക്കുന്നു.

മിക്ക EXT2fs യൂട്ടിലിറ്റികളും (mke2fs, e2fsck, tune2fs, dumpe2fs, debugfs മുതലായവ) ഈ ലൈബ്രറി ഉപയോഗിക്കുന്നു. EXT2fs ഫയൽസിസ്റ്റത്തിൽ അധിക ഫീച്ചറുകൾ അവതരിപ്പിക്കുന്നതിനുള്ള എന്തെങ്കിലും മാറ്റങ്ങൾ EXT2fs ലൈബ്രറിയിൽ മാത്രമേ ചെയ്യാവൂ എന്നതിനാൽ, ഈ യൂട്ടിലിറ്റികളുടെ പരിഷ്ക്കരണത്തെ ഇത് വളരെ ലളിതമാക്കുന്നു.

EXT2fs ലൈബ്രറിയുടെ ഇന്റർഫേസ് വളരെ വിശാലവും അമൂർത്തവുമായതിനാൽ, ഫയൽ സിസ്റ്റത്തിലേക്ക് നേരിട്ട് ആക്സസ് ആവശ്യമുള്ള പ്രോഗ്രാമുകൾ എളുപ്പത്തിൽ എഴുതാൻ ഇത് ഉപയോഗിക്കാം. ഉദാഹരണത്തിന്, 4.4 BSD ഡംപ് ചെയ്യുമ്പോഴും ചില യൂട്ടിലിറ്റികൾ പുനഃസ്ഥാപിക്കുമ്പോഴും EXT2fs ലൈബ്രറി ഉപയോഗിച്ചു. ഈ ടൂളുകൾ Linux-ലേക്ക് പൊരുത്തപ്പെടുത്തുന്നതിന് വളരെ കുറച്ച് മാറ്റങ്ങൾ മാത്രമേ ആവശ്യമുള്ളൂ (ഫയൽ സിസ്റ്റവുമായി സംവദിക്കുന്ന നിരവധി ഫംഗ്ഷനുകൾ EXT2fs ലൈബ്രറിയിലേക്കുള്ള കോളുകൾ ഉപയോഗിച്ച് ഞങ്ങൾ മാറ്റിസ്ഥാപിക്കേണ്ടതുണ്ട്).

EXT2fs ലൈബ്രറി നിരവധി ക്ലാസുകളുടെ പ്രവർത്തനങ്ങളിലേക്ക് പ്രവേശനം നൽകുന്നു. ഫസ്റ്റ് ക്ലാസ് ഫയൽ സിസ്റ്റവുമായി ബന്ധപ്പെട്ട പ്രവർത്തനങ്ങളാണ്. ഏതൊരു പ്രോഗ്രാമിനും ഒരു ഫയൽ സിസ്റ്റം തുറക്കാനോ അടയ്ക്കാനോ കഴിയും, ബിറ്റുകളുടെ ഒരു ബ്ലോക്ക് വായിക്കുകയോ എഴുതുകയോ ചെയ്യാം, ഒരു ഡിസ്കിൽ ഒരു പുതിയ ഫയൽ സിസ്റ്റം സൃഷ്ടിക്കുക. ഫയൽ സിസ്റ്റത്തിലെ മോശം ബ്ലോക്കുകളുടെ പട്ടിക കൈകാര്യം ചെയ്യുന്നതിനുള്ള പ്രവർത്തനങ്ങളും ഉണ്ട്.

രണ്ടാം ക്ലാസ് പ്രവർത്തനങ്ങൾ ഡയറക്ടറികൾ കൈകാര്യം ചെയ്യുന്നു. EXT2fs ലൈബ്രറി ഉപയോഗിക്കുന്ന ഒരു പ്രോഗ്രാമിന് ഒരു ഡയറക്‌ടറി സൃഷ്‌ടിക്കാനോ വികസിപ്പിക്കാനോ കഴിയും, കൂടാതെ ഡയറക്‌ടറി എൻട്രികൾ ചേർക്കുകയോ നീക്കം ചെയ്യുകയോ ചെയ്യാം. ഫയൽ പാതയുടെ ഐനോഡ് നിർണ്ണയിക്കുന്നതിനും നിർദ്ദിഷ്ട ഡിസ്ക്രിപ്റ്റർ ഉപയോഗിച്ച് ഫയലിലേക്കുള്ള പാത നിർണ്ണയിക്കുന്നതിനും രണ്ട് ഫംഗ്ഷനുകളുണ്ട്.

പ്രവർത്തനങ്ങളുടെ അവസാന ക്ലാസ് ഇൻഡെക്സ് ഡിസ്ക്രിപ്റ്ററുകളിൽ പ്രവർത്തിക്കുന്നു. ഡിസ്ക്രിപ്റ്റർ ടേബിൾ വായിക്കാനും, ഡിസ്ക്രിപ്റ്റർ വായിക്കാനും എഴുതാനും, നിർദ്ദിഷ്ട ഡിസ്ക്രിപ്റ്ററിന്റെ എല്ലാ ബ്ലോക്കുകളും കാണാനും സാധിക്കും. ബ്ലോക്കുകൾക്കും ഡിസ്ക്രിപ്റ്ററുകൾക്കുമായി അലോക്കേഷൻ, റിലീസ് ഫംഗ്ഷനുകൾ ഉപയോഗിക്കാൻ കഴിയും.

EXT2fs സിസ്റ്റം ടൂളുകൾ

EXT2fs സിസ്റ്റത്തിനായി ശക്തമായ നിയന്ത്രണങ്ങൾ വികസിപ്പിച്ചെടുത്തിട്ടുണ്ട്. EXT2fs ഫയൽസിസ്റ്റമുകളിൽ എന്തെങ്കിലും പൊരുത്തക്കേടുകൾ സൃഷ്ടിക്കുന്നതിനും പരിഷ്‌ക്കരിക്കുന്നതിനും തിരുത്തുന്നതിനും ഈ ടൂളുകൾ ഉപയോഗിക്കുന്നു. ശൂന്യമായ EXT2fs ഫയൽ സിസ്റ്റം അടങ്ങുന്ന ഡിസ്ക് പാർട്ടീഷൻ മൌണ്ട് ചെയ്യാൻ mke2fs പ്രോഗ്രാം ഉപയോഗിക്കുന്നു.

ഫയൽ സിസ്റ്റം പാരാമീറ്ററുകൾ ട്യൂൺ ചെയ്യാൻ tune2fs പ്രോഗ്രാം ഉപയോഗിക്കാം, പിശകുകളോടുള്ള പ്രതികരണം, പരമാവധി സിസ്റ്റം മൗണ്ടുകൾ, സിസ്റ്റം പരിശോധനകൾക്കിടയിലുള്ള പരമാവധി ഇടവേള, റൂട്ട് ഉപയോക്താവിനായി റിസർവ് ചെയ്തിട്ടുള്ള ലോജിക്കൽ ബ്ലോക്കുകളുടെ എണ്ണം എന്നിവ മാറ്റാൻ ഇത് ഉപയോഗിക്കാം.

ഒരുപക്ഷേ ഏറ്റവും രസകരമായ ഉപകരണം ഫയൽ സിസ്റ്റം ചെക്കറാണ്. മുഴുവൻ സിസ്റ്റവും കൃത്യമായി അടച്ചുപൂട്ടലിന് ശേഷം ഫയൽ സിസ്റ്റത്തിലെ പൊരുത്തക്കേടുകൾ പരിഹരിക്കുന്നതിനാണ് E2fsck രൂപകൽപ്പന ചെയ്തിരിക്കുന്നത്. e2fsck പ്രോഗ്രാമിന്റെ പ്രാരംഭ പതിപ്പ് Minix ഫയൽ സിസ്റ്റത്തിനായുള്ള Linus Torvald fsck പ്രോഗ്രാമിനെ അടിസ്ഥാനമാക്കിയുള്ളതാണ്. എന്നിരുന്നാലും, പ്രോഗ്രാമിന്റെ നിലവിലെ പതിപ്പ് EXT2fs ലൈബ്രറി ഉപയോഗിച്ച് മാറ്റിയെഴുതിയിരിക്കുന്നു, അത് വേഗമേറിയതും യഥാർത്ഥ പതിപ്പിനെ അപേക്ഷിച്ച് പരിശോധിക്കുമ്പോൾ സിസ്റ്റത്തിൽ കൂടുതൽ പിശകുകൾ പരിഹരിക്കാനും കഴിയും.

e2fsck പ്രോഗ്രാം കഴിയുന്നത്ര വേഗത്തിൽ പ്രവർത്തിക്കാൻ രൂപകൽപ്പന ചെയ്തിരിക്കുന്നു. ഫയൽ സിസ്റ്റം ചെക്ക് പ്രോഗ്രാമുകൾ ഡിസ്ക് ലോഡ് ചെയ്യുന്നതിലേക്ക് നയിക്കുന്നതിനാൽ, e2fsck അൽഗോരിതങ്ങൾ ഒപ്റ്റിമൈസ് ചെയ്യണം, അങ്ങനെ ഫയൽ സിസ്റ്റം ഘടനകൾ വളരെ കുറച്ച് മാത്രമേ ആക്സസ് ചെയ്യപ്പെടുകയുള്ളൂ. കൂടാതെ, ഡിസ്ക് ഡ്രൈവിന്റെ തലകൾ ചലിപ്പിക്കുന്ന സമയം കുറയ്ക്കുന്നതിന് ഐനോഡുകളും ഡയറക്‌ടറികളും പരിശോധിക്കുന്നതിനുള്ള ക്രമം ബ്ലോക്ക് നമ്പർ ഉപയോഗിച്ച് നിർവ്വഹിക്കും.

ആദ്യ പാസിൽ, e2fsck ഫയൽ സിസ്റ്റത്തിന്റെ എല്ലാ ഐനോഡുകളിലൂടെയും പ്രവർത്തിക്കുകയും ഓരോ ഐനോഡും സിസ്റ്റത്തിന്റെ പ്രത്യേക ഘടകമായി പരിശോധിക്കുകയും ചെയ്യുന്നു. അതിനാൽ, ഈ ടെസ്റ്റ് ഫയൽ സിസ്റ്റത്തിലെ മറ്റ് ഒബ്ജക്റ്റുകൾ പരിശോധിക്കുന്നില്ല. അത്തരം ചെക്കുകളുടെ ഉദ്ദേശ്യങ്ങളിലൊന്ന്, പരിശോധിക്കപ്പെടുന്ന ഫയലിന്റെ അസ്തിത്വവും നിലവിലുള്ള നമ്പറുകളുള്ള ബ്ലോക്കുകളുള്ള ഡിസ്ക്രിപ്റ്ററിലെ എല്ലാ ബ്ലോക്കുകളുടെയും കത്തിടപാടുകളും പരിശോധിക്കുക എന്നതാണ്. ആദ്യ പാസിൽ, ബ്ലോക്കുകളുടെയും ഡിസ്ക്രിപ്റ്ററുകളുടെയും ഉപയോഗം സൂചിപ്പിക്കുന്ന ബിറ്റ്മാപ്പുകൾ പരിശോധിക്കുന്നു.

e2fsck ഒന്നിലധികം ഡിസ്ക്രിപ്റ്ററുകളിൽ അക്കങ്ങൾ അടങ്ങിയ ഡാറ്റ ബ്ലോക്കുകൾ കണ്ടെത്തുകയാണെങ്കിൽ, പൊരുത്തക്കേട് പരിഹരിക്കുന്നതിന് 1B മുതൽ 1D വരെ റൺ ചെയ്യുന്നു, ഒന്നുകിൽ പങ്കിട്ട ബ്ലോക്കുകൾ വർദ്ധിപ്പിച്ചോ അല്ലെങ്കിൽ ഒന്നോ അതിലധികമോ ഡിസ്ക്രിപ്റ്ററുകൾ ഇല്ലാതാക്കി.

എല്ലാ ഐനോഡുകളും മെമ്മറിയിലേക്ക് റീഡ് ചെയ്യുകയും പരിശോധിക്കുകയും ചെയ്യേണ്ടതിനാൽ, ആദ്യ പാസിന് കൂടുതൽ സമയമെടുക്കും. തുടർന്നുള്ള പാസുകളിൽ I / O പ്രവർത്തനങ്ങളുടെ സമയം കുറയ്ക്കുന്നതിന്, ആവശ്യമായ എല്ലാ വിവരങ്ങളും ബഫറിൽ അവശേഷിക്കുന്നു. ഈ സ്കീമിന്റെ ഒരു സവിശേഷത, ഫയൽ സിസ്റ്റത്തിലെ എല്ലാ ഡയറക്ടറി ബ്ലോക്കുകൾക്കും വേണ്ടിയുള്ള തിരയലാണ്. ഈ വിവരം ലഭിക്കുന്നതിന്, രണ്ടാമത്തെ പാസിൽ, ഫയൽ സിസ്റ്റത്തിന്റെ എല്ലാ ഡയറക്ടറികളുടെയും ഡിസ്ക്രിപ്റ്റർ ഘടനകൾ വീണ്ടും വായിക്കുന്നു.

രണ്ടാമത്തെ പാസിൽ, ഫയൽ സിസ്റ്റത്തിന്റെ പ്രത്യേക ഘടകങ്ങളായി ഡയറക്ടറികൾ പരിശോധിക്കുന്നു. മറ്റ് ഡയറക്ടറി ബ്ലോക്കുകളെ പരാമർശിക്കാതെ ഓരോ ഡയറക്ടറി ബ്ലോക്കും പ്രത്യേകം പരിശോധിക്കുന്നു. ഇത് e2fsck-നെ ബ്ലോക്ക് നമ്പർ പ്രകാരം എല്ലാ ഡയറക്‌ടറി ബ്ലോക്കുകളും അടുക്കാനും ആരോഹണ ക്രമത്തിൽ പരിശോധിക്കാനും അനുവദിക്കുന്നു, അങ്ങനെ ഡിസ്ക് ആക്‌സസ് സമയം കുറയുന്നു. ഡയറക്‌ടറി ബ്ലോക്കുകൾ അവയുടെ എൻട്രികൾ സാധുതയുള്ളതാണെന്നും നിലവിലുള്ള നമ്പറുകളുള്ള (ആദ്യ പാസിൽ നിർണ്ണയിച്ചിരിക്കുന്നതുപോലെ) ഡിസ്ക്രിപ്റ്ററുകളുടെ റഫറൻസുകൾ അവയിൽ അടങ്ങിയിട്ടുണ്ടെന്നും പരിശോധിക്കുന്നു.

ഓരോ ഡയറക്‌ടറി ഡിസ്‌ക്രിപ്‌റ്ററിലെയും ആദ്യത്തെ ഡയറക്‌ടറി ബ്ലോക്കിനായി, "." എൻട്രികളുടെ അസ്തിത്വം പരിശോധിച്ചു. കൂടാതെ "..", കൂടാതെ "" എൻട്രിയുടെ ഡിസ്ക്രിപ്റ്റർ നമ്പർ. നിലവിലെ ഡയറക്‌ടറിയുമായി പൊരുത്തപ്പെടുന്നു. (".." എന്ന എൻട്രിയുടെ ഡിസ്ക്രിപ്റ്റർ നമ്പർ മൂന്നാം പാസ്സ് വരെ പരീക്ഷിച്ചിട്ടില്ല.)

രണ്ടാമത്തെ പാസ് സമയത്ത്, പാരന്റ് ഡയറക്ടറിയുമായി ബന്ധപ്പെട്ട വിവരങ്ങൾ ബഫറിൽ സംഭരിക്കുന്നു.

രണ്ടാമത്തെ പാസിന്റെ അവസാനത്തോടെ, മിക്കവാറും എല്ലാ ഡിസ്ക് I/O പ്രവർത്തനങ്ങളും പൂർത്തിയായി എന്നത് ശ്രദ്ധിക്കേണ്ടതാണ്. മൂന്നാമത്തെയും നാലാമത്തെയും അഞ്ചാമത്തെയും പാസുകൾക്ക് ആവശ്യമായ എല്ലാ വിവരങ്ങളും മെമ്മറിയിൽ സൂക്ഷിച്ചിരിക്കുന്നു, എന്നിരുന്നാലും, ശേഷിക്കുന്ന പാസുകൾ CPU തീവ്രമാണ്, കൂടാതെ e2fsck-ന്റെ മൊത്തം എക്സിക്യൂഷന്റെ 5-10% ൽ താഴെ മാത്രമേ എടുക്കൂ.

മൂന്നാമത്തെ പാസിൽ, ഡയറക്ടറി ലിങ്കുകൾ പരിശോധിക്കുന്നു. E2fsck, രണ്ടാമത്തെ പാസിൽ ലഭിച്ച വിവരങ്ങൾ ഉപയോഗിച്ച് ഓരോ ഡയറക്ടറിയുടെയും റൂട്ട് റൂട്ട് പരിശോധിക്കുന്നു. ഓരോ ഡയറക്‌ടറിക്കുമുള്ള ".." എന്ന എൻട്രിയും ഇത് പരിശോധിക്കുന്നു. ചെക്കിന് ശേഷം തിരിച്ചറിഞ്ഞ എല്ലാ ഡയറക്‌ടറികളും റൂട്ടുമായി ബന്ധമില്ലാത്തതും /ലോസ്റ്റ്+ഫൗണ്ട് ഡയറക്‌ടറിയിൽ സ്ഥാപിച്ചിരിക്കുന്നു.

നാലാമത്തെ പാസിൽ, e2fsck, എല്ലാ ഐനോഡുകളും നോക്കി, രണ്ടാമത്തെയും മൂന്നാമത്തെയും പാസുകളിൽ കണക്കാക്കിയ ഇന്റേണൽ കൗണ്ടറുകളുമായി ലിങ്ക് കൗണ്ടറുകൾ (ആദ്യ പാസ്സിൽ നിന്ന് സൂക്ഷിച്ചിരിക്കുന്നു) താരതമ്യം ചെയ്തുകൊണ്ട് ഓരോ ഇനോഡിനുമുള്ള ലിങ്ക് കൗണ്ടറുകൾ പരിശോധിക്കുന്നു. പൂജ്യത്തിന്റെ റഫറൻസ് കൗണ്ട് ഉള്ള എല്ലാ നോൺ-ഡിലീറ്റ് ഫയലുകളും /Lost+found ഡയറക്‌ടറിയിൽ സ്ഥാപിച്ചിരിക്കുന്നു.

അവസാനമായി, അഞ്ചാമത്തെ പാസിൽ, ഫയൽ സിസ്റ്റത്തെക്കുറിച്ചുള്ള എല്ലാ വിവരങ്ങളും പൊരുത്തപ്പെടുന്നുണ്ടോയെന്ന് e2fsck പരിശോധിക്കുന്നു. ഇവിടെ, മുൻ പാസുകളിൽ ലഭിച്ച ബ്ലോക്ക്, ഡിസ്ക്രിപ്റ്റർ ബിറ്റ്മാപ്പുകൾ യഥാർത്ഥ മൂല്യങ്ങളുമായി താരതമ്യം ചെയ്യുന്നു, ആവശ്യമെങ്കിൽ ഡിസ്കിലെ വിവരങ്ങൾ അതിനനുസരിച്ച് ശരിയാക്കുന്നു.

മറ്റൊരു ഉപയോഗപ്രദമായ ഉപകരണം ഫയൽ സിസ്റ്റം ഡീബഗ്ഗർ ആണ്. ഒരു ഫയൽ സിസ്റ്റത്തിന്റെ അവസ്ഥ നിർണ്ണയിക്കാനും സജ്ജമാക്കാനും നിങ്ങളെ അനുവദിക്കുന്ന ഒരു ശക്തമായ പ്രോഗ്രാമാണ് ഡീബഗ്ഫ്സ്. അടിസ്ഥാനപരമായി, ഇത് EXT2fs ലൈബ്രറിയിലേക്കുള്ള ഒരു ഇന്ററാക്ടീവ് ഇന്റർഫേസാണ്, അതായത്, ടൈപ്പ് ചെയ്‌ത കമാൻഡുകൾ ലൈബ്രറി ഫംഗ്‌ഷൻ കോളുകളിലേക്ക് ഇത് വിവർത്തനം ചെയ്യുന്നു.

ഒരു ഫയൽസിസ്റ്റത്തിന്റെ ആന്തരിക ഘടന നിർണ്ണയിക്കുന്നതിനോ കേടായ ഒരു സിസ്റ്റം സ്വമേധയാ റിപ്പയർ ചെയ്യുന്നതിനോ അല്ലെങ്കിൽ e2fsck-നുള്ള സോപാധിക പരിശോധനകൾ സൃഷ്ടിക്കുന്നതിനോ ഡീബഗ്ഫുകൾ ഉപയോഗിക്കാം. നിർഭാഗ്യവശാൽ, ഈ പ്രോഗ്രാം എങ്ങനെ ഉപയോഗിക്കണമെന്ന് നിങ്ങൾക്കറിയില്ലെങ്കിൽ ഫയൽ സിസ്റ്റത്തെ തകരാറിലാക്കും. ഈ ഉപകരണം ഉപയോഗിച്ച്, ഫയൽ സിസ്റ്റം നശിപ്പിക്കാൻ ഇത് മതിയാകും. അതിനാൽ, debugfs സ്വതവേ റീഡ്-ഒൺലി മോഡിൽ ഫയൽസിസ്റ്റം തുറക്കുന്നു. റീഡ്/റൈറ്റ് ആക്‌സസിന്, -w ഓപ്ഷൻ വ്യക്തമാക്കിയിരിക്കണം.

പ്രകടന കണക്കുകൂട്ടൽ

ബോണി ടെസ്റ്റിന്റെ ഫലങ്ങൾ ഇനിപ്പറയുന്ന പട്ടികയിൽ നിന്ന് കാണാം:

പ്രതീകം എഴുതുക (Kb/s)

എഴുതുന്നത് തടയുക (Kb/s)

തിരുത്തിയെഴുതുക (Kb/s)

അക്ഷരം വായിച്ചു (Kb/s)

ബ്ലോക്ക് റീഡ് (Kb/s)

BSD അസിൻക്

BSD സമന്വയം

ext2 fs

1237

1033

Xia fs

ബ്ലോക്ക് I/O യ്ക്ക് ഫലങ്ങൾ വളരെ നല്ലതാണ്: EXT2fs സിസ്റ്റം മറ്റ് സിസ്റ്റങ്ങളെ മറികടക്കുന്നു. അലോക്കേഷൻ നടപടിക്രമങ്ങളിൽ ഉൾപ്പെടുത്തിയിട്ടുള്ള ഒപ്റ്റിമൈസേഷനുകളാണ് ഇതിന് കാരണം. റെക്കോർഡിംഗും വളരെ വേഗതയുള്ളതാണ്, കാരണം ഇത് ഗ്രൂപ്പ് മോഡിലാണ് നടത്തുന്നത്. ഫയലിലേക്ക് ബ്ലോക്കുകൾ അനുവദിച്ചിരിക്കുന്നതിനാലാണ് ഉയർന്ന വായനാ വേഗത, അതിനാൽ ഡ്രൈവ് തലകൾ രണ്ട് വായനകൾക്കിടയിൽ നീങ്ങുന്നില്ല, പ്രീ-റെഡ് ഒപ്റ്റിമൈസേഷൻ പൂർണ്ണമായി പ്രവർത്തിക്കുന്നു.

മറുവശത്ത്, FreeBSD സിസ്റ്റം I/O എന്ന പ്രതീകത്തിൽ മികച്ച പ്രകടനം കാഴ്ചവയ്ക്കുന്നു. ഫ്രീബിഎസ്‌ഡിയും ലിനക്സും അതത് സി ലൈബ്രറികളിൽ വ്യത്യസ്ത നടപടിക്രമങ്ങൾ ഉപയോഗിക്കുന്നതിനാലാകാം ഇത്. കൂടാതെ, ഫ്രീബിഎസ്ഡിക്ക് കൂടുതൽ ഒപ്റ്റിമൈസ് ചെയ്ത ക്യാരക്ടർ റീഡിംഗ് ലൈബ്രറി ഉണ്ടായിരിക്കാൻ സാധ്യതയുണ്ട്, അതിനാൽ ഇവിടെ പ്രകടനം അൽപ്പം മികച്ചതാണ്.

ആൻഡ്രൂ ടെസ്റ്റ് ഫലങ്ങൾ

ആൻഡ്രൂ പരിശോധനയുടെ ഫലങ്ങൾ ഇനിപ്പറയുന്ന പട്ടികയിൽ നിന്ന് ദൃശ്യമാണ്:

1 സൃഷ്ടിക്കൽ വിജയിക്കുക

പാസ് 2 കോപ്പി

3 സ്റ്റാറ്റസ് ചെക്ക് പാസ്സാക്കുക

4 ബൈറ്റ് ചെക്ക് പാസ്സാക്കുക

5 സമാഹരണം പാസ്സാക്കുക

2203

7391

6319

17466

75314

BSD സമന്വയം

2330

7732

6317

17499

75681

ext2 fs

അസിൻക്രണസ് കമ്മ്യൂണിക്കേഷൻ ഉപയോഗിച്ച് ലിനക്സ് വിജയിക്കുന്നുവെന്ന് ആദ്യ രണ്ട് പാസുകളുടെ ഫലങ്ങൾ കാണിക്കുന്നു. ഡയറക്ടറികളും ഫയലുകളും സൃഷ്ടിക്കുമ്പോൾ, BSD സിസ്റ്റം ഡയറക്‌ടറി ഡിസ്ക്രിപ്റ്ററുകളും ഡയറക്‌ടറി എൻട്രികളും സമന്വയത്തോടെ എഴുതുന്നു. ഫ്രീബിഎസ്ഡിക്കുള്ള അസിൻക്രണസ് പിന്തുണ ഇതുവരെ പൂർണ്ണമായി നടപ്പിലാക്കിയിട്ടില്ലെന്ന് ഊഹാപോഹമുണ്ട്.

മൂന്നാമത്തെ പാസിൽ, Linux, BSD എന്നിവയുടെ മൂല്യങ്ങൾ വളരെ സമാനമാണ്. BSD പ്രകടനം മികച്ചതാണെങ്കിലും, ലിനക്സ് സിസ്റ്റത്തിന്റെ VFS-ലേക്ക് ഫയൽനാമങ്ങൾക്കായി ഒരു ബഫർ ചേർക്കുന്നത് ഈ പ്രശ്നം ഇല്ലാതാക്കുന്നു.

നാലാമത്തെയും അഞ്ചാമത്തെയും പാസുകളിൽ, ലിനക്സ് FreeBSD-യെക്കാൾ വേഗതയുള്ളതാണ്, പ്രധാനമായും പങ്കിട്ട ബഫർ മാനേജ്മെന്റിന്റെ ഉപയോഗം കാരണം. ബഫർ വലുപ്പം ആവശ്യാനുസരണം വളരുകയും ഒരു നിശ്ചിത തുക ഉപയോഗിക്കുന്ന FreeBSD യേക്കാൾ കൂടുതൽ മെമ്മറി എടുക്കുകയും ചെയ്യും. EXT2fs, Xia fs സിസ്റ്റങ്ങളുടെ ഫലങ്ങളുടെ താരതമ്യം, EXT2fs-ൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഒപ്റ്റിമൈസേഷൻ ശരിക്കും ഉപയോഗിച്ചതായി കാണിക്കുന്നു: ഈ സിസ്റ്റങ്ങളുടെ പ്രകടനത്തിലെ വ്യത്യാസം ഏകദേശം 5-10% ആണ്.

ഉപസംഹാരം

ലിനക്സ് ഉപയോക്തൃ സർക്കിളുകളിൽ ഏറ്റവും വ്യാപകമായി ഉപയോഗിക്കുന്നത് EXT2 ഫയൽ സിസ്റ്റമാണ്. ഇത് സ്റ്റാൻഡേർഡ് Unix സവിശേഷതകളും അധിക സവിശേഷതകളും നൽകുന്നു. കൂടാതെ, കേർണലിൽ ഉൾപ്പെടുത്തിയിരിക്കുന്ന ഒപ്റ്റിമൈസേഷന് നന്ദി, ഇത് മികച്ച പ്രകടന ഫലങ്ങൾ കാണിക്കുന്നു.

EXT2fs സിസ്റ്റത്തിൽ പുതിയ ഫീച്ചറുകൾ ചേർക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ഫീച്ചറുകൾ ഉൾപ്പെടുന്നു. യഥാർത്ഥ ഫയൽ സിസ്റ്റത്തിനായുള്ള വിപുലീകരണങ്ങൾ വികസിപ്പിക്കുന്നതിൽ ചില ആളുകൾ പ്രവർത്തിക്കുന്നു: Posix ആക്സസ് കൺട്രോൾ ലിസ്റ്റ്, ഇല്ലാതാക്കിയ ഫയൽ വീണ്ടെടുക്കൽ, തത്സമയ ഫയൽ കംപ്രഷൻ.

ആദ്യം, EXT2fs സിസ്റ്റം ലിനക്സ് കേർണലിലേക്ക് സംയോജിപ്പിച്ചു, ഇപ്പോൾ ഇത് മറ്റ് ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിലേക്ക് സജീവമായി പോർട്ട് ചെയ്യുന്നു. EXT2fs Masix ഓപ്പറേറ്റിംഗ് സിസ്റ്റത്തിന്റെ ഒരു പ്രധാന ഘടകമാണ്, ഇത് നിലവിൽ രചയിതാക്കളിൽ ഒരാൾ വികസിപ്പിച്ചുകൊണ്ടിരിക്കുന്നു.

ഏതൊരു UNIX ഫയൽ സിസ്റ്റത്തെയും പോലെ, ext2 ഇനിപ്പറയുന്ന ഘടകങ്ങളായി തിരിക്കാം:

- ബ്ലോക്കുകളും ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകളും;

- ഇൻഡക്സ് ഡിസ്ക്രിപ്റ്റർ;

- സൂപ്പർബ്ലോക്ക്.

മുഴുവൻ ഡിസ്ക് പാർട്ടീഷൻ സ്ഥലവും സെക്ടർ വലുപ്പത്തിന്റെ ഗുണിതങ്ങളായ ഫിക്സഡ്-സൈസ് ബ്ലോക്കുകളായി തിരിച്ചിരിക്കുന്നു: 1024, 2048, 4096, അല്ലെങ്കിൽ 8192 ബൈറ്റുകൾ. ഒരു ഡിസ്ക് പാർട്ടീഷനിൽ ഒരു ഫയൽ സിസ്റ്റം ഉണ്ടാക്കുമ്പോൾ ബ്ലോക്ക് സൈസ് വ്യക്തമാക്കുന്നു. ഒരു ചെറിയ ബ്ലോക്ക് വലിപ്പം ഹാർഡ് ഡിസ്കിന്റെ ഇടം ലാഭിക്കുന്നു, മാത്രമല്ല പരമാവധി ഫയൽ സിസ്റ്റം വലിപ്പം പരിമിതപ്പെടുത്തുന്നു. എല്ലാ ബ്ലോക്കുകൾക്കും സീരിയൽ നമ്പറുകളുണ്ട്. വലിയ ഡാറ്റ അറേകൾ വായിക്കുമ്പോൾ വിഘടനവും ഹാർഡ് ഡിസ്ക് തല ചലനങ്ങളുടെ എണ്ണവും കുറയ്ക്കുന്നതിന്, ബ്ലോക്കുകൾ ബ്ലോക്ക് ഗ്രൂപ്പുകളായി സംയോജിപ്പിച്ചിരിക്കുന്നു.

ഒരു ഫയൽ സിസ്റ്റത്തിന്റെ അടിസ്ഥാന ആശയം ഒരു ഐനോഡ് അല്ലെങ്കിൽ ഐനോഡ് (ഇൻഫർമേഷൻ നോഡ്) ആണ്. ഒരു ഫയലിന്റെ ആട്രിബ്യൂട്ടുകളും ഫിസിക്കൽ ലൊക്കേഷനും സംബന്ധിച്ച വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു പ്രത്യേക ഘടനയാണിത്. ഓരോ ഗ്രൂപ്പിന്റെയും ബ്ലോക്കുകളുടെ തുടക്കത്തിൽ അടങ്ങിയിരിക്കുന്ന ഒരു പട്ടികയിൽ ഇനോഡുകൾ ക്രമീകരിച്ചിരിക്കുന്നു.

ചിത്രം 10 - FS ext2-ന്റെ പൊതുവായ ബ്ലോക്ക് ഡയഗ്രം

ext2 ഫയൽ സിസ്റ്റത്തിന്റെ പ്രധാന ഘടകമാണ് സൂപ്പർബ്ലോക്ക്. ഫയൽ സിസ്റ്റത്തെക്കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു:

ഫയൽ സിസ്റ്റത്തിലെ മൊത്തം ബ്ലോക്കുകളുടെയും ഐനോഡുകളുടെയും എണ്ണം,

ഫയൽ സിസ്റ്റത്തിലെ ഫ്രീ ബ്ലോക്കുകളുടെയും ഐനോഡുകളുടെയും എണ്ണം,

ഫയൽ സിസ്റ്റം ബ്ലോക്ക് വലിപ്പം,

ഒരു ബ്ലോക്ക് ഗ്രൂപ്പിലെ ബ്ലോക്കുകളുടെയും ഐനോഡുകളുടെയും എണ്ണം,

ഐനോഡ് വലിപ്പം,

ഫയൽ സിസ്റ്റം ഐഡന്റിഫയർ.

വിഭാഗത്തിന്റെ തുടക്കം മുതൽ സൂപ്പർബ്ലോക്ക് 1024 ബൈറ്റുകൾ ആണ്. ഫയൽ സിസ്റ്റത്തിന്റെ ആരോഗ്യം നേരിട്ട് സൂപ്പർബ്ലോക്കിന്റെ സമഗ്രതയെ ആശ്രയിച്ചിരിക്കുന്നു. പാർട്ടീഷൻ കേടായ സാഹചര്യത്തിൽ ഓപ്പറേറ്റിംഗ് സിസ്റ്റം സൂപ്പർബ്ലോക്കിന്റെ നിരവധി ബാക്കപ്പ് പകർപ്പുകൾ സൃഷ്ടിക്കുന്നു. സൂപ്പർബ്ലോക്കിന് ശേഷമുള്ള അടുത്ത ബ്ലോക്കിൽ ഗ്ലോബൽ ഡിസ്ക്രിപ്റ്റർ ടേബിൾ അടങ്ങിയിരിക്കുന്നു - ബ്ലോക്ക് ഗ്രൂപ്പുകളുടെ ഒരു വിവരണം, വിഭാഗത്തിലെ ബ്ലോക്കുകളുടെ എല്ലാ ഗ്രൂപ്പുകളെക്കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ഒരു അറേയാണിത്.

ഒരു ext2 പാർട്ടീഷനിലെ എല്ലാ ബ്ലോക്കുകളും ബ്ലോക്ക് ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു. ഓരോ ഗ്രൂപ്പിനും, പ്രധാന പാരാമീറ്ററുകൾ സംഭരിക്കുന്ന ആഗോള വിവരണ പട്ടികയിൽ ഒരു പ്രത്യേക എൻട്രി സൃഷ്ടിച്ചിരിക്കുന്നു:

ബ്ലോക്ക് ബിറ്റ്മാപ്പിലെ ബ്ലോക്ക് നമ്പർ,

ഐനോഡ് ബിറ്റ്മാപ്പിലെ ബ്ലോക്ക് നമ്പർ,

ഐനോഡ് പട്ടികയിലെ ബ്ലോക്ക് നമ്പർ,

ഗ്രൂപ്പിലെ ഫ്രീ ബ്ലോക്കുകളുടെ എണ്ണം,

ഡയറക്ടറികൾ അടങ്ങിയ ഐനോഡുകളുടെ എണ്ണം.

ഒരു ബ്ലോക്ക് ബിറ്റ്മാപ്പ് ഒരു ഘടനയാണ്, ഓരോ ബിറ്റും അനുബന്ധ ബ്ലോക്ക് ഏതെങ്കിലും ഫയലിന് നൽകിയിട്ടുണ്ടോ എന്ന് സൂചിപ്പിക്കുന്നു. ബിറ്റ് 1 ആണെങ്കിൽ, ബ്ലോക്ക് തിരക്കിലാണ്. സമാനമായ ഒരു ഫംഗ്‌ഷൻ ഐനോഡ് ബിറ്റ്‌മാപ്പ് നിർവ്വഹിക്കുന്നു, ഇത് ഏതൊക്കെ ഇനോഡുകളാണ് കൈവശമുള്ളതെന്നും അല്ലാത്തതെന്നും കാണിക്കുന്നു. ലിനക്സ് കേർണൽ, ഡയറക്ടറികൾ അടങ്ങിയ ഐനോഡുകളുടെ എണ്ണം ഉപയോഗിച്ച്, ഡയറക്ടറി ഐനോഡുകൾ ഗ്രൂപ്പുകളായി തുല്യമായി വിതരണം ചെയ്യാൻ ശ്രമിക്കുന്നു, സാധ്യമെങ്കിൽ പാരന്റ് ഡയറക്ടറി ഉപയോഗിച്ച് ഗ്രൂപ്പിലേക്ക് ഫയൽ ഐനോഡുകൾ നീക്കാൻ ശ്രമിക്കുന്നു. ഡാറ്റയായി പട്ടികയിൽ സൂചിപ്പിച്ചിരിക്കുന്ന ശേഷിക്കുന്ന എല്ലാ സ്ഥലവും ഫയലുകൾ സംഭരിക്കുന്നതിനായി നീക്കിവച്ചിരിക്കുന്നു.

ext2 ഫയൽസിസ്റ്റം ഇനിപ്പറയുന്ന ഫയൽ ബ്ലോക്ക് അഡ്രസിംഗ് സ്കീം ഉപയോഗിക്കുന്നു. ഫയൽ വിലാസം സംഭരിക്കുന്നതിന്, 15 ഫീൽഡുകൾ അനുവദിച്ചിരിക്കുന്നു, അവയിൽ ഓരോന്നിനും 4 ബൈറ്റുകൾ അടങ്ങിയിരിക്കുന്നു. ഫയൽ 12 ബ്ലോക്കുകളിൽ യോജിക്കുന്നുവെങ്കിൽ, അനുബന്ധ ക്ലസ്റ്ററുകളുടെ നമ്പറുകൾ വിലാസത്തിന്റെ ആദ്യ പന്ത്രണ്ട് ഫീൽഡുകളിൽ നേരിട്ട് പട്ടികപ്പെടുത്തിയിരിക്കുന്നു. ഫയൽ വലുപ്പം 12 ബ്ലോക്കുകൾ കവിയുന്നുവെങ്കിൽ, അടുത്ത ഫീൽഡിൽ ഫയലിന്റെ അടുത്ത ബ്ലോക്കുകളുടെ നമ്പറുകൾ കണ്ടെത്താൻ കഴിയുന്ന ക്ലസ്റ്ററിന്റെ വിലാസം അടങ്ങിയിരിക്കുന്നു. അങ്ങനെ, 13-ാമത്തെ ഫീൽഡ് പരോക്ഷ വിലാസത്തിനായി ഉപയോഗിക്കുന്നു.

പരമാവധി ബ്ലോക്ക് വലുപ്പം 4096 ബൈറ്റുകൾ ഉള്ളതിനാൽ, 13-ാമത്തെ ഫീൽഡുമായി ബന്ധപ്പെട്ട ക്ലസ്റ്ററിന് ഫയലിൽ 1024 അടുത്ത ബ്ലോക്ക് നമ്പറുകൾ വരെ അടങ്ങിയിരിക്കാം. ഫയൽ വലുപ്പം 12+1024 ബ്ലോക്കുകൾ കവിയുന്നുവെങ്കിൽ, 14-ാമത്തെ ഫീൽഡ് ഉപയോഗിക്കുന്നു, അതിൽ 1024 ക്ലസ്റ്റർ നമ്പറുകൾ അടങ്ങിയ ഒരു ക്ലസ്റ്ററിന്റെ വിലാസം അടങ്ങിയിരിക്കുന്നു, അവയിൽ ഓരോന്നും ഫയലിന്റെ 1024 ബ്ലോക്കുകളെ സൂചിപ്പിക്കുന്നു. ഇവിടെ ഇരട്ട പരോക്ഷ വിലാസം ഉപയോഗിക്കുന്നു. അവസാനമായി, ഫയലിൽ 12+1024+1048576 ബ്ലോക്കുകളിൽ കൂടുതൽ അടങ്ങിയിട്ടുണ്ടെങ്കിൽ, അവസാനത്തെ 15-ാമത്തെ ഫീൽഡ് ട്രിപ്പിൾ ഇൻഡെറക്ഷനായി ഉപയോഗിക്കുന്നു.

4096 ബൈറ്റുകളുടെ പരമാവധി ബ്ലോക്ക് വലിപ്പമുള്ള ഈ അഡ്രസിംഗ് സിസ്റ്റം 2 TB-ൽ കൂടുതൽ വലിപ്പമുള്ള ഫയലുകൾ സ്വന്തമാക്കാൻ അനുവദിക്കുന്നു.

ലിനക്സ് കേർണലിനെ അടിസ്ഥാനമാക്കിയുള്ള ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ ഉപയോഗിക്കുന്ന ഒരു ജേണലിംഗ് ഫയൽ സിസ്റ്റമാണ് ext3 അല്ലെങ്കിൽ ext3fs. FS ext2 അടിസ്ഥാനമാക്കി.

ext2-ൽ നിന്നുള്ള പ്രധാന വ്യത്യാസം, ext3 ജേണൽ ചെയ്‌തിരിക്കുന്നു എന്നതാണ്, അതായത്, കമ്പ്യൂട്ടർ തകരാറിലായാൽ ഫയൽ സിസ്റ്റം പുനഃസ്ഥാപിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്ന ചില ഡാറ്റ എഴുതാൻ ഇത് നൽകുന്നു.

സ്റ്റാൻഡേർഡ് മൂന്ന് ലോഗിംഗ് മോഡുകൾ നൽകുന്നു:

writeback: ഫയൽ സിസ്റ്റത്തിന്റെ മെറ്റാഡാറ്റ, അതായത് അതിന്റെ മാറ്റത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ മാത്രമേ ജേണലിൽ എഴുതിയിട്ടുള്ളൂ. ഡാറ്റയുടെ സമഗ്രത ഉറപ്പുനൽകാൻ കഴിയില്ല, എന്നാൽ ext2 മായി താരതമ്യപ്പെടുത്തുമ്പോൾ ഇതിനകം തന്നെ സ്ഥിരീകരണ സമയം ഗണ്യമായി കുറയ്ക്കുന്നു;

ഓർഡർ ചെയ്‌തത്: റൈറ്റ്ബാക്ക് പോലെ തന്നെ, എന്നാൽ ഈ ഫയൽ മാറ്റുന്നതിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ എഴുതുന്നതിന് മുമ്പ് ഡാറ്റ ഫയലിലേക്ക് എഴുതുന്നു. പ്രകടനം ചെറുതായി കുറയ്ക്കുന്നു, കൂടാതെ ഡാറ്റയുടെ സമഗ്രത ഉറപ്പുനൽകാൻ കഴിയില്ല (നിലവിലുള്ള ഒരു ഫയലിന്റെ അവസാനം കൂട്ടിച്ചേർക്കുമ്പോൾ അത് അവരുടെ സുരക്ഷയുടെ സാധ്യത വർദ്ധിപ്പിക്കുന്നുവെങ്കിലും);

ജേണൽ: FS മെറ്റാഡാറ്റയുടെയും ഉപയോക്തൃ ഡാറ്റയുടെയും പൂർണ്ണമായ ജേണലിംഗ്. വേഗത കുറഞ്ഞതും എന്നാൽ സുരക്ഷിതവുമായ മോഡ്; ലോഗ് ഒരു പ്രത്യേക പാർട്ടീഷനിൽ (അല്ലെങ്കിൽ മികച്ചത്, ഒരു പ്രത്യേക ഹാർഡ് ഡിസ്കിൽ) സൂക്ഷിക്കുമ്പോൾ ഡാറ്റാ സമഗ്രത ഉറപ്പുനൽകാൻ കഴിയും.

ext3 ഫയൽ സിസ്റ്റത്തിന് 1 TB വരെ വലിപ്പമുള്ള ഫയലുകളെ പിന്തുണയ്ക്കാൻ കഴിയും. ലിനക്സ് കേർണൽ 2.4 ഉപയോഗിച്ച്, ഫയൽ സിസ്റ്റത്തിന്റെ വലിപ്പം പരമാവധി ബ്ലോക്ക് ഡിവൈസ് വലിപ്പം പരിമിതപ്പെടുത്തിയിരിക്കുന്നു, അത് 2 ടെറാബൈറ്റ് ആണ്. Linux 2.6-ൽ (32-ബിറ്റ് പ്രോസസ്സറുകൾക്ക്), പരമാവധി ബ്ലോക്ക് ഉപകരണ വലുപ്പം 16 TB ആണ്, എന്നിരുന്നാലും ext3 4 TB വരെ മാത്രമേ പിന്തുണയ്ക്കൂ.

ext4 എന്നത് ext3 (മുന്നോട്ടും പിന്നോട്ടും) അടിസ്ഥാനമാക്കിയുള്ള ഒരു ഫയൽ സിസ്റ്റമാണ്. വിസ്താരങ്ങളുടെ പിന്തുണയിൽ, മൊത്തത്തിൽ കൈകാര്യം ചെയ്യുന്ന തുടർച്ചയായ ഫിസിക്കൽ ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകൾ, വർദ്ധിച്ച സമഗ്രത പരിശോധന വേഗത, മറ്റ് നിരവധി മെച്ചപ്പെടുത്തലുകൾ എന്നിവയിൽ ഇത് ext3 ൽ നിന്ന് വ്യത്യസ്തമാണ്.

പുതിയ ext4 സവിശേഷതകൾ (ext3 നെ അപേക്ഷിച്ച്):

പരിധികൾ ഉപയോഗിക്കുന്നു. ext3 ഫയൽസിസ്റ്റത്തിൽ, ഡാറ്റ സംബോധന ചെയ്യുന്നത് പരമ്പരാഗത രീതിയിലാണ്, ബ്ലോക്ക് ബൈ ബ്ലോക്ക്. ഫയലിന്റെ വലിപ്പം കൂടുന്നതിനനുസരിച്ച് ഈ അഡ്രസിംഗ് രീതി കാര്യക്ഷമമല്ല. ഒരൊറ്റ ഡിസ്ക്രിപ്റ്റർ ഉപയോഗിച്ച് ഒരു വലിയ സംഖ്യ (128 MB വരെ) തുടർച്ചയായ ബ്ലോക്കുകളെ അഭിസംബോധന ചെയ്യാൻ വിപുലീകരണങ്ങൾ നിങ്ങളെ അനുവദിക്കുന്നു. 4 പരിധി വരെ പോയിന്ററുകൾ നേരിട്ട് ഐനോഡിൽ സ്ഥാപിക്കാവുന്നതാണ്, ചെറുതും ഇടത്തരവുമായ ഫയലുകൾക്ക് ഇത് മതിയാകും.

48-ബിറ്റ് ബ്ലോക്ക് നമ്പറുകൾ. 4K യുടെ ബ്ലോക്ക് വലിപ്പത്തിൽ, ഇത് ഒരു എക്സാബൈറ്റ് (2 48 *4KB = 2 50 *1KB = 2 60 B = 1 EB) വരെ അഡ്രസ് ചെയ്യാൻ അനുവദിക്കുന്നു.

ഗ്രൂപ്പുകളിലെ ബ്ലോക്കുകളുടെ അലോക്കേഷൻ (മൾട്ടിബ്ലോക്ക് അലോക്കേഷൻ). ഫയൽ സിസ്റ്റം സ്വതന്ത്ര ബ്ലോക്കുകളുടെ സ്ഥാനത്തെക്കുറിച്ചുള്ള വിവരങ്ങൾ മാത്രമല്ല, പരസ്പരം പിന്തുടരുന്ന സ്വതന്ത്ര ബ്ലോക്കുകളുടെ എണ്ണവും സംഭരിക്കുന്നു. സ്ഥലം അനുവദിക്കുമ്പോൾ, വിഘടനം കൂടാതെ ഡാറ്റ എഴുതാൻ കഴിയുന്ന ഒരു ശകലം ഫയൽ സിസ്റ്റം കണ്ടെത്തുന്നു. ഇത് ഫയൽ സിസ്റ്റത്തിന്റെ മൊത്തത്തിലുള്ള വിഘടനത്തിന്റെ തോത് കുറയ്ക്കുന്നു.

ബ്ലോക്കുകളുടെ വിഹിതം വൈകുന്നു. ഫയൽ ഡാറ്റ സംഭരിക്കുന്നതിനുള്ള ബ്ലോക്കുകളുടെ അലോക്കേഷൻ ഡിസ്കിലേക്ക് ഫിസിക്കൽ റൈറ്റ് ചെയ്യുന്നതിന് തൊട്ടുമുമ്പ് സംഭവിക്കുന്നു (ഉദാഹരണത്തിന്, സമന്വയം വിളിക്കുമ്പോൾ), അല്ലാതെ റൈറ്റ് വിളിക്കുമ്പോൾ അല്ല. തൽഫലമായി, ബ്ലോക്ക് അലോക്കേഷൻ പ്രവർത്തനങ്ങൾ ഒരു സമയം അല്ല, ഗ്രൂപ്പുകളായി ചെയ്യാം, ഇത് വിഘടനം കുറയ്ക്കുകയും ബ്ലോക്ക് അലോക്കേഷൻ പ്രക്രിയ വേഗത്തിലാക്കുകയും ചെയ്യുന്നു. മറുവശത്ത്, പെട്ടെന്നുള്ള വൈദ്യുതി തകരാർ സംഭവിച്ചാൽ ഡാറ്റ നഷ്ടപ്പെടാനുള്ള സാധ്യത വർദ്ധിപ്പിക്കുന്നു.

32000 ഡയറക്‌ടറികളുടെ പരിധി കവിഞ്ഞു.

ഒരു ഡയറക്‌ടറി സൃഷ്‌ടിക്കുമ്പോൾ ഐനോഡുകളുടെ റിസർവേഷൻ (ഡയറക്‌ടറി ഐനോഡുകൾ റിസർവേഷൻ) ഒരു ഡയറക്‌ടറി സൃഷ്‌ടിക്കുമ്പോൾ, നിരവധി ഐനോഡുകൾ റിസർവ് ചെയ്‌തിരിക്കുന്നു. തുടർന്ന്, ഈ ഡയറക്‌ടറിയിൽ ഫയലുകൾ സൃഷ്‌ടിക്കുമ്പോൾ, റിസർവ് ചെയ്‌ത ഐനോഡുകൾ ആദ്യം ഉപയോഗിക്കുന്നു, അവയൊന്നും അവശേഷിക്കുന്നില്ലെങ്കിൽ, സാധാരണ നടപടിക്രമം പിന്തുടരുന്നു.

ഇനോഡ് വലിപ്പം. ഇനോഡ് വലുപ്പം (സ്ഥിരസ്ഥിതി) 128 ബൈറ്റിൽ നിന്ന് 256 ബൈറ്റുകളായി വർദ്ധിച്ചു. ചുവടെ ലിസ്റ്റുചെയ്തിരിക്കുന്ന നേട്ടങ്ങൾ സാക്ഷാത്കരിക്കാൻ ഇത് സാധ്യമാക്കി.

നാനോ സെക്കൻഡ് കൃത്യതയുള്ള ടൈംസ്റ്റാമ്പുകൾ (നാനോ സെക്കൻഡ് ടൈംസ്റ്റാമ്പുകൾ). ഐനോഡിൽ സംഭരിച്ചിരിക്കുന്ന സമയങ്ങളുടെ ഉയർന്ന കൃത്യത. സംഭരിച്ച സമയങ്ങളുടെ പരിധിയും വിപുലീകരിച്ചു: നേരത്തെ സംഭരിച്ച സമയത്തിന്റെ ഉയർന്ന പരിധി ജനുവരി 18, 2038 ആയിരുന്നുവെങ്കിൽ, ഇപ്പോൾ അത് ഏപ്രിൽ 25, 2514 ആണ്.

inode പതിപ്പ്. ഓരോ തവണ ഫയലിന്റെ ഐനോഡ് മാറ്റുമ്പോഴും വർദ്ധിക്കുന്ന ഒരു സംഖ്യ ഐനോഡിനുണ്ട്.

വിപുലീകൃത ആട്രിബ്യൂട്ടുകൾ ഒരു ഐനോഡിൽ സംഭരിക്കുന്നു (ഇഎ ഐനോഡിൽ). ACL-കൾ, SELinux ആട്രിബ്യൂട്ടുകൾ തുടങ്ങിയ വിപുലീകൃത ആട്രിബ്യൂട്ടുകൾ സംഭരിക്കുന്നത് പ്രകടനം മെച്ചപ്പെടുത്തും. ആവശ്യത്തിന് ഐനോഡ് സ്പേസ് ഇല്ലാത്ത ആട്രിബ്യൂട്ടുകൾ ഒരു പ്രത്യേക 4KB ബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്നു.

ജേണൽ ചെക്ക്സമ്മിംഗ്. ലോഗ് ഇടപാടുകളുടെ ചെക്ക്സം. ഒരു ക്രാഷിനുശേഷം സിസ്റ്റം സമഗ്രത പരിശോധിക്കുമ്പോൾ പിശകുകൾ നന്നായി കണ്ടെത്താനും (ചിലപ്പോൾ) പരിഹരിക്കാനും നിങ്ങളെ അനുവദിക്കുന്നു.

പ്രാഥമിക വിഹിതം (സ്ഥിരമായ പ്രീഅലോക്കേഷൻ). ഇപ്പോൾ, ആപ്ലിക്കേഷൻ ഫയൽ സിസ്റ്റത്തിൽ ഇടം എടുക്കുമെന്ന് ഉറപ്പുനൽകുന്നതിന്, അത് പൂജ്യങ്ങൾ കൊണ്ട് പൂരിപ്പിക്കുന്നു. ext4-ൽ, എഴുതുന്നതിനായി ധാരാളം ബ്ലോക്കുകൾ റിസർവ് ചെയ്യാനും കൂടുതൽ സമയം ചിലവഴിക്കാതിരിക്കാനും സാധിച്ചു. ആപ്ലിക്കേഷൻ ഡാറ്റ വായിക്കാൻ ശ്രമിച്ചാൽ, അത് ആരംഭിച്ചിട്ടില്ലെന്ന സന്ദേശം ലഭിക്കും. അതിനാൽ, ഇല്ലാതാക്കിയ ഡാറ്റയുടെ അനധികൃത വായന പ്രവർത്തിക്കില്ല.

അൺമൗണ്ട് ചെയ്യാതെയുള്ള ഡിഫ്രാഗ്മെന്റേഷൻ (ഓൺലൈൻ ഡിഫ്രാഗ്മെന്റേഷൻ).

ആരംഭിക്കാത്ത ബ്ലോക്കുകൾ. ഫയൽ സിസ്റ്റം പരിശോധന വേഗത്തിലാക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. ഉപയോഗിക്കാത്തതായി അടയാളപ്പെടുത്തിയ ബ്ലോക്കുകൾ ഗ്രൂപ്പുകളായി പരിശോധിക്കുന്നു, ഗ്രൂപ്പിന്റെ പരിശോധനയിൽ അകത്ത് കേടുപാടുകൾ ഉണ്ടെന്ന് കാണിച്ചാൽ മാത്രമേ വിശദമായ പരിശോധന നടത്തൂ.

പ്രഭാഷണം 12

വിഷയം: ഡയറക്ടറി സംവിധാനങ്ങൾ

ഫയൽ മാനേജ്മെന്റ് സിസ്റ്റവും ഒരു കൂട്ടം ഫയലുകളും തമ്മിലുള്ള ലിങ്ക് ഫയൽ ഡയറക്ടറിയാണ്. ഒരു ഡയറക്‌ടറി സിസ്റ്റത്തിന്റെ ഏറ്റവും ലളിതമായ രൂപം, എല്ലാ ഫയലുകളും അടങ്ങുന്ന ഒരു ഡയറക്‌ടറി ഉണ്ട് എന്നതാണ്. ആട്രിബ്യൂട്ടുകൾ, സ്ഥാനം, ഉടമസ്ഥാവകാശം എന്നിവ ഉൾപ്പെടെയുള്ള ഫയലുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ ഡയറക്ടറിയിൽ അടങ്ങിയിരിക്കുന്നു. ഉപയോക്താക്കൾ ഫയലുകളെ പ്രതീകാത്മക പേരുകളാൽ പരാമർശിക്കുന്നു. എന്നിരുന്നാലും, ഹ്യൂമൻ മെമ്മറിയുടെ ശേഷി ഒരു ഉപയോക്താവിന് പേര് ഉപയോഗിച്ച് പരാമർശിക്കാൻ കഴിയുന്ന ഒബ്ജക്റ്റ് നാമങ്ങളുടെ എണ്ണത്തെ പരിമിതപ്പെടുത്തുന്നു. നെയിംസ്പേസിന്റെ ശ്രേണിപരമായ ഓർഗനൈസേഷൻ ഈ അതിരുകൾ ഗണ്യമായി വികസിപ്പിക്കാൻ നിങ്ങളെ അനുവദിക്കുന്നു. അതുകൊണ്ടാണ് ഡയറക്‌ടറി സിസ്റ്റങ്ങൾക്ക് ഒരു ശ്രേണി ഘടനയുള്ളത്. ഒരു ഡയറക്‌ടറി ശ്രേണിയെ വിവരിക്കുന്ന ഒരു ഗ്രാഫ് ഒരു ട്രീ അല്ലെങ്കിൽ നെറ്റ്‌വർക്ക് ആകാം. ഒരു ഫയലിനെ ഒരു ഡയറക്‌ടറിയിൽ മാത്രം അനുവദിക്കുകയാണെങ്കിൽ ഡയറക്‌ടറികൾ ഒരു ട്രീയും (ചിത്രം 7.11), ഒരു ഫയലിന് ഒന്നിലധികം ഡയറക്‌ടറികളിലാകാൻ കഴിയുമെങ്കിൽ ഒരു നെറ്റ്‌വർക്കും രൂപപ്പെടുന്നു.

ഉദാഹരണത്തിന്, Ms-Dos, Windows എന്നിവയിൽ, ഡയറക്ടറികൾ ഒരു ട്രീ ഘടന ഉണ്ടാക്കുന്നു, UNIX-ൽ അവ ഒരു നെറ്റ്‌വർക്ക് ഘടന ഉണ്ടാക്കുന്നു. പൊതുവായ സാഹചര്യത്തിൽ, ഒരു കമ്പ്യൂട്ടർ സിസ്റ്റത്തിന് നിരവധി ഡിസ്ക് ഉപകരണങ്ങൾ ഉണ്ടായിരിക്കാം, ഒരു പിസിക്ക് പോലും എല്ലായ്പ്പോഴും നിരവധി ഡിസ്കുകൾ ഉണ്ട്: ഫ്ലെക്സിബിൾ, ഹാർഡ് ഡ്രൈവ്, സിഡി-റോം (ഡിവിഡി). ഈ സാഹചര്യത്തിൽ ഫയൽ സംഭരണം എങ്ങനെ സംഘടിപ്പിക്കാം?

അരി. ഡയറക്ടറി സംവിധാനങ്ങൾ

ഓരോ ഉപകരണത്തിലും ഒരു ഓഫ്‌ലൈൻ ഫയൽ സിസ്റ്റം ഹോസ്റ്റ് ചെയ്യുക എന്നതാണ് ആദ്യ പരിഹാരം, അതായത്. മറ്റ് ഉപകരണങ്ങളിലെ ഡയറക്ടറി ട്രീകളുമായി യാതൊരു ബന്ധവുമില്ലാത്ത ഒരു ഡയറക്‌ടറി ട്രീയാണ് ഈ ഉപകരണത്തിലെ ഫയലുകൾ വിവരിക്കുന്നത്. ഈ സാഹചര്യത്തിൽ, ഫയൽ അദ്വിതീയമായി തിരിച്ചറിയുന്നതിന്, കോമ്പൗണ്ട് സിംബോളിക് ഫയലിന്റെ പേരിനൊപ്പം ലോജിക്കൽ ഉപകരണ ഐഡന്റിഫയർ ഉപയോക്താവ് വ്യക്തമാക്കണം. അത്തരം സ്വയംഭരണ നിലനിൽപ്പിന്റെ ഉദാഹരണമാണ് MS-DOS, Windows 95/98/Me/XP.

ഒരു ഡയറക്‌ടറി ട്രീ വിവരിക്കുന്ന ഒരൊറ്റ ഫയൽ സിസ്റ്റത്തിലേക്ക് വ്യത്യസ്ത ഉപകരണങ്ങളിൽ സ്ഥിതിചെയ്യുന്ന ഫയൽ സിസ്റ്റങ്ങളെ സംയോജിപ്പിക്കാൻ ഉപയോക്താവിന് അവസരം നൽകുന്ന രീതിയിൽ ഫയൽ സംഭരണം ക്രമീകരിക്കുക എന്നതാണ് മറ്റൊരു പരിഹാരം. ഈ പ്രവർത്തനത്തെ മൗണ്ടിംഗ് എന്ന് വിളിക്കുന്നു.

UNIX-ൽ, മൗണ്ടിംഗ് ഇനിപ്പറയുന്ന രീതിയിൽ ചെയ്യുന്നു. ലഭ്യമായ എല്ലാ ലോജിക്കൽ ഡിസ്ക് ഉപകരണങ്ങളിലും, സിസ്റ്റം എന്ന് വിളിക്കപ്പെടുന്ന ഒന്ന് വേറിട്ടുനിൽക്കുന്നു. വ്യത്യസ്ത ലോജിക്കൽ ഡിസ്കുകളിൽ രണ്ട് ഫയൽ സിസ്റ്റങ്ങൾ ഉണ്ടായിരിക്കട്ടെ, ഡിസ്കുകളിൽ ഒന്ന് ഒരു സിസ്റ്റം ഡിസ്കാണ് (ചിത്രം 7.12).

സിസ്റ്റം ഡ്രൈവിൽ സ്ഥിതിചെയ്യുന്ന ഫയൽ സിസ്റ്റത്തെ റൂട്ട് എന്ന് വിളിക്കുന്നു. റൂട്ട് ഫയൽ സിസ്റ്റത്തിൽ ഫയൽ ശ്രേണികൾ ലിങ്ക് ചെയ്യുന്നതിന്, നിലവിലുള്ള ചില ഡയറക്ടറികൾ തിരഞ്ഞെടുത്തു, ഈ ഉദാഹരണത്തിൽ ലോക്ക് ഡയറക്ടറി. മൗണ്ട് പൂർത്തിയായിക്കഴിഞ്ഞാൽ, തിരഞ്ഞെടുത്ത ലോക്ക് ഡയറക്ടറി രണ്ടാമത്തെ ഫയൽ സിസ്റ്റത്തിന്റെ റൂട്ട് ഡയറക്ടറിയായി മാറുന്നു. ഈ ഡയറക്‌ടറിയിലൂടെ, മൗണ്ട് ചെയ്‌ത ഫയൽ സിസ്റ്റം ഒരു സബ്‌ട്രീ ആയി ജനറൽ ട്രീയുമായി ബന്ധിപ്പിച്ചിരിക്കുന്നു.

അരി. മൗണ്ടിംഗ്

ആട്രിബ്യൂട്ട്

ഒരു ഫയലിന്റെ ആശയത്തിൽ അത് സംഭരിക്കുന്ന ഡാറ്റയും അതിന്റെ പേരും മാത്രമല്ല, ഫയലിന്റെ ഗുണവിശേഷതകൾ വിവരിക്കുന്ന വിവരങ്ങളും ഉൾപ്പെടുന്നു. ഈ വിവരങ്ങൾ ഫയലിന്റെ ആട്രിബ്യൂട്ടുകൾ ഉൾക്കൊള്ളുന്നു. വ്യത്യസ്ത ഓപ്പറേറ്റിംഗ് സിസ്റ്റങ്ങളിൽ ആട്രിബ്യൂട്ടുകളുടെ പട്ടിക വ്യത്യസ്തമായിരിക്കാം. സാധ്യമായ ആട്രിബ്യൂട്ടുകളുടെ ഒരു ഉദാഹരണം ചുവടെ കാണിച്ചിരിക്കുന്നു.

ആട്രിബ്യൂട്ട് അർത്ഥം
ഫയൽ തരം റെഗുലർ, കാറ്റലോഗ്, സ്പെഷ്യൽ മുതലായവ.
ഫയൽ ഉടമ നിലവിലെ ഉടമ
ഫയൽ ക്രിയേറ്റർ ഫയൽ സൃഷ്‌ടിച്ച ഉപയോക്താവിന്റെ ഐഡി
Password ഫയൽ ആക്‌സസ് ചെയ്യാനുള്ള പാസ്‌വേഡ്
സമയം സൃഷ്‌ടിച്ചത്, അവസാനം ആക്‌സസ് ചെയ്‌തത്, അവസാനം പരിഷ്‌ക്കരിച്ചത്
നിലവിലെ ഫയൽ വലുപ്പം ഓരോ എൻട്രിയിലും ബൈറ്റുകളുടെ എണ്ണം
പരമാവധി വലിപ്പം ഫയൽ വലുപ്പം വർദ്ധിപ്പിക്കാൻ കഴിയുന്ന ബൈറ്റുകളുടെ എണ്ണം
വായിക്കാൻ മാത്രമുള്ള പതാക 0 - വായിക്കുക / എഴുതുക, 1 - വായിക്കാൻ മാത്രം
പതാക "മറച്ചിരിക്കുന്നു" 0 - സാധാരണ, 1 - കാറ്റലോഗ് ഫയൽ ലിസ്റ്റിൽ കാണിക്കരുത്
ഫ്ലാഗ് "സിസ്റ്റം" 0 - സാധാരണ, 1 - സിസ്റ്റം
ഫ്ലാഗ് "ആർക്കൈവ് ചെയ്തു" 0 - ആർക്കൈവ് ചെയ്‌തത്, 1 - ആർക്കൈവ് ആവശ്യമാണ്
ASCII ഫ്ലാഗ്/ബൈനറി 0 - ASCII, 1 - ബൈനറി
റാൻഡം ആക്സസ് ഫ്ലാഗ് 0 - തുടർച്ചയായ ആക്സസ് മാത്രം, 1 - ക്രമരഹിതമായ ആക്സസ്
പതാക "താൽക്കാലികം" 0 - സാധാരണ, 1 - പ്രക്രിയ അവസാനിച്ചതിന് ശേഷം ഇല്ലാതാക്കൽ
പ്രധാന സ്ഥാനം റെക്കോർഡിലെ കീയിലേക്ക് ഓഫ്‌സെറ്റ് ചെയ്യുക
കീ നീളം കീ ഫീൽഡിലെ ബൈറ്റുകളുടെ എണ്ണം

ഫയൽ സിസ്റ്റം ഈ ആവശ്യത്തിനായി നൽകിയിരിക്കുന്ന സൗകര്യങ്ങൾ ഉപയോഗിച്ച് ഉപയോക്താവിന് ആട്രിബ്യൂട്ടുകൾ ആക്സസ് ചെയ്യാൻ കഴിയും. ഏത് ആട്രിബ്യൂട്ടുകളുടെയും മൂല്യം വായിക്കാനും ചിലത് മാത്രം മാറ്റാനും ഇത് സാധാരണയായി അനുവദിച്ചിരിക്കുന്നു.

ഫയൽ ആട്രിബ്യൂട്ട് മൂല്യങ്ങൾ ഡയറക്ടറികളിൽ അടങ്ങിയിരിക്കാം, ഉദാഹരണത്തിന്, MS-DOS-ൽ (ചിത്രം 7.7). പ്രത്യേക പട്ടികകളിൽ ആട്രിബ്യൂട്ടുകൾ സ്ഥാപിക്കുക എന്നതാണ് മറ്റൊരു ഓപ്ഷൻ, ഈ സാഹചര്യത്തിൽ ഡയറക്ടറികളിൽ ഈ പട്ടികകളിലേക്കുള്ള ലിങ്കുകൾ അടങ്ങിയിരിക്കുന്നു.

അരി. 7. MS DOS ഫയൽ ആട്രിബ്യൂട്ടുകൾ

ext2(എന്നും പരാമർശിക്കപ്പെടുന്നു ext2fs) - രണ്ടാമത്തെ വിപുലീകൃത ഫയൽ സിസ്റ്റം(സെക്കൻഡ് എക്സ്റ്റെൻഡഡ് ഫയൽ സിസ്റ്റം) ലിനക്സ് കേർണലിൽ നിർമ്മിച്ച ഒരു ഫയൽ സിസ്റ്റമാണ്. ext2-ന്റെ സ്രഷ്ടാവും ഡെവലപ്പറും Remy Card ആണ്. ext2 ഫയൽ സിസ്റ്റം പഴയ, മുമ്പത്തെ പതിപ്പിന് പകരമായി അദ്ദേഹം നിർമ്മിച്ചതാണ് - ext.

വേഗതയും പ്രകടനവും പോലുള്ള സൂചകങ്ങളുടെ കാര്യത്തിൽ, ഈ ഫയൽ സിസ്റ്റത്തിന് ഒരു മാനദണ്ഡമായി പ്രവർത്തിക്കാൻ കഴിയും. ഫയൽ സിസ്റ്റം പ്രകടന പരിശോധനകളുടെ ഫലങ്ങൾ ഇത് തെളിയിക്കുന്നു. ഉദാഹരണത്തിന്, ഡെൽ ടെക് സെന്ററിന്റെ സീക്വൻഷ്യൽ റീഡ്/റൈറ്റ് സ്പീഡ് ടെസ്റ്റുകളിൽ, ext2, ext3-നെ മറികടക്കുന്നു, മാത്രമല്ല വായനാ വേഗതയിൽ കൂടുതൽ ആധുനികമായ ext4-നെ മറികടക്കുകയും ചെയ്യുന്നു.

ext2-ന്റെ പ്രധാന പോരായ്മ അത് ഒരു ജേണലിംഗ് ഫയൽസിസ്റ്റം അല്ല എന്നതാണ്. എന്നിരുന്നാലും, ഈ പോരായ്മ അടുത്ത ഫയൽ സിസ്റ്റത്തിൽ ഇല്ലാതാക്കി - ext3.

ഫ്ലാഷ് കാർഡുകളിലും സോളിഡ് സ്റ്റേറ്റ് ഡ്രൈവുകളിലും (SSD) ext2 ഉപയോഗിക്കുന്നു, കാരണം റൈറ്റ് സൈക്കിൾ പരിധികളുള്ള ഡ്രൈവുകളിൽ പ്രവർത്തിക്കുമ്പോൾ ജേണലിങ്ങിന്റെ അഭാവം ഒരു നേട്ടമാണ്.

ext2 ന്റെ ചരിത്രം

ലിനക്സ് സിസ്റ്റത്തിന്റെ ദ്രുതഗതിയിലുള്ള വികാസത്തിന്റെ സമയത്ത്, അത് Minix OS ഫയൽ സിസ്റ്റം ഉപയോഗിച്ചിരുന്നു. ഇത് തികച്ചും സ്ഥിരതയുള്ളതായിരുന്നു, പക്ഷേ അത് 16-ബിറ്റ് ആയിരുന്നു. തൽഫലമായി, ഓരോ പാർട്ടീഷനും 64 Mb എന്ന ഹാർഡ് ലിമിറ്റ് ഉണ്ടായിരുന്നു. കൂടാതെ, ഒരു ഫയലിന്റെ പേരിന്റെ പരമാവധി ദൈർഘ്യത്തിന് ഒരു പരിധി ഉണ്ടായിരുന്നു, അത് 14 പ്രതീകങ്ങളായിരുന്നു.

ഈ പരിമിതികൾ കൂടിച്ചേർന്നതാണ് "വിപുലീകൃത ഫയൽ സിസ്റ്റം" വികസിപ്പിക്കുന്നതിനുള്ള കാരണം (അതിനാൽ "" എന്ന പദം വിപുലീകരിച്ച ഫയൽ സിസ്റ്റം »). മിനിക്‌സിന്റെ രണ്ട് പ്രധാന പ്രശ്‌നങ്ങൾ പരിഹരിക്കാനുള്ള ചുമതല അവളെ ഏൽപ്പിച്ചു. 1992 ഏപ്രിലിൽ പുതിയ ഫയൽ സിസ്റ്റം പരസ്യമാക്കി. അത് എക്‌സ്‌റ്റ് ആയിരുന്നു, ഇത് ഫയൽ വലുപ്പ പരിധി 2 ജിഗാബൈറ്റായി നീട്ടുകയും ഫയലിന്റെ പേരിന്റെ പരിധി 255 പ്രതീകങ്ങളായി സജ്ജമാക്കുകയും ചെയ്തു.

എന്നിരുന്നാലും, പുതിയ ഫയൽ സിസ്റ്റത്തിന്റെ വിജയം ഉണ്ടായിരുന്നിട്ടും, പരിഹരിക്കപ്പെടാത്ത ചില പ്രശ്നങ്ങൾ ഇപ്പോഴും ഉണ്ടായിരുന്നു. ഉദാഹരണത്തിന്, പ്രത്യേക ആക്‌സസിന് പിന്തുണയില്ല, ഡാറ്റ പരിഷ്‌ക്കരണത്തിന് ടൈംസ്റ്റാമ്പുകളൊന്നുമില്ല. ഈ പ്രശ്നങ്ങൾ പരിഹരിക്കേണ്ടതിന്റെ ആവശ്യകതയാണ് എക്സ്റ്റെൻഡഡ് എക്‌സ്‌റ്റ്2 ഫയൽ സിസ്റ്റത്തിന്റെ അടുത്ത പതിപ്പ് (“ രണ്ടാമത്തെ വിപുലീകൃത ഫയൽ സിസ്റ്റം). ext2 1993 ജനുവരിയിൽ വികസിപ്പിച്ചെടുത്തു, കൂടാതെ POSIX-അനുയോജ്യമായ ACL-കളും വിപുലമായ ഫയൽ ആട്രിബ്യൂട്ടുകളും നടപ്പിലാക്കുകയും ചെയ്തു.

ext2 ന്റെ ലോജിക്കൽ ഓർഗനൈസേഷൻ

ext2 ഡയറക്‌ടറി ശ്രേണി ഗ്രാഫ് ഒരു നെറ്റ്‌വർക്കായി പ്രതിനിധീകരിക്കുന്നു. ഒരേസമയം നിരവധി ഡയറക്‌ടറികളിൽ ഒരു ഫയൽ ഉൾപ്പെടുത്താമെന്നതാണ് ഇതിന് കാരണം.

എല്ലാ ഫയൽ തരങ്ങൾക്കും പ്രതീകാത്മക പേരുകളുണ്ട്. ശ്രേണിക്രമത്തിൽ ക്രമീകരിച്ച ഫയൽ സിസ്റ്റങ്ങളിൽ, മൂന്ന് തരം പേരുകൾ സാധാരണയായി ഉപയോഗിക്കുന്നു: ലളിതവും സംയുക്തവും ആപേക്ഷികവും. ext2 ന് സമാനമാണ്. ഒരു ലളിതമായ പേരിന്റെ കാര്യത്തിൽ, അതിന്റെ ദൈർഘ്യം 255 പ്രതീകങ്ങളിൽ കവിയാൻ പാടില്ല എന്നതാണ് പരിമിതി, കൂടാതെ, പേരിൽ ഒരു NULL പ്രതീകവും ഒരു സ്ലാഷും അടങ്ങിയിരിക്കരുത്.

NULL പ്രതീകത്തെ സംബന്ധിച്ചിടത്തോളം, പരിമിതികൾ സി ഭാഷയിലെ സ്ട്രിംഗുകളുടെ പ്രാതിനിധ്യവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു, സ്ലാഷ് പ്രതീകത്തിന്റെ കാര്യത്തിൽ, എല്ലാം ഡയറക്ടറികൾക്കിടയിൽ ഒരു സെപ്പറേറ്റർ പ്രതീകമായി ഉപയോഗിക്കുന്നു എന്ന വസ്തുതയിലാണ്.

എല്ലാ ഡയറക്ടറികളുടെയും ലളിതമായ പ്രതീകാത്മക പേരുകളുടെ ഒരു ശൃംഖലയാണ് മുഴുവൻ പേര്, റൂട്ടിൽ നിന്ന് നൽകിയിരിക്കുന്ന ഫയലിലേക്കുള്ള പാത കടന്നുപോകുന്നു. ext2-ൽ, ഒരു ഫയൽ ഒന്നിലധികം ഡയറക്‌ടറികളിലായിരിക്കാം, അതിനർത്ഥം അതിന് ഒന്നിലധികം പേരുകൾ (ഒരു ഫയൽ, ഒന്നിലധികം പേരുകൾ) ഉണ്ടായിരിക്കാം എന്നാണ്. എന്നിരുന്നാലും, മുഴുവൻ പേര് ഫയലിനെ നിർവചിക്കുന്നു.

ext2 ആട്രിബ്യൂട്ടുകൾ:

  • ഫയൽ തരവും അനുമതികളും,
  • ഉടമ, ആക്സസ് ഗ്രൂപ്പ്,
  • അംഗീകൃത ഇടപാടുകളെക്കുറിച്ചുള്ള വിവരങ്ങൾ,
  • സൃഷ്ടിച്ച സമയം, അവസാന ആക്സസ് തീയതി, അവസാന പരിഷ്ക്കരണ തീയതി, അവസാനമായി ഇല്ലാതാക്കിയ സമയം,
  • നിലവിലെ ഫയൽ വലുപ്പം,
  • ഫയൽ സ്പെസിഫിക്കേഷൻ:
    • സാധാരണ ഫയൽ,
    • കാറ്റലോഗ്,
    • ബൈറ്റ്-ഓറിയന്റഡ് ഉപകരണ ഫയൽ,
    • ഉപകരണ ഫയൽ തടയുക,
    • പേരിട്ട പൈപ്പ്,
    • സിംലിങ്ക്,
  • കൈവശപ്പെടുത്തിയ ബ്ലോക്കുകളുടെ എണ്ണം,
  • മറ്റുള്ളവർ

ഫയൽ ആട്രിബ്യൂട്ടുകൾ പ്രത്യേക ടേബിളുകളിൽ സൂക്ഷിക്കുന്നു, ഡയറക്‌ടറികളിലല്ല, ലളിതമായ ഫയൽ സിസ്റ്റങ്ങളിൽ സാധാരണ പോലെ. തൽഫലമായി, ഡയറക്‌ടറിക്ക് വളരെ ലളിതമായ ഒരു ഘടനയുണ്ട്, അതിൽ രണ്ട് ഭാഗങ്ങളുണ്ട്: ഒരു ഐനോഡ് നമ്പറും പേരും.

ext2 ന്റെ ശാരീരിക ഓർഗനൈസേഷൻ

ഡിസ്ക് പാർട്ടീഷൻ ഘടന

ext2 ന്റെ ഭാഗമായി, ഇനിപ്പറയുന്നവ വേർതിരിച്ചറിയാൻ കഴിയും:

  • ബ്ലോക്കുകളും ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകളും;
  • ഇനോഡ്;
  • സൂപ്പർബ്ലോക്ക്.

മുഴുവൻ ഡിസ്ക് പാർട്ടീഷൻ സ്ഥലവും ഫിക്സഡ്-സൈസ് ബ്ലോക്കുകളായി തിരിച്ചിരിക്കുന്നു, ബ്ലോക്കുകൾ സെക്ടർ വലുപ്പത്തിന്റെ ഗുണിതമാണ് (1024, 2048, 4096 അല്ലെങ്കിൽ 8192 ബൈറ്റുകൾ). ഒരു ഡിസ്ക് പാർട്ടീഷനിൽ ഒരു ഫയൽ സിസ്റ്റം ഉണ്ടാക്കുമ്പോൾ ബ്ലോക്ക് സൈസ് വ്യക്തമാക്കുന്നു. എല്ലാ ബ്ലോക്കുകൾക്കും സീരിയൽ നമ്പറുകൾ നൽകിയിട്ടുണ്ട്. വലിയ അളവിലുള്ള ഡാറ്റ വായിക്കുമ്പോൾ വിഘടനവും ഹാർഡ് ഡിസ്ക് തല ചലനങ്ങളുടെ എണ്ണവും കുറയ്ക്കുന്നതിന്, ബ്ലോക്കുകൾ ഗ്രൂപ്പുകളായി സംയോജിപ്പിച്ചിരിക്കുന്നു.

ഒരു ഫയൽ സിസ്റ്റത്തിന്റെ അടിസ്ഥാന ആശയം ഒരു ഐനോഡ് ആണ് (ഇതും വിളിക്കപ്പെടുന്നു ഇനോഡ് - വിവര നോഡ്). ഫയലിന്റെ ആട്രിബ്യൂട്ടുകളും ഫിസിക്കൽ ലൊക്കേഷനും സംബന്ധിച്ച വിവരങ്ങൾ അടങ്ങിയ ഒരു പ്രത്യേക ഘടനയാണിത്. ഓരോ ഗ്രൂപ്പിന്റെയും ബ്ലോക്കുകളുടെ തുടക്കത്തിൽ അടങ്ങിയിരിക്കുന്ന ഒരു പട്ടികയിലേക്ക് സൂചിക ഡീക്രിപ്റ്ററുകൾ സംയോജിപ്പിച്ചിരിക്കുന്നു. ext2 ഫയൽ സിസ്റ്റത്തിന്റെ പ്രധാന ഘടകമാണ് സൂപ്പർബ്ലോക്ക്. ഫയൽ സിസ്റ്റത്തെക്കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങൾ ഇതിൽ അടങ്ങിയിരിക്കുന്നു. വിഭാഗത്തിന്റെ ആരംഭം മുതൽ സൂപ്പർബ്ലോക്ക് 1024 ബൈറ്റുകൾ സ്ഥിതി ചെയ്യുന്നു. സൂപ്പർബ്ലോക്കിന്റെ സമഗ്രത ഫയൽ സിസ്റ്റത്തിന്റെ ആരോഗ്യം നിർണ്ണയിക്കുന്നു. സൂപ്പർബ്ലോക്കിന്റെ നിരവധി ബാക്കപ്പ് പകർപ്പുകൾ OS സൃഷ്ടിക്കുന്നു - പാർട്ടീഷൻ കേടായ സാഹചര്യത്തിൽ. സൂപ്പർബ്ലോക്കിന് ശേഷമുള്ള അടുത്ത ബ്ലോക്കിൽ ഒരു ഗ്ലോബൽ ഡിസ്ക്രിപ്റ്റർ ടേബിൾ അടങ്ങിയിരിക്കുന്നു - എല്ലാ ബ്ലോക്ക് ഗ്രൂപ്പുകളെ കുറിച്ചുള്ള പൊതുവായ വിവരങ്ങളുള്ള ഒരു അറേയുടെ രൂപത്തിൽ ബ്ലോക്ക് ഗ്രൂപ്പുകളുടെ ഒരു വിവരണം.

ബ്ലോക്ക് ഗ്രൂപ്പ്

ഒരു ext2 പാർട്ടീഷനിലെ എല്ലാ ബ്ലോക്കുകളും ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു. ഗ്ലോബൽ ഡിസ്ക്രിപ്റ്റർ ടേബിളിൽ ഓരോ ഗ്രൂപ്പിനും ഒരു പ്രത്യേക എൻട്രി സൃഷ്ടിച്ചിരിക്കുന്നു. ഈ എൻട്രി അടിസ്ഥാന പാരാമീറ്ററുകൾ സംഭരിക്കുന്നു: ബിറ്റ്മാപ്പുകളിലും പട്ടികകളിലും ബ്ലോക്ക് നമ്പർ, ഗ്രൂപ്പിലെ ഫ്രീ ബ്ലോക്കുകളുടെ എണ്ണം, ഡയറക്‌ടറികൾ അടങ്ങിയ ഐനോഡുകളുടെ എണ്ണം.

ബിറ്റ്മാപ്പ് തടയുകഓരോ ബിറ്റും അതിനോട് ബന്ധപ്പെട്ട ബ്ലോക്ക് ഏതെങ്കിലും ഫയലിന് നൽകിയിട്ടുണ്ടോ എന്ന് അറിയിക്കുന്ന ഒരു സിസ്റ്റമാണ്. ബിറ്റ് 1 ആണെങ്കിൽ, ബ്ലോക്ക് തിരക്കിലാണ്. ഒരു ഐനോഡ് ബിറ്റ്മാപ്പും സമാനമായ ഒരു ഫംഗ്ഷൻ ചെയ്യുന്നു: ഏതൊക്കെ ഐനോഡുകളാണ് അധിനിവേശമുള്ളതെന്നും അല്ലാത്തതെന്നും ഇത് കാണിക്കുന്നു. ലിനക്സ് കേർണൽ ഡയറക്ടറി ഐനോഡുകൾ ഗ്രൂപ്പുകളായി തുല്യമായി വിതരണം ചെയ്യാൻ ശ്രമിക്കുന്നു, കൂടാതെ പാരന്റ് ഡയറക്ടറി ഉപയോഗിച്ച് ഗ്രൂപ്പിലേക്ക് ഫയൽ ഐനോഡുകൾ നീക്കുന്നു. ഡാറ്റയായി പട്ടികയിൽ ദൃശ്യമാകുന്ന ബാക്കിയുള്ള എല്ലാ സ്ഥലവും ഫയലുകൾ സംഭരിക്കുന്നതിന് അനുവദിച്ചിരിക്കുന്നു.

ഡാറ്റ വിലാസ സംവിധാനം

ഫയൽ സിസ്റ്റത്തിന്റെ ഏറ്റവും ഗൗരവമേറിയതും പ്രധാനവുമായ ഘടകങ്ങളിലൊന്നാണ് ഡാറ്റ അഡ്രസിംഗ് സിസ്റ്റം. ഇതിന് നന്ദി, ആവശ്യമുള്ള ഫയൽ ഡിസ്കിലെ ശൂന്യമായ അല്ലെങ്കിൽ തിരക്കേറിയ ബ്ലോക്കുകളിൽ സ്ഥിതിചെയ്യുന്നു.

ext2 ഇനിപ്പറയുന്ന ഫയൽ ബ്ലോക്ക് വിലാസ സ്കീം ഉപയോഗിക്കുന്നു. ഫയൽ വിലാസം സംഭരിക്കുന്നതിന്, 15 ഫീൽഡുകൾ അനുവദിച്ചിരിക്കുന്നു, അവയിൽ ഓരോന്നിനും 4 ബൈറ്റുകൾ അടങ്ങിയിരിക്കുന്നു. ഫയൽ 12 ബ്ലോക്കുകളിൽ യോജിക്കുന്നുവെങ്കിൽ, വിലാസത്തിന്റെ ആദ്യ പന്ത്രണ്ട് ഫീൽഡുകളിൽ അനുബന്ധ ക്ലസ്റ്ററുകളുടെ നമ്പറുകൾ പട്ടികപ്പെടുത്തിയിരിക്കുന്നു. ഫയൽ വലുപ്പം 12 ബ്ലോക്കുകൾ കവിയുന്നുവെങ്കിൽ, അടുത്ത ഫീൽഡിൽ ഫയലിന്റെ അടുത്ത ബ്ലോക്കുകളുടെ നമ്പറുകൾ കണ്ടെത്താൻ കഴിയുന്ന ക്ലസ്റ്ററിന്റെ വിലാസം അടങ്ങിയിരിക്കുന്നു. അങ്ങനെ, പതിമൂന്നാം ഫീൽഡ് പരോക്ഷ വിലാസത്തിനായി ഉപയോഗിക്കുന്നു.

പരമാവധി ബ്ലോക്ക് വലുപ്പം 4096 ബൈറ്റുകൾ ഉള്ളതിനാൽ, 13-ാമത്തെ ഫീൽഡുമായി ബന്ധപ്പെട്ട ക്ലസ്റ്ററിന് ഫയലിൽ 1024 അടുത്ത ബ്ലോക്ക് നമ്പറുകൾ വരെ അടങ്ങിയിരിക്കാം. ഫയൽ വലുപ്പം 12+1024 ബ്ലോക്കുകൾ കവിയുന്നുവെങ്കിൽ, 14-ാമത്തെ ഫീൽഡ് ഉപയോഗിക്കുന്നു, അതിൽ 1024 ക്ലസ്റ്റർ നമ്പറുകൾ അടങ്ങിയ ഒരു ക്ലസ്റ്ററിന്റെ വിലാസം അടങ്ങിയിരിക്കുന്നു, അവയിൽ ഓരോന്നും ഫയലിന്റെ 1024 ബ്ലോക്കുകളെ സൂചിപ്പിക്കുന്നു. ഇവിടെ ഇരട്ട പരോക്ഷ വിലാസം ഉപയോഗിക്കുന്നു. ഫയലിൽ 12 + 1024 + 1048576 ബ്ലോക്കുകളിൽ കൂടുതൽ ഉൾപ്പെടുന്നുവെങ്കിൽ, അവസാനത്തെ 15-ാമത്തെ ഫീൽഡ് ട്രിപ്പിൾ പരോക്ഷ വിലാസത്തിനായി ഉപയോഗിക്കുന്നു.

4096 ബൈറ്റുകളുടെ പരമാവധി ബ്ലോക്ക് വലിപ്പമുള്ള, 2 TB-ൽ കൂടുതൽ വലിപ്പമുള്ള ഫയലുകൾ ഉണ്ടായിരിക്കാൻ അത്തരമൊരു വിലാസ സംവിധാനം അനുവദിക്കുന്നു.

നമ്മൾ ഇപ്പോൾ ഏറ്റവും പ്രചാരമുള്ള ലിനക്സ് ഡിസ്ക് ഫയൽ സിസ്റ്റം, ext2 വിവരിക്കും. ലിനക്സിന്റെ ആദ്യ പതിപ്പ് MINIX 1 ഫയൽ സിസ്റ്റം ഉപയോഗിച്ചു, അതിൽ ചെറിയ ഫയൽ നാമങ്ങളും പരമാവധി 64 MB ഫയൽ വലുപ്പവും ഉണ്ടായിരുന്നു. MINIX 1 ഫയൽ സിസ്റ്റത്തിന് പകരം ദൈർഘ്യമേറിയ ഫയൽ നാമങ്ങളും വലിയ ഫയൽ വലുപ്പങ്ങളും അനുവദിക്കുന്ന എക്‌സ്‌റ്റി എന്ന ആദ്യത്തെ വിപുലീകൃത ഫയൽ സിസ്റ്റം നിലവിൽ വന്നു. കാര്യക്ഷമത കുറവായതിനാൽ (പ്രകടനത്തിന്റെ കാര്യത്തിൽ), എക്‌സ്‌റ്റ് സിസ്റ്റം അതിന്റെ പിൻഗാമിയായ എക്‌സ്‌റ്റ് 2 ഉപയോഗിച്ച് മാറ്റി, അത് ഇന്നും വ്യാപകമായി ഉപയോഗിക്കുന്നു.

ext2 ഉള്ള ഡിസ്ക് പാർട്ടീഷനിൽ ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്ന ഫയൽ സിസ്റ്റം അടങ്ങിയിരിക്കുന്നു. 10.17 ലേഔട്ട്. ബ്ലോക്ക് 0 ലിനക്സ് സിസ്റ്റം ഉപയോഗിക്കുന്നില്ല കൂടാതെ കമ്പ്യൂട്ടറിന്റെ ബൂട്ട് കോഡ് അടങ്ങിയിരിക്കുന്നു. ബ്ലോക്ക് 0-ന് ശേഷം, ഡിസ്ക് പാർട്ടീഷൻ ബ്ലോക്കുകളുടെ ഗ്രൂപ്പുകളായി തിരിച്ചിരിക്കുന്നു (ഡിസ്ക് സിലിണ്ടർ അതിരുകൾ അവഗണിച്ച്). ഓരോ ഗ്രൂപ്പും ഇനിപ്പറയുന്ന രീതിയിൽ ക്രമീകരിച്ചിരിക്കുന്നു.


ഐ-നോഡുകളുടെ എണ്ണം, ഡിസ്ക് ബ്ലോക്കുകളുടെ എണ്ണം, സ്വതന്ത്ര ഡിസ്ക് ബ്ലോക്കുകളുടെ ലിസ്റ്റിന്റെ ആരംഭം (സാധാരണയായി നൂറുകണക്കിന് ഘടകങ്ങൾ) എന്നിവ ഉൾപ്പെടെ ഫയൽ സിസ്റ്റത്തിന്റെ ലേഔട്ടിനെക്കുറിച്ചുള്ള വിവരങ്ങൾ സൂക്ഷിക്കുന്ന സൂപ്പർബ്ലോക്ക് ആണ് ആദ്യ ബ്ലോക്ക്. ബിറ്റ്മാപ്പുകളുടെ സ്ഥാനം, ഗ്രൂപ്പിലെ ഫ്രീ ബ്ലോക്കുകളുടെയും ഐ-നോഡുകളുടെയും എണ്ണം, ഗ്രൂപ്പിലെ ഡയറക്‌ടറികളുടെ എണ്ണം എന്നിവയെക്കുറിച്ചുള്ള വിവരങ്ങൾ അടങ്ങിയ ഒരു ഗ്രൂപ്പ് ഡിസ്‌ക്രിപ്‌റ്റർ ഇതിന് ശേഷം വരുന്നു. ഡിസ്കിലുടനീളം ഡയറക്‌ടറികൾ തുല്യമായി വിതരണം ചെയ്യാൻ ext2 ഫയൽസിസ്റ്റം ശ്രമിക്കുന്നതിനാൽ ഈ വിവരങ്ങൾ പ്രധാനമാണ്.

രണ്ട് ബിറ്റ്മാപ്പുകൾ സ്വതന്ത്ര ബ്ലോക്കുകളുടെയും സ്വതന്ത്ര ഐ-നോഡുകളുടെയും ട്രാക്ക് സൂക്ഷിക്കുന്നു (ഇത് MINIX 1 ഫയൽ സിസ്റ്റത്തിൽ നിന്നും പാരമ്പര്യമായി ലഭിച്ചതാണ്, കൂടാതെ സൗജന്യ ബ്ലോക്കുകൾക്കായി ഒരു ലിസ്റ്റ് ഉപയോഗിക്കുന്ന മിക്ക UNIX ഫയൽ സിസ്റ്റങ്ങളിൽ നിന്നും ഇതിനെ വേർതിരിക്കുന്നു). ഓരോ ബിറ്റ്മാപ്പിന്റെയും വലുപ്പം ഒരു ബ്ലോക്കാണ്. 1 KB ബ്ലോക്ക് വലിപ്പമുള്ള ഈ സ്കീം ബ്ലോക്ക് ഗ്രൂപ്പ് വലുപ്പത്തെ 8192 ബ്ലോക്കുകളിലേക്കും 8192 i-നോഡുകളിലേക്കും പരിമിതപ്പെടുത്തുന്നു. ആദ്യ സംഖ്യ ഒരു യഥാർത്ഥ പരിധിയാണ്, രണ്ടാമത്തേത് പ്രായോഗികമായി ഒന്നുമല്ല. 4 KB ബ്ലോക്കുകൾ ഉള്ളതിനാൽ, സംഖ്യകൾ നാലിരട്ടി വലുതാണ്.

അപ്പോൾ ഐ-നോഡുകൾ തന്നെ സ്ഥിതിചെയ്യുന്നു. അവ 1 മുതൽ പരമാവധി വരെ അക്കമിട്ടിരിക്കുന്നു. ഓരോ ഐ-നോഡും 128 ബൈറ്റുകളുടെ വലിപ്പവും കൃത്യമായി ഒരു ഫയലും വിവരിക്കുന്നു. ഐ-നോഡിൽ അക്കൗണ്ടിംഗ് വിവരങ്ങൾ അടങ്ങിയിരിക്കുന്നു (സ്റ്റാറ്റ് കോൾ നൽകുന്ന എല്ലാം ഉൾപ്പെടെ, അത് ഐ-നോഡിൽ നിന്ന് എടുക്കുന്നു), കൂടാതെ ഫയൽ ഡാറ്റ അടങ്ങിയിരിക്കുന്ന എല്ലാ ഡിസ്ക് ബ്ലോക്കുകളും കണ്ടെത്തുന്നതിന് ആവശ്യമായ വിവരങ്ങളും.

ഐ-നോഡുകൾക്ക് ശേഷം ഡാറ്റ ബ്ലോക്കുകൾ വരുന്നു. എല്ലാ ഫയലുകളും ഡയറക്ടറികളും ഇവിടെ സംഭരിച്ചിരിക്കുന്നു. ഒരു ഫയലിലോ ഡയറക്‌ടറിയിലോ ഒന്നിൽക്കൂടുതൽ ബ്ലോക്കുകളുണ്ടെങ്കിൽ, ആ ബ്ലോക്കുകൾ ഡിസ്കിൽ അടുത്തിരിക്കണമെന്നില്ല. വാസ്തവത്തിൽ, ഒരു വലിയ ഫയലിന്റെ ബ്ലോക്കുകൾ ഡിസ്കിൽ ഉടനീളം ചിതറിക്കിടക്കാൻ സാധ്യതയുണ്ട്.

ഡയറക്‌ടറികളുമായി ബന്ധപ്പെട്ട ഐ-നോഡുകൾ എല്ലാ ഡിസ്ക് ബ്ലോക്ക് ഗ്രൂപ്പുകളിലും ചിതറിക്കിടക്കുന്നു. Ext2 സാധാരണ ഫയലുകൾ പാരന്റ് ഡയറക്‌ടറിയുടെ അതേ ബ്ലോക്ക് ഗ്രൂപ്പിലും ഡാറ്റ ഫയലുകൾ സോഴ്‌സ് ഫയലിന്റെ ഐ-നോഡിന്റെ അതേ ബ്ലോക്കിലും സ്ഥാപിക്കാൻ ശ്രമിക്കുന്നു (അവിടെ ആവശ്യത്തിന് ഇടമുണ്ടെന്ന് കരുതുക). ഈ ആശയം ബെർക്ക്‌ലി ഫാസ്റ്റ് ഫയൽ സിസ്റ്റത്തിൽ നിന്ന് കടമെടുത്തതാണ് (McKusick et al., 1984). പെട്ടെന്നുള്ള അലോക്കേഷൻ തീരുമാനങ്ങൾ എടുക്കാൻ ബിറ്റ്മാപ്പുകൾ ഉപയോഗിക്കുന്നു.

പുതിയ ഫയൽ സിസ്റ്റം ഡാറ്റയ്ക്കുള്ള സ്ഥലങ്ങൾ.

പുതിയ ഫയൽ ബ്ലോക്കുകൾ അനുവദിക്കുമ്പോൾ, ext2 അതേ ഫയലിനായി കുറച്ച് (എട്ട്) അധിക ബ്ലോക്കുകൾ മുൻകൂട്ടി അനുവദിക്കുകയും ചെയ്യുന്നു (ഭാവിയിൽ എഴുതുന്നതിനാൽ ഫയൽ വിഘടനം കുറയ്ക്കുന്നതിന്). ഈ സ്കീം ഫയൽ സിസ്റ്റം ഡിസ്കിലുടനീളം വ്യാപിപ്പിക്കുന്നു. ഇതിന് നല്ല പ്രകടനവുമുണ്ട് (അതിന്റെ തുടർച്ചയായ സ്വഭാവവും കുറഞ്ഞ വിഘടനവും കാരണം).

ഒരു ഫയൽ ആക്സസ് ചെയ്യുന്നതിന്, നിങ്ങൾ ആദ്യം Linux സിസ്റ്റം കോളുകളിലൊന്ന് ഉപയോഗിക്കണം (ഉദാഹരണത്തിന്, ഓപ്പൺ പോലെ), അത് ഫയലിലേക്കുള്ള പാത വ്യക്തമാക്കേണ്ടതുണ്ട്. ഈ പാത പാഴ്‌സ് ചെയ്യുകയും അതിന്റെ ഘടക ഡയറക്‌ടറികൾ അതിൽ നിന്ന് വേർതിരിച്ചെടുക്കുകയും ചെയ്യുന്നു. ഒരു ആപേക്ഷിക പാത വ്യക്തമാക്കിയിട്ടുണ്ടെങ്കിൽ, തിരയൽ പ്രക്രിയയുടെ നിലവിലെ ഡയറക്ടറിയിൽ നിന്നും അല്ലെങ്കിൽ റൂട്ട് ഡയറക്ടറിയിൽ നിന്നും ആരംഭിക്കുന്നു. ഏത് സാഹചര്യത്തിലും, ആദ്യ ഡയറക്‌ടറിക്കുള്ള ഐ-നോഡ് കണ്ടെത്താൻ എളുപ്പമാണ്: പ്രോസസ് ഡിസ്ക്രിപ്റ്ററിൽ അതിനൊരു പോയിന്റർ ഉണ്ട്, അല്ലെങ്കിൽ (റൂട്ട് ഡയറക്ടറിയുടെ കാര്യത്തിൽ) അത് ഡിസ്കിലെ ഒരു പ്രത്യേക ബ്ലോക്കിൽ സംഭരിച്ചിരിക്കുന്നു.

255 പ്രതീകങ്ങൾ വരെ നീളമുള്ള ഫയൽനാമങ്ങൾ ഡയറക്ടറി അനുവദിക്കുന്നു (ചിത്രം 10.18). ഓരോ ഡയറക്‌ടറിയിലും നിരവധി ഡിസ്‌ക് ബ്ലോക്കുകൾ അടങ്ങിയിരിക്കുന്നു (അതിനാൽ ഡയറക്‌ടറി ഡിസ്‌കിലേക്ക് ആറ്റോമിക് ആയി എഴുതാം). ഒരു ഡയറക്‌ടറിയിൽ, ഫയലുകൾക്കും ഡയറക്‌ടറികൾക്കുമുള്ള ഘടകങ്ങൾ അടുക്കാത്ത ക്രമത്തിലാണ് (ഓരോ ഘടകങ്ങളും മുമ്പത്തേതിനെ ഉടൻ പിന്തുടരുന്നു). ഘടകങ്ങൾക്ക് ബ്ലോക്ക് അതിരുകൾ കടക്കാൻ കഴിയില്ല, അതിനാൽ ഓരോ ഡിസ്ക് ബ്ലോക്കിന്റെയും അവസാനം സാധാരണയായി ഉപയോഗിക്കാത്ത ബൈറ്റുകൾ ഉണ്ട്.


ചിത്രത്തിലെ ഓരോ ഡയറക്ടറി എൻട്രിയും. 10.18 നാല് ഫിക്സഡ്-ലെങ്ത്ത് ഫീൽഡുകളും ഒരു വേരിയബിൾ-ലെങ്ത് ഫീൽഡും ഉൾക്കൊള്ളുന്നു. ആദ്യത്തെ ഫീൽഡ് ഐ-നോഡ് നമ്പറാണ്, അത് ഭീമാകാരമായ ഫയലിന് 19, വലിയ ഫയലിന് 42, ബിഗ്ഡിർ ഡയറക്‌ടറിക്ക് 88. അടുത്തതായി വരുന്നത് rec_len ഫീൽഡാണ്, ഇത് മുഴുവൻ ഡയറക്‌ടറി എൻട്രിയുടെയും വലുപ്പം ബൈറ്റുകളിൽ നൽകുന്നു (ഒരുപക്ഷേ പേരിന് ശേഷം അധിക പാഡിംഗ് ബൈറ്റുകൾക്കൊപ്പം). അടുത്ത എൻട്രി കണ്ടെത്തുന്നതിന് ഈ ഫീൽഡ് ആവശ്യമാണ് (ഫയലിന്റെ പേര് അജ്ഞാതമായ എണ്ണം ബൈറ്റുകൾ ഉപയോഗിച്ച് പാഡ് ചെയ്തിരിക്കുന്ന സാഹചര്യത്തിൽ). ചിത്രത്തിൽ, ഈ ഫീൽഡ് ഒരു അമ്പടയാളത്താൽ സൂചിപ്പിച്ചിരിക്കുന്നു. തുടർന്ന് ടൈപ്പ് ഫയൽ, ഡയറക്‌ടറി മുതലായവയുടെ ഒരു ഫീൽഡ് ഉണ്ട്. അവസാനത്തെ നിശ്ചിത-ദൈർഘ്യ ഫീൽഡിൽ ഫയലിന്റെ പേരിന്റെ ദൈർഘ്യം ബൈറ്റുകളിൽ അടങ്ങിയിരിക്കുന്നു (ഈ ഉദാഹരണത്തിന് 8, 10, 6). അവസാനമായി, ഫയലിന്റെ പേര് തന്നെയുണ്ട്, ഒരു നൾ ബൈറ്റ് ഉപയോഗിച്ച് അവസാനിപ്പിക്കുകയും 32-ബിറ്റ് ബൗണ്ടറിയിലേക്ക് പാഡ് ചെയ്യുകയും ചെയ്യുന്നു. അതിനു ശേഷം അധിക പാഡിംഗ് ബൈറ്റുകൾ വന്നേക്കാം.

അത്തിപ്പഴത്തിൽ. 10.18b, voluminous എന്ന ഘടകം നീക്കം ചെയ്തതിന് ശേഷം അതേ ഡയറക്ടറി കാണിക്കുന്നു. മുമ്പത്തെ ഭീമാകാരമായ ഫയൽ എൻട്രിയുടെ സൈസ് ഫീൽഡിലെ നമ്പർ വർധിപ്പിക്കുക, കൂടാതെ ഡിലീറ്റ് ചെയ്ത വോള്യൂമിനസ് ഫയലിന്റെ ഡയറക്‌ടറി എൻട്രി ബൈറ്റുകൾ ആദ്യ എൻട്രിക്കുള്ള പ്ലേസ്‌ഹോൾഡറുകളാക്കി മാറ്റുക മാത്രമാണ് ഡയറക്‌ടറിയിൽ ഇത് ചെയ്യുന്നത്. തുടർന്ന്, ഒരു പുതിയ ഫയൽ സൃഷ്ടിക്കുമ്പോൾ ഈ ബൈറ്റുകൾ എഴുതാൻ ഉപയോഗിക്കാം.

ഡയറക്‌ടറികൾ രേഖീയമായി തിരയുന്നതിനാൽ, ഒരു വലിയ ഡയറക്‌ടറിയുടെ അറ്റത്തുള്ള ഒരു എൻട്രി കണ്ടെത്താൻ വളരെ സമയമെടുക്കും. അതിനാൽ, അടുത്തിടെ ആക്സസ് ചെയ്ത ഡയറക്ടറികളുടെ ഒരു കാഷെ സിസ്റ്റം പരിപാലിക്കുന്നു. ഫയലിന്റെ പേര് ഉപയോഗിച്ചാണ് കാഷെ തിരയുന്നത്, അത് കണ്ടെത്തിയാൽ, വിലയേറിയ ലീനിയർ തിരയൽ ആവശ്യമില്ല. ഓരോ പാത്ത് ഘടകങ്ങൾക്കുമായി ഡയറക്‌ടറി എൻട്രി കാഷെയിൽ ഒരു ഡെൻട്രി ഒബ്‌ജക്റ്റ് നൽകിയിട്ടുണ്ട്, (അതിന്റെ ഐ-നോഡ് വഴി) ഡയറക്‌ടറി തുടർന്നുള്ള പാത്ത് എൻട്രികൾക്കായി തിരയുന്നു (ഫയലിന്റെ യഥാർത്ഥ ഐ-നോഡ് കണ്ടെത്തുന്നതുവരെ).

ഉദാഹരണത്തിന്, ഒരു സമ്പൂർണ്ണ പാത്ത് (/usr/ast/file പോലെ) വ്യക്തമാക്കിയ ഒരു ഫയൽ കണ്ടെത്തുന്നതിന്, ഇനിപ്പറയുന്ന ഘട്ടങ്ങൾ പാലിക്കേണ്ടതുണ്ട്. ഒന്നാമതായി, ഐ-നോഡ് നമ്പർ 2 സാധാരണയായി ഉപയോഗിക്കുന്ന റൂട്ട് ഡയറക്ടറി സിസ്റ്റം കണ്ടെത്തുന്നു (പ്രത്യേകിച്ച് ഐ-നോഡ് നമ്പർ 1 മോശം ബ്ലോക്കുകൾക്കായി നീക്കിവച്ചിരിക്കുമ്പോൾ). ഇത് ഡയറക്ടറി എൻട്രി കാഷെയിലേക്ക് ഉചിതമായ എൻട്രി സ്ഥാപിക്കുന്നു (റൂട്ട് ഡയറക്ടറിയുടെ ഭാവി തിരയലുകൾക്കായി). അത് /usr ഡയറക്‌ടറിക്കുള്ള ഐ-നോഡ് നമ്പർ ലഭിക്കുന്നതിന് "usr" എന്ന സ്‌ട്രിങ്ങിനായി റൂട്ട് ഡയറക്‌ടറി തിരയുന്നു (ഇത് ഡയറക്‌ടറിയുടെ ഇനം കാഷെയിലും നൽകിയിട്ടുണ്ട്). ഈ ഐ-നോഡ് പിന്നീട് റീഡ് ചെയ്യുകയും അതിൽ നിന്ന് ഡിസ്ക് ബ്ലോക്കുകൾ എക്‌സ്‌ട്രാക്‌റ്റ് ചെയ്യുകയും ചെയ്യുന്നു, അങ്ങനെ /usr ഡയറക്‌ടറി "ast" സ്ട്രിംഗ് വായിക്കാനും തിരയാനും കഴിയും. പൊരുത്തപ്പെടുന്ന ഒരു എൻട്രി കണ്ടെത്തിക്കഴിഞ്ഞാൽ, /usr/ast ഡയറക്ടറിയുടെ ഐ-നോഡ് നമ്പർ അതിൽ നിന്ന് നിർണ്ണയിക്കാവുന്നതാണ്. ഈ ഐ-നോഡ് നമ്പർ നൽകിയാൽ, അത് വായിക്കാനും ഡയറക്ടറി ബ്ലോക്കുകൾ കണ്ടെത്താനും കഴിയും. അവസാനമായി, ഞങ്ങൾ "ഫയൽ" തിരയുകയും അതിന്റെ ഐ-നോഡ് നമ്പർ കണ്ടെത്തുകയും ചെയ്യുന്നു. അതിനാൽ, ഒരു ആപേക്ഷിക പാത ഉപയോഗിക്കുന്നത് ഉപയോക്താവിന് കൂടുതൽ സൗകര്യപ്രദമാണെന്ന് മാത്രമല്ല, സിസ്റ്റത്തിനായുള്ള ജോലിയുടെ അളവ് കുറയ്ക്കുകയും ചെയ്യുന്നു.

ഫയൽ നിലവിലുണ്ടെങ്കിൽ, സിസ്റ്റം ഐ-നോഡ് നമ്പർ വീണ്ടെടുക്കുകയും ഐ-നോഡ് ടേബിളിന്റെ (ഡിസ്കിൽ) ഒരു സൂചികയായി ഉപയോഗിക്കുകയും അനുബന്ധ ഐ-നോഡ് നോക്കി മെമ്മറിയിലേക്ക് വായിക്കുകയും ചെയ്യുന്നു. ഈ ഐ-നോഡ് ഐ-നോഡ് ടേബിളിൽ സ്ഥാപിച്ചിരിക്കുന്നു, നിലവിൽ തുറന്നിരിക്കുന്ന ഫയലുകൾക്കും ഡയറക്‌ടറികൾക്കുമുള്ള എല്ലാ ഐ-നോഡുകളും അടങ്ങുന്ന ഒരു കേർണൽ ഡാറ്റാ ഘടന. ഐ-നോഡ് എലമെന്റ് ഫോർമാറ്റിൽ സ്റ്റാറ്റ് കോളിനായി സ്റ്റാറ്റ് സിസ്റ്റം കോൾ നൽകുന്ന എല്ലാ ഫീൽഡുകളും (കുറഞ്ഞത്) അടങ്ങിയിരിക്കണം (പട്ടിക 10.10 കാണുക). പട്ടികയിൽ. ലിനക്സ് ഫയൽ സിസ്റ്റം പിന്തുണയ്ക്കുന്ന ഐ-നോഡ് ഘടനയിലെ ചില ഫീൽഡുകൾ ചിത്രം 10-13 കാണിക്കുന്നു. ഡയറക്‌ടറികൾ, ഉപകരണങ്ങൾ, മറ്റ് പ്രത്യേക ഫയലുകൾ എന്നിവയെ പ്രതിനിധീകരിക്കാൻ ഒരേ ഘടന ഉപയോഗിക്കുന്നതിനാൽ യഥാർത്ഥ ഐ-നോഡ് ഘടനയിൽ കൂടുതൽ ഫീൽഡുകൾ അടങ്ങിയിരിക്കുന്നു. ഐ-നോഡ് ഘടനയിൽ ഭാവിയിലെ ഉപയോഗത്തിനായി നീക്കിവച്ചിരിക്കുന്ന ഫീൽഡുകളും അടങ്ങിയിരിക്കുന്നു. ഉപയോഗിക്കാത്ത ബിറ്റുകൾ അധികനാൾ നിഷ്ക്രിയമായി നിൽക്കില്ലെന്ന് ചരിത്രം തെളിയിക്കുന്നു.

സിസ്റ്റം എങ്ങനെയാണ് ഫയൽ വായിക്കുന്നതെന്ന് നോക്കാം. റീഡ് സിസ്റ്റം കോൾ പ്രവർത്തിപ്പിക്കുന്നതിനുള്ള ഒരു സാധാരണ ലൈബ്രറി കോൾ ഇതുപോലെയാണെന്ന് ഓർക്കുക:

n = റീഡ് (fd, ബഫർ, nbytes);


കേർണൽ നിയന്ത്രണം ഏറ്റെടുക്കുമ്പോൾ, അതിന് ആരംഭിക്കാൻ കഴിയുന്നത് ഈ മൂന്ന് പരാമീറ്ററുകളും അതിന്റെ ആന്തരിക പട്ടികകളിലെ വിവരങ്ങളും (ഉപയോക്താവിനെ സംബന്ധിച്ചുള്ളവ) മാത്രമാണ്. ഈ ഇന്റേണൽ ടേബിളുകളുടെ ഘടകങ്ങളിലൊന്ന് ഫയൽ ഡിസ്ക്രിപ്റ്ററുകളുടെ ഒരു നിരയാണ്. ഇത് ഫയൽ ഡിസ്ക്രിപ്റ്ററുകളാൽ സൂചികയിലാക്കിയിരിക്കുന്നു കൂടാതെ ഒരു ഓപ്പൺ ഫയലിൽ ഒരു ഘടകം അടങ്ങിയിരിക്കുന്നു (ചില പരമാവധി സംഖ്യകൾ വരെ, സാധാരണയായി സ്ഥിരസ്ഥിതിയായി 32).

ഈ ഫയൽ ഡിസ്ക്രിപ്റ്ററിൽ ആരംഭിച്ച് അനുബന്ധ ബ്നോഡിൽ അവസാനിക്കുക എന്നതാണ് ആശയം. സാധ്യമായ ഒരു സ്കീം നോക്കാം: ഫയൽ ഡിസ്ക്രിപ്റ്ററുകളുടെ പട്ടികയിൽ ഒരു നോഡിലേക്ക് ഒരു പോയിന്റർ ഇടുക. ലാളിത്യം ഉണ്ടായിരുന്നിട്ടും, ഈ രീതി (നിർഭാഗ്യവശാൽ) പ്രവർത്തിക്കുന്നില്ല. പ്രശ്നം ഇതാണ്. ഓരോ ഫയൽ ഡിസ്ക്രിപ്റ്ററിനും അടുത്ത റീഡ് അല്ലെങ്കിൽ റൈറ്റ് ഓപ്പറേഷൻ ആരംഭിക്കുന്ന ഫയലിലെ ബൈറ്റ് വ്യക്തമാക്കുന്ന ഒരു അനുബന്ധ ഫയൽ പോയിന്റർ ഉണ്ടായിരിക്കണം. ഈ പോയിന്റർ എവിടെ സൂക്ഷിക്കണം? നോഡ് ടേബിളിൽ സ്ഥാപിക്കുക എന്നതാണ് ഒരു ഓപ്ഷൻ. എന്നിരുന്നാലും, ബന്ധമില്ലാത്ത നിരവധി പ്രോസസ്സുകൾ ഒരേ സമയം ഒരേ ഫയൽ തുറക്കുകയാണെങ്കിൽ ഈ സമീപനം പ്രവർത്തിക്കില്ല, കാരണം ഓരോ പ്രക്രിയയ്ക്കും അതിന്റേതായ പോയിന്റർ ഉണ്ടായിരിക്കണം.

രണ്ടാമത്തെ പരിഹാരം ഫയൽ ഡിസ്ക്രിപ്റ്റർ പട്ടികയിൽ ഒരു പോയിന്റർ സ്ഥാപിക്കുക എന്നതാണ്. ഒരു ഫയൽ തുറക്കുന്ന ഓരോ പ്രക്രിയയ്ക്കും ഫയലിൽ അതിന്റേതായ സ്ഥാനമുണ്ട്. നിർഭാഗ്യവശാൽ, ഈ സ്കീമും പ്രവർത്തിക്കുന്നില്ല, എന്നാൽ ഈ കേസിൽ പരാജയപ്പെടാനുള്ള കാരണം അത്ര വ്യക്തമല്ല കൂടാതെ ലിനക്സ് സിസ്റ്റത്തിലെ ഫയൽ പങ്കിടലിന്റെ സ്വഭാവവുമായി ബന്ധപ്പെട്ടിരിക്കുന്നു. ഷെൽ സ്‌ക്രിപ്റ്റ് 5 പരിഗണിക്കുക, അതിൽ രണ്ട് കമാൻഡുകൾ (p1, p2) അടങ്ങുന്നു. കമാൻഡ് ലൈനിൽ നിന്ന് സ്ക്രിപ്റ്റ് വിളിക്കുകയാണെങ്കിൽ

തുടർന്ന് p1 അതിന്റെ ഔട്ട്‌പുട്ട് x ഫയലിലേക്ക് എഴുതുമെന്ന് പ്രതീക്ഷിക്കുന്നു, തുടർന്ന് p2 അതിന്റെ ഔട്ട്‌പുട്ട് x ഫയലിലേക്ക് എഴുതും, p1 നിർത്തിയിടത്ത് നിന്ന് ആരംഭിക്കുന്നു.

ഷെൽ p1 ആരംഭിക്കുമ്പോൾ, ഫയൽ x ആദ്യം ശൂന്യമായിരിക്കും, അതിനാൽ p1 ഫയലിലേക്ക് 0 സ്ഥാനത്ത് എഴുതാൻ തുടങ്ങും. എന്നിരുന്നാലും, p1 പൂർത്തിയാകുമ്പോൾ, p2 ആരംഭ സ്ഥാനം 0 അല്ല (പക്ഷേ) കാണുന്നുവെന്ന് ഉറപ്പാക്കാൻ ചില സംവിധാനം ആവശ്യമാണ്. ഫയലിലെ സ്ഥാനം ഫയൽ ഡിസ്ക്രിപ്റ്റർ ടേബിളിൽ സംഭരിച്ചിട്ടുണ്ടെങ്കിൽ ഇതുതന്നെയാണ് സംഭവിക്കുന്നത്), എന്നാൽ പൈ നിർത്തിയ മൂല്യം.

ഇത് എങ്ങനെ ചെയ്യാമെന്ന് ചിത്രത്തിൽ കാണിച്ചിരിക്കുന്നു. 10.19 ഫയൽ ഡിസ്ക്രിപ്റ്റർ ടേബിളിനും ഐ-നോഡ് ടേബിളിനും ഇടയിൽ ഒരു പുതിയ ടേബിൾ - ഓപ്പൺ ഫയൽ ഡിസ്ക്രിപ്ഷൻ ടേബിൾ - അവതരിപ്പിക്കുകയും അതിൽ പോയിന്റർ ഫയലിലേക്ക് (റീഡ്/റൈറ്റ് ബിറ്റ്) സൂക്ഷിക്കുകയും ചെയ്യുക എന്നതാണ് തന്ത്രം. ചിത്രത്തിൽ, പാരന്റ് പ്രോസസ്സ് ഷെൽ ആണ്, കുട്ടി ആദ്യം പൈ പ്രക്രിയയും പിന്നീട് പി 2 പ്രക്രിയയുമാണ്. ഷെൽ പൈ പ്രോസസ്സ് സൃഷ്ടിക്കുമ്പോൾ, അതിന്റെ ഉപയോക്തൃ ഘടന (ഫയൽ ഡിസ്ക്രിപ്റ്റർ ടേബിൾ ഉൾപ്പെടെ) ഒരേ ഷെൽ ഘടനയുടെ കൃത്യമായ പകർപ്പാണ്, അതിനാൽ അവ രണ്ടിലും ഒരേ തുറന്ന ഫയൽ വിവരണ പട്ടികയിലേക്കുള്ള പോയിന്ററുകൾ അടങ്ങിയിരിക്കുന്നു. പൈ പ്രോസസ്സ് പുറത്തുകടക്കുമ്പോൾ, ഷെല്ലിന്റെ ഫയൽ ഡിസ്ക്രിപ്റ്റർ തുറന്ന ഫയൽ വിവരണ പട്ടികയിലേക്ക് പോയിന്റ് ചെയ്യുന്നത് തുടരുന്നു, അതിൽ ഫയലിലെ p1 പ്രോസസ്സിന്റെ സ്ഥാനം അടങ്ങിയിരിക്കുന്നു. ഷെൽ ഇപ്പോൾ p2 പ്രോസസ്സ് സൃഷ്ടിക്കുമ്പോൾ, പുതിയ ചൈൽഡ് പ്രോസസ്സ് സ്വയമേവ ഫയൽ സ്ഥാനം അവകാശമാക്കുന്നു, ആ സ്ഥാനത്തിന്റെ നിലവിലെ മൂല്യം അറിയാൻ പുതിയ പ്രോസസ്സോ ഷെല്ലോ ആവശ്യമില്ല.


ചില ബാഹ്യ പ്രക്രിയകൾ ഫയൽ തുറക്കുകയാണെങ്കിൽ, അത് ഫയലിലെ അതിന്റെ സ്ഥാനത്തോടൊപ്പം തുറന്ന ഫയൽ വിവരണ പട്ടികയിൽ അതിന്റേതായ എൻട്രി ലഭിക്കും, അത് കൃത്യമായി ആവശ്യമാണ്. അതിനാൽ, ഓപ്പൺ ഫയൽ വിവരണ പട്ടികയുടെ ഉദ്ദേശ്യം, ഒരു ഫയലിൽ ഒരൊറ്റ പോയിന്റർ പങ്കിടാൻ മാതാപിതാക്കളെയും കുട്ടികളുടെ പ്രക്രിയകളെയും അനുവദിക്കുക, എന്നാൽ വിദേശ പ്രക്രിയകൾക്കായി വ്യക്തിഗത പോയിന്ററുകൾ അനുവദിക്കുക എന്നതാണ്.

അതിനാൽ (ഒരു വായന നടത്തുന്നതിനുള്ള പ്രശ്നത്തിലേക്ക് മടങ്ങുന്നു), ഫയലിലെ സ്ഥാനവും ഐ-നോഡും എങ്ങനെ നിർണ്ണയിക്കപ്പെടുന്നുവെന്ന് ഞങ്ങൾ കാണിച്ചിരിക്കുന്നു. ഫയലിന്റെ ആദ്യ 12 ബ്ലോക്കുകളുടെ ഡിസ്ക് വിലാസങ്ങൾ ഐ-നോഡിൽ അടങ്ങിയിരിക്കുന്നു. ഫയലിലെ സ്ഥാനം അതിന്റെ ആദ്യത്തെ 12 ബ്ലോക്കുകൾക്കുള്ളിലാണെങ്കിൽ, ഫയലിന്റെ ആവശ്യമുള്ള ബ്ലോക്ക് റീഡ് ചെയ്യുകയും ഡാറ്റ ഉപയോക്താവിന് പകർത്തുകയും ചെയ്യും. 12 ബ്ലോക്കുകളിൽ കൂടുതൽ നീളമുള്ള ഫയലുകൾക്ക്, ഐ-നോഡിൽ ഒരു പരോക്ഷ ബ്ലോക്കിന്റെ ഡിസ്ക് വിലാസം അടങ്ങിയിരിക്കുന്നു (ചിത്രം 10.19). ഈ ബ്ലോക്കിൽ അധിക ഡിസ്ക് ബ്ലോക്കുകളുടെ ഡിസ്ക് വിലാസങ്ങൾ അടങ്ങിയിരിക്കുന്നു. ഉദാഹരണത്തിന്, ബ്ലോക്ക് വലുപ്പം 1 KB ആണെങ്കിൽ, ഡിസ്ക് വിലാസം 4 ബൈറ്റുകൾ ആണെങ്കിൽ, ഒരു പരോക്ഷ ബ്ലോക്കിന് 256 ഡിസ്ക് വിലാസങ്ങൾ വരെ സംഭരിക്കാൻ കഴിയും. 268 KB വരെ വലുപ്പമുള്ള ഫയലുകൾ പിന്തുണയ്ക്കാൻ ഈ സ്കീം നിങ്ങളെ അനുവദിക്കുന്നു.