ലിനക്സ് കുറിപ്പുകൾ/ഫയൽ സിസ്റ്റങ്ങൾ

വിക്കിപാഠശാല, ഒരു സ്വതന്ത്ര ഉള്ളടക്കത്തോടുകൂടിയ പാഠശാല.
Jump to navigation Jump to search

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

ഡിസ്കുകളെ സിലിണ്ടറുകൾ, ട്രാക്കുകൾ, സെക്ടറുകൾ എന്നിങ്ങനെ ചെറിയ യൂണിറ്റുകളായി വിഭജിച്ചിരിക്കും.

Cylinder Head Sector.svg

യൂണിക്സ്/ലിനക്സ് സിസ്റ്റങ്ങളിൽ പൊതുവേ സെക്റ്ററുകൾക്കോ സെക്റ്ററുകളുടെ ഒരു കൂട്ടത്തിനോ ബ്ലോക്ക് എന്ന വാക്കാണ് ഉപയോഗിക്കാറുള്ളത്. ശരിക്കും ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തിന്റെ സൗകര്യത്തിനനുസരിച്ചാണ് ഇത് തീരുമാനിക്കുന്നത്. ഡിസ്കുകളെ ബ്ലോക്ക് ഡിവൈസുകൾ എന്നാണ് ലിനക്സ് വിളിക്കുന്നത്. ഒരു ക്യാമറയിൽ നിന്നോ പ്രിന്ററിലേക്കോ ഒക്കെ വിവരങ്ങൾ വായിക്കുകയും എഴുതുകയും ചെയ്യുന്നത് ഓരോരോ ബൈറ്റുകൾ ആയിട്ടാണ്. എന്നാൽ ഡിസ്കുകളുമായുള്ള വിവര കൈമാറ്റങ്ങൾ ബ്ലോക്കുകൾ ആയിട്ടാണ് നടത്താറുള്ളത്. ഈ ബ്ലോക്കുകളുടെ വലിപ്പം പല സാഹചര്യങ്ങളിലും പലതായിരിക്കും.

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

ഹാർഡ് ഡിസ്കിനെ ഇനിയുള്ള കാര്യങ്ങൾ എളുപ്പത്തിൽ മനസ്സിലാക്കാനായി നമുക്ക് നീട്ടി പരത്തിവയ്ക്കണം. ജി ബി കണക്കിനുള്ള സംഭരണശേഷി വൃത്താകൃതിയിൽ ഉള്ള ഒരു പ്രതലത്തിൽ നിന്നും മാറ്റി പരന്ന നീളമുള്ള ഒരു പ്രതലത്തിലേക്ക് കൊണ്ടുവയ്ക്കാം. ഒന്നിലധികം സെക്റ്ററുകൾ ഉൾക്കൊള്ളുന്ന ബ്ലോക്കുകൾ ഒന്നിനുപിന്നിൽ ഒന്നായി അടുക്കിവചിരിക്കുന്നത് പോലെ. എല്ലാ ഹാർഡ് ഡിസ്കിന്റെയും ആദ്യത്തെ 512 ബൈറ്റുകൾ മാസ്റ്റർ ബൂട്ട് റെക്കോർഡ് (MBR) എന്ന് വിളിക്കപ്പെടുന്നു. ഇതിൽ ആദ്യത്തെ 446 ബൈറ്റുകൾ ഡിസ്കിൽ ഉള്ള ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റത്തെ മെമ്മറിയിലേക്ക് കൊണ്ടുവരുന്നതിനായി (ബൂട്ടിങ്ങ്) ആവശ്യമുള്ള നിർദ്ദേശങ്ങളെ ഉൾക്കൊള്ളുന്നു. ഇത് മിക്കവാറും ഒരു ബൂട്ട് ലോഡറിന്റെ ആദ്യഭാഗമായിരിക്കും. പിന്നീടുവരുന്ന 64 ബൈറ്റുകൾ പാർട്ടീഷ്യൻ ടേബിൾ ഉൾക്കൊള്ളുന്നു. നിങ്ങളുടെ ഡിസ്കിൽ ഉള്ള പാർട്ടീഷ്യനുകളുടെ ഒരു പട്ടികയാണ് പാർട്ടീഷ്യൻ ടേബിൾ. ഓരോ പാർട്ടീഷ്യനും ആരംഭിക്കുന്ന സെക്റ്റർ - ട്രാക്ക് വിവരങ്ങൾ ഇതിൽ ഉണ്ടാകും. പിന്നെ ആ പാർട്ടീഷ്യൻ ബൂട്ടിങ്ങിനായി ഉപയോഗിക്കാമോ, അതിൽ ഒരു ഓപ്പറേറ്റിങ് സിസ്റ്റം ഉണ്ടോ എന്നുള്ള വിവരങ്ങളും. പരമാവധി നാല് പ്രൈമറി പാർട്ടീഷ്യനുകളുടെ വിവരങ്ങൾ മാത്രം. ബാക്കിയുള്ള 2 ബൈറ്റുകൾ മാജിക്ക് നമ്പറിനുവേണ്ടി ഉള്ളതാണ്. നിങ്ങളുടെ ഹാർഡ് ഡിസ്കിൽ ഒരു ആധികാരികമായ എം ബി ആർ ഉണ്ട് എന്നതിന്റെയും അതിന്റെ അവസാനവും സൂചിപ്പിക്കാൻ വേണ്ടിയും ആണ് ഈ നമ്പർ. ഇത് ബയോസിന്റെ ഉപയോഗത്തിന് വേണ്ടിയുള്ളതാണ്. ഇതിനെക്കുറിച്ച് വിശദമായി ബൂട്ടിങ്ങിനെക്കുറിച്ചുള്ള ഭാഗത്തിൽ പരാമർശിക്കാം.

