Nie jesteś zalogowany.
Jeśli nie posiadasz konta, zarejestruj je już teraz! Pozwoli Ci ono w pełni korzystać z naszego serwisu. Spamerom dziękujemy!
Prosimy o pomoc dla małej Julki — przekaż 1% podatku na Fundacji Dzieciom zdazyć z Pomocą.
Więcej informacji na dug.net.pl/pomagamy/.
Wreszcie mniej więcej dobrze rozumujesz.
np "cat /boot/config-`uname -r` | grep .... " juz tak.
To nie tyle fizyczne sterowniki co konfig ich w jądrze.
Są wkompilowane.Istnieją.
[b]m[/b] to nie tyle edytowalne co mamy możliwośc ich załadowania lub wyładowania.
W koncu nie potrzeba w jądrze sterowników do sprzętu którego nie posiadamy.
Niektóre z nich możemy ładować z różnymi parametrami bo spełniają wiecej funkcji lub wiele modeli sprzętu obsługują.
To tak z grubsza.
Offline
Sprawdzam:
lsmod | grep cls_cgroup cls_cgroup 16384 0
Twoje wyjasnienia pozwolily mi wyprostowac to co bylo do tej pory dla mnie "zamotane"
Duze jasne z piekna pianka.
Dziekuje i pozdrawiam.
Ps. Poniewczasie przyszly mi do glowy jeszcze 2 pytania:
- jezeli modul jest zaladowany to czy to automatycznie oznacza, ze jego wszystkie submoduly tez sa zaladowane ?
- jakim poleceniem sprawdzic, czy wybrany subsystem/submodul jest zaladowany ?
Ostatnio edytowany przez Novi-cjusz (2017-12-10 18:16:33)
Offline
W zasadzie to różnica między funkcjonalnością kernela wkompilowaną na stałe i tą zbudowaną jako moduł sprowadza się do możliwości rekonfiguracji modułu podczas pracy systemu.
Dla przykładu, jeśli jest iptables i masz tam reguły, które wymagają pewnych rzeczy od kernela i te rzeczy są skompilowane jako moduł, to przed załadowaniem reguł iptables trzeba pierw załadować potrzebne moduły (zależności są dociągane automatycznie). To trochę spowalnia start systemu (czy kiedy ten moduł jest ładowany) ale z perspektywy człowieka to w ogóle nie ma żadnej różnicy. Jakby zamiast modułów, ta funkcjonalność kernela była wkompilowana na stałe, to ten krok ładowania modułów nie miałby miejsca -- bo już wszystko jest załadowane.
Jeśli teraz chciałbyś zmienić parametry modułu, to możesz wywalić reguły z iptables, wyładować moduł i zmienić jego konfiguracje, po czym załadować moduł i dodać reguły na nowo. A jak masz wkompilowane na stałe, to musisz jechać z linijki kernela w bootloaderze i resetować system. To jest taka najgłówniejsza różnica.
Idąc dalej, dany kernel może działać na całej masie sprzętu, bo sobie dynamicznie dobiera moduły do pracy. Każdy moduł zjada pamięć i załadowanie ich wszystkich (zakładając, że są wkompilowane na stałe) trochę by pamięci zjadało. Dlatego sporo rzeczy jest kompilowane jako moduł, bo się zwyczajnie nie przydaje większości (a część zupełnie koliduje ze sobą), a ci którzy potrzebują, mogą dodać wpis do odpowiedniej usługi ładującej moduły i te parę milisekund poczekać. xD
A zależności, to można sprawdzić np. tak:
# modprobe --show-depends i915 insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/i2c/algos/i2c-algo-bit.ko insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/gpu/drm/drm.ko insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/gpu/drm/drm_kms_helper.ko insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/acpi/button.ko insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/acpi/video.ko insmod /lib/modules/4.14.0-1-amd64/kernel/drivers/gpu/drm/i915/i915.ko lvds_downclock=1 fastboot=1
Co odpowiada "used by" w:
# lsmod | grep i915 Module Size Used by ... i915 1347584 5 i2c_algo_bit 16384 1 i915 drm_kms_helper 163840 1 i915 video 40960 1 i915 drm 372736 6 i915,drm_kms_helper button 16384 1 i915
I by wyładować i915, trzeba by pierw wyładować wszystkie te, które widać wyżej o ile one nie mają jakichś zależności, i tak dalej.
Ostatnio edytowany przez morfik (2017-12-10 22:24:42)
Offline
@morfik
Moj watek wziol sie z checi "ozenienia" iptables z cgroups, a tym samym totalnej kontroli ruchu na wyjsciu. Dwa lata wstecz "Jacekalex" wytlumaczyl mi wszystko i dzialalo perfekcyjnie, kilka miesiecy pozniej mialem przepiecie w sieci (jak to czesto bywa w nieduzych miejscowosciach) i stracilem zasilanie kompa i system plikow (na szczescie nic tam nie bylo) Teraz odbudowuje konfiguracje z pamieci i z Wasza pomoca.
Niezbedna jest moim zdaniem mozliwosc sprawdzenia kazdego modulu i jego submodulu czy jest: zainstalowany, zamontowany, zaladowany. Twoja odpowiedz byla nt ogolnych zasad a ja bardziej myslalem juz o praktycznej implementacji w dzialaniu i poprawnosci konfigu Kernela.
Takie zagadnienie wymaga bezblednej analizy stanu/statusu Kernela, jego modulow i submodulow, w szczegolnosci:
- cgroups v.1 ( https://morfitronik.pl/ograniczanie-zasobow-procesom-przez-cgroups/ )
- podsystemu net_cls
- pozostale podsystemy.
- moduly Netfiltera
- modul conntrack
- inne
- modul iptables
(konfiguracja - blokada wszystkiego na wejsciu, przepuszczam tylko np: loopback, DNS, DHCP,
przegladarke ktora siedzi w cgroup 1)
iptables -S | grep cgroup -A OUTPUT -m cgroup --cgroup 1 -j ACCEPT -A OUTPUT -m cgroup --cgroup 2 -j ACCEPT
Chce zrobic ogniomorek bardziej restrykcyjny niz przepuszczanie powiazanych i ustanowionych. Do Internetu ma dostep tylko ten komu na to pozwole.
Ostatnio edytowany przez Novi-cjusz (2017-12-11 10:48:29)
Offline
Time (s) | Query |
---|---|
0.00010 | SET CHARSET latin2 |
0.00004 | SET NAMES latin2 |
0.00103 | SELECT u.*, g.*, o.logged FROM punbb_users AS u INNER JOIN punbb_groups AS g ON u.group_id=g.g_id LEFT JOIN punbb_online AS o ON o.ident='3.149.232.219' WHERE u.id=1 |
0.00099 | REPLACE INTO punbb_online (user_id, ident, logged) VALUES(1, '3.149.232.219', 1738101738) |
0.00053 | SELECT * FROM punbb_online WHERE logged<1738101438 |
0.00100 | DELETE FROM punbb_online WHERE ident='185.178.35.216' |
0.00083 | SELECT topic_id FROM punbb_posts WHERE id=316106 |
0.00179 | SELECT id FROM punbb_posts WHERE topic_id=30114 ORDER BY posted |
0.00070 | SELECT t.subject, t.closed, t.num_replies, t.sticky, f.id AS forum_id, f.forum_name, f.moderators, fp.post_replies, 0 FROM punbb_topics AS t INNER JOIN punbb_forums AS f ON f.id=t.forum_id LEFT JOIN punbb_forum_perms AS fp ON (fp.forum_id=f.id AND fp.group_id=3) WHERE (fp.read_forum IS NULL OR fp.read_forum=1) AND t.id=30114 AND t.moved_to IS NULL |
0.00005 | SELECT search_for, replace_with FROM punbb_censoring |
0.00160 | SELECT u.email, u.title, u.url, u.location, u.use_avatar, u.signature, u.email_setting, u.num_posts, u.registered, u.admin_note, p.id, p.poster AS username, p.poster_id, p.poster_ip, p.poster_email, p.message, p.hide_smilies, p.posted, p.edited, p.edited_by, g.g_id, g.g_user_title, o.user_id AS is_online FROM punbb_posts AS p INNER JOIN punbb_users AS u ON u.id=p.poster_id INNER JOIN punbb_groups AS g ON g.g_id=u.group_id LEFT JOIN punbb_online AS o ON (o.user_id=u.id AND o.user_id!=1 AND o.idle=0) WHERE p.topic_id=30114 ORDER BY p.id LIMIT 25,25 |
0.00088 | UPDATE punbb_topics SET num_views=num_views+1 WHERE id=30114 |
Total query time: 0.00954 s |