{"id":852,"date":"2017-04-22T12:47:32","date_gmt":"2017-04-22T10:47:32","guid":{"rendered":"http:\/\/miroslaw.borodziuk.eu\/?p=852"},"modified":"2017-05-18T17:42:57","modified_gmt":"2017-05-18T15:42:57","slug":"start-systemu","status":"publish","type":"post","link":"http:\/\/miro.borodziuk.eu\/index.php\/2017\/04\/22\/start-systemu\/","title":{"rendered":"Start systemu"},"content":{"rendered":"<p>Gdy system jest uruchomiony lub zrestartowany\u00a0 Linux zaczyna bootowanie a\u017c do momentu gdy wszystkie w\u0142\u0105czone w <em>systemd<\/em> us\u0142ugi wystartuj\u0105 i na ekranie pojawi si\u0119 komunikat logowania do systemu. Proces bootowania w komputerach <em>x86<\/em> podzielony jest na cztery g\u0142\u00f3wne fazy: <em>firmwaru<\/em>, <em>boot loadera<\/em>, <em>kernela<\/em> i <em>inicjalizacji<\/em>.<!--more--><\/p>\n<p><span style=\"color: #3366ff;\">Faza firmware.<\/span><\/p>\n<p>Firmware to BIOS lub UEFI wgrany do pami\u0119ci flash na p\u0142ycie g\u0142\u00f3wnej. Pierwszym etapem w tej fazie jest przetestowanie systemu (<em>power-on-self-test: POST<\/em>) celem detekcji i inicjalizacji sprz\u0119tu, z kt\u00f3rego z\u0142o\u017cony jest komputer. Instalowany jest odpowiedni sterownik karty graficznej i na ekranie wy\u015bwietlane zostaj\u0105 komunikaty systemowe. Firmware skanuje dost\u0119pne dyski, lokalizuje partycj\u0119 z ustawion\u0105 flag\u0105 boot. Na partycji tej znajduje si\u0119 512 bajtowy obraz zawieraj\u0105cy: boot loader (GRUB2) o rozmiarze 446 bajt\u00f3w, tablic\u0119 partycji o rozmiarze 64 bajty oraz sygnatur\u0119 boot o rozmiarze 2 bajt\u00f3w. Po zlokalizowaniu dysku z bootowaln\u0105 partycj\u0105 primary wczytywany jest boot loader &#8211; GRUB2.<\/p>\n<p><span style=\"color: #3366ff;\">Faza boot loadera (GRUB).<\/span><\/p>\n<p>W RHEL 7 wprowadzono nowy boot loader &#8211; GRUB2 &#8211; kt\u00f3ry zast\u0119puje GRUB\u00a0 i stare LILO. GRUB2 wspiera zar\u00f3wno BIOS\/MBR jak i UEFI\/GPT. Po tym jak GRUB2 jest wczytany do pami\u0119ci i przejmuje kontrol\u0119 szuka on kernela w katalogu <em>\/boot<\/em>. Wypakowuje, dekompresuje kernel i wczytuje do pami\u0119ci w oparciu o konfiguracj\u0119 z pliku <code>\/boot\/grub2\/grub.cfg<\/code>. W systemach UEFI GRUB2 przeszukuje natomiast katalog <code>\/boot\/efi<\/code> i uruchamia kernel w oparciu o konfiguracj\u0119 z pliku <code>\/boot\/efi\/EFI\/redhat\/grub.efi<\/code>. Po za\u0142adowaniu kernela GRUB2 przekazuje mu kontrol\u0119 nad dalszym procesem startowania systemu.<\/p>\n<p><span style=\"color: #3366ff;\">Faza kernela.<\/span><\/p>\n<p>Po przej\u0119ciu kontroli od GRUB2 kernel wypakowuje, dekompresuje i \u0142aduje <em>initrd<\/em> (initial RAM) z katalogu <code>\/boot<\/code>. Po czym montuje ten obraz (<em>initrd<\/em>) w trybie tylko do odczytu, kt\u00f3ry teraz b\u0119dzie s\u0142u\u017cy\u0142 jako tymczasowy g\u0142\u00f3wny system plik\u00f3w. Teraz kernel \u0142aduje niezb\u0119dne modu\u0142y z obrazu <em>initrd<\/em> aby uzyska\u0107 dost\u0119p do systemu plik\u00f3w zlokalizowanego na partycjach dysku fizycznego. \u0141aduje tak\u017ce wszystkie modu\u0142y niezb\u0119dne do przeprowadzenia procesu startowania systemu. P\u00f3\u017aniej kernel odmontowuje obraz <em>initrd<\/em> i montuje g\u0142\u00f3wny system plik\u00f3w w trybie do odczytu i zapisu. W tym momencie system jest gotowy do uruchamiania us\u0142ug.<\/p>\n<p><span style=\"color: #3366ff;\">Faza inicjalizacji.<\/span><\/p>\n<p>W RHEL7 stare schematy inicjalizacji systemy <em>SysVinit<\/em> i <em>Upstart<\/em> zast\u0105pione zosta\u0142y przez <em>systemd<\/em>. <em>Systemd<\/em> uruchamia ca\u0142y system przestrzeni u\u017cytkownika, us\u0142ugi sieciowe i \u0142aduje system do okre\u015blonego run levelu. Proces uruchamiania systemu jest zako\u0144czony gdy wszystkie w\u0142\u0105czone us\u0142ugi zosta\u0142y uruchomione, system znajduje si\u0119 w zaplanowanym okre\u015blonym run levelu i u\u017cytkownicy mog\u0105 si\u0119 do niego zalogowa\u0107.<\/p>\n","protected":false},"excerpt":{"rendered":"<p>Gdy system jest uruchomiony lub zrestartowany\u00a0 Linux zaczyna bootowanie a\u017c do momentu gdy wszystkie w\u0142\u0105czone w systemd us\u0142ugi wystartuj\u0105 i na ekranie pojawi si\u0119 komunikat logowania do systemu. Proces bootowania w komputerach x86 podzielony jest na cztery g\u0142\u00f3wne fazy: firmwaru, boot loadera, kernela i inicjalizacji.<\/p>\n","protected":false},"author":1,"featured_media":0,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"footnotes":""},"categories":[41],"tags":[],"_links":{"self":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/852"}],"collection":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/users\/1"}],"replies":[{"embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/comments?post=852"}],"version-history":[{"count":10,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/852\/revisions"}],"predecessor-version":[{"id":1203,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/posts\/852\/revisions\/1203"}],"wp:attachment":[{"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/media?parent=852"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/categories?post=852"},{"taxonomy":"post_tag","embeddable":true,"href":"http:\/\/miro.borodziuk.eu\/index.php\/wp-json\/wp\/v2\/tags?post=852"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}