എക്സ്റ്റൻഡഡ് പാർട്ടീഷ്യനുകളുടെ തുടക്കത്തിൽ ഈ എം ബിആർ പൊലെ ഒരു ഇ ബി ആർ ഉണ്ടാകും. എക്സ്റ്റൻഡഡ് ബൂട്ട് റെക്കോർഡ്. എക്സ്റ്റൻഡഡ് പാർട്ടീഷ്യനിൽ ഉള്ള ലോജിക്കൽ പാർട്ടീഷ്യനുകളുടെ വിവരങ്ങൾ രേഖപ്പെടുത്തിയിരിക്കുന്നത് ഇതിൽ ആണ്.

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

ഇത്രയും കാര്യങ്ങൾ ഒരു ഡിസ്ക് ഏത് ഫയൽ സിസ്റ്റം ഉപയോഗിച്ചാലും അതിൽ ഉണ്ടാകും. ഫയൽ സിസ്റ്റങ്ങൾ ഉപയോഗിക്കുന്നത് ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങൾ ആണ്.

ഇനി, ഒരു പാർട്ടീഷ്യനിലെ ഫയൽ സിസ്റ്റത്തെക്കുറിച്ചും ഫയൽ സിസ്റ്റത്തെക്കുറിച്ചുള്ള പൊതുവായ ചില വിവരങ്ങളും കാണാം. ആദ്യം ചില നിർവചനങ്ങൾ,

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

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

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

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

ഒരു ഫയൽസിസ്റ്റം സജ്ജീകരിക്കാൻ ഡിസ്കിലെ അല്പം സ്ഥലം ആവശ്യമാണ്. മേൽപ്പറഞ്ഞ പട്ടികകൾ സജ്ജീകരിക്കുകയാണ് ഇതിന്റെ ആദ്യപടി. ഡിസ്കിന്റെ വലിപ്പം കൂടുന്നതിനനുസരിച്ച് ഈ പട്ടികകളുടെ വലിപ്പവും കൂടുന്നു. പുതിയതായി ഫോർമാറ്റ് ചെയ്ത ഒരു ഡിസ്കിൽ ഒരു ഫയൽ പോലും ഇല്ലെങ്കിലും അൽപ്പം സ്ഥലം ഉപയോഗിക്കപ്പെട്ടിരിക്കുന്നതായി കാണാൻ സാധിക്കും. ഓരോ ഫയൽ സിസ്റ്റങ്ങളും ഈ വിവരങ്ങൾ സൂക്ഷിക്കാൻ ഉപയോഗിക്കുന്ന പട്ടികയിലെ ഓരോ ഘടകങ്ങൾക്കുമായി നീക്കി വച്ചിരിക്കുന്ന ബൈറ്റുകളുടെ എണ്ണം വ്യത്യസ്തമായിരിക്കും. അതിനാൽ തന്നെ വ്യത്യസ്ത ഫയൽ സിസ്റ്റങ്ങളിൽ ഒരു ഫയലിന്റെ പേരിൽ ഉണ്ടാകാവുന്ന പരമാവധി അക്ഷരങ്ങളുടെ എണ്ണം, ഒരൊറ്റ ഫയലിന് അനുവദനീയമായ പരമാവധി വലുപ്പം, ആ ഫയൽ സിസ്റ്റം സജ്ജീകരിക്കാവുന്ന ഡിസ്ക്/പാർട്ടീഷ്യന് ഉണ്ടാകാവുന്ന പരമാവധി വലിപ്പം ഇവയൊക്കെ വ്യത്യസ്തമായിരിക്കും. ഉദാഹരണത്തിന് സാധാരണ നമ്മുടെ പെൻഡ്രൈവുകളിലും മെമ്മറി കാർഡൂകളിലും ഒക്കെ ഉണ്ടാകാറുള്ള FAT32 ഫയൽ സിസ്റ്റത്തിൽ ഒരു ഫയലിന്റെ പരമാവധി വലിപ്പം 4,294,967,295 ബൈറ്റുകൾ ആണ്. ഇതിനെക്കാൾ വലിപ്പമുള്ള ഫയലുകൾ അതിലേക്ക് കോപ്പി ചെയ്യാനാവില്ല. അതുപോലെ ഫയലിന്റെ പേരിൽ ഉണ്ടാകാവുന്ന പരമാവധി അക്ഷരങ്ങളുടെ എണ്ണം 255 ആണ്.

