kmod 1

0
1616
Linux Tux
Linux Tux

Lucas De Marchi i Gustavo Barbieri z ProFUSION opracowali bibliotekę libkmod i zestaw narzędzi kmod. Celem nowego projektu jest zaoferowanie innym programom potrzebnej elastyczności i łatwej kontroli nad wstawianiem, usuwaniem, konfiguracją i wykazem modułów jądra Linux. Dzięki użyciu biblioteki jest możliwa interakcja z modułami jądra bez potrzeby polegania na innych narzędziach. Takie narzędzia brakowała od dawna, i było to jedno z życzeń z listy Plumbera dla Linuksa.

Cytując go:

zapewnić odpowiednią bibliotekę libmodprobe.so z module-init-tools:
wczesne narzędzie uruchamiania, instalatorów, sterownika instalacji dysków i dostępu do nich
informacje nt dostępnych modułów, w celu optymalizacji obsługi uruchamiania

Programiści poszli o krok dalej, i nie tylko oferują API do ładowania i usuwania modułów jądra, ale również inne proste operacje. Pierwszym użytkownikiem API będzie udev, który jest odpowiedzialny za sprawdzanie dostępnego sprzętu, tworzeniu dowiązań do urządzeń w /dev i ładowaniu modułów jądra dla wykrytego sprzętu. W jądrze dystrybucji jest niezwykle prosto zrobić większość rzeczy, jako modułów. Udev czyta system plików /sys w celu sprawdzenia dostępnego sprzętu i próbuje załadować potrzebne moduły. Potem tłumaczy setki zapytań do programu modprobe, dzięki czemu wiadomo, które z nich są już załadowane, a które wbudowane w jądro. Dzięki kmod cała operacja jest wykonywana przy pomocy kilku linii kodu, bez potrzeby konfiguracji i indeksowania już otwartych i sprawdzonych modułów.

Były już także przeprowadzone rozmowy z Kay Sievers, odpowiedzialnym za udev, i Lennart Poettering, zajmującym się systemd, aby zaimplementować współpracę biblioteki z udev i systemd.

Przykładowy kod:
W celu dodania modułu z nazwą bez żadnych opcji i dziwnych konfiguracji, jest zalecane zrobienie tego w ten sposób:

struct kmod_ctx *ctx = kmod_new(NULL, NULL);
struct kmod_module *mod;
kmod_module_new_from_name(ctx, name, &mod);
kmod_module_insert_module(mod, 0, NULL);
kmod_module_unref(mod);
kmod_unref(ctx);

Narzędzia

Poza samą biblioteką, przeprojektowano narzędzia module-init-tools na bazie nowego API, które stworzono. W pierwszej wersji są zapewniane kompatybilne binarki dla lsmod, rmmod, insmod i modprobe (z pewnymi brakami funkcjonalności). Następna wersja ma zapewnić owe braki, a także dodać wsparcie dla depmod i modinfo.

Licencja

Całość jest wydawana na licencji GPLv2 i późniejsze.

Plan wydawniczy

kmod 2
Zapewnienie API do brakujących cech w kmod-modprobe, szczególnie: zrzut konfiguracji i indeksowanie, proste zależności, polecenia instalacji i usuwania. Nadal będzie brakować funkcjonalności manipulacji ELF, jednakże będą zapewnione wszystkie narzędzia dostępne w module-init-tools. Kilka z nich, jak depmod mogą być skopiowane z module-init-tools dla późniejszych konwersji

kmod 3
Ma zapewniać pojedyncze narzędzie kmod, które będzie emulowało wszystkie inne, akceptując komendy, takie jak kmod list, kmod remove, kmod insert. Dystrybucje mogą wtedy używać symlinków z dostępnych narzędzi, do programu kmod i będzie możliwe ubicie 'kmod-*’, które zostało przedstawione w kmod 1.

Poprzedni artykułLinpus Linux 1.6 „Lite Desktop”
Następny artykułCentOS 6.2
Michał Olber
Interesuję się głównie sprzętem i działaniem jego pod systemami GNU/Linux. Testuję różne dystrybucje i robię recenzje. Interesuję się działaniem sprzętu pod Linuksem, dzięki czemu wiem, jaki zestaw komputerowy wybierać :)

ZOSTAW ODPOWIEDŹ

Proszę wpisać swój komentarz!
Proszę podać swoje imię tutaj