Startowanie w AIX

Źródło

Miejsca które są na czerwono sprawiły mi szczególną trudność (co nie znaczy, że ktoś nie powinien przejrzeć reszty) – główną sprawą jet dla mnie trudność w znalezieniu odpowiednich polskich słów (czytuję głównie angielskie instrukcje i podręczniki) a osobiście wolę np. „listę uruchomioniową” niż „bootlistę”.. oznaczają, że nie jestem pewnie co do tłumaczenia. Szczególnym przypadkiem jest pierwsza linijka – Speaking UNIX; nie doszukałem się informacji o głosowym sterowaniu; skojarzyło mi się to tylko z kursami językowymi, typu speaking english/spanish etc. (mówiony angielski/hiszpański) i z tego wyciągnąłem po prostu praktyczny, choć nie wiem czy z kontekstu nie lepiej by było po prostu „mowa Uniksa”
ciężki też jest fragment o podtytule "stand-alone" boot
stawiałem raczej na zachowanie sensu niż tłumaczenie słowo w słowo.
Warto też, żeby przejrzał ten tekst ktoś z dobrą znajomością sprzętu – np. nie wiem czy po Polsku etap gdzie komp sprawdza sam siebie jakoś się nazywa.
Przy frazie „Erasable Programmable Read-Only Memory (EPROM) „ zgłupiałem (możliwa do wyczyszczenia programowalna pamięć tylko do odczytu???) i nawet jak się dobrze wymyśli jak to przetłumaczyć to trzeba dać chyba jakiś przypis. Kolor zielony to komentarz.

Językiem Uniksa: Start systemu

Odkryj, jak ładuje się system w maszynach uniksowych.

