Uruchamianie Linuksa – w pogoni za nowoczesnymi rozwiązaniami

  • Home
  • /
  • Blog
  • /
  • Uruchamianie Linuksa – w pogoni za nowoczesnymi rozwiązaniami

Data: 17 listopada, 2010

Przez wiele lat rozwoju Linuksa deweloperzy dystrybucji dokładali kolejne klocki do układanki. Ilość uruchamianych usług rosła w dużym tempie a rozwój sprzętu (głównie chodzi o szybkość dysków twardych, ale można by było wymienić inne czynniki) nie był w stanie zrekompensować negatywnego skutku tego zjawiska jakim było wydłużanie się czasu uruchamiania systemu. Punktem kulminacyjnym tego szaleństwa było chyba siódme wydanie Fedory, którym w po standardowej instalacji z live cd na okienko logowania trzeba było czekać prawie półtorej minuty (więcej po zainstalowaniu kolejnych usług). Taki stan rzeczy był w głównej mierze winą przestarzałego sposobu/filozofii uruchamiania systemu.

Wielu ludzi szukało rozwiązań, dzięki którym system mógłby być uruchamiany szybciej. W tym czasie było dostępnych kilka ciekawych rzeczy – minit, initng, runit itd. Jednak te narzędzia nie były gotowe do użycia w większych dystrybucjach – brak wsparcia dla SELinuksa, nie były używane przez szersze grupy ludzi, więc miały dużo problemów wieku dziecięcego. Pojawił się również upstart z którym wielu ludzi wiązało bardzo duże nadzieje. Dystrybucje szybko zaczęły wspierać to rozwiązanie. Jednak z powodu nie działającego systemu zależności między skryptami nie dało się używać równoległego startu usług, więc na dobrą sprawę Upstart nic nie wniósł poza marketingowym „pracujemy nad nowoczesnym sposobem uruchamiania systemu”.

Po wprowadzeniu upstart deweloperzy zaczęli się zastanawiać jak jeszcze skrócić czas startu systemu. Jeremy Katz zauważył, że niesłychanie dużo czasu system poświęca na uruchomienie przyległości jądra. Był to czas w którym większość dystrybucji miała własne skrypty służące do tworzenia initrd i wczytywania potrzebnych modułów przy starcie. Ponieważ w każdej dystrybucji był inny zestaw narzędzi, wiele miało różne możliwości – niektóre obsługiwały iSCSI/multipath/LVM/etc inne nie itd. Jeremy zauważył potrzebę napisania na nowo narzędzia służącego do tworzenia initramfs w Fedorze ale równocześnie zaprosił do współpracy również deweloperów innych dystrybucji. Dzięki temu został stworzony Dracut – bardzo uniwersalne narzędzie służące do tworzenia initrd posiadające wsparcie dla najpopularniejszych systemów.

Dracut posiada bardzo duże możliwości uruchamiania systemu – obsługuje wiele możliwych scenariuszy uruchamiania systemu – od najprostszych konfiguracji, przez takie z szyfrowanymi dyskami, po iSCSI/FCoE. Poza tym, bardzo ważną zmianą było patrzenie się na sposób uruchamiania skryptów initrd przez pryzmat szybkości startu systemu. Dzięki takiemu podejściu aktualnie rozwojowa wersja systemu (z włączonym debugowaniem) skrypty initrd wykonuje naprawdę szybko – już po 9 sekundach oddaje sterowanie do init (na Phoronix można zobaczyć testy z paru wersji Fedory) – wcześniej był to o wiele dłuższy czas – nawet do 20 sekund przy dużo mniejszych możliwościach starego mkinitrd. Dracut został szybko zaadaptowany przez inne dystrybucje. Niedawno Amadeusz Żołnowski ukończył swój projekt SoC którego celem było dostosowanie Dracut do potrzeb Gentoo (i vice versa). Teraz Dracut działa w kilku najpopularniejszych dystrybucjach. Jedną rzecz udało się w końcu zunifikować. 🙂

