Czytając o systemd
można czasem przeoczyć większą wizję. Celem nie jest jedynie napisanie kolejnego
zastępcy init
a. To tylko element całości, którą jest zdefiniowanie (również
poprzez stworzenie) platformy Linuksowej. Ostatecznie
będzie można powiedzieć, że ,,w Linuksie''
- jest ustawiona nazwa hosta
- listę zalogowanych użytkowników uzyskujemy przez
systemd-loginctl list-sessions
- startujemy usługi na żądanie tworząc definicje
.socket
- usługi potrzebujące haseł korzystają ze zdefiniowanej metody pytania
- unikalny identyfikator systemu można odczytać z
/etc/machine-id
- itp.
I to
zawsze. Dostawca oprogramowania nie będzie musiał tworzyć
zawiłych skryptów sprawdzających czy używamy
xinetd
,
inetd
czy jeszcze czegoś innego. Osuszanie bagienka różnic między dystrybucjami powinno
ułatwić dostarczanie oprogramowania firmom trzecim.
Aby osiągnać ten cel, systemd
dostarczany jest wraz z
garścią pomocniczych programików pojedynczego
zastosowania. Część ujednolica czynności wykonywane we wszystkich dystrybucjach,
część implementuje nowe mechanizmy mające stać się API Linuksa.
Najprostsze (ograniczające się do pojedyńczych syscalli) wbudowane
są w samą binarkę systemd
.
Do czego zacząć się przyzwyczajać?
-
hostname1
— dostępna przez D-Bus usługa zarządzająca
krótką oraz opisową nazwą komputera; konfigurowana w /etc/hostname
-
systemd-localed
— dostępne przez D-Bus ustawianie
języka systemu; konfigurowane w /etc/locale.conf
-
systemd-timedated
— D-Bus; ustawianie czasu, daty,
strefy czasowej; konfiguracja w /etc/adjtime
, /etc/timezone
,
/etc/locatime
-
systemd-vconsole-setup
— ustawienie układu klawiatury
i fontu na konsoli tekstowej; konfiguracja w /etc/vconsole.conf
-
systemd-binfmt
— konfiguracja jak traktować różne
pliki wykonywalne; katalog z konfiguracją: /etc/bindfmt.d
-
systemd-tmpfiles
— tworzenie plików, katalogów i gniazd
przy starcie systemu; również kasowanie starych, nie używanych plików;
konfiguracja z /usr/lib/tmpfiles.d
i /etc/tmpfiles.d
-
systemd-sysctl
— ustawienie zmiennych jądra; konfiguracje
z katalogów {/usr/lib,/etc,/run}/sysctl.d
i pliku /etc/sysctl.conf
-
systemd-modules-load
— ładowanie modułów jądra; pliki
konfiguracyjne w /etc/modules-load.d
-
systemd-kmsg-syslogd
— minimalny demon zapamiętujący
informacje przed uruchomieniem właściwego syslogd
-
systemd-random-seed
— inicjacja puli entropii generatora
pseudolosowego; również zapisanie stanu przy wyłączaniu komputera
Wydzielenie tych drobiazgów ze skryptow startowych umożliwia:
- ujednolicenie zachowania wszystkich dystrybucji Linuksa
- ujednolicenie sposobów np. zmiany nazwy komputera na wszystkich dystrybucjach
- uruchamianie powyższych czynności jednocześnie
- uruchamianie w razie potrzeby w trakcie działania komputera (np. pojawienie
się nowego pliku w
/etc/binfmt.d
)
Ważnym nowością jest systemd-loginctl
i
skojarzony /etc/systemd/systemd-logind.conf
zarządzajacy sesjami
użytkownika. Odpowiada m. in. za automatycznie uruchamianie getty
na konsolach, na które przełącza się użytkownik. Login manager daje
informacje o zalogowanych użytkownikach, aktywnych sesjach i także pilnuje sprzątania
procesów po użytkownikach wylogowanych. Poleceniem systemd-loginctl enable-linger
można zażyczyć sobie uruchamiania sesji dla zwykłych użytkowników przy starcie systemu.
systemd-logind
zarządza również wszystkimi zestawami
klawiatura+mysz+monitor+inne urządzenia, ułatwiając pracę wielu użytkowników
jednocześnie. Jest to efekt zapowiadanego
pozbycia się ConsoleKit.
Archived comments:
abc 2011-08-04 17:10:38
... tylko czemu ten systemd nie działa w chroocie (cały system, a nie tylko usługa) ani w vserverowym gueście? :-/
Remigiusz 'lRem' Modrzejewski 2011-08-04 17:16:06
Nie działa w gueście? No to pozamiatane...
m 2011-08-04 17:23:05
I dlaczego wymaga dbusa?
zdz 2011-08-04 17:43:49
abc: jak nie działa? Ma problem z zamountowaniem katalogów czy coś innego? Jak używasz "systemd-nspawn" jako helpera chrootowego to też jest problem?
m: bo wymaga IPC. Można było użyć czegoś znanego, przetestowanego i zdebugowanego (D-Bus) albo wymyślać koło samemu.
abc 2011-08-04 18:39:07
zdz: w gueście vservera nie masz uprawnien do montowania czegokolwiek w najczęstrzym przypadku. chroot jest dużo mniej interesujący więc go pomińmy.
d33tah 2011-08-05 10:37:36
http://xkcd.com/927/
- Elektronika fajna... ale zacofana o 1 epokę
+ Software fajny i intuicyjny (era pre-iPhone i pre-android)
- Aparaty denne (ktoś podobno stwierdził, że aparat w komórce służy do zrobienia fotki na szybko więc aparat musi być online jak najszybciej -> dodali sprzętow przycisk włączania aparatu, wywalili interpolację, zrezygnowali z auto-focusa, niejednokrotnie wywalili lampę).
- No i za bardzo z certyfikatami nabroili - każdy soft wymaga (drogiego dla developera) certyfikatu żeby go zainstalować (dlatego się łamie soft w komórce albo instaluje developerski certyfikat).
+ Sam soft jest (był?) fajny... opart na kilku warstwach... moduł "security" zcentralizowali chyba w platformie 5.2...
- Wszystkie komórki robione na jedno kopyto... a jednocześnie różne.
Jeśli spojrzeć na to, co wyskrobałem (każdy pewnie ma inne przemyślenia na ten temat) to mamy cały szereg wad i zalet platform, których też jest, jak się okazuje, całkiem sporo.
Oby android nie padł przez mnogość wersji (już jest ich zbyt wiele...).