init, systemd എന്നിവയ്ക്ക് പിന്നിലെ കഥ: ലിനക്സിൽ systemd എന്നതിന് പകരം init ചെയ്യേണ്ടത് എന്തുകൊണ്ട്?


വിവിധ ലിനക്സ് വിതരണങ്ങളുമായും ആപ്ലിക്കേഷനുകളുമായും ബന്ധപ്പെട്ട നിരവധി മെയിലിംഗ് ലിസ്റ്റുകളിലേക്ക് ഞാൻ സബ്uസ്uക്രൈബുചെയ്uതിട്ടുണ്ട്, എവിടെയാണ് എന്താണ് സംഭവിക്കുന്നതെന്ന് എന്നെത്തന്നെ അറിയിക്കാൻ. പുതിയ ബഗുകൾ എന്തൊക്കെയാണ്? റിലീസ് ചെയ്ത പാച്ചുകൾ എന്തൊക്കെയാണ്? അടുത്ത റിലീസിൽ എന്താണ് പ്രതീക്ഷിക്കുന്നത്? കൂടാതെ ധാരാളം മറ്റ് സാധനങ്ങളും. ഈ ദിവസങ്ങളിൽ മെയിലിംഗ് ലിസ്റ്റിൽ \ലിനക്സ് ഡിവിഡിൽ നിങ്ങളുടെ വശം തിരഞ്ഞെടുക്കുക, പ്രധാനമായും ഡെബിയൻ മെയിലിംഗ് ലിസ്റ്റിൽ മറ്റ് ചിലത്.

ചില Linux വിതരണങ്ങളിൽ init ഡെമൺ ഡെമൺ systemd ഉപയോഗിച്ച് മാറ്റിസ്ഥാപിക്കാൻ പോകുന്നു, അതേസമയം അവയിൽ പലതും ഇതിനകം തന്നെ ഇത് നടപ്പിലാക്കിയിട്ടുണ്ട്. ഇത് പരമ്പരാഗത Unix/Linux Guard, New Linux Guard - പ്രോഗ്രാമർമാരും സിസ്റ്റം അഡ്മിൻമാരും തമ്മിൽ വലിയ വിടവ് സൃഷ്ടിക്കും.

ഈ ലേഖനത്തിൽ, ഇനിപ്പറയുന്ന എല്ലാ ചോദ്യങ്ങളും ഓരോന്നായി ഞങ്ങൾ ചർച്ച ചെയ്യുകയും പരിഹരിക്കുകയും ചെയ്യും.

  1. ഇനിറ്റ് എന്താണ്?
  2. എന്താണ് systemd?
  3. എന്തുകൊണ്ട് init മാറ്റിസ്ഥാപിക്കേണ്ടതുണ്ട്?
  4. എന്തൊക്കെ സവിശേഷതകൾ systemd സ്വന്തമാക്കും.

Linux-ൽ, init എന്നത് Initialization എന്നതിന്റെ ചുരുക്കെഴുത്താണ്. init എന്നത് ഒരു ഡെമൺ പ്രക്രിയയാണ്, അത് കമ്പ്യൂട്ടർ ആരംഭിച്ചയുടനെ ആരംഭിക്കുകയും അത് ഷട്ട്ഡൗൺ ആകുന്നതുവരെ പ്രവർത്തിക്കുകയും ചെയ്യുന്നു. ഇൻ-ഫാക്റ്റ് init എന്നത് ഒരു കമ്പ്യൂട്ടർ ബൂട്ട് ചെയ്യുമ്പോൾ ആരംഭിക്കുന്ന ആദ്യത്തെ പ്രക്രിയയാണ്, ഇത് പ്രവർത്തിക്കുന്ന മറ്റെല്ലാ പ്രക്രിയകളുടെയും നേരിട്ടോ അല്ലാതെയോ പാരന്റ് ആക്കുന്നു, അതിനാൽ ഇത് സാധാരണയായി pid=1 അസൈൻ ചെയ്യപ്പെടുന്നു.

എങ്ങനെയെങ്കിലും init ഡെമൺ ആരംഭിക്കാൻ കഴിയുന്നില്ലെങ്കിൽ, ഒരു പ്രക്രിയയും ആരംഭിക്കില്ല, കൂടാതെ സിസ്റ്റം “Kernel Panic“ എന്ന ഘട്ടത്തിലെത്തും. init എന്നത് സാധാരണയായി സിസ്റ്റം V init എന്നാണ് അറിയപ്പെടുന്നത്. ഇന്നത്തെ മിക്ക Linux വിതരണങ്ങളിലും init-ന്റെ രൂപകൽപ്പന ചെയ്ത ആദ്യത്തെ വാണിജ്യ UNIX ഓപ്പറേറ്റിംഗ് സിസ്റ്റമാണ് സിസ്റ്റം V, സിസ്റ്റം V OS-ന് സമാനമാണ്, BSD-ശൈലി ഉപയോഗിക്കുന്ന Slackware-ഉം Gentoo-ഉപയോഗിക്കുന്ന കസ്റ്റം init-ഉം പോലെയുള്ള ചില ഒഴിവാക്കലുകൾ. .

