2007 03 Łatanie pingwina–patchsety dla kernela [Administracja]

background image

64

marzec 2007

Tipsy

Łatanie pingwina – patchsety dla kernela

65

www.lpmagazine.org

Tipsy

Łatanie pingwina – patchsety dla kernela

Łatanie pingwina

– patchsety dla kernela

Wojciech Treter

N

igdy nie jest tak dobrze, że-
by nie mogło być lepiej. Dla-
tego dla linuksowego kernela
dostępna jest duża ilość róż-

norodnych poprawek i dodatków różnego
pochodzenia. Łaty (patche), bo o nich mowa,
dzielą się na oficjalne i nieoficjalne. Pierwsze
to te dostępne na www.kernel.org. Zostały one
zaakceptowane przez twórców jądra i po-
zwalają aktualizować starszą wersję kernela
do nowszej. Druga kategoria to łaty tworzone
przez użytkowników, zwykle wprowadzają-
ce nowe funkcje. Zbiory takich łat to pacthse-
ty. Zwykle są to większe zestawy mające na
celu wyprofilowanie kernela do konkretnych
zastosowań.

Oficjalne źródła...www.kernel.org

Czyli tzw. vanilla-sources. Są to stabilne wy-
dania Linuksa produkcji Linusa Torvaldsa
i zespołu deweloperów. Nie zawierają żad-
nych wymyślnych łat, ale są najbardziej wol-
ne od błędów, z uwagi na szeroką społecz-
ność użytkowników. Na stronie można się
także natknąć na wersję -mm. Jest to oficjal-
ny kernel z poprawkami Andrew Mortona,
które są nieco bardziej eksperymentalne niż
oficjalna seria.

CK / LCK

Patchset autorstwa australijskiego lekarza
Cona Kolivasa. Został zaprojektowany w ce-
lu zwiększenia wydajności systemu poprzez
przebudowę schedulera (z ang. planista – al-
gorytm dzielący czas procesora między za-
dania) i zarządzania pamięcią (m.in. prze-
rzuca dane ze swapu do ram'u przy ma-
łym jego użyciu). Według opinii użytkow-
ników, daje wymierne efekty, chociaż jego
części włączono już do głównej gałęzi 2.6.
Łaty przeznaczone są na komputer desk-
topowy, choć dostępna jest też wersja ser-
werowa, oraz gotowy kernel serii 2.6 dla
Fedory. Wersja dla jąder 2.4 jest rozwija-

na przez Plum Loco Software jako lck. Na
stronach projektów dostępne są szczegóły,
oraz porządne FAQ, Howto i lista mailin-
gowa.
http://members.optusnet.com.au/ckolivas/
kernel/ - ("ck")
http://www.plumlocosoft.com/
kernel/ - ("lck")

NITRO

Nitro-sources to patchset zapewniający więk-
szą elastyczność i zwiększający wydajność.
Zwykle daje wyraźne efekty, ale autor za-
znacza, iż bazuje na eksperymentalnych źró-
dłach, co może prowadzić do niestabilności
systemu. Zawiera m.in. poprawki Cona Ko-
livasa, fbsplash/gensplash
(odpowiedniki boot-
pslasha
, zapewniające graficzny ekran ładowa-
nia systemu) oraz wsparcie systemów plików:
rozwijanego ciągle Resier4, UnionFS, SSHFS
oraz SquashFS. Dostępne jest także Win4Lin
– środowisko pozwalające na uruchomienie
Windowsa 9x pod Linuksem.
www.stud.uni-karlsruhe.de/~uyavl/public/
nitro-sources/

BEYOND

Patchset Beyond zawiera elementy ck-sources,
nitro-sources
oraz łat Gentoo. W zamyśle ma
dostarczać popularne, wypróbowane funk-
cje i poprawki, które nie weszły jeszcze do
oficjalnych źródeł. Oprócz w/w zestawów,
są to:

Linux Processor Hardware Control (Linux-

PHC) – łata dostarczająca programowe
możliwości sterowania napięciem rdze-
nia procesora. Przydatne zwłaszcza na
laptopach, pozwala zredukować wydzie-
lane ciepło i zużycie energii.