സൂപ്പർബ്ലോക്ക് എന്ന പദം യൂണിക്സ് അധിഷ്ഠിത സിസ്റ്റങ്ങളിൽ ആണ് ഉപയോഗിക്കുന്നത്. സൂപ്പർബ്ലോക്കിൽ ഉള്ള വിവരങ്ങൾ ഉൾക്കൊള്ളുന്ന ഭാഗത്തെ വിൻഡോസിലുംമറ്റും പലഭാഗങ്ങളായീ തിരിച്ച് പലപേരുകൾ വിളിക്കാറുണ്ട്.

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

ഒരു ഫയൽ സൃഷ്ടിക്കപ്പെടുന്നത്[തിരുത്തുക]

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

48കെബി വരെ വലിപ്പമുള്ള ഫയലുകൾക്ക് ഡയറക്റ്റ് ബ്ലോക്കുകൾ മതിയാകും. 4എംബി വരെയുള്ള ഫയലുകൾക്ക് ഡയറക്റ്റ് ബ്ലോക്കുകളും ഇൻഡയറക്റ്റ് ബ്ലോക്കുകളും ആവശ്യമാണ്. അതിലും വലിയ ഫയലുകൾക്ക് ഡബിൾ ഇൻഡയറക്റ്റ് ബ്ലോക്കുകൾ വേണം.

ഒരു ഫയൽ നീക്കംചെയ്യപ്പെടുന്നത്[തിരുത്തുക]

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

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

ഫ്രാഗ്‌‌മെന്റേഷൻ[തിരുത്തുക]

