email: darw32@poczta.onet.pl


Linux - 6.Start i Stop

Start Systemu

Linuxa możesz uruchomić z kilku różnych urządzeń. Podręcznik "Installation and Getting Started" omawia sposoby startowania z różnych urządzeń.

Po włączeniu komputera BIOS przeprowadza różne testy (testy te nazywane są power on self test (POST), co oznacza samotestowanie się po włączeniu zasilania) po czym przechodzi do uruchamiania systemu. Wybiera odpowiedni dysk (wybór można skonfigurować) i odczytuje jego pierwszy sektor (sektor ładujący; lub w przypadku dysków twardych główny rekord ładujący - każda z partycji zawiera swój sektor ładujący).

Sektor ładujący zawiera niewielki program (na tyle mały aby zmieścił się w jednym sektorze), którego zadaniem jest załadowanie systemu operacyjnego z dysku. Podczas startowania z dyskietki zadaniem tego kodu jest wczytanie kilku bloków (zależnie od rozmiaru jądra) pod odpowiedni adres w pamięci. Zazwyczaj na dyskietce znajduje się tylko jądro, bez żadnego systemu plików, co upraszcza proces startowania, jeżeli na dyskietce znajduje się systemem plików należy użyć LILO.

Kod zawarty w głównym rekordzie ładującym ma utrudnione zadanie - musi sprawdzić tablicę partycji i wybrać aktywną, odczytać jej sektor ładujący i przekazać mu sterowanie. Kod zawarty w sektorze ładujący robi to samo co odpowiednik z dyskietki. Jednak w szczegółach oba programy się różnią - zazwyczaj nie tworzy się osobnej partycji zawierającej tylko jądro, więc trzeba je znaleźć na systemie plików. Istnieje kilka sposobów aby to zrobić, najpopularniejszym jest użycie LILO (dokładne rozwiązanie problemu jest, w naszej dyskusji, niepotrzebne, gdybyś chciał poznać szczegóły sięgnij do dokumentacji LILO).

LILO najczęściej odczytuje domyślne jądro i uruchamia je, można program skonfigurować tak, aby umożliwić wybór jednego z kilku, lub nawet innego systemu operacyjnego. LILO można skonfigurować tak, aby reagowało na klawisze: alt, shift, lub ctrl podczas swego ładowania, co umożliwi wybór systemu, można je również skonfigurować aby domyślnie czekało na wybranie systemu, dodatkowo można ustalić okres oczekiwania, po którym zostanie użyte domyślne ustawienie.

Za pomocą LILO można przekazać jądru argumenty.

Startowanie z każdego z urządzeń ma swoje zalety, jak i wady, zasadniczo startowanie z dysku jest przyjemniejsze, ponieważ nie trzeba się bawić dyskietkami, a do tego jest szybsze. W przypadku kłopotów warto mieć jednak dyskietkę startową pod ręką - umożliwi ona uruchomienie systemu po zmianie MBR, lub innym wypadku.

Po wczytaniu jądra Linuxa do pamięci i uruchomieniu go dzieją się następujące rzeczy:

  • Jądro dekompresuje się - najczęściej instalowane jest w postaci skompresowanej. Początek jądra zawiera mały dekompresor, który tego dokonuje.

  • Jeżeli masz kartę super-VGA, którą Linux rozpoznaje i która ma możliwość zmiany trybu textowego Linux pyta się, który z nich wybrać. Podczas kompilacji jądra ustala się domyślny tryb, można go również ustawić za pomocą LILO, lub rdev.

  • Jądro sprawdza zainstalowany sprzęt (dyski, napędy dyskietek, karty sieciowe, itd.) i odpowiednio go konfiguruje; w między czasie wyświetlane są odpowiednie informacje. Np.:

    LILO boot:
      Loading linux.
      Console: colour EGA+ 80x25, 8 virtual consoles
      Serial driver version 3.94 with no serial options enabled
      tty00 at 0x03f8 (irq = 4) is a 16450
      tty01 at 0x02f8 (irq = 3) is a 16450
      lp_init: lp1 exists (0), using polling driver
      Memory: 7332k/8192k available (300k kernel code, 384k reserved, 176k data)
      Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
      Loopback device init
      Warning WD8013 board not found at i/o = 280.
      Math coprocessor using irq13 error reporting.
      Partition check:
        hda: hda1 hda2 hda3
      VFS: Mounted root (ext filesystem).
      Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20
    

    Dokładne informacje zależą od jądra i jego ustawień.

  • Jądro spróbuje zamontować główny system plików. Jego położenie jest konfigurowalne w czasie kompilacji; również za pomocą rdev, lub LILO. Jeżeli nie można tego dokonać jądro panikuje i zatrzymuje system (zbyt dużo w takiej sytuacji nie da się zrobić).

    Główny system plików jest zazwyczaj montowany wyłącznie-do-odczytu (można to zmienić tak samo jak jego położenie). Umożliwi to sprawdzenie systemu plików po jego zamontowaniu; nierozsądnie jest sprawdzać zamontowany system plików.

  • Następnie jądro uruchamia proces init (domyślnie z katalogu /sbin/init) w tle (proces zawsze ma id = 1). init odpowiedzialny jest za wiele rzeczy, część z nich podlega kontroli administratora; zobacz Rozdział 7.

  • init odpowiedzialny jest za uruchamianie programów na poszczególnych poziomach pracy, w trybach wieloużytkownikowych uruchamia getty na terminalach wirtualnych. getty pozwala użytkownikom zalogować się do systemu. init zgodnie z konfiguracją może uruchomić inne programy.

  • Proces startowania jest kompletny.