Suspend2 - mówiąc prosto, odpowiednik

znanej z Windows hibernacji. Zapisuje za-
wartość pamięci na dysk twardy i wyłą-
cza komputer. Przy ponownym włącze-
niu przywracany jest poprzedni stan i mo-
żna kontynuować pracę, bez ponownego
otwierania dokumentów czy włączania
programów. Całość jest o wiele szybsza
niż tradycyjne włączanie/wyłączanie.

http://iphitus.loudas.com/beyond.html

background image

64

marzec 2007

Tipsy

Łatanie pingwina – patchsety dla kernela

65

www.lpmagazine.org

Tipsy

Łatanie pingwina – patchsety dla kernela

GRSECURITY

Głównym zastosowaniem łaty jest zwiększe-
nie bezpieczeństwa systemu, m.in. poprzez:

• tworzenie list kontroli dostępu opartych

o role (RBAC - Role-Based Access Con-
trol)

• nałożenie restrykcji na środowisko chro-

ot, uniemożliwiających wyrwanie się
z niego (nawet rootowi)

• rozbudowane logowanie, ułatwiające au-

dyt (możliwość zapisu adresu IP osoby
dla określonych zdarzeń)

• losowość stosu TCP (numerów sekwen-

cyjnych, portów źródłowych, IP ID)

• działania zapobiegające atakom siłowym

(bruteforce)

Dzięki wykorzystaniu osiągnięć projektu PAX,
umożliwia także:

• oznaczenie stosu jako niewykonywalne-

go (ochrona przed wykonywaniem kodu
w zapisywalnych obszarach pamięci)

• nałożenie ograniczeń dla mprotect, loso-

wości dla mmap() oraz stosu i sterty

• ochronę przed modyfikacją jądra przez

/dev/mem, /dev/kmem i /dev/port.

www.grsecurity.net

PEPEK

Rodzima produkcja autorstwa Pawła Sna-
j'a
Pawilcza, przeznaczona głównie do za-
stosowań serwerowych. Zawiera oficjalne
poprawki oraz patchsety QoS and Netfilter
(stosowany dla routerów), ck w wersji ser-
werowej, grsecurity, a także obsługę Rei-
ser4.
http://snaj.ath.cx/26x/index.html

NO

Zestaw bazujący na patchsetach -love i -mm,
z założenia eksperymentalny, będący konty-
nuacją zarzuconego projekt -love. Zawiera
rozmaite funkcjonalności zapożyczone z in-
nych źródeł, oraz te najbardziej popularne
wśród użytkowników, wymieszane w różnej
konfiguracji. Podobnie jak w przypadku -ni-
tro
jest to zestaw tylko dla linuksowych fan-
(atyk)ów. Jego autorzy nie gwarantują stabil-
ności, wręcz przeciwnie.
http://no.oldos.org/files/

PatchSet24

Coś dla zwolenników serii 2.4. Zastosowanie
wyraźnie sieciowe. Zestaw składa się z trzech
części, do nałożenia na kernel, iptables oraz
iproute2. Dodatki, jakie wnosi, to przede
wszystkim grsecurity, netfilter Layer7 (do ogra-
niczania ruchu sieci P2P), ESFQ (podział łą-
cza), IMQ-nat, patch-o-matic-ng.
www.linux.internetdsl.pl

Szczegóły techniczne

Nieraz po załataniu jądra, szczególnie nieofi-
cjalnymi poprawkami może ono nie działać
poprawnie, lub nawet nie powiedzie się jego
kompilacja. Łatać jądro należy jedynie wtedy,
gdy jest pewne jego działanie i najlepiej na
osobnej kopii źródeł jądra.

Obojętnie jaki patchset zdecydujemy się

użyć, należy najpierw zaopatrzyć się w ade-
kwatne źródła vanilla. Powinien to być ker-
nel o numerze wersji 2.*.*, tzn. bez czwartego
numeru, oznaczającego poprawkę (tzw. pat-
cha frajera
), gdyż zwykle patchsety już go za-
wierają i może to powodować problemy przy
nakładaniu.

Po rozpakowaniu kernela we właściwe