ഒരു ഫയൽ സിസ്റ്റത്തിൽ ഉള്ള ഫയലിലെ വിവരങ്ങളുടെ അളവ് കൂടുതലാണെങ്കിൽ അവ ശേഖരിക്കാൻ ഒരു ബ്ലോക്ക് മതിയാകില്ല. ഒരു ഫയൽ ഉപയോഗിക്കുന്ന ഒന്നിൽ കൂടുതൽ ഉള്ള ബ്ലോക്കുകൾ തുടർച്ചയായ ബ്ലോക്കുകൾ ആവണമെന്നില്ല. തുടർച്ചയായ ബ്ലോക്കുകളിൽ അല്ലാതെ ഒരുഫയൽ ശേഖരിക്കപ്പെടുന്ന അവസ്ഥയാണ് ഫ്രാഗ്‌‌മെന്റേഷൻ. ഡിസ്കിൽ തുടർച്ചയായ ഫ്രീ ബ്ലോക്കുകൾ ഇല്ലാത്ത അവസ്ഥ സാധാരണമാണ്. പ്രത്യേകിച്ച് ചെറിയ സംഭരണ ശേഷിയുള്ളവയിൽ. ഡിസ്കിൽ 10എംബി വലിപ്പമുള്ള ഒരു ഫയൽ ഉണ്ടായിരുന്നു എന്നിരിക്കട്ടെ. ആ ഫയൽ നീക്കം ചെയ്യപ്പെട്ടാൽ ആ ബ്ലോക്കുകൾ ഫ്രീ ആകും. പിന്നീട് 5എംബി വലിപ്പമുള്ള ഒരു ഫയൽ വന്നാൽ ഫ്രീ ആയ പത്ത് എംബിയിൽ ആദ്യത്തെ 5 എംബി സ്ഥലത്ത് ആ ഫയൽ ചേർക്കപ്പെടുന്നു. പിന്നീട് മറ്റൊരു 10എംബി വലിപ്പമുള്ള ഫയൽ വരികയും തുടർച്ചയായി 10‌‌എംബി വലിപ്പത്തിൽ ഫ്രീ ബ്ലോക്കുകൾ ഇല്ലാതെ വരികയും ചെയ്താൽ ആദ്യം ബാക്കി വന്ന 5‌‌എംബിയിലും വേറെ എവിടെയെങ്കിലുമായി വരുന്ന 5എംബിയിലും ആയി ആ ഫയൽ ചേർക്കേണ്ടിവരും. അപ്പോൾ ഫ്രാഗ്‌‌മെന്റേഷൻ ഉണ്ടാകുന്നു. രൂപകൽപ്പനയിലെ പ്രത്യേകതകളാൽ FAT, NTFS പോലെയുള്ള ഫയൽ സിസ്റ്റങ്ങൾ കൂടുതൽ ഫ്രാഗ്‌‌മെന്റേഷൻ പ്രശ്നങ്ങൾ കാണിക്കാറുണ്ട്. ഇങ്ങനെ ശേഖരിക്കപ്പെട്ട ഫയലുകൾ വായിക്കൂമ്പോൾ ഡിസ്കിലെ ഹെഡ്ഡിന് തുടർച്ചയില്ലാത്ത ചലനങ്ങൽ നടത്തേണ്ടിവരികയും ഇത് ഫയലുകൾ വായിക്കാൻ കൂടുതൽ സമയമെടുക്കുന്നതിന് കാരണമാവുകയും ചെയ്യും. കഴിയുന്നിടത്തോളം ഒരു ഫയലിലെ വിവരങ്ങൾ തുടർച്ചയായ ബ്ലോക്കുകളിലേക്ക് മാറ്റുന്ന പ്രവർത്തിയാണ് ഡീഫ്രാഗ്‌‌മെന്റേഷൻ. ഇത് ചെയ്യാനുള്ള സോഫ്റ്റ്‌‌വെയറുകൾ ലഭ്യമാണ്. ഇടക്കൊക്കെ ചെയ്യുന്നത് നല്ലതുമാണ്. ലിനക്സിലെ EXT3 ഫയൽ സിസ്റ്റങ്ങളിൽ ഫ്രാഗ്‌‌മെന്റേഷൻ വളരെ കുറവാണ്.

റിക്കവറി[തിരുത്തുക]

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

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

ഫയൽ അനുമതികൾ[തിരുത്തുക]

ഇന്ന് ഉപയോഗത്തിലിരിക്കുന്ന മിക്കവാറും ഫയൽ സിസ്റ്റങ്ങളിൽ ഓരോ ഫയലിനും വിവിധ തരത്തിലുള്ള അനുമതികൾ ഉണ്ട്. ഒരൊറ്റ ഉപഭോക്താവിനെ മാത്രം പിൻതുണക്കുന്ന ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിൽ ഇതിന് പ്രസക്തിയില്ല. എന്നാൽ ഒരേ സമയം ഒന്നിലധികം ആളുകൾക്ക് ഉപയോഗിക്കാൻ സാധിക്കുന്ന ആധുനിക ഓപ്പറേറ്റിങ്ങ് സിസ്റ്റങ്ങളിൽ ഓരോ ഉപഭോക്താവിന്റെയും ഫയലുകളെ മറ്റുള്ളവർ ഉപയോഗിക്കുന്നതിൽ നിന്നും അവയിൽ മാറ്റങ്ങൾ വരുത്തുന്നതിൽ നിന്നും സംരക്ഷിക്കേണ്ടതുണ്ട്.