init മാറ്റി പകരം വയ്ക്കേണ്ടതിന്റെ ആവശ്യകത വളരെക്കാലമായി അനുഭവപ്പെടുകയും കാലാകാലങ്ങളിൽ നിരവധി ബദലുകൾ വികസിപ്പിച്ചെടുക്കുകയും ചെയ്തു, അവയിൽ ചിലത് വിതരണത്തിന്റെ നേറ്റീവ് init മാറ്റിസ്ഥാപിച്ചു, അവയിൽ ചിലത്:

  1. Upstart – ഉബുണ്ടു GNU/Linux-ൽ നടപ്പിലാക്കിയ ഒരു init റീപ്ലേസ്uമെന്റ് ഡെമൺ, പ്രോസസ്സ് അസമന്വിതമായി ആരംഭിക്കാൻ രൂപകൽപ്പന ചെയ്uതിരിക്കുന്നു.
  2. Epoch – ഒരു init റീപ്ലേസ്uമെന്റ് ഡെമൺ ലാളിത്യത്തിനും സേവന മാനേജുമെന്റിനുമായി നിർമ്മിച്ചതാണ്, പ്രോസസ്സ് സിംഗിൾ-ത്രെഡ് ആരംഭിക്കാൻ രൂപകൽപ്പന ചെയ്uതിരിക്കുന്നു.
  3. മുഡാർ – പൈത്തണിൽ എഴുതിയ ഒരു init റീപ്ലേസ്uമെന്റ് ഡെമൺ, Pardus GNU/Linux-ൽ നടപ്പിലാക്കി, പ്രോസസ്സ് അസമന്വിതമായി ആരംഭിക്കാൻ രൂപകൽപ്പന ചെയ്uതിരിക്കുന്നു.
  4. systemd – സമാന്തരമായി പ്രോസസ്സ് ആരംഭിക്കുന്നതിനായി രൂപകൽപ്പന ചെയ്ത ഒരു init റീപ്ലേസ്uമെന്റ് ഡെമൺ, നിരവധി സ്റ്റാൻഡേർഡ് ഡിസ്ട്രിബ്യൂഷനുകളിൽ നടപ്പിലാക്കി - Fedora, OpenSuSE, Arch, RHEL, CentOS മുതലായവ.

ഒരു systemd എന്നത് ഡെമണിന്റെ അവസാനം ‘d’ ചേർക്കാൻ UNIX കൺവെൻഷനോട് കൂടിയ ഒരു സിസ്റ്റം മാനേജ്മെന്റ് ഡെമൺ ആണ്. അതിനാൽ, അവ എളുപ്പത്തിൽ തിരിച്ചറിയാൻ കഴിയും. തുടക്കത്തിൽ ഇത് ഗ്നു ജനറൽ പബ്ലിക് ലൈസൻസിന് കീഴിലാണ് പുറത്തിറങ്ങിയത്, എന്നാൽ ഇപ്പോൾ റിലീസ് ചെയ്യുന്നത് ഗ്നു ലെസ്സർ ജനറൽ പബ്ലിക് ലൈസൻസിന് കീഴിലാണ്. init-ന് സമാനമായി, നേരിട്ടോ അല്ലാതെയോ ഉള്ള മറ്റെല്ലാ പ്രക്രിയകളുടെയും രക്ഷിതാവാണ് systemd, ബൂട്ടിൽ ആരംഭിക്കുന്ന ആദ്യത്തെ പ്രക്രിയയാണ്, അതിനാൽ സാധാരണയായി ഒരു “pid=1“ നിയോഗിക്കപ്പെടുന്നു.

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

