Provided by: manpages-pl_4.27.0-1_all bug

NAZWA

       boot - proces rozruchu systemu w stylu UNIX System V wydanie 4

OPIS

       Proces  rozruchu  (lub  „sekwencja  rozruchowa”)  różni się w detalach pomiędzy systemami, ale może być z
       grubsza podzielony na fazy kontrolowane przez następujące komponenty:

       (1)  sprzęt

       (2)  program rozruchowy

       (3)  jądro

       (4)  proces w przestrzeni użytkownika root (init i inittab)

       (5)  skrypty rozruchowe

       Poniżej opisano bardziej szczegółowo każdy z etapów.

   Sprzęt
       Po uruchomieniu lub sprzętowym resecie, kontrola jest przekazywana programowi przechowywanemu  w  pamięci
       tylko  do  odczytu (zwykle PROM); ze względów historycznych dotyczących komputera osobistego, program ten
       jest często nazywany „BIOS-em”.

       Program zwykle przeprowadza podstawową samokontrolę komputera oraz odczytuje pamięć nieulotną  pozyskując
       dalsze parametry. Pamięć ta w zwykłym komputerze zasilana jest baterią CMOS, dlatego często nazywana jest
       „CMOS-em”;  natomiast  poza  światem  komputerów osobistych zwykle zwie się „NVRAM-em” (ang. „nonvolatile
       RAM” - nieulotny RAM).

       Parametry przechowywane w  NVRAM  różnią  się  pomiędzy  systemami,  ale  powinny  określać  przynajmniej
       urządzenie,  które  zawiera  program  rozruchowy lub choć urządzenie, które powinno być sprawdzone w celu
       odszukania  tego  programu;  takie  urządzenie  jest  zwane  „urządzeniem  rozruchowym”.  Etap   rozruchu
       sprzętowego ładuje program rozruchowy z ustalonej pozycji na urządzeniu rozruchowym i przekazuje do niego
       dalszą kontrolę.

       Uwaga: Urządzenie  z  którego  można  załadować  program  rozruchowy  można  dołączyć przez sieć; w takim
              przypadku dalsze detale rozruchu są określone protokołami takimi jak DHCP, TFTP,  PXE,  Etherboot,
              itp.

   Program rozruchowy
       Głównym  zadaniem  programu  rozruchowego  jest  odnalezienie  jądra  na jakimś urządzeniu, załadowanie i
       uruchomienie go. Większość programów może być interaktywna, aby umożliwić wybranie innego jądra (być może
       jego kopii zapasowej, jeśli ostatnio skompilowane jądro nie działa) i przekazanie opcjonalnych parametrów
       do jądra.

       W tradycyjnych komputerach program rozruchowy jest położony w  pierwszym  512-bajtowym  bloku  urządzenia
       rozruchowego, blok ten nazywa się „MBR” (ang. Master Boot Record - główny sektor rozruchowy).

       W  większości  systemów,  ze  względu  na  wiele ograniczeń, program rozruchowy jest uproszczony. Nawet w
       systemach innych niż komputery osobiste istnieją pewne ograniczenia dotyczące jego rozmiaru i złożoności,
       ale rozmiar MBR na zwykłym komputerze (512 bajtów, uwzględniając w tym  tablicę  partycji)  czyni  niemal
       niemożliwym dodanie większej liczby funkcji.

       Z  tego  względu większość systemów dzieli rolę ładowania systemu operacyjnego pomiędzy pierwotny program
       rozruchowy i wtórny program rozruchowy, ten drugi może  już  zajmować  większą  powierzchnię  na  trwałym
       magazynie danych, takim jak partycja dysku.

       W Linuksie menedżerem rozruchu jest często grub(8) (alternatywą jest lilo(8)).

   Jądro
       Podczas  ładowania,  jądro  dokonuje  inicjalizacji  wielu części komputera i systemu operacyjnego; każdy
       fragment oprogramowania odpowiedzialny za takie zadanie jest zwykle uważany za „sterownik” danej  części.
       Jądro  uruchamia  wymianę  pamięci  wirtualnej (we współczesnych jądrach Linux dokonuje tego proces jądra
       zwany „kswapd”) i montuje pewne systemy plików w korzeniu systemu plików /.

       Część parametrów, które można przekazać do jądra  odnosi  się  do  tych  aktywności  (na  przykład  można
       przesłonić  domyślny katalog główny systemu plików); więcej informacji o parametrach jądra znajduje się w
       podręczniku bootparam(7).

       Dopiero  wówczas  jądro  tworzy  pierwszy  proces  w  przestrzeni  użytkownika,  któremu  nadawany   jest
       identyfikator  procesu  (PID)  numer  1.  Proces  ten tradycyjnie wykonuje program /sbin/init, do którego
       przekazywane są parametry nieobsłużone do tej pory przez jądro.

   Proces w przestrzeni użytkownika root
       Uwaga: Poniższy opis dotyczy systemu operacyjnego działącego w oparciu o UNIX System V wydanie  4.  Wiele
              powszechnie używanych systemów przyjęło powiązane, ale fundamentalnie odmienne podejście pod nazwą
              systemd(1); opis jego procesu rozruchowego opisano w powiązanym z nim podręcznikiem bootup(7).

       Gdy  uruchamia  się  /sbin/init,  odczytuje  plik /etc/inittab w celu uzyskania dalszych instrukcji. Plik
       określa to, co powinno być uruchomione gdy program  /sbin/init  ma  wejść  w  dany  poziom  pracy,  dając
       administratorowi  możliwość  łatwego  określenia środowisk do różnych zastosowań; każdy poziom pracy jest
       związany z zestawem usług (np. poziom pracy S jest trybem pojedynczego  użytkownika,  a  poziom  pracy  2
       oznacza uruchomienie większości usług sieciowych).

       Administrator  może  zmienić  aktualny poziom pracy za pomocą init(1) oraz sprawdzić bieżący poziom pracy
       poleceniem runlevel(8).

       Jednak ze względu na to, że zarządzanie pojedynczymi usługami  za  pomocą  tego  pliku  jest  niewygodne,
       /etc/inittab uruchamia jedynie zestaw skryptów które uruchamiają/zatrzymują poszczególne usługi.

   Skrypty rozruchowe
       Uwaga: Poniższy  opis  dotyczy  systemu  operacyjnego  działającego  w oparciu o UNIX System V wydanie 4,
              jednak wiele popularnych systemów operacyjnych (Slackware Linux, FreeBSD, OpenBSD) używa  skryptów
              rozruchowych w jakimś stopniu odmiennych.

       Każda  zarządzana  usługa  (poczta  elektroniczna,  serwer  nfs,  cron  itp.)   posiada pojedynczy skrypt
       uruchomieniowy w określonym katalogu (w większości wersji Linuksa jest  to  /etc/init.d).  Każdy  z  tych
       skryptów  akceptuje  jako  pojedynczy  argument  słowo  „start”  (uruchamiające  usługę) lub słowo „stop”
       (zatrzymujące usługę). Dla „wygody” skrypt może opcjonalnie akceptować inne parametry (np.  „restart”  do
       zatrzymania i ponownego uruchomienia, „status” do wyświetlenia statusu usługi itp.). Uruchomienie skryptu
       bez argumentów wyświetla dopuszczalne argumenty.

   Katalogi sekwencyjne
       Aby określone skrypty uruchamiały się na określonych poziomach pracy i w określonej kolejności, występują
       katalogi  sekwencyjne,  zwykle  w  postaci /etc/rc[0-6S].d. W każdym z tych katalogów istnieją dowiązania
       (zwykle symboliczne) do skryptów w katalogu /etc/init.d.

       Główny skrypt (zwykle /etc/rc) jest wywoływany z inittab(5); wywołuje on następnie skrypt  każdej  usługi
       za  pomocą  dowiązania  w  odpowiednim katalogu sekwencyjnym. Każde dowiązanie, którego nazwa zaczyna się
       literą „S” jest wywoływane z argumentem „start” (uruchamiając usługę). Każde  dowiązanie,  którego  nazwa
       zaczyna się literą „K” jest uruchamiane z argumentem „stop” (zatrzymując usługę).

       Do  zdefiniowania  kolejności  uruchamiania  i zatrzymywania usług na tym samym poziomie pracy, używa się
       numeru kolejności w nazwie dowiązania. Aby zachować przejrzystość, nazwa  dowiązania  zwykle  kończy  się
       nazwą  usługi do której odsyła dowiązanie. Przykładowo dowiązanie /etc/rc2.d/S80sendmail uruchamia usługę
       sendmail(8) na  poziomie  pracy  2.  Dzieje  się  to  po  uruchomieniu  /etc/rc2.d/S12syslog,  ale  przed
       uruchomieniem /etc/rc2.d/S90xfs.

       Zarządzenie  opisanymi  dowiązaniami  oznacza zatem zarządzenie kolejnością rozruchu i poziomami pracy, w
       wielu systemach istnieją pomocne narzędzia służące do tego celu (np. chkconfig(8)).

   Konfiguracja rozruchowa
       Program udostępniający usługę jest często nazywany „demonem”. Demon może zwykle otrzymać  różne  opcje  i
       parametry  wiersza  poleceń.  W  celu  umożliwienia  ich zmiany przez administratora systemu bez potrzeby
       edytowania całego skryptu rozruchowego, istnieje jakiś odrębny plik konfiguracyjny, położony w określonym
       katalogu, w  którym  może  odnaleźć  go  skrypt  rozruchowy  (w  starszych  systemach  Red  Hat  jest  to
       /etc/sysconfig).

       W  starszych  systemach  UNIX,  taki  plik  zawierał  faktyczne  opcje  wiersza poleceń do demona, ale we
       współczesnych systemach Linux  (oraz  HP-UX),  zawiera  jedynie  zmienne  powłoki.  Skrypt  rozruchowy  w
       /etc/init.d   odczytuje   i   włącza   swój   plik  konfiguracyjny  (wykonuje  „source”  na  swoim  pliku
       konfiguracyjnym), a następnie używa wartości zmiennych.

PLIKI

       /etc/init.d/, /etc/rc[S0-6].d/, /etc/sysconfig/

ZOBACZ TAKŻE

       init(1), systemd(1), inittab(5), bootparam(7), bootup(7), runlevel(8), shutdown(8)

TŁUMACZENIE

       Tłumaczenie niniejszej strony podręcznika: Michał Kułach <michal.kulach@gmail.com>

       Niniejsze tłumaczenie jest wolną dokumentacją. Bliższe informacje  o  warunkach  licencji  można  uzyskać
       zapoznając   się   z   GNU General Public License w wersji 3   lub  nowszej.  Nie  przyjmuje  się  ŻADNEJ
       ODPOWIEDZIALNOŚCI.

       Błędy w  tłumaczeniu  strony  podręcznika  prosimy  zgłaszać  na  adres  listy  dyskusyjnej  manpages-pl-
       list@lists.sourceforge.net.

Linux man-pages 6.9.1                            2 maja 2024 r.                                          boot(7)