ലിനക്സിൽ ഓരോ ഫയലിന്റെയും അനുമതി മൂന്ന് വിഭാഗങ്ങളായാണ് ക്രമീകരിച്ചിരിക്കുന്നത്. ആ ഫയൽ ഉണ്ടാക്കിയ ആൾ അഥവാ ആ ഫയലിന്റെ ഉടമ (യൂസർ), ഉടമ ഉൾപ്പെടുന്ന ഉപഭോക്താക്കളുടെ കൂട്ടം (ഗ്രൂപ്പ്), മറ്റുള്ളവർ (അതേഴ്സ്) എന്നിങ്ങനെ. ഈ മൂന്ന് വിഭാഗങ്ങളിൽ ഉള്ളവർക്കും വായിക്കുക (റീഡ്), എഴുതുക/മാറ്റം വരുത്തുക (റൈറ്റ് ), പ്രവർത്തിപ്പിക്കുക (എക്സിക്യൂട്ട്) എന്നിങ്ങനെ അനുമതികൾ കൊടുത്തിരിക്കും. താഴെക്കൊടുത്തിരിക്കുന്ന ചിത്രം നോക്കൂ,

ലിനക്സ് ഫയൽ അനുമതികൾ.png

1 എന്നുള്ളത് ഒരു വിഭാഗത്തിന് പ്രസ്തുത പ്രവൃത്തി ചെയ്യാൻ അനുമതിയുണ്ട് എന്നും 0 അനുമതിയില്ല എന്നും സൂചിപ്പിക്കുന്നു. ഈ ചിത്രത്തിൽ കാണുന്നതുപോലെ ആണെങ്കിൽ ഉടമക്ക് ആ ഫയലിനെ വായിക്കാനും, മാറ്റം വരുത്താനും പ്രവർത്തിപ്പിക്കാനും ഉള്ള അനുവാദമുണ്ട്. കൂട്ടത്തിനും മറ്റുള്ളവർക്കും ആ ഫയലിനെ വായിക്കാൻ മാത്രമേ അനുവാദമുള്ളു. ഈ ബിറ്റുകളെ ബൈനറി സംഖ്യ ആയി പരിഗണിച്ചാൽ ഒക്റ്റൽ നമ്പർ സിസ്റ്റത്തിൽ 0744 എന്ന് എഴുതാൻ സാധിക്കും. ഈ രീതിയിലാണ് സാധാരണ ഫയൽ അനുമതികൾ എഴുതാറുള്ളത്. 0660 എന്നാണെങ്കിൽ ഉടമക്കും കൂട്ടത്തിനും വായിക്കാനും എഴുതാനും അനുവാദമുണ്ട്, മറ്റുള്ളവർക്ക് ആ ഫയൽ ഉപയോഗിക്കാൻ സാധിക്കില്ല എന്നാണ്. (ബൈനറിയിൽ 110 110 000, ഏറ്റവും ഇടതുവശത്തുള്ള 0 ഈ സംഖ്യ ഒക്റ്റൽ സംഖ്യാരീതിയിൽ എഴുതപ്പെട്ടതാണ് എന്നതിനെ സൂചിപ്പിക്കുന്നു.) ലിനക്സിലെ ls നിർദ്ദേശം ഉപയോഗിക്കുമ്പോൾ ഇതിനെ rwxrwxrwx എന്നാണ് കാണിക്കാറൂള്ളത്. r - read, w - write, x - execute. ആദ്യത്തെ മൂന്നെണ്ണം ഉടമയുടെയും പിന്നീടുള്ളവ യഥാക്രമം കൂട്ടത്തിന്റെയും മറ്റുള്ളവരുടെയും അനുമതികൾ ആണ്. 0744 എന്ന അനുവാദത്തെ rwxr--r-- എന്ന് എഴുതാം. 0660 ത്തിനെ rw-rw---- എന്നും.

