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.