Jednak sukces Dracuta nie wprowadził radykalnej zmiany do nadal mocno kulawego sposobu startu dystrybucji Linuksa. Upstart nie spełnił pokładanych w nim nadziei – przez długi czas SJR nie był w stanie dostarczyć wersji z działającymi zależnościami dla równoległego uruchamiania skryptów. Gdy już pojawiła się taka wersja, to zapowiedział, że dla wersji 1.0 i tak składnia natywnych skryptów zostanie zmieniona, więc z przesiadką najlepiej poczekać do tej wersji. Więc stan w większości dystrybucji był taki, że „nowoczesny” Upstart nadal uruchamiał przestarzałe skrypty. Ten stan rzeczy nie podobał się Lennartow Poetteringowi z Red Hat i Kayowi Sieversowi z Novella. Rozpoczęli oni pracę nad systemd – nowoczesnym systemem startowym, który ma zastąpić nie spełniający oczekiwań Upstart. Jako główne cele projektowe zostały wybrane dwa:

  • uruchamiać mniej
  • uruchamiać więcej rzeczy równolegle

Lennart zauważył, że aktualne skrypty startowe używają strasznie dużo programów przez co po uruchomieniu systemu PID pierwszego programu jaki uruchamia użytkownik jest dość wysoki. Postawił sobie za cel zmniejszenie tej liczby – ma to być wskaźnik tego, że system startowy nie korzysta z wielu zewnętrznych programów. Lennart doszedł do wniosku, że wiele rzeczy do których w tradycyjnych skryptach startowych są używane zewnętrzne programy, może zostać po prostu napisanych w C przez co zmniejszy się narzut czasu potrzebnego na ich wykonanie. Taka filozofia spotkała się z dość ostrą reakcją niektórych konserwatystów „jak to, to już nie będzie można łatwo edytować skryptów startowych?”. Jednak trudno było nie odmówić rozumowaniu Lennarta racji – w końcu na przykład takie montowanie systemu plików /proc czy ustawianie hostname w większości dystrybucji wygląda tak samo. Dlaczego ma to być robione przez skrypty startowe a nie przez daemona uruchamiającego system?

SystemD miał być flagową funkcjonalnością Fedory 14. Jednak decydenci doszli do wniosku, że pomimo wielkich starań Lennarta nie mogą ryzykować wprowadzenia tak wielkiej zmiany z powodu bliżej nie sprecyzowanych problemów, które mogłyby wystąpić w jej następstwie. Po tej bardzo kontrowersyjnej decyzji Lennart nie zraził się i zaczął pracę nad wprowadzeniem kolejnych dużych zmian w swoim daemonie.

Dzisiaj została wydana wersja v12 SystemD. Od pierwszego commitu, który miał miejsce prawie rok temu (bez jednego dnia) zostało wprowadzonych 1750 zmian, z których każda coraz bardziej przybliża użytkowników dystrybucji Linuksa do przesiadki na naprawdę nowoczesny system init. Wszystkich zmian naprawdę nie sposób opisać – nawet trudno wybrać najważniejsze. Dlatego odsyłam do listy zmian w repo. Również warto zajrzeć do TODO, bo ujawnia ono ciekawe zamierzenia na przyszłość.

Dzisiaj pojawiły się nowe skrypty startowe dla Fedory (tu jest initscripts a tu systemd v12). Jest to „oficjalne” przejście Fedory na SystemD. Główne skrypty zostały wyczyszczone z archaicznych i zbędnych w erze SystemD rzeczy oraz zostały podzielone, dzięki czemu ich uruchamianie może być równoległe. Nowa wersja skryptów dla SystemD ma niecałe 15 kb. Stare skrypty to jakieś 60 kb kodu, który nie był nigdy uruchamiany równolegle.
Jak to wszystko się sprawuje można zobaczyć na załączonym bootchart.

Free Image Hosting by FreeImageHosting.net

SystemD wspiera cztery popularne dystrybucje – Arch, Fedorę, Gentoo, SUSE – niestety deweloperzy Debiana nie zdecydowali się na przejście na SystemD z prozaicznego powodu – brak wsparcia dla innych systemów niż Linux.

Powoli w Linuksie są wprowadzane zmiany, dzięki którym ten system sporo zyskuje. Mam nadzieję, że dystrybucje Linuksa zaczną iść drogą wprowadzania kolejnych optymalizacji i usprawnień, a nie drogą wrzucania kolejnych wodotrysków.

Podobne wpisy