ലിനക്സ് റൂട്ട് ഫയൽ സിസ്റ്റത്തിലെ /etc പോലെയുള്ള ഡയറക്റ്ററികളിൽ ചില പ്രോഗ്രാമുകളുടെ ക്രമീകരണങ്ങൾ സൂക്ഷിച്ചിരിക്കുന്ന ഫയലുകൾക്ക് ചില പ്രത്യേക അനുമതികൾ നിർബന്ധമാണ്. ഇതിൽ മാറ്റം വരുത്തിയാൽ അത്തരം പ്രോഗ്രാമുകൾ പിന്നീട് പ്രവർത്തിക്കാൻ വിസമ്മതിക്കും. ഉദാഹരണത്തിന് sudo പ്രോഗ്രാമിന്റെ ക്രമീകരണങ്ങൾ ഉൾക്കൊള്ളുന്ന /etc/sudoers എന്ന ഫയലിന്റെ അനുമതികൾ ശ്രദ്ധിക്കൂ: (നിങ്ങളുടെ കമ്പ്യൂട്ടറിൽ ഒരു റൂട്ട് യൂസർ ഇല്ലെങ്കിൽ ഇത് പരീക്ഷിക്കരുത്. സാധാരണ ഉബുണ്ടു/ഡെബിയൻ സിസ്റ്റങ്ങളിൽ ഡിഫാൾട്ട് ആയി ഒരു റൂട്ട് യൂസർ ഉണ്ടാകില്ല. നിങ്ങൾ ഇത് പരീക്ഷിക്കുന്നുണ്ടെങ്കിൽ അതിനു മുൻപേ sudo passwd root എന്ന കമാന്റ് ഉപയോഗിച്ച് റൂട്ട് യൂസറുടെ പാസ് വേർഡ് ക്രമീകരിക്കേണ്ടതാണ്. പിന്നീട് su കമാന്റ് വഴി റൂട്ട് ആയി ലോഗിൻ ചെയ്ത് ഈ ഫയലിന്റെ അനുവാദങ്ങൾ പഴയപടി ആക്കാം. അതുവരെ പിന്നെ sudo കമാന്റും അതുമായി ബന്ധപ്പെട്ട gksu പോലെയുള്ള കമാന്റുകളും പ്രവർത്തിക്കുകയില്ല. ഇത് വലിയ പ്രശ്നങ്ങൾ ഉണ്ടാക്കും.)

subin@anna:~$ ls -l /etc/sudoers
-r--r----- 1 root root 723 Jan 31  2012 /etc/sudoers

ആദ്യം കാണുന്നത് അനുവാദം, പിന്നെ ലിങ്കുകളുടെ എണ്ണം (പിന്നാലെ), പിന്നെ ഉടമ, കൂട്ടം, ഫയൽ ഉണ്ടാക്കിയ തീയതി, ഫയലിന്റെ പേര് എന്നിങ്ങനെ. ഈ ഫയലിന്റെ ഉടമ റൂട്ട് ആണ്. റൂട്ടിനും പിന്നെ റൂട്ട് ഉപഭോക്താക്കളുടെ കൂട്ടത്തിനും മാത്രമേ ഈ ഫയൽ വായിക്കാൻ അനുവാദമുള്ളു. ഇനി ഈ ഫയലിന്റെ ഉടമയെ മാറ്റി നോക്കാം,

subin@anna:~$ sudo chown subin:subin /etc/sudoers
subin@anna:~$ ls -l /etc/sudoers
-r--r----- 1 subin subin 723 Jan 31  2012 /etc/sudoers

ഇപ്പോൾ ഫയലിന്റെ ഉടമ സുബിൻ ആണ്. ഇനി ഞാൻ sudo പ്രോഗ്രാം പ്രവർത്തിപ്പിക്കാൻ ശ്രമിക്കുമ്പോൾ,

subin@anna:~$ sudo fdisk -l
sudo: /etc/sudoers is owned by uid 1000, should be 0
sudo: no valid sudoers sources found, quitting
sudo: unable to initialize policy plugin

എന്ന എറർ സന്ദേശമാണ് കിട്ടുക.അനുവാദങ്ങൾ പഴയപടി ആക്കിയാൽ ഇത് വീണ്ടും പ്രവർത്തിച്ച് തുടങ്ങും.

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

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

ഒക്റ്റൽസംഖ്യാരീതിയിൽ രേഖപ്പെടുത്തുമ്പോൾ സ്റ്റിക്കിബിറ്റ് 01000, സെറ്റ്‌‌ജിഐഡി 02000, സെറ്റ്‌‌യുഐഡി 04000 എന്നിങ്ങനെയാണ് രേഖപ്പെടുത്തുക. നേരത്ത് പറഞ്ഞ മൂന്ന് അനുവാദങ്ങളുമായി ചേർക്കുമ്പോൾ മൊത്തം നാല് അക്കങ്ങളാകും. ഉദാഹരണത്തിന് 04777 എന്ന അനുവാദമാണെങ്കിൽ എല്ലാവർക്കും വായിക്കാനും മാറ്റം വരുത്താനും പ്രവർത്തിപ്പിക്കാനും കഴിയും, കൂടെ പ്രവർത്തന സമയത്ത് യു ഐ ഡി സെറ്റ് ചെയ്യാനുള്ള അനുവാദവും.