ഒരു init പ്രോസസ്സ് സീരിയലായി ആരംഭിക്കുന്നു, അതായത്, അവസാന ടാസ്uക് സ്റ്റാർട്ടപ്പ് വിജയിച്ച് മെമ്മറിയിൽ ലോഡുചെയ്uതതിനുശേഷം മാത്രമേ ഒരു ടാസ്uക് ആരംഭിക്കൂ. ഇത് പലപ്പോഴും കാലതാമസത്തിനും നീണ്ട ബൂട്ടിംഗ് സമയത്തിനും കാരണമായി. എന്നിരുന്നാലും, systemd രൂപകല്പന ചെയ്തത് വേഗതയ്ക്കുവേണ്ടിയല്ല, മറിച്ച് കാര്യങ്ങൾ ഭംഗിയായി ചെയ്തുതീർക്കാനാണ്, അത് യുഎൻ-ആവശ്യമായ എല്ലാ കാലതാമസവും ഒഴിവാക്കുന്നു.

  1. വൃത്തിയുള്ളതും മികച്ചതും കാര്യക്ഷമവുമായ രൂപകൽപ്പന.
  2. ലളിതമായ ബൂട്ട് പ്രക്രിയ.
  3. ബൂട്ടിൽ സമാന്തരവും സമാന്തരവുമായ പ്രോസസ്സിംഗ്.
  4. മികച്ച API.
  5. ലളിതമായ യൂണിറ്റ് വാക്യഘടന.
  6. ഓപ്ഷണൽ ഘടകങ്ങൾ നീക്കം ചെയ്യാനുള്ള കഴിവ്.
  7. കുറഞ്ഞ മെമ്മറി കാൽപ്പാടുകൾ.
  8. ആശ്രിതത്വം പ്രകടിപ്പിക്കുന്നതിനുള്ള മെച്ചപ്പെട്ട സാങ്കേതികത.
  9. ഇനീഷ്യലൈസേഷൻ നിർദ്ദേശം കോൺഫിഗറേഷൻ ഫയലിലാണ് എഴുതിയിരിക്കുന്നത്, ഷെൽ സ്ക്രിപ്റ്റിൽ അല്ല.
  10. Unix Domain Socket ഉപയോഗിക്കുക.
  11. systemd കലണ്ടർ ടൈമറുകൾ ഉപയോഗിച്ച് ജോലി ഷെഡ്യൂളിംഗ്.
  12. ജേണൽഡ് ഉപയോഗിച്ച് ഇവന്റ് ലോഗിംഗ്.
  13. systemd, syslog എന്നിവ ഉപയോഗിച്ച് സിസ്റ്റം ഇവന്റുകൾ ലോഗ് ചെയ്യുന്നതിനുള്ള തിരഞ്ഞെടുപ്പ്.
  14. ലോഗുകൾ ബൈനറി ഫയലിൽ സംഭരിച്ചിരിക്കുന്നു.
  15. സിസ്റ്റംഡ് സ്റ്റേറ്റ് ഭാവിയിൽ പിന്നീട് വിളിക്കാനായി സംരക്ഷിക്കാവുന്നതാണ്.
  16. കേർണലിന്റെ cgroup ഉപയോഗിച്ച് പ്രക്രിയ ട്രാക്ക് ചെയ്യുക, PID അല്ല.
  17. systemd-logind നിയന്ത്രിക്കുന്ന ഉപയോക്താക്കളുടെ ലോഗിൻ.
  18. ഇന്റർഓപ്പറബിളിറ്റിക്ക് ഗ്നോമുമായുള്ള മികച്ച സംയോജനം.

  1. എല്ലാം ഒരിടത്ത്.
  2. POSIX നിലവാരമല്ല.

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

pid=1 ആയി പ്രവർത്തിക്കുന്ന ഒന്നും തകരാൻ പാടില്ല, കുഴപ്പം ഉണ്ടാകരുത്, ഉപയോക്താക്കൾ ഫലപ്രദമായും കാര്യക്ഷമമായും നിയന്ത്രിക്കണം. ലിനക്സിന്റെ ഒരു പാർശ്വഫലമായി എല്ലാ സമയത്തും ചക്രം പുനർനിർമ്മിക്കുന്നതല്ലാതെ മറ്റൊന്നുമല്ല systemd-യ്uക്കായി init മാറ്റിസ്ഥാപിക്കുന്നത് എന്ന് പല ഉപയോക്താക്കളും വിശ്വസിക്കുന്നു. എന്നാൽ ഇതാണ് ലിനക്സിന്റെ വൈവിധ്യമാർന്ന സ്വഭാവം. കാരണം, ലിനക്സ് അത്രത്തോളം ശക്തിയുള്ളതാണ്. മാറ്റം നല്ലതാണ്, അത് നല്ല കാരണത്താലാണെങ്കിൽ നാം അതിനെ അഭിനന്ദിക്കണം.

ഇപ്പോഴത്തേക്ക് ഇത്രമാത്രം. നിങ്ങൾ വായിക്കാൻ ഇഷ്ടപ്പെടുന്ന മറ്റൊരു രസകരമായ ലേഖനവുമായി ഞാൻ ഇവിടെ വീണ്ടും വരും. അതുവരെ തുടരുക, Tecmint-ലേക്ക് കണക്റ്റ് ചെയ്യുക. ചുവടെയുള്ള അഭിപ്രായങ്ങളിൽ നിങ്ങളുടെ വിലയേറിയ ഫീഡ്uബാക്ക് ഞങ്ങൾക്ക് നൽകാൻ മറക്കരുത്.