miejsce (standardowo katalog w /usr/src/ ), pat-
chset
(zwykle plik(i) *.diff lub *.patch) nakła-
da się wydając jako root polecenie w katalo-
gu ze źródłami:

patch -p1 < /ścieżka/do/pliku/patcha

Pomocne tutaj mogą się okazać opcje polece-
nia patch:

-N – powoduje ignorowanie przez pro-

gram miejsc, gdzie łata koliduje z już na-
łożoną.

-f – pozwala „przepchnąć” łatę nawet je-

śli po drodze wystąpią błędy.

--dry-run – z tym przełącznikiem da się

przeprowadzić łatanie „na sucho”, tzn.
łata nie zostanie rzeczywiście nałożona,
a jedynie program wyświetli wyniki pat-
chowania.

-R - nakłada łatę odwrotnie, czyli pozwa-

la zdjąć uprzednio nałożoną i przywró-
cić wersję źródeł sprzed patchowania.

Jeśli wszystko przebiegnie bez komunikatów
o problemach, można przystąpić do standar-
dowej konfiguracji i kompilacji.

Coś nie tak...

Błędy w zasadzie nie powinny się pojawić, je-
śli źródła i patchset są właściwej wersji. Moż-
liwe jest jednak, że łata została źle napisana
lub nie jest prawidłowa z powodu nałożonej
przed nią łaty. Mogą wtedy wystąpić poniż-
sze błędy:

Hunk #3 FAILED at 234 - oznacza, że

trzeciej łaty z zestawu nie udało się nało-
żyć, błąd w linii 234.

Hunk #4 succeeded at 457 (offset 10 lines)

– czwarta została poprawnie nałożona,
ale miejsce, gdzie powinna się znaleźć,
różni się o 10 linii w pliku docelowym.

1 out of 11 hunks FAILED -- saving rejects

to file usr/src/linux/nv-linux.h.rej – komuni-
kat ten to podsumowanie nakładania łat
oznacza, że nie powidło się nałożenie jed-
nej łaty z zestawu jedenastu łat. Odrzuco-
na łata została zapisana w podanym pli-
ku, (w tym przypadku usr/src/linux/nv-li-
nux.h.rej
).

W przypadku takich komplikacji pozosta-
je jeszcze ręczne modyfikowanie pliku pat-
cha.

Podsumowując, decyzja o użyciu spatcho-

wanego kernela musi być przemyślana, zwła-
szcza w przypadku źródeł z założenia niesta-
bilnych. Jednakże użycie jakiegokolwiek patch-
setu powinno z założenia przynieść więcej ko-
rzyści niż strat.

Autor nie jest póki co zawodowym oblaty-
waczem linuksowych maszyn, ale posiada
kilkuletnie doświadczenie i dorobek w po-
staci kilku udanych kompilacji. Za sprawą
nagłego olśnienia porzucił systemy Micro-
softu na rzecz Mandrivy, potem Slackwa-
re’a, którego jest obecnie fan(atyki)em.
Momentami próbuje szczęścia w różnych
dziedzinach - od programowania, po - jak
w tej chwili - produkcję artykułów o najlep-
szym z OS’ów.
Kontakt z autorem: juzefwt@gmail.com

O autorze


Wyszukiwarka

Podobne podstrony:
PiKI 2007 03
elektro info projekt 2007 03 rys 08b
19.20.02.2011r.i 20.03 i 16.04- prawo finansowe, Administracja WSEI Lublin, Makarzec
03 Prasówka Wersja dla mnie
elektro info 2007 03 rittal
03 20 wymagania dla pojazdów asenizacyjnych
elektro info projekt 2007 03 rys 07a
elektro info projekt 2007 03 rys 03
2007 03 25 pieniadz
gazeta wyborcza 2007 03 17 rzad chce wiecej posrednikow pdf2
Dz U z dnia 21 sierpnia 2007 r w sprawie zaadniczych wymagań dla sprzętu elektrycznego
elektro info projekt 2007 03 rys 07b
S69 A DTR 2007 03 19 ELTEL
elektro info 2007 03 newell

więcej podobnych podstron