Poziom: średnio zaawansowany.
Adam Cormany (moc.oohay|ynamroca#moc.oohay|ynamroca), National Data Center Manager, Scientific Games Corporation

13 mają 2008
Czy zastanawiałeś się kiedykolwiek, co powoduje poszczególne działania komputera albo jak to się dzieje, że serwer z Uniksem robi to co robi? Ci, którzy chcieliby wiedzieć co się dzieje w komputerze po jego włączeniu, znajdą tu swego rodzaju wprowadzenie. Ten artykuł omawia różne sposoby startowania systemu, zarządzanie nimi oraz sekwencje startową AIX.
Pozwoli ci na lepsze zrozumienie tego, co się właściwie dzieje przy uruchomieniu twojego serwera.

Wprowadzenie

System operacyjny AIX jest dość szczególnym Uniksem. IBM wypuścił AIX 1.0 w 1986 roku, a poprzez następne wersje wydawane w ciągu 22 lat (AIX 6.1 był najnowszym wydaniem w czasie pisania tego artykułu), przekształcił się on w porządny system uniksowy.
Wiele osób używa zamiennie terminów AIX i RS/6000, ale to nie jest to samo. AIX to system operacyjny; IBM RS/6000 to komputer w architekturze RISC na którym działa AIX. IBM początkowo wypuścił AIX wraz ze stacją roboczą IBM 6150 RT. Przez lata, AIX rozwinął się dzięki komputerom IBM PS/2 Intel 386, rozwojowi maszyn typu mainframe i architektury POWER. Obecnie, AIX działa na komputerach IBM System p (znanym jako RS/6000) oraz System i (znanym jako IBM iSeries and AS/400).

Sposoby ładowania AIX.

Są trzy sposoby uruchamiania systemu AIX: normalny, samodzielny (stand-alone) oraz sieciowy.

Tryb normalny

Typową metodą uruchamiania systemu jest opcja uruchamiania normalnego (normal boot option). Ładuje ona AIX z dysków lokalnych do serwera. Po załadowaniu, system będzie w trybie wielu użytkowników.

Stand-alone

Kolejną możliwością uruchamiania AIX jest uruchomienie w trybie samodzielnym (stand-alone boot) albo konserwacji (maintenance mode option). Metoda stand-alone jest podobna do normalnej, ale z tą różnicą, że nie jest to tryb dla wielu użytkowników, lecz dla jednego. Można go uruchomić na wiele sposobów, jak na przykład uruchamianie serwera z pamięci przenośnej (kaseta lub CD), wciśnięcie klawisza F5 (lub F6, zależnie od sprzętu) po uruchomieniu klawiatury w trakcie wstępnego sprawdzania urządzeń peryferyjnych, albo jeżeli zdarzą się jakieś problemy (uszkodzony system plików) i system będzie musiał zostać naprawiony przed jego zwykłym uruchomieniem. Niektóre systemy mogą mieć również specjalny przycisk, którego możesz użyć by wejść w tryb konserwacji. Wystartowanie serwera w trybie jednego użytkownika pozwala na instalację oprogramowania, naprawianie błędów, uruchomienie programów diagnostycznych i konfigurację sprzętu bez obecności innych użytkowników, co redukuje ryzyko ograniczonych zasobów.

Uruchamianie przez sieć

Ostatnią możliwością jest załadowanie systemu przez sieć (network boot option). Jest to podobne do normalnego załadowania systemu, AIX jest uruchomiony w trybie dla wielu użytkowników, z tą różnicą, że otrzymuje potrzebne do uruchomienia informację od innego serwera w sieci.

Lista startowa (bootlist) i zarządzanie nią

Ponieważ można uruchamiać AIX na różne sposoby, powinieneś mieć możliwość zarządzania nimi. Po to jest właśnie lista startowa. Znajdują się w niej urządzenia startowe dostępne dla każdej metody startowej systemu.
Żeby zobaczyć listę startową dla danego sposobu załadowania systemu, po prostu dodaj do polecenia opcję „-o”. W poniższym przykładzie pokazana jest standardowa metoda uruchamiania. Kolejność nośników, z jakich serwer będzie próbował uruchomić system, wygląda tak: dysk lokalny (hdisk0), potem płyta CD (cd0) i w końcu kaseta (rmt0).

# bootlist -m normal -o

Aby ustawić listę startową dla konkretnego sposobu ładowania systemu, dodaj opcję „-m” i wybraną metodę startową oraz dyski. W poniższym przykładzie, lista startowa dla normalnego uruchomienia jest tak ustawiona, by serwer próbował uruchomić system z dysków w kolejności: hdisk0, cd0 lub cd1

bootlist -m normal hdisk0 cd0 cd1

Jak widać w powyższych przykładach, opcja „-m” została użyta zarówno przy wyświetlaniu, jak i zmianie kolejności. Pozwala ona na ustawienia trybu normalnego, naprawczego (tryb konserwacji - samodzielny), dla obu (normalnego i naprawczego), oraz poprzedniej listy startowej (ang. prevboot – previous bootlist).

Sekwencja startowa AIX

Teraz, po wybraniu metody startu, czas na omówienie sekwencji zdarzeń następujących po włączeniu serwera.

Uwaga: W dalszej części artykułu omawiamy sytuację normalnego uruchamiania systemu.

POST

Gdy już włączymy zasilanie i serwer się uruchamia, sprzęt jest weryfikowany i sprawdzany pod kątem możliwych błędów. Ten etap nosi nazwę "samodzielny test przy uruchamianiu", i określa się go skrótem POST (ang. power-on-self-test). Gdy serwer uruchamia swoje procesy, POST sprawdza pamięć, klawiaturę, kartę dźwiękową i sieć. To właśnie teraz, jeśli chcesz wejść w tryb jednego użytkownika (konserwacji), powinieneś wcisnąć F5 lub F6 po uruchomieniu klawiatury. Mu jednakże nie będziemy niczego wciskać i serwer wystartuje w normalnym trybie.

Program rozruchowy (bootstrap)

Po skończeniu etapu POST, bootstrap – "mniejszy program do załadowania większego" – jest ładowany do pamięci. Potem sam ładuje do pamięci Logiczne Woluminy Uruchamialne (Boot Logical Volumine – BLV). Po załadowaniu, proces uruchamiania systemu przejmuje jądro.

Uruchamianie logicznych woluminów (BLV) i komendy bosboota

W BLV umieszczone są obrazy startowe AIX. Zazwyczaj BLV można znaleźć na dysku lokalnym serwera. Zawiera jądro, plik rc.boot, komendy potrzebne w czasie startu systemu oraz okrojoną wersję Obiektowego Menedżera Danych (Object Data Manager – OBM).
Do stworzenia obrazów startowych służą komendy bosboota. Używając bosboota tworzysz plik startowy (uruchamialny obraz) z ramdysku, systemu plików i jądra. Obraz startowy jest tworzony razem z interfejsami startowej pamięci tylko do odczytu i Kasowalnej, Programowalnej Pamięci Tylko Do Odczytu (Erasable Programmable Read-Only Memory – EPROM).
Poniższy przykład pokazuje, jak utworzyć obraz startowy na domyślnym BLV na lokalnym ndysku, z którego stratuje system.

bosboot -a

Jądro AIX

Jądro znajdujące się w BLV tworzy systemy plików / (root), /usr i /var w pamięci RAM. Pamiętaj, że te katalogi - podobnie jak jądro - są trzymane w pamięci RAM od momentu rozpoczęcia procesu uruchamiania systemu, dlatego korzystać z nich może wyłącznie BLV.
Po załadowaniu systemów plików do pamięci RAM, jądro wykonuje proces init, który przejmuje zadanie uruchamiania systemu.

Proces init

Jądro AIX uruchamia proces init jako proces o identyfikatorze (process identifier – PID) 1. Ten proces jest rodzicem (parent process) dla wszystkich innych procesów. Po załadowaniu, kiedy zarządza startem systemu, init wywołuje rc.boot.

Plik rc.boot

Plik rc.boot ma w procesie startowania AIX trzy ważne zadania. Pierwsze to wzbudzenie sprzętu w celu przygotowania startu systemu operacyjnego. Urządzenia wymagane do startu są konfigurowane komendą Menadżera Konfiguracji (Configuration Menager) cfgmgr.

Drugie zadanie polega na zamontowaniu utworzonych wcześniej /, /var i /usr, a także swap, po czym następuje zmiana działającego cały czas z pamięci RAM init na init z dysku i zwolnienie PID 1.

Trzecim i ostatnim zadaniem rc.boot jest uruchomienie init z dysku - odczytywany jest wówczas plik /etc/inittab i wykonywane po kolei zapisane w nim polecenia. Równocześnie na /tmp montowany jest system plików. Gdy już wszystko jest zrobione, komenda cfgmgr wykonywana jest na jeszcze niewzbudzonych urządzeniach.

Plik /etc/inittab

Po wykonaniu procesów, init otwiera plik /etc/inittab i odczytuje jego zawartość. Celem jest dostarczenie procesowi init tych procesów, które są ładowane podczaś normalnego startu systemu.
Format pliku /etc/inittab jest bardzo specyficzny zaś każde pole ograniczone dwukropkiem. Format wygląda nasępująco:

<Identyfikator>:<Poziom Działania>:<Akcja>:<Polecenie>

Opisy pól określanych w pliku /etc/inittab:

  • Identyfikator: Unikatowy łańcuch znaków identyfikujący obiekt.
  • ** Poziom Działania (ang. Run Level): ** Wykonuje komendę <Polecenie> z chwilą przejścia systemu w określony poziom

Init i mechanizm poziomów działania różnią się od innych uniksowych i uniksopodobnych systemów. Poniżej są przedstawione poziomy startowe w AIX:
* 2: standardowy
* od 3 do 9: zdefiniowane przez użytkownika
* od a do c: unikatowe (Kiedy system przechodzi do poziomu a, b lub c, procesy nie są zabijane. Procesy jeszcze nieuruchomione w tych poziomach zostają wykonane, ale już działające pozostają nietknięte.)
* Q, q: szybki sposób na to, by init ponownie odczytał plik /etc/inittab

  • Akcja: Pole to informuje proces init, co ma zrobić z wpisem w pliku inittab. Poniżej są wartości, których dla tego pola używa AIX:
          • respawn: (ang. wskrześ) jeśli proces nie istnieje, uruchamia go i dalej odczytuje plik inittab. Jeśli proces został zakończony, uruchamia go ponownie.
          • wait: (ang. czekaj) uruchamia proces i czeka na jego zakończenie.
          • once: (ang. jeden raz) uruchamia proces i nie czeka na jego zakończenie. Jeśli proces został zakończony, nie uruchamia go ponownie.
          • boot: uruchamia wpis tylko podczas startu (ang. booting) systemu.
          • bootwait: proces jest uruchamiany, gdy serwer po raz pierwszy przechodzi z trybu pojedyńczego użytkownika do trybu wielu użytkowników.
          • powerfail: wykonuje proces tylko, gdy init otrzyma sygnał odcięcia zasilania (ang. power fail).
          • powerwait: jak wyżej, ale init czeka na zakończenie procesu.
          • off: jeśli proces jest uruchomiony, init wysyła sygnał SIGTERM, a po 20 sekundach SIGKILL.
          • ondemand: (ang. on demand - na żądanie) oznacza to samo, co respawn, ale dotyczy tylko poziomów a, b i c.
          • initdefault: powoduje odczytanie wpisu przy starcie init.
          • sysinit: wpis jest wykonywany zanim init przed logowaniem otrzyma dostęp do konsoli.
  • Polecenie: Ostatnie pole wpisu w pliu /etc/inittab to pole właściwej komendy, wykonywanej zgodnie z wartością pola <Akcja>. Kiedy polecenie jest gotowe do wykonania, AIX go uruchamia: sh -c exec <Polecenie> w końcu tekst dla średnio zaawansowanych tak, tłumacz też powinien znać angielski też przynajmniej w stopniu średnio zaawansowanym - przyp. korekty .

Poniższy przykład prezentuje uruchomienie skryptu /usr/bin/rc.atc_bin przy wejściu w poziom działania 2 i wskrzeszanie go przy każdym kolejnym wejściu.

CORMANY_BIN:2:respawn:/usr/bin/rc.atc_bin

Aby wyłączyć jego wykonywanie dla poziomów zakładam, że w oryginale jest błąd z tym zerem źle zakładasz 0, 1, 3, 5, 7, 8 wpisz:

Przeglądanie i modyfikacja inittab

AIX posiada komendy łatwiejsze w użyciu niż ręczne zmiany w /etc/inittab. Ich nazwy są utrzymane w tej samej konwencji co wszystkich komend AIX.

  • mkitabdodaje wpis do pliku inittab.

Poniższy przykład dodaje skrypt /usr/bin/rc.atc_bin z poziomem 2 do inittab.

mkitab “CORMANY_BIN:2:respawn:/usr/bin/rc.atc_bin”

  • chitab zmienia wpisy w pliku inittab. Składnia jest taka sama jak w zwyklym wpisie.

Poniższy przykład zmienia wpis z poprzedniego przykładu tak, by uruchamiał się przy poziomie 3:

chitab "CORMANY_BIN:3:respawn:/usr/bin/rc.atc_bin"

  • lsitab wyświetla listę wpisów w pliku inittab. lsitab to bezpieczny narzędzie do wyświetlenia pojedynczego wpisu, bądź wszystkich.

Poniższy przykład wyświetla wszystkie wpisy pliku inittab:

lsitab -a

Ten przykład z kolei wyświetla wpis z identyfikatorem CORMANY_BIN:

lsitab CORMANY_BIN

  • rmtab usuwa wpis z pliku inittab.

Poniższy przykład usuwa wpis z identyfikatorem CORMANY_BIN z pliku inittab:

rmtab CORMANY_BIN

Podsumowanie

Plik inittab został odczytany i wszystkie potrzebne procesy zostały uruchomione a system czeka, aż się zalogujesz. Możesz więc to uczynić i cieszyć się swoim AIX-em.
Może się wydawać, że, kiedy włączamy nasz serwer a on w sposób magiczny uruchamia się, nic szczególnego się nie dzieje - ale jak widzisz, podczas startu AIX dzieje się całkiem sporo. Mam nadzieję, że artykuł ten pomógł ci zrozumieć, co musi zrobić AIX by przygotować grunt dla solidnego systemu operacyjnego.

Źródła i o autorze też tłumaczyć?

Dodaj nową wypowiedź
lub Zaloguj się jako użytkownik serwisu Wikidot.com
(nie będzie opublikowany)
- +
O ile nie zaznaczono inaczej, treść tej strony objęta jest licencją Creative Commons Attribution-NonCommercial 3.0 License