Wyszukiwanie w witrynie

6 najlepszych nowoczesnych systemów „init” Linux (1992–2023)


W systemie Linux i innych systemach operacyjnych typu Unix proces init (inicjalizacja) to pierwszy proces wykonywany przez jądro podczas rozruchu, który ma ID procesu (PID) o wartości 1, który jest wykonywany w tle do momentu wyłączenia systemu.

Proces init uruchamia wszystkie pozostałe procesy Linuksa, czyli demony, usługi i inne procesy w tle, dlatego jest matką wszystkich pozostałych procesów w systemie.

Proces może uruchomić w systemie wiele innych procesów potomnych, ale jeśli proces nadrzędny umrze, init staje się rodzicem procesu osieroconego.

Z biegiem lat w głównych dystrybucjach Linuksa pojawiło się wiele systemów init. W tym przewodniku przyjrzymy się niektórym z najlepszych systemów init, z którymi można pracować w systemie operacyjnym Linux.

1. Inicjacja Systemu V

System V (SysV) to dojrzały i popularny schemat init w systemach operacyjnych typu Unix, jest rodzicem wszystkich procesów w systemie Unix/Linux. SysV to pierwszy zaprojektowany komercyjny system operacyjny Unix.

Prawie wszystkie dystrybucje Linuksa po raz pierwszy korzystały ze schematu inicjowania SysV, z wyjątkiem Gentoo, który ma niestandardowy init, oraz Slackware, które używa schematu inicjowania w stylu BSD.

Z biegiem lat, z powodu pewnych niedoskonałości, opracowano kilka zamienników SysV init w celu stworzenia bardziej wydajnych i doskonałych systemów init dla Linuksa.

Chociaż te alternatywy mają na celu ulepszenie SysV i prawdopodobnie oferują nowe funkcje, nadal są kompatybilne z oryginalnymi skryptami SysV init.

2. SystemD

SystemD to stosunkowo nowy schemat inicjowania na platformie Linux. Wprowadzony w Fedorze 15, jest zestawem narzędzi do łatwego zarządzania systemem. Głównym celem jest inicjowanie, zarządzanie i śledzenie wszystkich procesów systemowych w procesie rozruchu i podczas działania systemu.

Systemd init różni się od innych tradycyjnych systemów init uniksowych sposobem, w jaki praktycznie podchodzi do zarządzania systemami i usługami. Jest także kompatybilny ze skryptami inicjującymi SysV i LBS.

Ma kilka z następujących wybitnych cech:

  • Czysty, prosty i wydajny projekt
  • Przetwarzanie współbieżne i równoległe podczas uruchamiania
  • Lepsze APIv
  • Umożliwia usunięcie opcjonalnych procesów
  • Obsługuje rejestrowanie zdarzeń przy użyciu dziennika
  • Obsługuje planowanie zadań przy użyciu systemowych zegarów kalendarza
  • Przechowywanie logów w plikach binarnych
  • Zachowanie stanu systemowego do wykorzystania w przyszłości
  • Lepsza integracja z GNOME i wieloma innymi

3. Nowicjusz

Upstart to system inicjujący oparty na zdarzeniach opracowany przez twórców Ubuntu jako zamiennik systemu init SysV. Uruchamia różne zadania i procesy systemowe, sprawdza je podczas działania systemu i zatrzymuje je podczas zamykania systemu.

Jest to hybrydowy system init, który wykorzystuje zarówno skrypty startowe SysV, jak i skrypty Systemd. Niektóre z godnych uwagi funkcji systemu init Upstart obejmują:

  • Pierwotnie opracowany dla systemu Ubuntu Linux, ale może działać na wszystkich innych dystrybucjach
  • Uruchamianie i zatrzymywanie zadań i usług oparte na zdarzeniach
  • Zdarzenia generowane są podczas uruchamiania i zatrzymywania zadań i usług
  • Zdarzenia mogą być wysyłane przez inne procesy systemowe
  • Komunikacja z procesem init poprzez D-Bus
  • Użytkownicy mogą uruchamiać i zatrzymywać swoje procesy
  • Ponowne pojawianie się usług, które nagle wygasają i wiele innych

4. OpenRC

OpenRC to oparty na zależnościach schemat init dla systemów operacyjnych typu Unix, jest kompatybilny z initem SysV. Chociaż wprowadza to pewne ulepszenia do Sys V, musisz pamiętać, że OpenRC nie jest absolutnym zamiennikiem pliku /sbin/init.

Oferuje kilka znakomitych funkcji, w tym:

  • Może działać na wielu innych dystrybucjach Linuksa, w tym Gentoo, a także na BSD
  • Obsługuje skrypty inicjujące inicjowane sprzętowo
  • Obsługuje pojedynczy plik konfiguracyjny
  • Nie są obsługiwane żadne konfiguracje dla poszczególnych usług
  • Działa jako demon
  • Uruchamianie usług równoległych i wiele innych

5. runit

runit jest także wieloplatformowym systemem init, który może działać na systemach GNU/Linux, Solaris, *BSD i Mac OS X i stanowi alternatywę dla SysV init, który oferuje nadzór nad usługami.

Zawiera pewne korzyści i niezwykłe komponenty, których nie można znaleźć w init SysV i prawdopodobnie w innych systemach init w Linuksie, a są to:

  • Nadzór nad usługami, gdzie każda usługa jest powiązana z katalogiem usług
  • Czysty stan procesu gwarantuje każdemu procesowi czysty stan
  • Posiada niezawodny system rejestrowania
  • Szybkie uruchamianie i zamykanie systemu
  • Jest również przenośny
  • Przyjazny dla opakowania
  • Mały rozmiar kodu i wiele więcej

6. s6

s6 oferuje kompaktowy zestaw narzędzi dla systemu UNIX, dostosowanych do nadzoru procesów, podobny do daemontools i runit. Ułatwia operacje na procesach i demonach.

Zaprojektowany jako zestaw narzędzi do administrowania usługami niskiego poziomu, s6 zapewnia różnorodne narzędzia, które mogą działać niezależnie lub w jego ramach. Narzędzia te w połączeniu zapewniają solidną funkcjonalność przy minimalnej liczbie kodu.

Jak wspomniałem wcześniej, system init uruchamia i zarządza wszystkimi pozostałymi procesami w systemie Linux. Ponadto SysV jest głównym schematem inicjowania w systemach operacyjnych Linux, ale ze względu na pewne słabości w wydajności programiści systemowi opracowali dla niego kilka zamienników.

Tutaj przyjrzeliśmy się kilku z tych zamienników, ale mogą istnieć inne systemy init, które Twoim zdaniem warto wspomnieć na tej liście. Możesz nas o nich poinformować w sekcji komentarzy poniżej.