The post-halloween document. v0.48
(znany jako, 2.6 - czego oczekiwać?)
Dave Jones <davej@codemonkey.org.uk>
Tłumaczenie: Maciej Sołtysiak <solt@dns.toxicfilms.tv>
(Aktualizacja przy 2.6.0)
Ten dokument wyjaśnia niektóre nowe opcje w jądrze Linuksa 2.6, nie które
niespodzianki na które możesz się natknąć, także wskazuje te opcje,
którym przydałoby się porządne testowanie.
Uwaga, termin w stylu "skontaktuj się z foo@bar.com" wymaga by przesłać
kopię (cc:) na linux-kernel@vger.kernel.org.
Najświeższą wersję tego dokumentu można zawsze znaleźć pod adresem:
http://www.linux.org.uk/~davej/docs/post-halloween-2.6.txt
Podziękowania dla wielu (zbyt wielu by wymienić) ludzi za cenne wsparcie.
Uwaga, ten dokument jest skupiony na architekturze x86, jednak
większość udokumentowanych tu opcji wpływa na wszystkie platformy.
Tłumaczenia:
Hiszpańskie - http://www.terra.es/personal/diegocg/post-halloween-2.6.es.txt
Niemieckie - http://www.kubieziel.de/computer/halloween-german.html
Polskie - http://soltysiak.com/linux/post-halloween-2.6.pl.html
Portugalskie - http://www.maluco.com.br/thiago/docs/post-halloween-2.6-pt_BR.txt
Aplikowanie łat.
~~~~~~~~~~~~~~~~
- W 2.4 i poprzednich jądrach, zalecanym sposobem aplikowania łat było
użycie polecenia typu ...
gzip -cd patchXX.gz | patch -p0
W 2.6, Linus zaczął dodawać dodatkowy element w ścieżce łatek,
więc należy używać -p1 w wypakowanym "do załatania" katalogu.
Zgłaszanie błędów.
~~~~~~~~~~~~~~~~~~
Większość dużych podsystemów jądra ma własne listy mailowe.
Wskazane jest pisanie emaili z raportami o błędach. W razie
wątpliwości, pisz pod adres linux-kernel@vger.kernel.org
ACPI - acpi-devel@lists.sourceforge.net
Bluetooth - bluez-devel@lists.sourceforge.net
Ext2 - ext2-devel@lists.sourceforge.net
Firewire - linux1394-devel@lists.sourceforge.net
SCSI - linux-scsi@vger.kernel.org
USB - linux-usb-users@lists.sourceforge.net
XFS - linux-xfs@oss.sgi.com
Znane problemy.
~~~~~~~~~~~~~~~
Niektóre znane błędy są w kółko zgłaszane. Oto rozwiązania.
- Czarny ekran po rozpakowaniu jądra?
Upewnij się, że twój .config ma
CONFIG_INPUT=y
CONFIG_VT=y
CONFIG_VGA_CONSOLE=y
CONFIG_VT_CONSOLE=y
Wielu ludzi odkryło, że używanie .config z 2.4 i uruchamianie make oldconfig
by ustawić nowe opcje prowadzi do problemów, w szczególności z nie ustawioną
opcją CONFIG_VT.
- Kolejny błąd napotykany przez ludzi to, taki, że karty sieciowe nie
są wstanie odbierać pakietów. (Szczególnie widoczne gdy karta nie odbiera
na przykład dzierżawy DHCP pomimo, że została wysłana przez serwer).
Bootowanie z opcją "noapic" lub "acpi=off" lub ich kombinacja pomaga
większości użytkownikom.
- (Prawdopodobnie związane z powyższym błędem) Routing VIA APIC jest
aktualnie zepsuty. Bootuj z "noapic"
- Nie możesz ładować modułów? Potrzebujesz zaktualizowanych narzędzi
(Zobacz sekcję moduły).
- depmod zgłasza Unresolved symbols?
depmod z modutils zamiast depmod z module-init-tools jest pierwszy w $PATH
(mogą być różne $PATH jako $USER i $ROOT)
Regres.
~~~~~~~
(Rzeczy które jeszcze nie działają)
- Sterowniki htpraid/promise dla własnych formatów RAID obecnie nie działają
i prawdopodobnie będą zmienione by używały device-mappera
- Niektóre systemy plików nadal wymagają pracy (Intermezzo, UFS, HFS, HPFS..)
- System plików UMSDDOS znikł, nadchodzi jego przepisanie.
- EFS (ma problem z rozmiarem bloków, w zależności od urządzenia na jakim
montowany jest ten system plików)
- Wiele sterowników nie kompiluje się z powodu wymaganego przejścia w nich
do nowych API
- Format /proc/stat zmienił się, może sprawiać kłopoty z programami, które
są zależne na starym formacie.
Obecnie jedyna znana aplikacja jest java 'DOTS'
(http://bugme.osdl.org/show_bug.cgi?id=277)
- Niektórzy użytkownicy maja problemy z rpm, szczególnie użytkownicy
Red Hat 9. To znany błąd rpm.
Rozwiązanie: uruchom "export LD_ASSUME_KERNEL=2.2.5", przed uruchamianiem
rpm.
Uważa się, że jest to błąd związany ze współpraca db4 i O_DIRECT
Rzeczy wymagające przeniesienia z 2.4.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- HFSPlus
- SuperH 64
Usunięte opcje.
~~~~~~~~~~~~~~~
- khttpd usunięty.
- Obsługa starszego Direct Rendering Managera (DRM) (Dla XFree86 4.0)
została usunięta. Zaktualizuj do XFree86 4.1.0 lub nowszego.
- LVM1 został usunięty. Zobacz poniżej o Device-mapperze.
- Tablica wywołań systemowych nie jest eksportowana. Każdy moduł który
polegał na tym poprzednio, nie będzie działać.
- Obsługa modemu soundmodem hamradio została usunięta. Jego funkcjonalność
została zastąpiona przez narzędzie przestrzeni użytkownika.
http://www.baycom.org/~tom/ham/soundmodem
- Bezpośrednie bootowanie ze stacji dyskietek nie jest już wspierane.
Powinieneś w zamian używać boot loadera takiego jak syslinux.
"make bzdisk" nadal działa (używając syslinux).
- Urządzenia tty typu callout (/dev/cua) zostały zarzucone od 2.1.90pre2, ich
obsługa została usunięta.
Zarzucona/przestarzała funkcjonalność.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- devfs zostanie wycofany na korzyść udev
(http://www.kernel.org/pub/linux/utils/kernel/hotplug/)
- Przetwarzanie opcji root= podczas bootowania zmieniło się.
Ramdyski nazywają się teraz ram<n> zamiast rd<n> a cm206 to teraz cm206cd
- usbdevfs zniknie w 2.7. Ten sam filesystem może być montowany jako
'usbfs' w ostatnich jądrach 2.4 oraz w 2.5.52 i wyższych. I tak
ten filesystem będzie potem nazywany.
- elvtune został zarzucony (tak jak funkcje ioctl których używał)
W zamian, eksportowane są w sysfs regulowane parametry IO schedulera
(zobacz niżej) w katalogu /sys/block/<device>/iosched.
Jens napisał dokument tłumaczący regulowane parametry nowego schedulera
pod adresem:
http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/att-deadline-iosched.txt
- Używanie sysctl przez wartości liczbowe jest zarzucone i zniknie w następnych
wersjach rozwojowych.
Moduły.
~~~~~~~
- Ładowanie modułów zostało od nowa zaimplementowane.
- Będziesz potrzebować zastępczych narzędzi do modułów z
http://www.kernel.org/pub/linux/kernel/people/rusty/modules/
- Wstecznie kompatybilny zestaw narzędzi jest także dostępny z tego samego
URL w formacie RPM.
- Użytkownicy Debiania sid i sarge lub migawki Conectiva mogą wykonać
'apt-get install module-init-tools'
- Moduły teraz zwalniają rzeczy oznaczone przy pomocy __init lub __initdata.
- Dla użytkowników Red Hata pojawia się kolejny kłopot w "/etc/rc.sysinit"
Podczas rozruchu, skrypt ustawia program binarny używany do dynamicznego
ładowania modułów zawartych w "/proc/sys/kernel/modprobe". Skrypt
inicjujący szuka "/proc/ksyms", ale z uwagi na to, że nie ma tego w
jądrach 2.6, uzytym programem binarnym jest "/sbin/true".
To, w końcu, spowoduje, że moduły przestaną działać. Użytkownicy Red Hata
będą musieli załatać skrypt "/etc/rc.sysinit" by zmienić
"/proc/sys/kernel/modprobe" na "/sbin/modprobe", nawet jeśli
"/proc/ksyms" nie istnieje.
- Moduły maja przyrostek .ko zamiast .o
- Niektóre (starsze) wersje 'mkinitrd' nie szukają modułów zakończonych
.ko, zaktualizuj swoje mkinitrd jeśli to stanowi problem.
System budowania jądra.
~~~~~~~~~~~~~~~~~~~~~~~
- System budowania jądra został znacznie poprawiony w stosunku do 2.4.
Powinieneś zauważyć szybsze budowanie, rzadsze budowanie rzeczy, które
już zostały poprzednim razem zbudowane.
- są nowe graficzne narzędzia do konfiguracji.
"make xconfig" wymaga bibliotek qt.
"make gconfig" używa bibliotek gtk.
- Make menuconfig/oldconfig nie ma widocznych dla użytkownika zmian poza
prędkością, chociaż liczne udoskonalenia zostały poczynione.
- Kilka nowych celów diagnostycznych makefile'a się pojawiło:
'allyesconfig' 'allnoconfig' 'allmodconfig'.
- Uwaga: Nowy system konfiguracji nie jest związany z CML2.
- Zauważ że, chociaż parę pomysłów zostało stamtąd zaczerpniętych,
projekt kbuild-2.5 Keitha Owensa nie został włączony.
- "make" to zalecana komenda, bez wskazanego celu; wykonuje <arch-zimage> i
moduły.
- "make -jN" to zalecana komenda do równoległego wykonania make.
Nie trudź się by zapewnić "MAKE=xxx"
- Budowanie jest mniej gadatliwe. Jeśli chcesz dokładnie wiedzieć co się
wykonuje, spróbuj "make V=1" lub ustaw zmienną środowiska KBUILD_VERBOSE=1.
- 'make kernel/mm.o' zbuduje wskazany plik, pod warunkiem, że związane z nim
źródła istnieją. To działa także dla (nie składanych) modułów.
(FIXME: nie działa dla modułów?)
- 'make kernel/' skompiluje wszystkie pliki w podkatalogu i głębiej.
- Nie ma już wcale potrzeby uruchamiać 'make dep' kiedykolwiek.
- 'make help' pokazuje listę typowych celów, łącznie z diagnostycznymi.
- Można teraz budować ze źródeł w oddzielnym katalogu poprzez
make O=builddir
Podsystem wejścia/wyjścia.
~~~~~~~~~~~~~~~~~~~~~~~~~~
- Powinieneś zauważyć znaczące udoskonalenia w przepływności w stosunku
do 2.4 z uwagi na przeróbkę warstw zarządzania urządzeniami blokowymi
oraz pamięcią.
- Zgłoś ewentualny regres w tym obszarze do Jensa Axboe <axboe@suse.de>
i do Andrew Mortona <akpm@osdl.org>.
- Dwa różne elewatory IO są dostępne. Domyślny jest antycypujący elewator IO.
Możesz wybrać elewator "deadline" przez rozruch z opcją "elevator=deadline"
w linii poleceń jądra.
- Dla niektórych obciążeń elewator antycypujący jest ok. 10% wolniejszy niż
deadline. Szczególnie, obciążenia bazodanowe dokonujące wyszukań po całym
dysku wykonując odczyty i synchroniczne zapisy. Ludzie z bazami danych
najprawdopodobniej by chcieli bootować z elevator=deadline by odzyskać
trochę wydajności.
- Zmiany w warstwie blokowej oznaczają, że wiele sterowników urządzeń
blokowych zostało oczyszczonych na dużą skalę podczas aktualizowania do
nowszych API.
- Rozmiar i wyrównanie zadań O_DIRECT wejścia/wyjścia plików teraz pasuje
do tego z urządzenia, nie systemu pliku. To oznacza, że można dokonać
O_DIRECT IO z 512-bajtowa gęstością w przeciwieństwie do poprzednich 4k.
Ale jeśli będzie na tym polegać twoja aplikacja nie będzie działać
z jądrami 2.4 i nie będzie działać na niektórych urządzeniach.
Obsługa rozmiaru urządzeń blokowych.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Dzięki pracy Petera Chubba, urządzenia blokowe mogą teraz obsługiwać
do 16TB na 32-bitowych architekturach oraz do 8EB na 64-bitowych
architekturach.
- By używać nowych funkcji ioctl() BLKGETSZ64, będziesz potrzebować
zaktualizowanych file-utils.
(Obecnie tylko jfsutils 1.0.20 mają te zmianę, łaty dla innych
systemów plików nadal czekają na włączenie)
- Stary 'struct statfs' nie jest już w stanie opisać dużych urządzeń -
wywołanie systemowe statfs() zwróci -EOVERFLÓW dla takich urządzeń.
Nowe wywołanie systemowe zwane statfs64() z nowa struktura zostało dodane
do obsługi dużych urządzeń. Podczas pisania tego dokumentu, nie jest znane
ile narzędzi przestrzeni użytkownika zostało przekonwertowanych by mogły
wykorzystywać to wywołanie systemowe gdy jest dostępne.
Zgodne z POSIX listy kontroli dostępu (ACL) oraz rozszerzone atrybuty.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Narzędzia dostępne na stronach http://acl.bestbits.at
Zmiany w systemie pamięci wirtualnej (VM).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Partycje swap wersji zero nie są już obsługiwane (i tak wszędzie jest
używana wersja v1 - uruchom mkswap w razie wątpliwości)
Linux 2.0.x wymaga przestrzeni wymiany wersji v0, Linux v2.1.117 i
późniejsze obsługują wersj1 v1. mkswap(8) może formatować przestrzeń
wymiany w obu formatach.
- Właściwe 'odwrotne mapowanie' (reverse mappings) modelu pamięci wirtualnej
Rika van Riel'a (rmap) zostało włączone.
Zachowanie pamięci wirtualnej pod pewnymi obciążeniami powinno się
poprawić.
- Złe działanie pamięci wirtualnej powinno być zgłaszane do linux-mm@kvack.org
- Pamięć wirtualna szuka rzadkich plików wymiany i kończy działanie gdy taki
znajdzie.
- /proc/sys/vm/swappiness definiuje preferencje jądra dla pamięci podręcznej
stron (pagecache) wobec zamapowanej pamięci (mapped memory). Ustawienie tego
na 100 (procent) sprawia, że traktuje oba typy na równi. Ustawienie na zero
sprawia, że jądro preferuje odzyskać zwykły cache pamięci (pagecache) niż
pamięć zamapowaną w tablice stron. (mapped-into-pagetables memory)
- Wywołanie systemowe bdflush() jest oficjalnie zarzucone. Wywołanie to
nic nie robi i drukuje komunikat użytkownikowi. Funkcjonalność została
zastąpiona przez demon pdflush.
- W 2.4, można było mieć do 64 plików wymiany. W 2.6, ta liczba została
zredukowana do 32. Jak w 2.4, te pliki mogą mieć rozmiar do 64GB, jednak
będziesz potrzebować nowego util-linux by mieć narzędzie mkswap
obsługujące rozmiary powyżej 2GB
Wywłaszczanie procesów w jądrze.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Często omawiane łaty dotyczące wywłaszczania dotarły do 2.6.
Powinieneś zauważyć mniejsze opóźnienia, szczególnie w wymagających
aplikacjach multimedialnych.
- Uwaga, nadal są przypadki, w których wywłaszczanie musi być czasowo
wyłączone a jądro tego nie robi. To się zdarza tam gdzie są używane
oddzielne dane dla każdego procesora.
- Jeśli zobaczysz komunikaty "xxx exited with preempt count=n" w syslogu,
nie panikuj, to są niekrytyczne komunikaty, chociaż trochę nieczyste.
(Coś pobiera blokadę i wychodzi bez odblokowania)
- Jeśli faktycznie zauważysz duże opóźnienia z włączonym wywłaszczaniem
w określonych warunkach, proszę zgłoś to do Andrew Mortona <akpm@osdl.org>
i Roberta Love <rml@tech9.net>.
Zgłoszenie powinno wyglądać podobnie do "opóźnienie w mojej aplikacji xyz
rośnie do xxx ms podczas gdy robię foo, a normalnie jest to yyy", gdzie
foo to coś w stylu "usunięcie ogromnego drzewa katalogów".
Usprawnienia w szeregowaniu procesów.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Kolejna często omawiana opcja. Ingo Molnar przepisał szeregowanie procesów
by używało algorytmu O(1). Podczas pracy, nie powinieś zauważyć żadnych
zmian przy niskich obciążeniach i zwiększona skalowalność z dużą ilością
procesów, szczególnie na dużych systemach wieloprocesorowych.
- Szeregowanie obsługuje teraz wieloprocesorowe architektury z Hyperthreading
i będzie rozkładać procesy na fizycznie różne procesory, zamiast tylko na
logiczne procesory.
- Robert Love napisał różne narzędzia do zmieniania zachowania szeregowania
procesów. (Przypisywanie procesów do procesora, itd.) Możesz znaleźć te
narzędzia pod adresem:
http://tech9.net/rml/schedutils
- Zachowanie sched_yield() dużo się zmieniło. Zadanie które używa tego
wywołania systemowego powinno teraz spodziewać się możliwości uśpienia na
bardzo długi czas. Zadania które nie bardzo by chciały zrezygnować z
procesora na chwilę, prawdopodobnie nie powinny zbyt często używać tej funkcji.
Niestety, niektóre programy z graficznym interfejsem użytkownika
(jak Open Office) wykonuje nadmiernie dużo tego wywołania i podczas
obciążenia ich wydajność jest kiepska. Wydaje się, że to nowe zachowanie
2.6 jest optymalne, ale niektóre aplikacje przestrzeni użytkownika
wymagają naprawy.
- Powyższe stosuje się tez do yield() w jądrze.
- 2.6 dodaje wywołania systemowe do manipulowania w zadaniu afiniczności
procesora: sched_getaffinity() i sched_setaffinity()
- Raport regresu wysyłać do mingo@redhat.com i rml@tech9.net
- Użytkownicy Debiana którzy napotkają takie efekty jak skoki w
odtwarzaniu mp3, skokowe ruchy myszą, mogą spróbować powstrzymać serwer X
przed przestawianiem nice na siebie na -10
Możesz zmienić to na stale używając 'dpkg-reconfigure xserver-common';
Jeśli zrezygnujesz z zarządzania /etc/X11/Xwrapper.config przez debconf,
możesz po prostu wyedytować ten plik bezpośrednio.
- Balansowanie żądaniami przerwania między wieloma procesorami powinno być
obsługiwane przez program irqbalance.
(http://people.redhat.com/arjanv/irqbalance/)
- David Mosberger utrzymuje stronę internetowa zawierającą 'znane problemy'
z szeregowaniem O(1) pod adresem:
http://www.hpl.hp.com/research/linux/kernel/o1.php
PCI.
~~~~
- Dodano obsługę domen PCI. Dla większości ludzi oznacza to, że nazwy
wszystkich szyn PCI są poszerzone o "0000:" z przodu, ale dla ludzi z
dużymi serwerami oznacza to, że będą wstanie mieć dostęp do wszystkich
swoich urządzeń PCI.
- Dużo sterowników hotplug zostało dodanych, włączając w to sterownik
fałszywego PCI hotplug, by ludzie bez specjalistycznego sprzętu mogli
testować sterowniki hotplug.
Random.
~~~~~~~
- /dev/hwrandom otrzymał wsparcie nowego sprzętu (też przeniesione do 2.4)
takiego jak HW RNG na nowszych procesorach VIA Cyrix.
- rng-tools można znaleźć pod adresem http://sourceforge.net/projects/gkernel
Szybkie muteksy przestrzeni użytkownika (Futeksy)
Fast userspace mutexes (Futexes).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Rusty Russell dodał funkcjonalność pozwalającą przestrzeni użytkownika
mieć szybkie muteksy, które używają wywołań systemowych tylko wtedy gdy
jest spór. Używane przez NPTL.
- Dodatkowe informacje o futeksach można znaleźć w artykule Ulricha
Dreppera pod adresem http://people.redhat.com/drepper/futex.pdf
- Bert Hubert napisał dokumentacje dostępna pod adresem:
http://ds9a.nl/futex-manpages
epoll
~~~~~
Davide Libenzi napisał oparty na zdarzeniach kod zastępujący poll, który
został włączony do 2.6. Więcej informacji dostępnych jest na stronach
http://www.xmailserver.org/linux-patches/nio-improve.html
http://lwn.net/Articles/13587/
Usprawnienia w wątkach.
~~~~~~~~~~~~~~~~~~~~~~~
- Ingo Molnar włożył ogromnie dużo pracy w usprawnienia w wątkach w 2.6.
Niektóre z nowych cech tej pracy to:
- Generyczny alokator pidu (dowolne numery PIDów bez opóźnień,
zunifikowana funkcja haszująca pid (pidhash))
- Thread Local Storage syscalls
- rozszerzenia do sys_clone() (CLONE_SETTLS, CLONE_PARENT_SETTID, CLONE_SETTID,
CLONE_CLEARTID, CLONE_DETACHED)
- POSIX thread signals stuff (atomic signals, shared signals, etc.)
- Sygnały wątków zgodne z POSIC (atomowe sygnały (atomic signals),
współdzielone sygnały (shared signals), itd.)
- Per-CPU GDT
- Obsługa wątkowego zrzucania pliku core
- Przyspieszenia w sys_exit (Wyjście z O(1))
- Generyczne, usprawnione futeksy, vcache
- Nowe, związane z wątkami opcje ptrace
- Pamięć podręczna żądań exit/fork
- Aktualizacje w /proc dla wątków
- Zmiany w API dla wątków.
- Użytkownicy powinni zauważyć znaczące przyspieszenie w podstawowych
operacjach na wątkach. Jest to prawdziwe w mniejszym stopniu nawet dla
starych bibliotek wątków przestrzeni użytkownika jak LinuxThreads.
- Raport o regresie powinien pójść do Ingo Molnara <mingo@redhat.com> i
<phil-list@redhat.com>. Regres może się zdarzyć w obszarze obsługi sygnałów
i semantyce związanej z wątkami, oraz przy zrzucaniu pliku core.
- Natywna Posiksowa Biblioteka Wątków (Native Posix Threading Library (NPTL))
Ulrich Drepper pracował z Ingo nad rozszerzaniem wątków i napisał bibliotekę
wątków o modelu 1:1. Możesz znaleźć więcej informacji o NPTL pod adresem:
http://people.redhat.com/drepper/nptl-design.pdf
Rozszerzone zrzucanie plików core.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- 2.6 oferuje mozliwość skonfigurowania jak pliki core są nazywane poprzez
plik /proc/sys/kernel/core_pattern
Możesz używać różnych etykiet by mieć wpływ na to jak plik core jest
zrzucany.
%p - wstaw pid do nazwy pliku
%u - wstaw aktualny uid do nazwy pliku
%g - wstaw aktualny gid to nazwy pliku
%s - wstaw sygnał który wywołał zrzut
%t - wstaw date w formacie UNIX do nazwy pliku
%h - wstaw nazwę hosta, na którym zrzucono plik core
%e - wstaw nazwę pliku wykonywalnego wywołującego zrzut do nazwy pliku
Upewnij się, że łańcuch znaków nie przekracza 64 bajtów.
- Wielowątkowe procesy mogą już zrzucać plik core
Warstwa wejścia.
~~~~~~~~~~~~~~~~
- Prawdopodobnie najbardziej widoczna dla użytkownika. Gdy jest źle
skonfigurowana, klawiatura/myszka/inne urządzenie przestanie działać.
2.6 oferuje bardziej elastyczny interfejs dla urządzeń takich jak
klawiatury.
- Minusem są bardziej mylące opcje.
W menu "Input device support", upewnij się by włączyć przynajmniej to
poniżej.
--- Input I/O drivers
< > Serial i/o support
< > i8042 PC Keyboard controller
[ ] Keyboards
[ ] Mice
(Wybierz także odpowiednią klawiaturę/myszkę z listy)
- Jeśli nadal twoja klawiatura/myszka nie działa, wyedytuj plik
drivers/input/serio/i8042.c i zastąp #undef DEBUG przez #define DEBUG,
przekompiluj i zainstaluj ponownie.
Podczas rozruchu, powinno się pojawić dużo informacji.
Prześlij je do Vojtecha Pavlika <vojtech@suse.cz>
- Jeśli używasz przełącznika KVM i masz problemy, rozruch z opcją
'psmouce_noext' powinien skończyć twoje problemy.
- Użytkownicy klawiszy multimedialnych bez X zauważą zmiany w tym jak
jądro obsługuje te klawisze. Ludzie którzy zmieniają mapy klawiszy lub
kody klawiszy (keymaps, keycodes) w 2.4, możliwe, że będą musieli
poczynić zmiany w 2.6
- Użytkownicy chcący obsługi głośniczka PC muszą włączyć CONFIG_INPUT_PCSPKR.
Inaczej nie będzie wcale dźwięku.
- Użytkownicy touchpada Synaptics mogą być zainteresowani tym co jest pod
adresem http://w1.894.telia.com/~u89404340/touchpad/
- W 2.4 użytkownicy japońskich klawiatur byli wstanie wpisać znaki
'|' lub '\' bez ładowania dodatkowej mapy klawiszy (keymap) w konsoli.
W 2.6, to już nie jest możliwe. Ludzie z tymi klawiaturami musza władować
poleceniem loadkeys przekompilowanym ze źródeł, gdyż loadkeys w niektórych
dystrybucjach nie może ładować kodów wyższych niż 127.
Jest łatka by to poprawić, ale nie została zintegrowana.
(http://tinyurl.com/t75a).
Warstwa PnP.
~~~~~~~~~~~~
- Wsparcie dla urządzeń plug and play takich jak pierwsze karty ISAPnp został
udoskonalony w jądrze 2.6. Nowy kod zachowuje się podobnie do kodu
obsługującego urządzenia PCI (probe, remove i podobne wywołania). Także
zawiera kod dostępu do BIOSu PnP
- Zgłoś problemy w działaniu plug & play pod adres:
Adam Belay <ambx1@neo.rr.com>
ALSA.
~~~~~
- Advanced Linux Sound Architecture zostało włączone do 2.6.
Dzięki temu mamy znacząco poprawione działanie w stosunku do starszych
sterowników OSS, ale wymaga to nowych narzędzi przestrzeni użytkownika.
- Kilka dystrybucji od jakiegoś czasu wydaje ALSĘ, więc możliwe, że masz
już potrzebne narzędzia. Jeśli nie, możesz je znaleźć pod adresem
http://www.alsa-project.org
- ALSA może emulować interfejs OSS poprzez moduły snd_pcm_oss/snd_pcm_mixer,
jeśli twoja karta nie odtwarza dźwięku, może musisz uruchomić alsamixer by
włączyć kanały, których /dev/mixer nie widzi.
- Zauważ, że sterowniki OSS nadal działają i są obecne w jądrze.
Wiele opcji/poprawek które poszły do 2.4 nadał nie zostało zaaplikowanych
do tych sterowników i nadal nie jest jasne czy zostaną gdy wyjdzie 2.6.
Długoplanowy cel to sprawić by wszyscy przenieśli się do (lepszego) ALSA.
AGP.
~~~~
- Sterownik agpgart otrzymał od dawna zaległe oczyszczanie którego udziałem
było rozdzielenie go na rdzeń agpgart (agpgart core) oraz sterowniki
per-chipset. Możliwe, że zajdzie potrzeba ustawienia konfiguracji modułów
by automatycznie ładować sterowniki chipsetu podczas ładowania modułu
agpgart
- Generyczne wsparcie dla AGP 3.0 zostało włączone.
DRI.
~~~~
- Bezpośrednie renderowanie (Direct rendering) w 2.6 nie było dużo (wcale?)
testowane na starszych wersjach XFree86. Informacje o tym czy 4.1 działa by
się przydały.
Szybsze wywołania systemowe.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Systemy które obsługują rozszerzenie SYSENTER (Właściwie Intel Pentium-II
i wyższe, oraz Athlony AMD) mają teraz szybsze metody przejścia
z przestrzeni użytkownika do przestrzeni jądra kiedy wykonywane jest
wywołanie systemowe.
- Pentium Pro także ma SYSENTER, ale z powodu błędu, jest nie do użytku.
- Bez zaktualizowanej biblioteki glibc będzie to niezauważalne.
- Użytkownicy VMWare 4 mogą mieć z tego powodu zawieszenia.
Zwane Mwaikambo napisał łatę "nosysenter" której warto poszukać w
google jeśli nie ma dostępnej aktualizacji vmware.
- Problemy do: torvalds@osdl.org i libc-alpha@sources.redhat.com
procps.
~~~~~~~
- Systemy plików /proc w 2.6 zmieniły statystyki, co myli starsze wersje
procps. Rik van Riel i Robert Love utrzymują wersję procps podczas rozwoju
2.6, która śledzi zmiany w /proc, którą można znaleźć pod
adresem http://tech9.net/rml/procps/
- Alternatywnie, procps Alberta Cahalana już obsługuje zmienione formaty od
wersji v3.0.5 -A- http://procps.sf.net/
- Format /proc/meminfo zmienił się lekko, co spowodowało rozjechanie się
gtop na dziwne sposoby. Prawdopodobnie to tez powoduje problemy z innymi
apletami panelu KDE i GNOME.
Warstwa bufora ramki.
~~~~~~~~~~~~~~~~~~~~~
- James Simmons przerobił warstwę bufora ramki / konsoli znacząco dla
2.6. Wsparcie dla niektórych kart nadal zalega ale nie powinno się
funkcjonalnie różnić od poprzednich wcieleń.
- Parametry podczas rozruchu mogły się zmienić w zależności od sterownika.
Na przykład:
append = "video=radeon:1024x768-24@100"
trzeba zmienić na:
append = "video=radeonfb:1024x768-24@100"
- Obecne narzędzia przestrzeni użytkownika (fbset lub eg) nie są jeszcze
zaktualizowane i nie będą działać zgodnie z oczekiwaniami.
- Bufor ramki VESA włącza MTRRy dla zakresu pamięci bufora ramki podczas
inicjalizacja (Uwaga: Tylko karty PCI).
Jeśli zauważysz psucie się ekranu, proszę zgłoś to, razem z wydrukiem
lspci, by można było twoja kartę dopisać do czarnej listy.
- Wszelkie problemy powinny być zgłoszone pod adres <jsimmons@infradead.org>
IDE.
~~~~
- Przepisywanie kodu IDE uległo dużej krytyce podczas wczesnych wersji
2.5.x, co powstrzymało wielu ludzi przed testowaniem. Te zmiany zostały
później zarzucone a stan IDE został przywrócony do stanu 2.4.18
Od tamtego czasu trwały prace na tym, jednak nie do takiego stopnia
jak pierwsze próby oczyszczenia kodu.
- Znane problemy z obecnym kodem IDE.
o Urządzenia IDE firmy Simplex (np. Ali15x3) czasami nie pracują w trybie
DMA
o Większość urządzeń PCMCIA ma przypadki ścigania się (race) i może
wywołać oops przy wysuwaniu.
o IDE jako moduł jeszcze nie działa, moduły do IDE, gdy jest w module
wywołują oops podczas ich ładowania
o ide-scsi jest kompletnie zepsute w 2.6. Znany problem. Jeśli tego
potrzebujesz albo używaj 2.4 lub to napraw 8)
- Translatory geometrii dysków IDE jak OnTrack, EZ Partition, Disk Manager
nie są już automatycznie wykrywane. Jedynym krokiem naprzód jest usuniecie
translatora z dysku i rozpoczęcie od nowa, lub użycie parametrów rozruchu
w zależności od typu używanego translatora :
hdx=remap63 - dodaj 64 to każdego sektora (Dla OnTrack DM)
hdx=remap - przemapuj 0->1 (Dla EZDrive)
- Zobacz także sekcje Nagrywanie CD w sprawie niektórych ważnych zmian
związanych z nagrywarkami CD na IDE.
IDE TCQ.
~~~~~~~~
- Tagged command queueing dla urządzeń IDE zostało włączone.
- Nie wszystkie kombinacje kontrolerów i urządzeń mogą to tolerować, więc
miej się na baczności.
CZYTAJ: ** Nie używaj IDE TCQ na wartościowych danych. **
Jest prawdopodobne, że takie kombinacje zostaną zapisane na czarne listy
podczas ich odkrywania.
- Jeśli nie ustawisz opcji "TCQ on by default", możesz ja włączyć komenda
echo "using_tcq:32" > /proc/ide/hdX/settings
(zastąp 32 zerem by ponownie wyłączyć TCQ).
- Raporty o historiach sukcesów/porażek można zgłaszać do Jensa Axboe
<axboe@suse.de> załączając wydruk hdparm -i /dev/hdX i lspci.
SCSI.
~~~~~
- Liczne sterowniki SCSI nie działają i nawet się nie kompilują.
- Licznym sterownikom brakuje obsługi błędów.
Te sterowniki będą powodować ostrzeżenia podczas kompilacji spowodowane
brakującymi funkcjami abort i reset.
- Zauważ, że niektóre sterowniki miały je usunięte, a jednak nadal brakuje
im obsługi błędów. Te w których to dostrzeżono do tej pory to: ncr53c9xxx,
sym53c8xx
- obsługa dużej struktury dev_t zezwalającej na tysiące dysków ma być
włączona (w 2.4 było to 128 lub 256)
- Większe porządki w kodzie, wstępnie by obsługiwać warstwę blokową (bio)
Udogodnienia doprowadziły do:
- lepszej przepływności (?) [mniej zdublowanej obsługi danych]
- blokady dla kart szyny hosta (HBA - Host Bus Adapter)
(w 2.4 bylo pojedyncze wywołanie io_request_lock)
- bardziej elastyczny interfejs do sterowników HBA
- lepsza obsługa hotplug, szczególnie dla USB mass storage i urządzeń
ieee1394 sbp2 [no, prace są w toku]
- Ulepszony kod przetwarzania błędów i skanowania (obsługa dla dużych,
rzadkich przestrzeni jednostek logicznych (lun))
- Masa pokręteł dla sterowników scsi poprzez sysfs
- Dużo wnętrzności sterowników scsi jest dostępnych przez sysfs
v4l2.
~~~~~
- API video4linux wreszcie otrzymało od dawna oczekiwane porządki.
- xawtv, bttv i większość innych istniejących narzędzi v4l jest
kompatybilnych z nowa warstwa v4l2. Nie powinieneś zauważyć pogorszenia
w funkcjonalności.
- Po więcej informacji, zobacz http://bytesex.org/v4l/
Zmiany w systemie przydziałów (Quota)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Nowy system przydziałów (quota) wymaga nowych narzędzi. Obsługuje 32bitowe
identyfikatory użytkownika (uidy).
http://www.sf.net/projects/linuxquota/
Nagrywanie CD
~~~~~~~~~~~~~
- Jens Axboe dodał możliwość używania DMA przy nagrywaniu CD na urządzeniach
ATAPI. Nagrywanie powinno być o wiele szybsze niż w 2.4 a także mniej
Podatne na wyczerpanie bufora itp.
- Z nowym cdrecord, nie jest także potrzebny ide-scsi by używać nagrywarkę
CD na IDE.
- Zgrywanie sciezek audio z plyt CD używa teraz DMA i powinno być
zauważalnie szybsze. Możesz znaleźć zaktualizowany cdda2wav pod adresem:
*.kernel.org/pub/linux/kernel/people/axboe/tools/
- Można przysyłać raporty dobrego/złego ekstrahowania przy użyciu cdda2wav
i wypalania przy użyciu cdrecord do Jensa Axboe <axboe@suse.de>
- Obecnie tylko 'open by device name' działa w cdrecord.
cdrecord -dev=/dev/hdX -inq
- Więcej informacji pod adresami:
http://lwn.net/Articles/13538/
http://lwn.net/Articles/13160/
USB:
~~~~
- Sterowniki kontrolera hosta USB zostały przemianowane w 2.6.
Teraz są to:
uhci-hcd dla UHCI kontrolerów.
ohci-hcd dla OHCI kontrolerów.
ehci-hcd dla EHCI (USB 2.0) kontrolerów.
- Niewiele widocznych dla użytkownika zmian, jedyna zauważalną 'większą'
zmianą jest to, że teraz jest jeden sterownik UHCI. Jak już wzmiankowano
wcześniej, nazwa usbdevfs została zmieniona na usbfs.
- USB-storage zmieniło swoje zachowanie. Urządzenie które jest odłączone i
ponownie podłączone nie jest związane ze starym węzłem /dev.
- USB storage także otrzymał kilka usprawnień wydajności.
- Obsługa USB 'gadget'.
Jest nowe API "USB Gadget" obsługujące urządzenia które są pod kontrola
Linuksa. Na przykład PDA, modemy kablowe i niektóre drukarki.
To API odzwierciedla to jak sterownik sprzętu kontrolera urządzenia USB
(UDC - USB Device Controller) rozmawia z przenośnymi "gadget drivers".
Sterownik gadget jest tym co sprawia, że sprzęt zachowuje się jak
"łącze sieciowe" czy "drukarka".
Gdy nie chcesz pisać sterownika gadget w jądrze, wtedy "gadgetfs" pozwoli
to zrobić programami przestrzeni użytkownika.
Każda końcówka wygląda jak pojedynczy plik, więc jest u wiele prostsze
niż "usbfs". Obecnie jest czysto synchroniczny, ale powinno być naturalne
to, że ktoś kiedyś doda obsługę AIO.
Po więcej informacji o architekturze API, łącznie z przykładem programu
"gadgetfs" używającego pthreads zajrzyj pod adres
http://www.linux-usb.org/gadget
Zobacz dokumentacje od 2.6 by przeczytać informacje o API.
Nanosecond stat:
~~~~~~~~~~~~~~~~
Wywołanie systemowe stat64() zostało zmienione się i zwraca teraz dokładność
w jiffies.
To pozwala na to by make(1) podejmował lepsze decyzje czy potrzebuje
rekompilować plik. Nie wszystkie systemy plików mogą obsługiwać taka precyzje.
Systemy plików:
~~~~~~~~~~~~~~~
Garść dodatkowych systemów plików trafiło do 2.6.
Obecnie obsługuje: ext2, ext3, reiserfs, jfs, xfs, minix, romfs, iso9660,
udf, msdos, vfat, ntfs (ro), adfs, amiga ffs, apple macintosh hfs,
BeOS befs (ro), bfs, efs (ro), cramfs, free vxfs, os/2 hpfs, qnx4fs,
sysvfs, ufs.
Podczas gdy były testowane poza drzewem, natężenie testów po włączeniu,
jest bezprzykładny. Bądź ostrożny w używaniu niedojrzałych systemów plików.
Sporo nowych opcji i udoskonaleń zostało poczynionych w istniejących
systemach plików z 2.4.
Raporty z testów wydajnościowych różnymi narzędziami byłyby bardzo przydatne.
Zmiany w generycznym VFS.
~~~~~~~~~~~~~~~~~~~~~~~~~
- Od 2.5.1 jest możliwe atomowe przesuniecie drzewa podkatalogu w inne
miejsce, wywołaniem...
mount --move olddir newdir
- Od 2.5.43, dmask=wartość ustawia umask aplikowany tylko do katalogów.
Domyślna wartościż jest umask aktualnego procesu.
fmask=wartość ustawia umask aplikowany tylko do zwykłych plików.
Znów, domyślną wartością jest umask aktualnego procesu.
- Katalogi można teraz oznaczyć jako synchorniczne poprzez chattr +S,
tak by wszystkie zmiany były natychmiast zapisywane na dysku.
Zauważ, że to nie gwarantuje atomowej operacji, przynajmniej nie dla
wszystkich systemów plików i wszystkich operacji. *Jest* zagwarantowane
ze wywołania systemowe nie wrócą zanim zmiany będą na dysku; zauważ jednak,
ze ma to znaczący wpływ na wydajność.
devfs.
~~~~~~
- devfs został dość odchudzony i dużo zduplikowanej funkcjonalności zostało
usunięte. Musisz teraz włączyć CONFIG_DEVPTS_FS=y i zamontować system
plików devpts w ten sam sposób jak byś nie używał devfs.
EXT2.
~~~~~
- 2.5.49 włączyło rozszerzenie do ext2 które spowoduje ze wcale nie będzie
przyłączać struktury buffer_head do pamięci podręcznej strony pliku lub
katalogu. To jest dla dużych maszyn z wysoka pamięcią. Włącza się poprzez
opcje '-o nobh' podczas montowania.
- System plików ext2 używa teraz wyrafinowanego blokowanie dzięki któremu
zyskujemy na zredukowanych częstościach przełączania kontekstu oraz
wyższych przepływnościach na dużych maszynach wieloprocesorowych (SMP).
EXT3.
~~~~~
- System plików ext3 zyskał obsługę indeksowanych katalogów, co oferuje
znaczące przyrosty wydajności na systemach plików z katalogami
zawierającymi duże ilości plików.
- W celu by skorzystać z tej opcji (htree), potrzebujesz e2fsprogs w wersji
przynajmniej 1.32.
- Obecne systemy plików można przekonwertować komendą
tune2fs -O dir_index /dev/hdXXX
- Najnowsze e2fsprogs można znaleźć pod adresem:
http://prdownloads.sourceforge.net/e2fsprogs
- Systemy plików ext2 i ext3 maja nowa politykę alokacji plików ("Alokator
Orlova") który umieszcza podkatalogi bliżej siebie na dysku. To oznacza,
ze operacje na wielu plikach w danym katalogu są dużo szybsze jeśli
zostało to drzewo stworzone w jądrze 2.6.
Reiserfs.
~~~~~~~~~
- Reiserfs obsługuje nowe atrybuty i-wezlów takie jak niezmienny. (immutable)
(Także zawarte w 2.4.17, więc nie tak bardzo 'nowe').
- Obsługa relokowanych i o niestandardowych rozmiarach plików kronikowania
(także przeniesiona do 2.4.22pre3)
- Obsługa zapisów większych niż 4KB, co oznacza przyrost prędkości na
zapisach dużych plików, szczególnie w trybie dopisywania, powinno także
być bardziej zgodne z architekturami wieloprocesorowymi (SMP)
- Obsługa zmiennego rozmiaru bloku. (tj. Możesz wybrać dowolny rozmiar bloku
z zakresu 1024 .. PAGE_CACHE_SIZE, musi być potęgą 2).
NFS.
~~~~
- Podstawowe wsparcie dla NFSv4 (serwer i klient)
- Dodatkowo, kNFSD wspiera transport poprzez TCP.
Ta eksperymentalna opcja została przeniesiona także do 2.4.20
- Raporty współpracy z innymi systemami operacyjnymi byłyby przydatne.
- Wersja 1.0.3 nfs-utils obsługuje zmianę typu kdev_t nowszych jąder
2.6. Można ja pobrać z http://nfs.sourceforge.net
- Problemy do nfs@lists.sourceforge.net
NTFS.
~~~~~
- Nowy przepisany sterownik NTFS, został włączony do 2.6. Oto główne
zalety nowego sterownika:
- Bezpieczny w kontekście SMP i powtórnych wejść (reentrant safe)
- Obsługa rozmiarów klastra większego niż 4kB
- Pełna obsługa rzadkich plików na W2K/XP/W2K3
- obsługa mmap()
- Bardziej stabilny i dużo szybszy niż poprzednia wersja.
- Nadal tylko do odczytu, jednak z bezpiecznym zapisywaniem pliku nie
zmieniającym jego rozmiaru.
- Więcej informacji pod adresem http://linux-ntfs.sf.net
sysfs.
~~~~~~
W prostych słowach, system plików sysfs jest rozsądniejszym sposobem by
sterowniki mogły eksportować swoje wnętrzności niż poprzez /proc.
Ten system plików jest zawsze wkompilowany i może być montowany jak każdy
inny wirtualny system plików. Nie potrzeba żadnych narzędzi przestrzeni
użytkownika poza cat(1) i echo(1). tree(1) jest także dobre do oglądania
ogólnej struktury.
mount -t sysfs none /sys
Zobacz Documentation/filesystems/sysfs.txt by dowiedzieć się więcej.
JFS.
~~~~
JFS firmy IBM został włączony do 2.6. (I przeniesiony do 2.4.20, jednak
tutaj był jako pierwszy. Możesz więcej przeczytać o JFS na stronach
http://www-124.ibm.com/developerworks/oss/jfs/index.html
XFS.
~~~~
XFS z SGI został włączony i ma liczne opcje w przestrzeni użytkownika.
Zaleca się przeczytanie http://oss.sgi.com/projects/xfs w celu uzyskania
więcej informacji.
Rozliczne narzędzia do tworzenia i manipulacji woluminami XFS są na serwerze
SGI:
ftp://oss.sgi.com/projects/xfs/download/download/cmd_tars/xfsprogs-2.5.4.src.tar.gz
CIFS.
~~~~~
Narzędzia i dokumentację dla wspólnego internetowego systemu plików (CIFS)
można znaleźć na stronach http://us1.samba.org/samba/Linux_CIFS_client.html
FAT.
~~~~
Obsługa CVF (Compressed VFAT) została usunięta. Oznacza to, że nie będziesz
mógł już mieć dostępu do partycji DriveSpace.
HugeTLBfs.
~~~~~~~~~~
Pliki w tym systemie plików są wspierane przez duże strony, jeśli procesor
obsługuje je. Zobacz Documentation/vm/hugetlbpage.txt by dowiedzieć się
więcej.
Wewnętrzne systemy plików.
~~~~~~~~~~~~~~~~~~~~~~~~~~
/proc/filesystems zawiera kilka systemów plików, które nie są montowalne
w przestrzeni użytkownika, ale są używane wewnętrznie przez jądro by śledzić
różne rzeczy. Wśród nich są futexfs i eventpollfs.
Osbluga Asynchronicznego I/O (AIO)
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Obsługa AIO została włączona do jądra 2.6.
AIO umożliwia nawet jednemu wątkowi aplikacji nakładać operacje I/O, podczas
gdy inna je przetwarza, poprzez udostępnianie interfejsu do zgłaszania
jednego lub więcej żądań i/o w jednym wywołaniu systemowym (io_submit) bez
czekania na zakończenie, w jednym oddzielnym interfejsie (io_getevents) by
sprzątać zakończone operacje i/o związane z podana grupa kończącą.
Poniżej jest szybkie podsumowanie co obecnie działa zgodnie z oczekiwaniami:
- zapisy i odczyty AIO na surowych (raw) urządzeniach (i O_DIRECT na blockdev)
- zapisy i odczyty AIO na plikach otwartych przy pomocy O_DIRECT na ext2,
ext3, jfs, xfs
I co nie działa zgodnie z oczekiwaniami i nie jest obsługiwane:
- zapisy i odczyty AIO na plikach otwartych bez O_DIRECT
(tj. AIO na normalnym buforowanym systemie plików). Na ext2, ext3, jfs,
xfs i nfs, te nie zwracają szczególnego błędu, ale cicho przełączają
domyślny tryb na synchroniczny niż decydują się na zachowanie nie zgodne
z AIO (tj. io_submit czeka na skończenie i/o w tych przypadkach).
W przypadku większości systemów plików zgłaszany jest -EINVAL.
- AIO fsync (nie obsługiwany na żadnym systemie plików)
- odczyt i zapis AIO na gniazdach (sockets) (nie zwraca szczególnego
błędu, ale cicho przełącza domyślny tryb na synchroniczny niż decyduje się
na zachowanie nie zgodne z AIO)
Jeśli piszesz aplikacje AIO które używają natywnych interfejsów AIO,
potrzebujesz zainstalować libaio-0.3.92 (dostępne pod adresem:
http://www.kernel.org/pub/linux/kernel/people/bcrl/aio/)
Więcej informacji jest pod adresem http://lse.sf.net/io/aio.html
Profilowanie.
~~~~~~~~~~~~~
- Systemowy mechanizm profilujący wydajność został włączony do 2.6.
Z tą opcją włączoną otrzymasz system plików oprofilefs, który możesz
Zamontować i z którym narzędzia przestrzeni użytkownika będą rozmawiać
Więcej pod adresem: http://oprofile.sourceforge.net/
- Potrzebujesz poprawionego dla 2.5 narzędzia readprofile.
Obecne w util-linux od wersji 2.11z
Udoskonalona obsługa tablicy BIOS.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- Linux obsługuje teraz liczne nowe rozszerzenia BIOSów.
Obsługa prostej flagi rozruchu (Simple boot flag).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Specyfikacja SBF jest rozszerzeniem BIOSu x86 które pozwala na szybszy
rozruch systemu. Robi to poprzez oznaczanie pola w CMOS mówiącego
'Rozruch był w porządku, pomiń rozległy POST przy następnym rozruchu'
Narzędzie przestrzeni użytkownika jest dostępne pod adresem:
http://www.codemonkey.org.uk/projects/sbf/sbf.c
Więcej informacji o SBF jest pod adresem:
http://www.microsoft.com/hwdev/resources/specs/simp_bios.asp
Obsługa EDD.
~~~~~~~~~~~~
- Obsługa dla rozszerzonych usług napędów dyskowych BIOS
(BIOS Enhanced Disk Driver Services (EDD)) została dodana.
Eksportuje informacje o tym co BIOS sadzi który napęd jest rozruchowy i
inne użyteczne informacje do /sys/firmware/edd
- Matt Domsch jest zainteresowany sukcesami/porażkami tego kodu przy użyciu
paru prostych testów opisanych pod adresem
http://domsch.com/linux/edd30/results.html
Udoskonalone monitorowanie systemu.
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
- lm_sensors.
- Dostarczane z jądrami dystrybucji od lat, lm_sensors jest już częścią
kodu. Ma jednak inny interfejs. (/sysfs zamiast /proc)
- http://www.xs4all.nl/~thospel/ASIS/bin/psensors to wygodny skrypt
do przetwarzania nowych pól sysfs.
- IPMI. (Intelligent Platform Management Interface)
- IPMI to standard monitorowania sprzętu w systemie.
- Strona domowa pod adresem http://openipmi.sourceforge.net
- Specyfikacja pod adresem http://www.intel.com/design/servers/ipmi/spec.htm
Wykrywanie procesorów x86.
~~~~~~~~~~~~~~~~~~~~~~~~~~
- Kod wykrywania procesorów został porządnie przemeblowany. By mieć pewność,
że wszystkie ważne obejścia dotyczące twojego procesora są włączone,
sprawdź czy jest wykryty poprawnie. cat /proc/cpuinfo powie jak jądro
widzi twój procesor.
- Podobnie, sterownik MTRR dla x86 został znacząco przerobiony.
Sprawdź czy XFre886 włącza MTRRy w ten sam sposób jak w 2.4
(Błędy będą zanotowane w /var/log/XFree86.log)
- Wczesne procesory PII Xeon i prawdopodobnie inne wczesne procesory PII
wymagają aktualizacji mikrokodu albo z BIOSu albo ze sterownika mikrokodu
by obejść błędu procesora które ujawnia szeregowanie procesów O(1).
Możesz odnaleźć narzędzia z tym związane pod adresem:
http://www.urbanmyth.org/microcode/
- Każdy regres powinien być zgłoszony pod adres:
mochel@osdl.org Cc: davej@codemonkey.org.uk
Dodatkowe zatrucia (tainting).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Uruchamianie określonych procesorów AMD w maszynach SMP jest poza
specyfikacja i spowoduje zatrucie jądra z flaga 'S'. Uruchamianie 2 Athlonów
XP np. może wydawać się, że przebiega gładko, ale może spowodować trudne do
odnalezienia błędy.
Z czasem jest prawdopodobne ze to zatrucie będzie rozszerzone na inne
przypadki poza specyfikacja.
Dodatkowo, nowy interfejs modułów będzie zatruwał jądro jeśli spróbujesz
zmusić moduł by się władował poprzez insmod -f.
Zarządzanie energią.
~~~~~~~~~~~~~~~~~~~~~
- 2.6 zawiera bardziej aktualną migawkę sterownika ACPI. W razie problemów
podczas rozruchu, spróbuj bootować z argumentem "acpi=off" by wyłączyć
interkację ACPI. ACPI ma większa role w podnoszeniu systemu w 2.6 niż w
2.4
- Stara opcja rozruchu "acpismp=force" jest już przestarzała i będzie
ignorowana z powodu usunięcia starego parsera "mini ACPI".
- Programowe wstrzymanie (software suspend) jest nadal w fazie rozwoju i
potrzebuje być trochę dopracowane.
Używanie SMP i/lub PREEMPT nie zalecane.
- Kod ACPI będzie robić podstawowe sprawdzenia bezpieczeństwa na strukturze
DMI w BIOSie by określić date powstania. BIOSy sprzed roku 2000 Uważa się
za zepsute. W niektórych okolicznościach, to założenie jest nie prawdziwe.
Jeśli zobaczysz wiadomość mówiącą, że ACPI jest wyłączone z tego powodu,
spróbuj bootować z acpi=force. Jeśli wszystko jest w porządku, wyślij
wydruk dmidecode (http://www.nongnu.org/dmidecode) pod adres:
acpi-devel@lists.sf.net
z wyjaśnieniem dlaczego twój BIOS nie powinien być na czarnej liście.
Sterowanie częstotliwością CPU (CPU frequency scaling).
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Niektóre procesory maja metody sterowania ich napięciem/częstotliwością.
2.6 przedstawia interfejs do tej cechy, zobacz Documentation/cpufreq by
zobaczyć więcej informacji. Ta funkcjonalność obejmuje opcje takie jak
Intel speedstep i Powernow! obecna w mobilnych Athlonach AMD.
Dodatkowo, poza wariantami x86, ta architektura także obsługuje różne
procesory architektury ARM.
Możesz znaleźć demona przestrzeni użytkownika monitorującego żywotność
baterii i regulującego zgodnie z tym częstotliwość pod adresem:
http://sourceforge.net/projects/cpufreqd
Szukanie MCE w tle.
~~~~~~~~~~~~~~~~~~~
Obsługa sprawdzeń maszyny została rozszerzona w taki sposób, że regularnie
szuka problemów na systemach z procesorami AMD Athlon i Intel Pentium 4.
To może spowodować wyjątki sprawdzeń maszyny (machine check exceptions)
wydarzające się częściej niż w 2.4 na systemach poza specyfikacją
(Przetaktowanie/nieodpowiednie chłodzenie/za słaby zasilacz)
LVM2 - DeviceMapper.
~~~~~~~~~~~~~~~~~~~~
Kod LVM1 zostało całkowicie usunięte i zastąpione o wiele lepiej
zaprojektowanym 'device mapperem'.
- Jest to wstecznie kompatybilne z formatem LVM1
- Device mapper jednak wymaga nowych narzędzi by zarządzać woluminami.
Można jest zdobyć pod adresem ftp://ftp.sistina.com/pub/LVM2/tools/
Opcje odpluskwiania.
~~~~~~~~~~~~~~~~~~~~
W okresie stabilizacji, jest prawdopodobne, że opcje odpluskwiania
w menu "kernel hacking" spowodują sporo problemów.
Zgłoś proszę jakiekolwiek problemy pod adres linux-kernel@vger.kernel.org
zamiast wyłączać związane z tym opcje CONFIG_.
Włączenie kksymoops oznacza, że kernel będzie wypluwał automatycznie
wygenerowane oopsy (Koniec podsyłania ich do ksymoops).
Z tego powodu, zawsze powinno się włączać opcje w menu "kernel hacking"
oznaczoną "Load all symbols for debugging/kksymoops".
Testy z CONFIG_PREEMPT także zwiększa ilość kodu odpluskwiającego aktywowanego
przez jądro. Wywłaszczanie jądra daje mam sposobność by wykonać dużo
sprawdzeń odpluskwiających, takich jak spanie podczas blokady (sleeping with
locks held), scheduling while atomic, wychodzenie podczas blokady (exiting
with locks held), itd.
Kompilatory.
~~~~~~~~~~~~
- Polecanym kompilatorem (dla x86) jest nadal 2.95.3.
- Kompilacja 2.6 nowym gcc (tj. gcc 3.x) spowoduje użycie dodatkowej
optymalizacji, której 2.4 nie używało. To może spowodować błędy
kompilatora, których 2.4 nie ujawniało.
- Nie używaj gcc 3.0.x na x86 z powodu błędu obsługi wskaźnika stosu.
- gcc 2.96 nie jest obsługiwany z opcją CONFIG_GRAME_POINTER=y z powodu
błędu obsługi wskaźnika stosu.
Sprawy bezpieczeństwa.
~~~~~~~~~~~~~~~~~~~~~~
Kilka spraw dotyczących bezpieczeństwa, które zostały rozwiązane w 2.4
nie zostały przeniesione do 2.6. Dlatego jądra 2.6.x nie powinny być
testowane na nie zaufanych systemach. Testowanie znanych z 2.4 nadużyć
(exploits) i zgłaszanie raportów mile widziane.
SELinux.
~~~~~~~~
NSA Security-Enhanced Linux (SELinux) został włączony do 2.6.
SELinux domyślnie nie jest włączony w konfiguracji. Jeśli włączysz go
w konfiguracji, domyślnie będzie uaktywniony. Jeśli także używasz
opcji rozruchu, możesz jej uzyc do dezaktywowania go, w przeciwnym razie
selinux=1 jest zbędny, gdyż to jest domyślne.
Możesz pobrać narzędzia SELinux i przykładowa konfiguracje polityki spod
adresu:
http://www.nsa.gov/selinux
Sieć.
~~~~~
- ebtables
Kod firewalla obsługujacy architektury mostkowane (bridge) został
włączony. By obsługiwać to będziesz potrzebował narzędzie ebtables
dostępne pod adresem:
http://users.pandora.be/bart.de.schuymer/ebtables/
Więcej na ten temat (bridge-nf) można znaleźć pod adresem
http://bridge.sourceforge.net
- Mostkowane pakiety moga być teraz 'widziane' przez iptables.
- IPSec
Linux nareszcie ma obslugę IPSec. Użyj portu narzędzi KAME spod adresu:
http://sourceforge.net/projects/ipsec-tools
Więcej informacji pod adresem:
http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/1127.html
Także Bert Hubert napisał howto pod adresem:
http://lartc.org/howto/lartc.ipsec.html
Dodatkowo, ipsec-utils są pod adresem:
http://sourceforge.net/projects/ipsec-tools
Herbert Xu ma tez laty wobec FreeSWAN 2.00 by umowliwić tej przestrzeni
użytkownika używać funkcjonalności IPSec w 2.6. Można je pobrać spod adresu:
http://gondor.apana.org.au/~herbert/freeswan/
Dodatkowe HOWTO jest pod adresem: http://www.ipsec-howto.org
- Niektóre aplikacje mogą spowodować by jądro wypluwalo ostrzezenia
'process xxx using obsolete setsockopt SO_BSDCOMPAT' .
- Bind 9.2.2. sprawdźa #ifdef SO_BSDCOMPAT w <asm/socket.h> poprawnie,
więc wystarczy rekompilować.
- bind9-host z debian testing to powoduje, podczas gdy pakiet 'host' nie.
- proces `snmpd' używa przestarzałego setsockopt SO_BSDCOMPAT
- proces `snmptrapd' używa przestarzałego setsockopt SO_BSDCOMPAT
- ntop używa przestarzałego (PF_INET, SOCK_PACKET)
- Użytkownicy maszyn z więcej niż 1 karta sieciowa mogą zauważyć, np. ze
eth0 i eth1 są odwrotnie mapowane do urządzeń niż w 2.4. Spowodowane
jest to błędem który zostanie naprawiony przed 2.6.0. Jednym z wyjść
(lub obejściem) jest używanie 'nameif' by nazywać interfejsy ethernetowe.
Jest HOWTO o tym jak to robić pod adresem:
http://xenotime.net/linux/doc/network-interface-names.txt
- Obsługa różnych nowych RFC.
- RFC3173 (IP Payload Compression).
- RFC3041 (IPv6 Privacy Extensions).
- RFC2473 (IPv6 in IPv6 tunnels).
- RFC2960 (SCTP - zobacz poniżej).
- Linux osiąga zapadniecie się zagęszczenia ruchu pod wpływem dużego
obciążenia sieciowego. NAPI naprawia to spośród wielu innych rzeczy i
przeto poprawia wydajność sieci.
Więcej informacji pod adresem:
http://www.cyberus.ca/~hadi/usenix-paper.tgz oraz
ftp://robur.slu.se/pub/Linux/net-development/NAPI/
- IPVS (IP Virtual Server)
http://www.linuxvirtualserver.org/
- RFC 2960 - SCTP (Stream Control Transmission Protocol)
SCTP jest opartym na IP, niezawodnym, zorientowanym na wiadomości (message
oriented) protokołem transportowym z kontrola zagęszczenia ruchu, obsługa
multi-homingu i obsługa wielu szeregowanych strumieni wiadomości. RFC2960
definiuje rdzeń protokołu.
Więcej informacji o protokole można znaleźć pod adresem
http://www.ietf.org/rfc/rfc2960.txt
a o jego implementacji w jądrze Linuksa pod adresem
http://lksctp.sourceforge.net
- Obsługa ANSI/IEEE 802.2 LLC type 2
Pełna implementacja stosu LLC 1 i 2, używana przez Appletalk, IPX i Token
Ring, także potrzebna dla istniejącego poza drzewem jądra, jeszcze nie
funkcjonującego stosu NetBEUI i dla Linux SNA
To jest oparte na stosie opublikowanym pod licencja GPL przez Procom Inc
dla jądra Linux 2.0.30.
Kryptografia
~~~~~~~~~~~~
- Generyczne API kryptograficzne (crypto API) zostało włączone, oferując
wsparcie wielu algorytmów (HMAC,MD4,MD5,SHA-1,SHA256,SHA384,SHA512,DES,
Triple DES EDE, Blowfish, Twofish, Serpent, AES, CAST5, CAST6)
- Ta funkcjonalność jest używana przez IPSec i crypto-loop. Jest możliwe,
ze będzie to później dostępne w przestrzeni użytkownika poprzez crypto
device, prawdopodobnie kompatybilne z OpenBSD
- Zawarty w jądrze loopback może teraz szyfrować dzięki CryptoAPI.
Może wymagać nowych wersji narzędzi.
- Przewodnik migracji z 2.4 do 2.6 dla cryptoloop jest pod adresem
http://clemens.endorphin.org/Cryptoloop_Migration_Guide.html
Przenośność.
~~~~~~~~~~~~
- 2.6 obsługuje parę nowych architektur.
- x86-64 (AMD Hammer)
- ppc64
- UML (User mode Linux)
Więcej informacji pod adresem: http://user-mode-linux.sf.net
- uCLinux: m68k(w/o MMU), h8300 and v850. sh also added a uCLinux option.
- 64-bitowy s390x jest w ramach jednego portu jako opcja s390
- Odwrotnie jest z arm26, został odseparowany od arm.
- Architektura x86 także ma obsługę 'podarchitektur' by wspierać 'dziwne'
maszyny x86 (zazwyczaj zabawki dużych chłopców). Aktualnie wspierane
podarchitektury to:
- ES7000
- PC9800 (niekompletne)
- VISWS (Było w 2.4, ale jest znów utrzymywany)
- Voyager. (http://www.hansenpartnership.com/voyager/)
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Historia wersji:
0.48 - gadgetfs
cryptoloop howto URL.
Wskazówki do list mailowych.
0.47 - Dodano URL do artykule o futeksach.
Poprawka adresu listy mailowej libc-alpha.
Jeff Garzik nie powinien otrzymywać informacji o problemach z
routingiem przerwań
Wyjaśnienie potrzeby użycia syslinux do boot disków.
Dodano depmod do listy znanych problemów
Regres w EFS
Dodano notkę o mkinitrd w sekcji moduły.
Rozliczne poprawki gramatyczne
Wzmianka o tree(1) w sekcji sysfs
Poprawki w SELinux.
Hej, numeryczne sysctl są wycofane, nie wywołania systemowe.
Dokumentacja opcji oddzielnego katalogu podczas kompilacji.
Zmiany w /proc/stat psuly więcej niż tylko DOTS.
Dodano sprawę japońskiej klawiatury do sekcji wejście.
0.46 - Aktualizacja adresu email akpm.
Wzmianka o LLC w sekcji siec.
Dodano link do przewodnika migracji do 2.6.
0.45 - DEVFS jest przestarzały.
Dodano tłumaczenie pt_BR.
0.44 - lm_sensors.
Obsługa podarchitektur x86.
Link do dokumentacji 2.6 Josepha Pranevicha.
Wzmianka o chattr +S
Aktualizacja linku dmidecode.
Poprawka URL do sbf.c
Poprawki typograficzne (s/proprietory/proprietary/)
Link do załatanej wersji cdda2wav.
Wzmianka o systemach plików które 2.6 faktycznie obsluguje.
Mała notka o SELinux
Dodano parę RFC które obsługujemy do sekcji Sieć
Zmiana IPVS na IPVS (IP Virtual Server)
Dodatkowe algorytmy szyfrowania które crypto api obsługuje
Kilka pozycji do sekcji TODO
URL do AIO.
Link do polskiego tłumaczenia.
Poprawka adresu davej@suse.de
Aktualizacja linku do hiszpańskiego tłumaczenia.
0.43 - URL do oprofile zmieniony.
Aktualizacja adresu email Linusa
Odrzucono raporty o wadliwym kompilatorze gcc 3.2.2-5 z Red Hata
Usunięto odniesienia do cdrecord wersji Jensa, standardowa wersja jest
już ok.
Dodano notkę o głosniczku PC.
Wzmianka o elevator=deadline dla ludzi od baz danych.
Złączono dwie sekcje rzeczy zarzuconych.
Aktualizacja URL do xfsprogs.
Wzmianka o module-init-tools w Connectivie
Wzmianka o acpi=force i czarnej liscie DMI.
DRI CFT w X4.1
SYSENTER w Pentium Pro jest zepsuty.
Zaktualizowano listę Alana o błędach IDE.
Dodano obejścia translatorów geometrii.
Wzmianka o ograniczeniach pliku wymiany.
Zaktualizowano nowe opcje Reiserfs.
Przeniesiono niektóre opcje 'zarzucone' do 'usunięte'.
Dodano sekcje 'Rzeczy wymagające przeniesienia z 2.4'
Link do strony internetowej sterownika touchpada synaptics.
Aktualizacja URL narzędzi ipsec.
Wzmianka o zmianach w usb-storage
Moduły są teraz .ko zamiast .o
Wzmianka o tym jak zmienic elewator z linii poleceń.
Dokumentacja da statfs64()
Tryb ext3 data=journal powinien być już naprawiony.
Poprawka scieżki do iosched.
Udokumentowano zmiany w USB.
Dodano SCTP do Sieci.
s/2.5/2.6/ w większości dokumentu.
Wzmianka o AIO.
Dodatkowy URL do IPSEC howto.
Zarzucono numeryczne wywołania systemowe.
0.42 - CONFIG_LOG_BUF_SHIFT is nów sanity checked by Kconfig
Hyperthreading scheduler improvements.
Emulacja ALSA OSS.
32bitowy uidy w nowym systemie przydziału (quota).
Nie wszystkie systemy plików obsługują nanosekundowy stat.
Zanotowano, że NTFS nadal nie jest R/W
Wzmianka o CryptoLoop.
0.41 - V=0 jest teraz domyślny. Udokumentowano V=1
s/Redhat/Red Hat/ wszędzie.
Dodano notke o sprawie sysenter z vmware.
MTRR dla vesafb
Różne poprawki gramatyczne.
Wybieralne elewatory.
Domeny PCI
0.40 - Urządzenia Callout tty są usunięte.
Dodano informacje o modułach w Red Hat 9
0.39 - Informacja o irqbalance.
Informacja o komunikatach o przestarzałości w ntop, snmp
Dodano link do strony Davida Mosvergera o O(1).
Wzmianka o łatkach FreeSWAN Herberta Xu's.
Dodano CONFIG_VGA_CONSOLE do listy znanych problemów.
Dodano informacje o .config z 2.4 do listy znanych problemów.
Przeredagowano notkę o devpts.
0.38 - Poprawiono URL do nameif
0.37 - Użytkownicy devfs muszą montować devpts.
Wzmianka o porcie h8300.
Wzmianka o przepisaniu NTFS.
0.36 - Włączenie 'positive SCSI spin' Douga Gilbertsa.
Wzmianka o NAPI.
Zmiany w opisie obejścia błędu z procesorem które scheduler O(1)
ujawnia.
Dodano sekcję 'Znane problemy'
0.35 - Wzmianka o apletach panela KDE.
mount --move, dmask, fmask
Usunięto wzmianke o narzędziach oprofile będących w rozwoju.
Wzmianka o blokadach ext2 (ext2 locking) oraz alokatorze orlova w
ext2/ext3
0.34 - Usunięto URLe people.redhat.com NPTL na życzenie Ulricha Dreppersa.
Dodano notkę o odejściu s390x.
Rozliczne aktualizacje w kbuild.
Wzmianka o plikach wymiany.
Dodano wzmiankę o -p1 i -p0
Pełno poprawek literówek od Randy'ego Dunlapa.
RPM z RH9 wydaje się mieć problemy.
0.33 - Dodano sekcje RFC o systemie sieci.
0.32 - Dodano URL narzędzia zastępującego Soundmodem.
0.31 - Zanotowano błędy z ext3 data=journal.
0.30 - Athlon powernow jest już obsługiwany.
0.29 - Wzmianka o błędach kart sieciowych związanych z ACPI/APIC oraz
zmianie kolejności kart sieciowych.
0.28 - Komunikaty 'SO_BSDCOMPAT obsolete', nfsutils.
0.27 - radeon -> radeonfb
0.26 - Dodano informacje o readprofile.
0.25 - Dodano przykład cdrecord. Dodano URL do hiszpańskiego tłumaczenia.
0.1->0.24 - Nie rejestrowana historia
- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -
Inne linki.
http://www.kernelnewbies.org/status/
http://bugzilla.kernel.org/
http://www.kniggit.net/wwol26.html
http://thomer.com/linux/migrate-to-2.6.html
TODO: (Wyślij proszę do mnie maila jeśli jesteś ich właścicielem).
PCI IDs (new_id, agpgart try_unsupported)
gadgetfs
libsysfs
zmiany w kdev_t?
Przeróbka ISDN
AFS
DVB
Hangcheck timer
/proc/sysrq-trigger
libata
initramfs