Twój adres email nie zostanie opublikowany. Wymagane pola są oznaczone


  1. skiter pisze:

    Jezu, gdzie jest formatowanie!

  2. spy000yps pisze:

    Uciekło 🙂

    Ja tego nie mogę poprawić, więc trzeba czekać aż ktoś z ekipy się tym zajmie

  3. stefan pisze:

    urzycia? brrr, poprawcie to

  4. krzabr pisze:

    „niestety deweloperzy Debiana nie zdecydowali się na przejście na SystemD z prozaicznego powodu – brak wsparcia dla innych systemów niż Linux.”

    Szkoda , może doczekam się dnia w którym również inne osy będzie można uruchomić w ten sposób , zwłaszcza BSD w których większość jest uruchamianych skryptami startowymi.

    W dodatku takie ujednolicenie wpłynie na dobre.

  5. spy000yps pisze:

    SystemD używa bardzo intensywnie grup kontrolnych, których z tego co wiem nie ma chyba w Hurdzie, NetBSD czy FreeBSD.

  6. sprae pisze:

    To ja przypomnę, że jest polski dobry opis skryptowania SystemD http://enotty.pipebreaker.pl/2010/08/13/krotki-instruktaz-systemd-spis-tresci/

  7. spy000yps pisze:

    O, dzięki za poradnik 🙂

  8. rkowal pisze:

    Gdyby chcieli aby był używany w innych systemach to wybraliby normalniejszą licencję.
    Druga kwestia to osoba, która jest twórcą projektu.

  9. spy000yps pisze:

    „Gdyby chcieli aby był używany w innych systemach to wybraliby normalniejszą licencję”

    Nie chodzi tylko o licencje. Lennart gdzieś wyraźnie napisał, że nie ma żadnego interesu w tym, żeby SystemD działał na innych systemach – nie napisał tego chyba wprost, ale RH płaci mu za pracę nad Linuksem. Inne systemy mają swoje rozwiązania. Poza tym nie mają ważnej rzeczy, której SystemD bardzo intensywnie używa.

    „Druga kwestia to osoba, która jest twórcą projektu”

    Jeśli chodzi o PA, to nie zamierzam bronić tego projektu. Ale projekt projektem, a Ty wyraźnie mówisz o twórcy. Więc co jest nie tak?

  10. back-to-root pisze:

    Za to we FreeBSD powstaje fsc 😉

    http://www.freebsd.org/news/status/report-2010-04-2010-06.html#FreeBSD-Services-Control-%E2%80%94-fsc

  11. jarek pisze:

    > więc na dobrą sprawę Upstart nic nie wniósł poza marketingowym
    > „pracujemy nad nowoczesnym sposobem uruchamiania systemu”.

    Ot, typowe dziamganie „a przywalmy sie znow do ubuntu”.
    Polecam ze stoperem odpalic Ubuntu sprzed upstart i jakies swieze.
    Nadal pozostaje to mocno w tyle przy nowych Macow Air.
    Tak czy siak, podchodzenie do problemu od dupy strony,
    linuch potrzebuje suspend a nie szybkich initow.

  12. pijoter pisze:

    Zupełnie nie rozumiem czym się tak wszyscy podniecają. Tym, że start systemu będzie szybszy o 15 sek? Jak często restartujecie system?

    Powinno być tak, że jak raz uruchomisz system to nie musisz go wyłączać przez rok! Wtedy taki „szybszy” start nie ma znaczenia. Znaczenia nabiera za to jakość programów, stabilność, wsparcie dla mechanizmów usypiania/hibernacji i możliwość upgrejdowania systemu bez konieczności restartowania (sterowniki, kernel).

  13. agent_J pisze:

    Hahaha. Dokładnie. Po wała optymalizować szybkość startu, żeby to się różniło w sekundach ? OS ma działać wydajnie w trakcie normalnej pracy a nie tylko szybko się uruchamiać. System powinno się tylko restartować przy aktualizacjach tego wymagających. Ja na codzień na laptopie używam suspend (jak leży na biurku) i hibernacji jak go przewożę samochodem. Jak miałem Maca to też go nigdy nie wyłączałem tylko zamykałem ekran.

    1. le-lo-li pisze:

      Dokładnie. U mnie na dziś średni uptime serwera z RedHat to 445 dni, ale są dwa 4 lata bez restartu(!). Nie wiem kto tak kręci bez przerwy maszynami, że te kilkadziesiąt sek. robi różnicę. Nawet laptop który pracuje w kilku sieciach jeździ w suspend/hibernate dopóki gdzieś się przypadkiem nie wyładuje.

  14. ABlam pisze:

    Moze marudze, ale moim skromnym zdaniem tego wpisu nie da sie czytac – monstrualne zdania, ze zla interpunkcja. Juz polowie kazdego z nich czlowiek sie zastanawia o co chodzi, bo sens gdzies po drodze sie gubi. Pierwszy lepszy akapit: „Jednak te narzędzia nie były gotowe do użycia w większych dystrybucjach – brak wsparcia dla SELinuksa, nie były używane przez szersze grupy ludzi, więc miały dużo problemów wieku dziecięcego.”, a to nie odosobniony przypadek…

  15. mikolajs pisze:

    „niestety deweloperzy Debiana nie zdecydowali się na przejście na SystemD z prozaicznego powodu – brak wsparcia dla innych systemów niż Linux.”
    A o jakie inne systemy chodzi? Hurda? Przecież i tak jeszcze nie nadaje się do użytku a jak się będzie nadawał to można zawsze zdążyć dodać SystemD.

    @agent_J:
    Hahaha. Dokładnie. Po wała optymalizować szybkość startu, żeby to się różniło w sekundach ? OS ma działać wydajnie w trakcie normalnej pracy a nie tylko szybko się uruchamiać. System powinno się tylko restartować przy aktualizacjach tego wymagających. Ja na codzień na laptopie używam suspend (jak leży na biurku) i hibernacji jak go przewożę samochodem. Jak miałem Maca to też go nigdy nie wyłączałem tylko zamykałem ekran.

    Niektórzy wolą oszczędzać sprzęt i energię 🙂 i wyłączają sprzęt, a milej jest gdy uruchomienie systemu trwa kilkanaście sekund szybciej.
    Jeszcze lepiej jak restartowany serwer uruchomi się szybciej dzięki czemu użytkownicy strony mniej się będą wkurzać na niedziałającą usługę.

    1. cezaryece pisze:

      Akurat w przypadku serwerów to jest walka o przyspieszenie rzędu 2-3% czasu całego startu. Maszyny, którymi się opiekuję, przy starcie potrzebują około 2 minut aby dojść do Gruba, potem już tylko kilkanaście sekund i system stoi. To właśnie przy Desktopie robi różnicę, bo tam testy i procedury POST trwają 2-3 sekundy.

  16. spy000yps pisze:

    Niektórzy jeszcze:
    – mają dualboot z innym systemem i irytuje ich, że muszą czekać 90 sekund na okienko logowania – jak miało to miejsce w Fedorze 7
    – chcą mieć możliwość szybkiego restartu serwera po upgrade – im mniejsza przerwa w pracy tym lepiej
    – mają na serwerze odpalone własne usługi, które zależą od innych i chcą, żeby wszystko było gładko odpalane, wyłączane

    Oczywiście jak tego nie chcecie, to możecie nie aktualizować. Nie wiem jak w innych systemach, ale w Fedorze jeszcze przez jakiś czas będzie możliwość używania upstart – dopóki ktoś się będzie szajsem zajmował

  17. spy000yps pisze:

    W ogóle jak komuś przeszkadza to wszystko, to proponuję przesiadkę na stare, sprawdzone mkinitrd i sysvinit 🙂

  18. sadi pisze:

    Co do Debiana, to jest SystemD w repozytorium experimental. Sądzę, że jak go odpluskwią i okaże się tak dobry, jak się zapowiada, to będzie dostępny przynajmniej jako opcja.

  19. cezaryece pisze:

    Załączony bootchart pewnie wszystko wyjaśnia, tylko cholera szkiełko powiększające mi się gdzieś zapodziało…

  20. spy000yps pisze:

    Ojć, chyba te wszystkie serwisy pomniejszają mocno
    http://i51.tinypic.com/34pma7d.png

    Jak chcesz, to wyślę na maila w rozdzielczości dwa na trzy tysiące.

    W skrócie ten bootchart pokazuje start całego systemu razem ze startem pełnego gnome w 50 sekund. A jest to rawhide, więc ma włączone debugowanie i jeszcze nie wszystko działa jak należy.

    No i to jest na zwykłym dysku a nie na ssd.

  21. jaqb pisze:

    A restartowałeś ostatnio (czyli sprzęt wyprodukowany już w XXI wieku) jakiś serwer a nie zwykłego PC? Może to przypadłość Dużego Niebieskiego, ale skrócenie startu o kilkanaście, czy kilkadziesiąt sekund dużo nie zmieni – sam POST i BIOS’y (czy tam ostatnio EFI) zajmują tyle czasu, że nawet minuta więcej na start samego OS’a nie jest problemem.

  22. jaqb pisze:

    To miała być odpowiedź na komentarz mikolajs.

  23. jarek pisze:

    Co jest z watkowaniem dyskowki?

    Ci co pracuja przy „wiekszych” serwerach, wiedza, ze zanim
    popodnosza sie kotrolery FC, scsi i cale to talatajstwo uplywaja
    minuty, uzysk rzedu 30s kosztem utraty elastycznosci i latwej
    administracji (nikt mi nie wmowi, ze maintenance kloca w C bedzie
    rownie prosty jak skryptow) jest zamiana siekierki na kijek.

    Ci co pracuja przy „jeszcze wiekszych” serwerach, maja uslugi
    poreplikowane i totalnie ich wali, czy serwer podnosi sie
    5min, czy 1min. Downtime i tak jest zero, wiec ponownie
    wygrywa elastyczne i sprawdzone sysvinit.

    Ci ktorzy pracuja przy laptopach potrzebuja suspend, jest to
    i tak o rzad wielkosci szybsze i wygodniejsze na desktopie.
    I potrzebne, stabilnoscia programow nie zalatwi sie problemu
    oszczedzania baterii czy niewygodny uruchamiania calego
    pakietu aplikacji przy kazdym wlaczeniu.

    Reasumujac, powodzenia w dalszym onanizowaniu sie szybkim
    startem wymeczonym w C. Hej, a moze nastepna wersja w assemblerze,
    bedzie o 3% szybciej. I wszystko statycznie polinkowane, kolejny
    uzysk 1% na ld.so, ah tyle jeszcze mozna poprawic!

  24. mikolajs pisze:

    @jaqb: kilkanaście sekund to całkiem sporo, nawet jeśli reszta i tak trwa długo

  25. Bananikus pisze:

    Nie wiem co za syf dodają do Ubuntu i innych dziwnych dystrybucji, ale mi Chakra ładuje się w mniej niż 10 sekund od Gruba do kdma. Szybciej zresztą niż Windows 7. Do tego mój procek to 6 letni złom, więc po co ten czas jeszcze skracać? 8 czy 6 sekund – co to za różnica?

    1. phyro pisze:

      Chyba wychodząc z uśpienia…

  26. szymon_g pisze:

    jak sie toto ma do kilkuletniego juz launchd z MacOSXa? czyzby wymyslanie kola na nowo?

  27. spy000yps pisze:

    @szymon_g

    Proponuję przeczytać

    http://www.netsplit.com/2010/05/27/dependency-based-event-based-init-daemons-and-launchd/

    i komentarz Lennarta.

  28. Rukasu pisze:

    Na moje oko to jest news z fedory i dla userow fedory moje goentoo z openrc uruchamia sie w takim czasie jakim mi potrzeba. Oczywuiscie jak ten caly system bedzie dzialac to wyprobuje ale jak na razie nie narzekam.

  29. Xarafaxz pisze:

    @jarek:

    Nie pozostaje nic jak tylko podpisać się pod tym.

    Zamiast szukać kolejnych problemów wynajdując koło od nowa, trzeba dopieścić to co obecnie niedomaga czyli hibernate/suspend który w zależności od jądra i sprzętu raz działa raz nie.

  30. AdamK pisze:

    Owszem, można nie wyłączać komputera przez rok, ale są ludzie którzy lubią prąd oszczędzać.

  31. AdamK pisze:

    Co ma licencja do wiatraka?

  32. xpio pisze:

    Moim zdaniem problem leży zupełnie gdzie indziej.
    Optymalizowanie obecnych rozwiązań, czy też tworzenie alternatywnych jest pracą syzyfową.
    Niestety obecnie deweloperzy poszczególnych programów jak i osoby odpowiedzialne za pakietowanie przyzwyczaiły się do tego, że co drugi program musi dodawać coś do skryptów startowych.
    Nikt się nie zastanawia czy to potrzebne, albo czy można to rozwiązać inaczej.
    I tak np: w moim debianie przy każdym uruchomieniu systemu rusza bluetooth z którego korzystam może raz na pół roku.
    A to nie najgorsze, hdparm dorzuca jakiś skrypt pakiet smart i wiele innych, pytam się po jakiego diabła

    W linuxie (desktopowym) należy pójść w kierunku uruchamiania usług na żądanie, czyli wtedy kiedy będą naprawdę potrzebne.
    No i jest potrzebny ktoś kto będzie pilnował dyscypliny, czyli osoba gotowa na przyłojenie każdemu deweloperowi chcącemu pójść na łatwiznę 🙂

  33. Enlik pisze:

    @xpio
    „W linuxie (desktopowym) należy pójść w kierunku uruchamiania usług na żądanie, czyli wtedy kiedy będą naprawdę potrzebne.”

    Jedna z cech systemd. 🙂

    PS Z wątkowaniem w komentarzach – to bug czy feature?

  34. Sławek pisze:

    To chyba oficjalne stanowisko twórców SystemD. Wystarczy wejść na stronę projektu. SystemD ma korzystać z nowoczesnych mechanizmów jądra Linux, więc prawdopodobnie nie będzie działać na innych systemach. Rozwiązania w przypadku braku implementacji pewnych procedur na systemie docelowym nie są planowane.

  35. Sławek pisze:

    Ja bym napisał, że to raczej zasługa DBUS, a nie SYSTEMD.

  36. Budyń pisze:

    > W linuxie (desktopowym) należy pójść w kierunku uruchamiania usług na żądanie,
    > czyli wtedy kiedy będą naprawdę potrzebne.

    Było kiedyś takie coś, xinetd (?) – w okolicach RedHat 5 (?) i klonach.

  37. spy000yps pisze:

    @Budyń

    Jest nadal. Słyszałem, że mają być jakieś plany szerszego wykorzystania – bo jeśli używasz apache tylko do hostowania sobie jakiś lokalnych rzeczy, to nie ma sensu, żeby cały czas był włączony. Prawda? Ale nie wiem jak wyglądają te plany. SystemD docelowo ma działać tak, że gdy zostanie podłączona drukarka, to ma być startowany cups itp.

  38. mariusz pisze:

    @AdamK: jaka jest roznica w poborze energii w stanie hibernacji a przy normalnie zamknietym systemie? W obu przypadkach hardware jest „wylaczany” a dane z RAM leza na dysku.

  39. Szymon pisze:

    Śmieszni jesteście. To jak podniecanie się jednym okienkiem. Co za różnica czy system wstaje 10s czy 5 minut? Co za różnica ile czasu się rejestruje firmę? Problemy są później. Ja chcę żeby system mi szybko chodził, niesamowite wysiłki żeby tylko się ładował 1s szybciej to tylko strata czasu, lepiej przyspieszyć coś żeby później szybciej działał.

  40. krzabr pisze:

    Sporo bo np. produkt na licencji GPLv3 , strach dodawać do swojego systemu.

  41. Gen2 pisze:

    @spy000yps „chcą mieć możliwość szybkiego restartu serwera po upgrade” – jak juz bylo powiedziane, a ja dodam: serwery po 64GB RAM wymagaja po okolo 3-5 minut, zeby dojsc do gruba. Pozniej start jest juz blyskawiczny. Jakie ty serwery stawiasz, ze sie uruchamiaja szybciej (dojscie do gruba)? Pytam, bo chetnie sie dowiem i zastosuje w przyszlym sprzecie (uzywam serwerow Della)

  42. AdamK pisze:

    @krzabr: niby czego projekt open source (np. FreeBSD) miałby obawiać się w GPLv3?

  43. el.pescado pisze:

    @Budyń: xinetd to „trochę” inna bajka.

  44. spy000yps pisze:

    @Gen2

    Nie stawiam serwerów, bo nie jestem administratorem.

    „serwery po 64GB RAM wymagaja po okolo 3-5 minut”

    Wybacz ignorancję w temacie, ale czy to ma związek z liczeniem pamięci?

    Jeśli tak, to liczenie pamięci przy POST możesz sobie darować i wyłączyć. OS i tak z tego nie korzysta – serio – Linux olewa ustawienia BIOS/EFI i przeprowadza własną detekcję przy starcie, więc możesz śmiało zaoszczędzić te parę minut i wyłączyć liczenie pamięci przy POST.

    @Tomasz Torcz

    Teraz działa kexec do innego jądra? Jeśli dobrze pamiętam, to kiedyś kexec wymagał jądra kexecowego

  45. Jak już niektórzy wspomnieli powyżej…

    Co mi po szybszym starcie systemu, skoro pełny POST głównego serwera trwa 20min? W porównaniu z tym reszta to „mgnienie oka”.

    Laptop? Usypiam maszynę… Dawno nie widziałem biosu. Od roku zapominam o skróceniu oczekiwania przy wyborze kernela (10min). Za każdym razem gdy muszę klepnąć enter, obiecuję sobie że to zrobię.

    Jeśli restartuję maszynę, to znaczy że był ku temu wyraźny powód (wymiana lub awaria sprzętu). Wtedy wolę by system wszystko _dokładnie_ sprawdził.

    Zauważcie że nawet współczesny telefon, po włożeniu baterii uruchamia się bardzo dłuuuuuugo i nie stanowi to poważnego problemu.

    Z drugiej strony.. RedHat, zawsze był rekordzistą w tym temacie. Debian i Slackware startują znacznie szybciej. Więc zrozumiałe jest dlaczego właśnie twórcy tej dystrybucji są najbardziej zainteresowani tematem.

  46. spy000yps pisze:

    „Zauważcie że nawet współczesny telefon, po włożeniu baterii uruchamia się bardzo dłuuuuuugo i nie stanowi to poważnego problemu.”

    Ile się uruchamia ntv po włączeniu do prądu? Ale tam jest jakiś java os 🙂

  47. el.pescado pisze:

    Wybacz ignorancję w temacie, ale czy to ma związek z liczeniem pamięci?

    Nie tyle liczenie, co sprawdzanie.

  48. spy000yps pisze:

    @el.pescado

    „Nie tyle liczenie, co sprawdzanie.”

    🙂 LOL. No nie rozśmieszaj 🙂 Sprawdzanie trwa kilka godzin/dni – na pewno wiesz co to jest memtest.

    W POST jest tylko liczona ilość MB/GB.

    Dlatego chciałbym zadać zaje biś cie proste pytanie panu adminowi Gen2, który stawia serwerki z 64GB ram jak inni klocki… lego :), i oczekuję jakiejś zaje biś cie prostej odpowiedzi, bo ja jestem tylko pół mózg z kilkunastoletnim stażem w użytkowaniu Linuksa i pewnie nie rozumiem świata wielkich adminów i ich wielkich serwerów.

    Po co liczyć pamięć w POST jak OS i tak to ignoruje i sam liczy? To strata czasu.

    (Jeśli ktoś ma wątpliwości czy to co mówię jest prawdą, to wystarczy wyłączyć w BIOS dodatkowy dysk – w Linuksie będzie widoczny, lub wyłączyć HIGHMEM na jakimś x86_32 z 2 GB RAM i zobaczyć ile BIOS sobie policzył a ile OS widzi)

  49. januszzz pisze:

    Nie strawiłęm wszystkich komeentarzy, wiec sorry jeśli się powtórzę:

    współczesne systemy IBM m3 (np. 3650m3) startują nawet 5 minut, a jak się dorzuci bootowanie z iSCSI to nawet więcej (chyba że już poprawili ten błąd). Jaki sens bicia się o te sekundy, nie mam pojęcia.

    Ja tam zajmuję się funkcjonalnością i jak do tej pory używam OpenRC na przemian ze starszym baselayout-1. Nie mam żadnych problemów z wydajnością, na laptopie również.

  50. jasiu pisze:

    przerost formy nad trescia. wystarcza dobrze napisane skrypty w stylu BSD (zasada jak w slackware) z odpalaniem rownoleglym. blysk i system stoi, tylko trzeba miec troche pojecia jak to napisac

  51. spy000yps pisze:

    @januszzz

    „współczesne systemy IBM m3 (np. 3650m3) startują nawet 5 minut, a jak się dorzuci bootowanie z iSCSI to nawet więcej (chyba że już poprawili ten błąd). Jaki sens bicia się o te sekundy, nie mam pojęcia.”

    Świat nie składa się tylko z serwerów IBM m3.

    @jasiu

    „tylko trzeba miec troche pojecia jak to napisac”

    Wydaje mi się że gość, który się zajmował skryptami w Fedorze i RHEL zna na tyle dobrze sh, że sam mógłby napisać absg.

    ========================================================================

    Wszyscy „wielcy admini” tego forum zajęli się krytyką tego rozwiązania nawet nie zapoznając się z funkcjonalnością.

    SystemD _nie_ _jest_ _zwykłym_ zestawem skryptów startowych. To jest nowoczesny system uruchamiania usług i zarządzania nimi. W niedalekiej przyszłości zastąpi wiele narzędzi. Zapoznajcie się z funkcjonalnością i dopiero wtedy zaczynajcie krytykować. Bo tak na razie widzę tylko jałową dyskusję – „po co nam te parę sekund przyspieszenia”. Poza tymi paroma sekundami przyspieszenia użytkownik dostaje bardzo ładnie opakowany zestaw funkcjonalności, który wcześniej był porozrzucany po wielu różnych programach i nie każdy zdawał sobie sprawę z jej istnienia.

  52. cactusik pisze:

    I tu wkracza systemd – uslugi ktore nie sa uzywane startuja dopiero w momencie jak jakis program ich potrzebuje – patrz bluetooth i cups.

    np. uslugi wymagajace innych uslug zwykle otwieraja tylko do nich polaczenie i dalej tylko oczekuja na jakies dane, systemd w tym posredniczy.

  53. spy000yps pisze:

    @cactusik

    No mniej więcej się zgadza. Serwisy mogą być uruchamiane przez gniazda AF_INET, AF_INET6, AF_UNIX oraz przez D-Bus.

    (do tego jeszcze timery)

    Ale to jest tylko czubek góry lodowej 🙂

    Na przykład chciałbym zobaczyć implementacje skryptu w bashu startującego demona, który w przypadku śmierci demona go ładnie zrestartuje.
    (trzeba by było odpalić jakiś wątek działający w tle i co jakiś czas sprawdzający w liście procesów czy jest demon… hmmm… jak go nie ma, to uruchamiamy skrypt na nowo i na nowo uruchamiamy wątek śledzący – po jakimś czasie mamy kilka wątków śledzących spawnujących kolejne demony… – eh – w bashu na pewno prosto i szybko nie będzie – komuś może się uda zaimplementować :))

    Chciałbym zobaczyć implementacje skryptu, który by zamykał demona razem z wszystkimi potomkami w grupie kontrolnej gwarantującej ubicie wszystkich procesów w wypadku śmierci rodzica i po kilkukrotnym przeforkowaniu dzieci 🙂

    No, panowie adminowie od serwerków z 64GB RAM, pokażcie co umiecie 😀

  54. spy000yps: pidy masz w var, zresztą kto powiedział że proces startujący daemon musi być w bashu? (btw. dashu – szybszy) Może równie dobrze być w C (btw. xinetd tego nie zrobi?).

  55. spy000yps pisze:

    @3ED

    „pidy masz w var”

    No i myślisz, że tak wyśledzisz proces rodzica i wszystkie kilkukrotnie przeforkowane dzieci? (jeszcze jak zmienią nazwę?)

    „btw. dashu – szybszy”

    Niewiele 😀

    „xinetd tego nie zrobi”

    Xinetd z tego co wiem nie śledzi dokładnie wszystkich procesów. Przynajmniej nie w taki sposób jak SystemD.

    Ostatnio pojawiła się piękna funkcjonalność, która robi masową eksterminację wszystkich rzeczy uruchamianych przez serwis:
    systemctl kill serwis.service

{"email":"Email address invalid","url":"Website address invalid","required":"Required field missing"}

Newsletter OSnews raz w tygodniu. Bez reklam.