Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być...

26
Koszmar z ulicy systemd v2.0 Krzysztof ‘ksx4system’ Staniorowski Meet IT Toruń Nº12

Transcript of Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być...

Page 1: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Koszmar z ulicy systemd v2.0Krzysztof ‘ksx4system’ Staniorowski Meet IT Toruń Nº12

Page 2: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Wprowadzenie

Page 3: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Porzućcie wszelką nadzieję.

Page 4: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Co to jest init i za co odpowiada?

Page 5: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Co to jest init i za co odpowiada?• uruchamia się jako pierwszy program po kernelu (stąd pid 1)

• działa nieprzerwanie od uruchomienia do wyłączenia systemu

• odpowiada za sekwencję startową systemu

Page 6: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Watch your first step.

Page 7: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Masz wybór!

Page 8: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

sysvinit, openrc, upstart, runit…

Page 9: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Jaki powinien być pid 1?

Page 10: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Możliwie prosty.

Page 11: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Less is more.Autor kodu: Felipe Contreras

#!/usr/bin/ruby

Process.spawn('agetty', 'tty1')sleep

Page 12: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

29551Tyle SLOC zawiera kod źródłowy sysvinit.

Page 13: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

747873Tyle SLOC zawiera kod źródłowy systemd.

Page 14: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

25x…to aż tyle razy więcej :-(

Page 15: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Dlaczego systemd to zły pomysł?

Page 16: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Bo robi więcej niż rzeczywiście musi.

Page 17: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby
Page 18: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Skrócona lista grzechów systemd• hostnamed zamiast /etc/hostname

• journald czyli logi binarne zamiast tradycyjnego sysloga

• resolved zamiast /etc/hosts

• timesyncd zamiast ntpdate/rdate lub NTPd

• systemd-random-seed zamiast istniejących rozwiązań RNGd

• machined i importd w roli ersatzu OpenVZ

• pęd do integracji jak największej ilości składników systemu (np. obsługa audio)

Page 19: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Co dalej?

Page 20: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Co dalej?• cokolwiek zamiast systemd (może Twój własny kod?)

• vdev zamiast udev

• trzeba unikać GNOME3

• może istnieć potrzeba migracji na mniej popularne dystrybucje GNU/Linux jak Devuan, Gentoo czy Stali - nie ma się czego bać ;-)

Page 21: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Jak to robią inni?

Page 22: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Jak to robią inni?• OpenBSD, FreeBSD i NetBSD korzystają z BSD-style init

• macOS korzysta z launchd (autorskie rozwiązanie Apple)

• Android ma swój własny mechanizm init

• OpenWRT używa init wbudowanego w busybox

• Solaris używa sysvinit

Page 23: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Jak będzie w przyszłości?

Page 24: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Jak będzie w przyszłości?• macOS pozostanie przy launchd (YA, RLY!)

• FreeBSD zmigruje na launchd lub wprowadzi go jako alternatywę

• NetBSD być może skopiuje rozwiązanie FreeBSD, a OpenBSD nie zmieni nic

• Android zostanie przy własnym rozwiązaniu

• OpenWRT i całe mnóstwo innych projektów embedded pozostanie przy busybox-init lub stworzy własne skrajnie minimalistyczne rozwiązania

• Solaris i inne niszowe UNIXy pozostaną przy sysvinit

Page 25: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby
Page 26: Koszmar z ulicy systemd v2ksx4system.net/talks/koszmar-z-ulicy-systemd-v2.pdf · Jaki powinien być pid 1? Możliwie prosty. Less is more. Autor kodu: Felipe Contreras #!/usr/bin/ruby

Dziękuję za uwagę!Chcesz o coś zapytać lub potrzebujesz admina? Napisz do mnie :-)[email protected]