The post-halloween document. v0.48 (aka, 2.6 - czego oczekiwac) Dave Jones Tlumaczenie: Maciej Soltysiak (Aktualizacja przy 2.6.0) Ten dokument wyjasnia niektore nowe opcje w jadrze linuksa 2.6, niektore niespodzianki na ktore mozesz sie natknac, takze wskazuje te opcje, ktorym przydaloby sie porzadne testowanie. Uwaga, termin w stylu "skontaktuj sie z foo@bar.com" wymaga by przeslac kopie (cc:) na linux-kernel@vger.kernel.org. Najswiezsza wersje tego dokumentu mozna zawsze znalezc pod adresem: http://www.linux.org.uk/~davej/docs/post-halloween-2.6.txt Podziekowania dla wielu (zbyt wielu by wymienic) ludzi za cenne wsparcie. Uwaga, ten dokument jest skupiony na architekturze x86, jednak wiekszosc udokumentowanych tu opcji wplywa na wszystkie platformy. Tlumaczenia: Hiszpanskie - 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.txt pt_BR - http://www.maluco.com.br/thiago/docs/post-halloween-2.6-pt_BR.txt Aplikowanie lat. ~~~~~~~~~~~~~~~~ - W 2.4 i poprzednich jadrach, zalecanym sposobem aplikowania lat bylo uzycie polecenia typu ... gzip -cd patchXX.gz | patch -p0 W 2.6, Linus zaczal dodawac dodatkowy element w sciezce diffow, wiec nalezy uzywac -p1 w wypakowanym 'do zalatania' katalogu. Zglaszanie bledow. ~~~~~~~~~~~~~~~~~~ Wiekszosc duzych podsystemow jadra ma wlasne listy mailowe. Pisanie emaili z raportami o bledach jest zawsze sluszne. W razie watpliwosci, pisz do 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. ~~~~~~~~~~~~~~~ Niektore znane bledy sa w kolko zglaszane. Oto rozwiazania. - Czarny ekran po rozpakowaniu jadra? Upewnij sie, ze twoj .config ma CONFIG_INPUT=y CONFIG_VT=y CONFIG_VGA_CONSOLE=y CONFIG_VT_CONSOLE=y Wielu ludzi odkrylo, ze branie .config z 2.4 i uruchamianie make oldconfig by ustawic nowe opcje prowadzi do problemow, w szczegolnosci z nieustawiona opcja CONFIG_VT. - Kolejny blad napotykany przez ludzi to to, ze karty sieciowe nie sa wstanie odbierac pakietow. (Szczegolnie widoczne gdy karta nie odbiera na przyklad dzierzawy DHCP pomimo, ze zostala wyslana przez serwer). Bootowanie z opcja "noapic" lub "acpi=off" lub ich kombinacja pomaga wiekszosci uzytkownikom. - (Prawdopodobnie zwiazane z powyzszym bledem) Ruting VIA APIC jest aktualnie zepsuty. Bootuj z "noapic" - Nie mozesz ladowac modulow? Potrzebujesz zaktualizowanych narzedzi (Zobacz sekcje moduly). - depmod zglasza Unresolved symbols? depmod z modutils zamaist depmod z module-init-tools jest pierwszy w $PATH (moga byc rozne $PATH jako $USER i $ROOT) Regres. ~~~~~~~ (Rzeczy ktorych jeszcze nie dzialaja) - Sterowniki htpraid/promise dla wlasnych formatow RAID obecnie nie dzialaja i prawdopodobnie beda zmieniony by uzywaly device-mappera - Niektore systemy plikow nadal wymagaja pracy (Intermezzo, UFS, HFS, HPFS..) - System plikow UMSDDOS znikl, nadchodzi jego przepisanie. - EFS (ma problem z rozmiarem blokow, w zaleznosci od urzadzenia na jakim montowany jest ten system plikow) - Wiele sterownikow nie kompiluje sie z powodu wymaganego przejscia w nich do nowych API - Format /proc/stat zmienil sie, moze sprawiac klopoty z programami, ktore zaleza na starym formacie. Obecnie jedyna znana aplikacja jest java 'DOTS' (http://bugme.osdl.org/show_bug.cgi?id=277) - Niektorzy uzytkownicy maja problemy z rpm, szczegolnie uzytkownicy Red Hat 9. To znany blad rpm. Rozwiazanie: uruchom "export LD_ASSUME_KERNEL=2.2.5, przed uruchamianiem rpm. Uwaza sie, ze jest to blad zwiazany ze wspolpraca db4 i O_DIRECT Rzeczy wymagajace przeniesienia z 2.4. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - HFSPlus - SuperH 64 Usuniete opcje. ~~~~~~~~~~~~~~~ - khttpd usuniety. - Obsluga starszego Direct Rendering Managera (DRM) (Dla XFree86 4.0) zostala usunieta. Zaktualizuj do XFree86 4.1.0 lub nowszego. - LVM1 zostal usuniety. Zobacz ponizej o Device-mapperze. - Tablica wywolan systemowych nie jest eksportowana. Kazdy modul ktory polegal na tym poprzednio, nie bedzie dzialac. - Obsluga modemu soundmodem hamradio zostala usunieta. Jego funkcjonalnosc zostala zastapiona przez narzedzie przestrzeni uzytkownika. http://www.baycom.org/~tom/ham/soundmodem - Bezposrednie bootowanie ze stacji dyskietek nie jest juz wspierane. Powinienes w zamian uzywac boot loadera takiego jak syslinux. "make bzdisk" nadal dziala (uzywajac syslinux). - Urzadzenia tty typu callout (/dev/cua) zostaly zarzucone od 2.1.90pre2. Obsluga zostala usunieta. Zarzucona/przestarzala funkcjonalnosc. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - devfs zestarzeje sie na korzysc udev (http://www.kernel.org/pub/linux/utils/kernel/hotplug/) - Przetwarzanie opcji root= podczas bootowania zmienilo sie. Ramdyski nazywaja sie teraz ram zamiast rd a cm206 to teraz cm206cd - usbdevfs zniknie w 2.7. Ten sam filesystem moze byc montowany jako 'usbfs' w ostatnich jadrach 2.4 oraz w 2.5.52 i wyzszych. I tak ten filesystem bedzie potem nazywany. - elvtune zostal zarzucony (tak jak funkcje ioctl ktorych uzywal) W zamian, eksportowane sa w sysfs regulowane parametry IO schedulera (zobacz nizej) w katalogu /sys/block//iosched. Jens napisal dokument tlumaczacy regulowane parametry nowego schedulera pod adresem: http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/att-deadline-iosched.txt - Uzywanie sysctl przez wartosci liczbowe jest zarzucone i zniknie w nastepnych wersjach rozwojowych. Moduly. ~~~~~~~ - Ladowanie modulow zostalo od nowa zaimplmentowane. - Bedziesz potrzebowac zastepczych narzedzi do modulow z http://www.kernel.org/pub/linux/kernel/people/rusty/modules/ - Wstecznie kombatybilny zestaw narzedzi jest takze dostepny z tego samego URL w formacie RPM. - Uzytkownicy Debiania sid i sarge lub migawki Conectiva moga wykonac 'apt-get install module-init-tools' - Moduly teraz zwalniaja rzeczy oznaczone przy pomocy __init lub __initdata. - Dla uzytkownikow Red Hata pojawia sie kolejny klopot w "/etc/rc.sysinit" Podczas rozruchu, skrypt ustawia program binarny uzywany do dynamicznego ladowania modulow zawartych w "/proc/sys/kernel/modprobe". Skrypt inicjujacy szuka "/proc/ksyms", ale z uwagi na to, ze nie ma tego w jadrach 2.6, uzytym programem binarnym jest "/sbin/true". To, w koncu, spowoduje, ze moduly przestana dzialac. Uzytkownicy Red Hata beda musieli zalatac skrypt "/etc/rc.sysinit" by zmienic "/proc/sys/kernel/modprobe" na "/sbin/modprobe", nawety jesli "/proc/ksyms" nie istnieje. - Moduly maja przyrostek .ko zamiast .o - Niektore (starsze) wersje 'mkinitrd' nie szukaja modulow zakonczonych .ko, zaktualizuj swoje mkinitrd jesli to stanowi problem. System budowania jadra. ~~~~~~~~~~~~~~~~~~~~~~~ - System budowania jadra zostal znacznie poprawiony w stosunku do 2.4. Powinienes zauwazyc szybsze budowanie, rzadsze budowanie rzeczy, ktore juz zostaly poprzednim razem zbudowane. - Sa nowe graficzne narzedzia do konfiguracji. "make xconfig" wymaga bibliotek qt. "make gconfig" uzywa bibliotek gtk. - Make menuconfig/oldconfig nie ma widocznych dla uzytkownika zmian poza predkoscia, chociaz liczne udoskonalenia zostaly poczynione. - Kilka nowych celow diagnostycznych makefile'a sie pojawilo: 'allyesconfig' 'allnoconfig' 'allmodconfig'. - Uwaga: Nowy system konfiguracji nie jest zwiazany z CML2. - Takze zauwaz: chociaz pare pomyslow zostalo stamtad zaczerpnietych, projekt kbuild-2.5 Keitha Owensa nie zostal wlaczony. - "make" to zalecana komenda, bez wskazanego celu; wykonuje i moduly. - "make -jN" to zalecana komenda do rownoleglego wykonania make. Nie trudz sie by zapewnic "MAKE=xxx" - Budowanie jest mniej gadatliwy. Jesli chces dokladnie wiedziec co sie wykonuje, sproboj "make V=1" lub ustaw zmienna srodowiska KBUILD_VERBOSE=1. - 'make kernel/mm.o' zbuduje wskazany plik, pod warunkiem, ze zwiazane z nim zrodla istnieja. To dziala takze dla (nie skladanaych) modulow. (FIXME: nie dziala dla modulow?) - 'make kernel/' skompiluje wszystkie pliki w podkatalogu i glebiej. - Nie ma juz wcale potrzeby uruchamiac 'make dep' kiedykolwiek. - 'make help' pokazuje liste typowych celow, lacznie z diagnostycznymi. - Mozna teraz budowac ze zrodel w oddzielnym katalogu poprzez make O=builddir Podsystem wejscia/wyjscia. ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Powinienes zauwazyc znaczace udoskonalenia w przeplywnosci w stosunku do 2.4 z uwagi na przerobke warstw zarzadzania urzadzeniami blokowymi oraz pamiecia. - Zglos ewentualny regres w tym obszarze do Jensa Axboe i do Andrew Mortona . - Dwa rozne elewatory IO sa dostepne. Domyslny jest antycypujacy elewator IO. Mozesz wybrac elewator deadline przez rozruch z opcja "elevator=deadline" w linii polecen jadra. - Dla niektorych obciazen elewator antycypujacy jest ok 10% wolniejszy niz deadline. Szczegolnie, obciazenia bazodanowe dokonujace wyszukan po calym dysku wykonujace odczyty i synchroniczne zapisy. Ludzie z bazami danych najprawdopodobniej by chcieli bootowac z elevator=deadline by odzyskac troche wydajnosci. - Zmiany w warstwie blokowej oznaczalo ze liczne sterowniki urzadzen blokowych zostaly oczyszczone na duza skale podczas aktualizowanie do nowszych API. - Rozmiar i wyrownanie zadan O_DIRECT wejscia/wyscia plikow teraz pasuje do tego z urzadzenia, nie systemu pliku. To oznacza, ze mozna dokonac O_DIRECT IO z 512-bajtowa gestoscia niz z 4k. Ale jesli bedziesz na tym polegac twoja aplikacja nie bedzie dzialac z jadrami 2.4 i nie bedzie dzialac na niektorych urzadzeniach. Obsluga rozmiaru urzadzen blokowych. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Dzieki pracy Petera Chubba, urzadzenia blokowe moga teraz obslugiwac do 16TB na 32-bitowych architekturac oraz do 8EB na 64-bitowych architekturach. - By uzywac nowych funkcji ioctl() BLKGETSZ64, bedziesz potrzebowac zaktualizowanych file-utils. (Obecnie tylko jfsutils 1.0.20 maja te zmiane, laty dla innych systemow plikow nadal czekaja na wlaczenie) - Stary 'struct statfs' nie jest juz w stanie opisac duzych urzaden - wywolanie systemowe statfs() zwroci -EOVERFLOW dla takich urzadzen. Nowe wywolanie systemowe zwane statfs64() z nowa struktura zostalo dodane do obslugi duzych urzadzen. Podczas pisania tego dokumentu, nie jest znane ile narzedzi przestrzeni uzytkownika zostalo przekonwertowanych by mogly wykorzystywac to wywolanie systemowe gdy jest dostepne. Zgodne z POSIX listy kontroli dostepu (ACL) oraz rozszerzone atrybuty. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Narzedzia dostepne na stronach http://acl.bestbits.at Zmiany w systemie pamieci wirualne (VM). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Partycje swap wersji zero nie sa juz obslugiwane (i tak wszedzie jest uzywana wersja v1 - uruchom mkswap w razie watpliwosci) Linux 2.0.x wymaga przestrzeni wymiany wersji v0, Linux v2.1.117 i pozniejsze obsluguja wersj1 v1. mkswap(8) moze formatowac przestrzen wymiany w obu formatach. - Wlasciwe 'odwrotne mapowanie' (reverse mappings) modelu pamieci wirtualnej Rika van Riel'a (rmap) zostala wlaczona. Zachowanie pamieci wirtualnej pod pewnymi obciazeniami powinna sie poprawic. - Zle dzialanie pamieci wirtualnej powinno byc zglaszane do linux-mm@kvack.org - Pamiec wirtualna szuka rzadkich plikow wymiany i konczy dzialanie gdy taki znajdzie. - /proc/sys/vm/swappiness definiuje preferencje jadra dla cache'a stron (pagecache) wobec zamapowanej pamieci (mapped memory). Ustawienie tego na 100 (procent) sprawia, ze traktuje oba typy na rowni. Ustawienie na zero sprawia, ze jadro preferuje odzyskac zwykly cache pamieci (pagecache) niz pamiec zamapowana w tablice stron. (mapped-into-pagetables memory) - Wywolanie systemowe bdflush() jest oficjalnie zarzucone. Wywolanie to nic nie robi i drukuje komunikat uzytkownikowi. Funkcjonalnosc zostala zastapiona przez demonu pdflush. - W 2.4, mozna bylo miec do 64 plikow wymiany. W 2.6, ta liczba zostala zredukowana do 32. Jak w 2.4, te pliki moga miec rozmiar do 64GB, jednak bedziesz potrzebowac nowego util-linux by miec narzedzie mkswap obslugujace rozmiary powyzej 2GB Wywlaszczanie procesow w jadrze. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Czesto omawiane laty dotyczace wywlaszczania dotarly do 2.6. Powinienes zauwazyc mniejsze opoznienia, szczegolnie w wymagajacych aplikacjach multimedialnych. - Uwaga, nadal sa przypadki, w ktorych wywlaszczanie musi byc czasowo wylaczone a jadro tego nie robi. To sie zdarza tam gdzie sa uzywane oddzielne dane dla kazdego procesora. - Jesli zobaczysz wpisy "xxx exited with preempt count=n" w syslogu, nie panikuj, to sa niekrytyczne komunikaty, chociaz troche nieczyste. (Cos pobiera blokade (lock) i wychodzi bez odblokowania) - Jesli faktycznie zauwazysz duze opoznienia z wlaczonym wywlaszczaniem w okreslonych warunkach, prosze zglos to do Andrew Mortona i Roberta Love . Zgloszenie powinno wygladac podobnie do "opoznienie w mojej aplikacji xyz rosnie do xxx ms podczas gdy robie foo, a normalnie jest to yyy", gdzie foo to cos w stylu "usuniecie ogromnego drzewa katalogow". Usprawnienia w szeregowaniu procesow. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Kolejna czesto omawiana opcja. Ingo Molnar przepisal szeregowanie procesow by uzywalo algorytmu O(1). Podczas pracy, nie powienies zauwazyc zadnych zmian przy niskich obciazeniach i zwiekszona skalowalnosc z duza iloscia procesow, szczegolnie na duzych systemach wieloprocesorowych. - Szeregowanie obsluguje teraz wieloprocesorowe architektury z Hyperthreading i bedzie rozkladac procesy na fizycznie rozne procesory, zamiast tylko na logiczne procesory. - Robert Love napisal rozne narzedzia do zmieniania zachowania szeregowania procesow (Przypisywanie procesow do procesora, itd). Mozesz znalezc te narzedzia pod adresem: http://tech9.net/rml/schedutils - Zachowanie sched_yield() duzo sie zmienilo. Zadanie ktore uzywa tego wywolania systemowego powinno teraz spodziewac sie mozliwosci uspienia na bardzo dlugi czas. Zadania ktore nie bardzo by chcialy zrezygnowac z procesora na chwile, prawdopodobnie nie powinny czesto uzywac tej funkcji. Niestety, niektore programy z graficznym interfejsem uzytkownika (jak Open Office) wykonuje nadmiernie duzo tego wywolania i podczas obciazenia ich wydajnosc jest kiepska. Wydaje sie, ze to nowe zachowanie 2.6 jest optymalne, ale niektore aplikacje przestrzeni uzytkownika wymagaja naprawy. - Powyzsze stosuje sie tez do yield() w jadrze. - 2.6 dodaje wywolania systemowe do manipulowania w zadaniu afinicznosci procesora: sched_getaffinity() i sched_setaffinity() - Regres wysylac do mingo@redhat.com i rml@tech9.net - Uzytkownicy debiana ktorzy napotkaja na takie efekty jak skoki w odtwarzaniu mp3, skokowe ruchy mysza, moge sprobowac powstrzymac serwer X przed przestawianiem nice na siebie na -10 Mozesz zmienic to na stale uzywajac 'dpkg-reconfigure xserver-common'; Jesli zrezygnujesz z zarzadzania /etc/X11/Xwrapper.config przez debconf, mozesz po prostu wyedytowac ten plik bezposrednio. - Balansowanie rzadaniami przerwania miedzy wieloma procesorami powinno byc obslugiwane przez program irqbalance. (http://people.redhat.com/arjanv/irqbalance/) - David Mosberger utrzymuje strone internetowa zawierajaca 'znane problemy' z szeregowaniem O(1) pod adresem: http://www.hpl.hp.com/research/linux/kernel/o1.php PCI. ~~~~ - Dodano obsluge domen PCI. Dla wiekszosci ludzi oznacza to, ze nazwy wszystkich szyn PCI so poszerzone o "0000:" z przodu, ale dla ludzi z duzymi serwerami oznacza to, ze beda wstanie miec dostep do wszystkich swoich urzadzen PCI. - Duzo sterownikow hotplug zostalo dodanych, wlaczajac w to sterownik falszywego PCI hotplug, by ludzie bez specjalistycznego sprzetu mogli testowac sterowniki hotplug. Random. ~~~~~~~ - /dev/hwrandom otrzymal wsparcie nowego sprzetu (też przeniesione do 2.4) takiego jak HW RNG na nowszych procesorach VIA Cyrix. - rng-tools mozna znalezc pod adresem http://sourceforge.net/projects/gkernel Szybkie muteksy przestrzeni uzytkownika (Futeksy) Fast userspace mutexes (Futexes). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Rusty Russell dodal funkcjonalnosc pozwalajaca przestrzeni uzytkownika miec szybkie muteksy, ktore uzywaja wywolan systemowych tylko wtedy gdy jest spor. Uzywane przez NPTL. - Dodatkowane informacje o futeksach mozna znalezc w artykule Ulricha Dreppera pod adresem http://people.redhat.com/drepper/futex.pdf - Bert Hubert napisal dokumentacje dostepna pod adresem: http://ds9a.nl/futex-manpages epoll ~~~~~ Davide Libenzi napisal oparty na zdarzeniach kod zastepujacy poll, ktory zostal wlaczony do 2.6. Wiecej informacji dostepnych jest na stronach http://www.xmailserver.org/linux-patches/nio-improve.html http://lwn.net/Articles/13587/ Usprawnienia w watkach. ~~~~~~~~~~~~~~~~~~~~~~~ - Ingo Molnar wlozyl ogromnie duzo pracy w usprawnienia w watkach w 2.6. Niektore z nowych cech tej pracy to: - Generyczny alokator pidu (dowolne numery PIDow bez opoznien, zunifikowana funkcja haszujaca 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.) - Sygnaly watkow zgodne z POSIC (atomowe sygnaly (atomic signals), wspoldzielone sygnaly (shared signals), itd) - Per-CPU GDT - Obsluga watkowego zrzucania pliku core - Przyspieszenia w sys_exit (Wyjscie z O(1)) - Generyczne, usprawnione futeksy, vcache - Nowe, zwiazane z watkami opcje ptrace - Pamiec podreczna zadan exit/fork - Aktualizacje w /proc dla watkow - Zmiany w API dla watkow. - Uzytkownicy powinni zauwazyc znaczace przyspieszenie w podstawowych operacjach na watkach. Jest to prawdziwe w mniejszym stopniu nawet dla starych bibliotek watkow przestrzeni uzytkownika jak LinuxThreads. - Raport o regresie powinien pojsc do Ingo Molnara i phil-list@redhat.com. Regres moze sie zdarzyc w obszarze obslugi sygnalow i semantyce zwiazanej z watkami, oraz przy zrzucaniu pliku core. - Natywna Posiksowa Biblioteka Watkow (Native Posix Threading Library (NPTL)) Ulrich Drepper pracowal z Ingo nad rozszerzaniem watkow i napisal biblioteke watkow o modelu 1:1. Mozesz znalezc wiecej informacji o NPTL pod adresem: http://people.redhat.com/drepper/nptl-design.pdf Rozszerzone zrzucanie plikow core. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - 2.6 oferuje mozliwosc skonfigurowania jak pliki core sa nazywane poprzez plik /proc/sys/kernel/core_pattern Mozesz uzywac roznych etykiet by miec wplyw 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 sygnal ktory wywolal zrzut %t - wstaw date w formacie UNIX do nazwy pliku %h - wstaw nazwe hosta, na ktorym zrzucono plik core %e - wstaw nazwe pliku wykonywalnego wywolujacego zrzut do nazwy pliku Upewnij sie, ze lancuch znakow nie przekracza 64 bajtow. - Wielowatkowe procesy moga juz zrzucac plik core Warstwa wejscia. ~~~~~~~~~~~~~~~~ - Prawdopodobnie najbardziej widoczna dla uzytkownika. Gdy jest zle skonfigurowana, klawiatura/myszka/inne urzadzenie przestanie dzialac. 2.6 oferuje bardziej elastyczny interfejs dla urzadzen takich jak klawiatury. - Minusem sa bardziej mylace opcje. W menu "Input device support", upewnij sie by wlaczyc przynajmniej to ponizej. --- Input I/O drivers < > Serial i/o support < > i8042 PC Keyboard controller [ ] Keyboards [ ] Mice (Wybierz takze odpowiednia klawiature/myszke z listy) - Jesli nadal twoja klawiatura/myszka nie dziala, wyedytuj plik drivers/input/serio/i8042.c i zastap #undef DEBUG przez #define DEBUG, przekompiluj i zainstaluj ponownie. Podczas rozruchu, powinno sie pojawic duzo informacji. Przeslij je do Vojtecha Pavlika - Jesli uzywasz przelacznika KVM i masz problemy, rozruch z opcja 'psmouce_noext' powinien skonczyc twoje problemy. - Uzytkownicy klawiszy multimedialnych bez X zauwaza zmiany w tym jak jadro obsluguje te klawisze. Ludzie ktorzy zmieniaja mapy klawiszy lub kody klawiszy (keymaps, keycodes) w 2.4, mozliwe, ze beda musieli poczynic zmiany w 2.6 - Uzytkownicy chcacy obslugi glosniczka PC musza wlaczyc CONFIG_INPUT_PCSPKR. Inaczej nie bedzie wcale dzwieku. - Uzytkownicy touchpada Synaptics moga byc zainteresowani tym co jest pod adresem http://w1.894.telia.com/~u89404340/touchpad/ - W 2.4 uzytkownicy japonskich klawiatur byli wstanie wpisac znaki '|' lub '\' bez ladowania dodatkowej mapy klawiszy (keymap) w konsoli. W 2.6, to juz nie jest mozliwe. Ludzie z tymi klawiaturami musza wladowac poleceniem loadkeys przekompilowanym ze zrodel, gdyz loadkeys w niektorych dystrybucjach nie moze ladowac kodow wyzszych niz 127. Jest latka by to poprawic, ale nie zostala zintegrowana. (http://tinyurl.com/t75a). Warstwa PnP. ~~~~~~~~~~~~ - Wsparcie dla urzadzen plug and play takich jak pierwsze karty ISPnp zostal udoskonalony w jadrze 2.6. Nowy kod zachowuje sie podobnie do kodu obslugujacego urzadzenia PCI (probe, remove i podobne wywolania). Takze zawiera kod dostepu do BIOSu PnP - Zglos problemy w dzialaniu plug & play pod adres: Adam Belay ALSA. ~~~~~ - Advanced Linux Sound Architecture zostal wlaczony do 2.6. Dzieki temu mamy znaczaco poprawione dzialanie w stosunku do starszych sterownikow OSS, ale wymaga to nowych narzedzi przestrzeni uzytkownika. - Kilka dystrybucji od jakiegos czasu wydaje ALSE, wiec mozliwe, ze masz juz potrzebne narzedzia. Jesli nie, mozesz je znalezc pod adresem http://www.alsa-project.org - ALSA moze emulowac interfejs OSS poprzez moduly snd_pcm_oss/snd_pcm_mixer, jesli twoja karta nie odtwarza dzwieku, moze musisz uruchomic alsamixer by wlaczyc kanaly, ktorych /dev/mixer nie widzi. - Zauwaz, ze sterowniki OSS nadal dzialaja i sa obecne w jadrze. Wiele opcji/poprawek ktore poszly do 2.4 nadal nie zostalo zaaplikowanych do tych sterownikow i nadal nie jest jasne czy zostana gdy wyjdzie 2.6. Dlugoplanowy cel to sprawic by wszyscy przeniesli sie do (lepszego) ALSA. AGP. ~~~~ - Sterownik agpgart otrzymal od dawna zalegle oczyszczanie ktorego udzialem bylo rozdzielenie go na rdzen agpgart (agpgart core) oraz sterowniki per-chipset. Mozliwe, ze zajdzie potrzeba ustawienia konfiguracji modulow by automatycznie ladowac sterowniki chipsetu podczas ladowania modulu agpgart - Generyczne wsparcie dla AGP 3.0 zostalo wlaczone. DRI. ~~~~ - Bezposrednie renderowanie (Direct rendering) w 2.6 nie bylo duzo (wcale?) testowane na starszych wersjach XFree86. Informacje o tym czy 4.1 dziala by sie przydaly. Szybsze wywolania systemowe. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Systemy ktore obsluguje rozszerzenie SYSENTER (Wlasciwie Intel Pentium-II i wyzsze, oraz Athlony AMD) maja teraz szybsze metody przejscia z przestrzeni uzytkownika do przestrzeni jadra kiedy wykonywane jest wywolanie systemowe. - Pentium Pro takze ma SYSENTER, ale z powodu bledu, jest nie do uzytku. - Bez zaktualizowanej biblioteki glibc bedzie to niezauwazalne. - Uzytkownicy VMWare 4 moga miec z tego powodu zawieszenia. Zwane Mwaikambo napisal late "nosysenter" za ktora warto pogooglac jesli nie ma dostepnej aktualizacji vmware. - Problemy do: torvalds@osdl.org i libc-alpha@sources.redhat.com procps. ~~~~~~~ - Systemy plikow /proc w 2.6 zmienily statystyki, co myli starsze wersje procps. Rik van Riel i Robert Love utrzymuja wersje procps podczas rozwoju 2.6, ktora sledzi zmiany w /proc, ktora mozna znalezc pod adresem http://tech9.net/rml/procps/ - Alternatywnie, procps Alberta Cahalana juz obsluguje zmienione formaty od wersji v3.0.5 -A- http://procps.sf.net/ - Format /proc/meminfo zmienil sie lekko, co spowodowalo rozjechanie sie gtop na dziwne sposoby. Prawdopodobnie to tez powoduje problemy z innymi apletami panelu KDE i GNOME. Warstwa bufora ramki. ~~~~~~~~~~~~~~~~~~~~~ - James Simmons przerobil warstwe bufora ramki / konsoli znaczaco dla 2.6. Wsparcie dla niektorych kart nadal zalega ale nie powinno sie funkcjonalnie roznic od poprzednich wcielen. - Parametry podczas rozruchu mogly sie zmienic w zaleznosci od sterownika. Na przyklad: append = "video=radeon:1024x768-24@100" trzeba zmienic na: append = "video=radeonfb:1024x768-24@100" - Obecne narzedzia przestrzeni uzytkownika (fbset lub eg) nie sa jeszcze zaktualizowane i nie beda dzialac zgodnie z oczekiwaniami. - Bufor ramki VESA wlacza MTRRy dla zakresu pamieci bufora ramki podczas inicjalizacja (Uwaga: Tylko karty PCI). Jesli zauwazysz psucie sie ekranu, prosze zglos to, razem z wydrukiem lspci, by mozna bylo twoja karte dopisac do czarnej listy. - Wszelkie problemy powinny byc zgloszone pod adres IDE. ~~~~ - Przepisywanie kodu IDE uleglo duzej krytyce podczas wczesnych wersji 2.5.x, co powstrzymalo wielu ludzi przed testowaniem. Te zmiany zostaly pozniej zarzucone a stan IDE zostal przywrocony do stanu 2.4.18 Od tamtego czasu trwaly prace na tym, jednak nie do takiego stopnia jak pierwsze proby oczyszczenia kodu. - Znane problemy z obecnym kodem IDE. o Urzadzenia IDE firmy Simplex (np. Ali15x3) czasami nie pracuja w trybie DMA o Wiekszosc urzadzen PCMCIA ma przypadki scigania sie (race) i moze wywolac oops przy wysuwaniu. o IDE jako modul jeszcze nie dziala, moduly do IDE, gdy jest w module wywoluja oops podczas ich ladowania o ide-scsi jest kompletnie zepsute w 2.6. Znany problem. Jesli tego potrzebujesz albo uzywaj 2.4 lub to napraw 8) - Translatory geometrii dyskow IDE jak OnTrack, EZ Partition, Disk Manager nie sa juz automatycznie wykrywane. Jedynym krokiem naprzod jest usuniecie translatora z dysku i rozpoczecie od nowa, lub uzycie parametrow rozruchu w zaleznosci od typu uzywanego translatora : hdx=remap63 - dodaj 64 to kazdego sektora (Dla OnTrack DM) hdx=remap - przemapuj 0->1 (Dla EZDrive) - Zobacz takze sekcje Nagrywanie CD w sprawie niektorych waznych zmian zwiazanych z nagrywarkami CD na IDE. IDE TCQ. ~~~~~~~~ - Tagged command queueing dla urzadzen IDE zostalo wlaczone. - Nie wszystkie kombinacje kontrolerow i urzadzen moga to tolerowac, wiec miej sie na bacznosci. CZYTAJ: ** Nie uzywaj IDE TCQ na wartosciowych danych. ** Jest prawdopodobne, ze takie kombinacje zostana zapisane na czarne listy podczas ich odkrywania. - Jesli nie ustawisz opcji "TCQ on by default", mozesz ja wlaczyc komenda echo "using_tcq:32" > /proc/ide/hdX/settings (zastep 32 zerem by ponownie wylaczyc TCQ). - Raporty o historiach sukcesow/porazek mozna zglaszac do Jensa Axboe zalaczajac wydruk hdparm -i /dev/hdX i lspci. SCSI. ~~~~~ - Liczne sterowniki SCSI nie dzialaja i nawet sie nie kompiluja. - Licznym sterownikom brakuje obslugi bledow. Te sterowniki beda powodowac ostrzezenia podczas kompilacji spowodowane brakujacymi funkcjami abort: i reset. - Zauwaz, ze niektore sterowniki mialy je usuniete, a jednak nadal brakuje im obslugi bledow. Te w ktorych to dostrzezono do tej pory to: ncr53c9xxx, sym53c8xx - obsluga duzej struktury dev_t zezwalajacej na tysiace dyskow ma byc wlaczona (w 2.4 bylo to 128 lub 256) - Wieksze porzadki w kodzie, wstepnie by obslugiwac warstwe blokowa (bio) Udogodnienia doprowadzily do: - lepszej przeplywnosci (?) [mniej zdublowanej obslugi danych] - zamki dla kart szyny hosta (HBA) (w 2.4 bylo pojedyncze wywolanie io_request_lock) - bardziej elastyczny interfejs do sterwonikow HBA - lepsza obsluga hotplug, szczegolnie dla USB mass storage i urzadzen ieee1394 sbp2 [no, prace sa w toku] - Ulepszony kod przetwarzania bledow i skanowania (obsluga dla duzych, rzadkich przestrzeni jednostek logicznych (lun)) - Masa pokretelek dla sterownikow scsi poprzez sysfs - Duzo wnetrznosci sterownikow scsi jest dostepnych przez sysfs v4l2. ~~~~~ - API video4linux wreszcie otrzymalo od dawna oczekiwane porzadki. - xawtv, bttv i wiekszosc innych istniejacych narzedzi v4l jest kompatybilnych z nowa warstwa v4l2. Nie powinienes zauwazyc pogorszenia w funkcjonanosci. - Po wiecej informacji, zobacz http://bytesex.org/v4l/ Zmiany w systemie przydzialow (Quota) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Nowy system przydzialow (quota) wymaga nowych narzedzi. Obsluguje 32bitowe identyfikatory uzytkownika (uidy). http://www.sf.net/projects/linuxquota/ Nagrywanie CD ~~~~~~~~~~~~~ - Jens Axboe added the ability to use DMA for writing CDs on ATAPI devices. Writing CDs should be much faster than it was in 2.4, and also less prone to buffer underruns and the like. - Z nowym cdrecord, nie jest takze potrzebny ide-scsi by uzywac nagrywarke CD na IDE. - Zgrywanie sciezek audio z plyt CD uzywa teraz DMA i powinno byc zauwazalnie szybsze. Mozesz znalezc zaktualizowany cdda2wav pod adresem: *.kernel.org/pub/linux/kernel/people/axboe/tools/ - Mozna przysylac raporty dobrego/zlego ekstraktowania przy uzyciu cdda2wav i wypalania przy uzyciu cdrecord do Jensa Axboe (axboe@suse.de> - Obecnie tylko 'open by device name' dziala w cdrecord. cdrecord -dev=/dev/hdX -inq - Wiecej informacji pod adresami: http://lwn.net/Articles/13538/ http://lwn.net/Articles/13160/ USB: ~~~~ - Sterowniki kontrolera hosta USB zostaly przemianowane nazwe w 2.6. Teraz sa to: uhci-hcd dla UHCI kontrolerow. ohci-hcd dla OHCI kontrolerow. ehci-hcd dla EHCI (USB 2.0) kontrolerow. - Niewiele widocznych dla uzytkownika zmian, jedyna zauwazalna 'wieksza' zmiana jest to, ze teraz jest jeden sterownik UHCI. Jak juz wzmiankowano wczesniej, nazwa usbdevfs zostala zmieniona na usbfs. - USB-storage zmienilo swoje zachowanie. Urzadzenie ktore jest odlaczone i ponownie podlaczone nie jest zwiazane ze starym wezlem /dev. - USB storage takze otrzymal kilka usprawnien wydajnosci. - Obsluga USB 'gadget'. Jest nowe API "USB Gadget" obslugujace urzadzenia ktore sa pod kontrola Linuksa. Na przylkad PDA, modemy kablowe i niektore drukarki. To API odzwierciedla to jak sterownik sprzetu kontrolera urzadzenia USB (UDC - USB Device Controller) rozmawia z przenosnymi "gadget drivers". Sterownik gadget jest tym co sprawia, ze sprzet zachowuje sie jak "lacze sieciowe" czy "drukarka". Gdy nie chcesz pisac sterownika gadget w jadrze, wtedy "gadgetfs" pozwoli to zrobic programami przestrzeni uzytkownika. Kazda koncowka wyglada jak pojedynczy plik, wiec jest u wiele prostsze niz "usbfs". Obecnie jest czysto synchroniczny, ale powinno byc naturalne to, ze ktos kiedys doda obsluge AIO. Po wiecej informacji o architekturze API, lacznie z przykladem programu "gadgetfs" uzywajacego pthreads zajrzyj pod adres http://www.linux-usb.org/gadget Zobacz dokumentacje od 2.6 by przeczytac informacje o API. Nanosecond stat: ~~~~~~~~~~~~~~~~ Wywolanie systemowe stat64() zostalo zmienione sie i zwraca teraz dokladnosc w jiffies. To pozwala na to by make(1) podejmowal lepsze decyzje czy potrzebuje rekompilowac plik. Nie wszystkie systemy plikow moga obslugiwac taka precyzje. Systemy plikow: ~~~~~~~~~~~~~~~ Garsc dodatkowych systemow plikow trafilo do 2.6. Obecnie obsluguje: 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 byly testowane poza drzewem, natezenie testow po wlacznieniu, jest bezprzykladny. Badz ostrozny w uzywaniu niedojrzalych systemow plikow. Sporo nowych opcji i udoskonalen zostalo poczynionych w istniejacych systemach plikow z 2.4. Raporty z testow wydajnosciowych roznymi narzedziami bylby bardzo przydatne. Zmiany w generycznym VFS. ~~~~~~~~~~~~~~~~~~~~~~~~~ - Od 2.5.1 jest mozliwe atomowe przesuniecie drzewa podkatalogu w inne miejsce, wywolaniem... mount --move olddir newdir - Od 2.5.43, dmask=wartosc ustawia umask aplikowany tylko do katalogow. Domyslna wartoscia jest umask aktualnego procesu. fmask=wartosc ustawia umask aplikowany tylko do zwyklych plikow. Znow, domyslna wartoscia jest umask aktualnego procesu. - Katalogi mozna teraz oznaczyc jako synchorniczne poprzez chattr +S, tak by wszystkie zmiany byly natychmiast zapisywane na dysku. Zauwaz, ze to nie gwarantuje atomowej operacji, przynajmniej nie dla wszystkich systemow plikow i wszystkich operacji. *Jest* zagwarantowane ze wywolania systemowe nie wroca zanim zmiany beda na dysku; zauwaz jednak, ze ma to znaczacy wplyw na wydajnosc. devfs. ~~~~~~ - devfs zostal dosc odchudzony i duzo zduplikowanej funkcjonalnosci zostalo usuniete. Musisz teraz wlaczyc CONFIG_DEVPTS_FS=y i zamontowac system plikow devpts w ten sam sposob jakbys nie uzywal devfs. EXT2. ~~~~~ - 2.5.49 wlaczylo rozszerzenie do ext2 ktore spowoduje ze wcale nie bedzie przylaczac struktury buffer_head do pamieci podrecznej strony pliku lub katalogu. To jest dla duzych maszyn z wysoka pamiecia. Wlacza sie poprzez opcje '-o nobh' podczas montowania. - System plikow ext2 uzywa teraz wyrafinowanego blokowanie dzieki ktoremu zyskujemy na zredukowanych czestosciach przelaczania kontekstu oraz wyzszych przeplywnosciach na duzych maszynach wieloprocesorowych (SMP). EXT3. ~~~~~ - System plikow ext3 zyskal obsluge indeksowanych katalogw, co oferuje znaczace przyrosty wydajnosci na systemach plikow z katalogami zawierajacymi duze ilosci plikow. - W celu by skorzystac z tej opcji (htree), potrzebujesz e2fsprogs w wersji przynajmniej 1.32. - Obecne systemy plikow mozna przekonwertowac komenda tune2fs -O dir_index /dev/hdXXX - Najnowsze e2fsprogs mozna znalezc pod adresem: http://prdownloads.sourceforge.net/e2fsprogs - Systemy plikow ext2 i ext3 maja nowa polityke alokacji plike ("Alokator Orlova") ktory umieszcza podkatalogi blizej siebie na dysku. To oznacza, ze operacje na wielu plikach w danym katalogu sa duzo szybsze jesli zostalo to drzewo stworzone w jadrze 2.6. Reiserfs. ~~~~~~~~~ - Reiserfs obsluguje nowe atrybuty i-wezlow takie jak niezmienny. (immutable) (Takze zawarte w 2.4.17, wiec nie tak bardzo 'nowe'). - Obsluga relokowanych i o niestandardowcy rozmiarach plikow kronikowania (takze przeniesiona do 2.4.22pre3) - Obsluga zapisow wiekszych niz 4KB, co oznacza przyrost predkosci na zapisach duzych plikow, szczegolnie w trybie dopisywania, powinno takze byc bardziej zgodne z architekturami wieloprocesorowymi (SMP) - Obsluga zmiennego rozmiaru bloku. (tj. Mozesz wybrac dowolny rozmiar bloku z zakresu 1024 .. PAGE_CACHE_SIZE, musi byc potega 2). NFS. ~~~~ - Podstawowe wsparcie dla NFSv4 (serwer i klient) - Dodatkowo, kNFSD wspiera transport poprzez TCP. Ta eksperymentalna opcja zostala przeniesiona takze do 2.4.20 - Raporty wspolpracy z innymi systemami oparacyjnymi bylyby przydatne. - Wersja 1.0.3 nfs-utils obsluguje zmiane typu kdev_t nowszysch jader 2.6. Mozna ja pobrac z http://nfs.sourceforge.net - Problemy do nfs@lists.sourceforge.net NTFS. ~~~~~ - Nowy przepisany sterownik NTFS, zostal wlaczony do 2.6. Oto glowne zalety nowego sterownika: - Bezpieczny w kontekscie SMP i powtornych wejsc (reentrant safe) - Obsluga rozmiarow klastra wiekszego niz 4kB - Pelna obsluga rzadkich plikow na W2K/XP/W2K3 - obsluga mmap() - Bardziej stabilny i duzo szybszy niz poprzednia wersja. - Nadal tylko do odczytu, jednak z bezpiecznym zapisywaniem pliku nie zmieniajacym jego rozmiaru. - Wiecej informacji pod adrsem http://linux-ntfs.sf.net sysfs. ~~~~~~ W prostych slowach, system plikow sysfs jest rozsadniejszym sposobem by sterowniki mogly eksportowac swoje wnetrznosci niz poprzez /proc. Ten system plikow jest zawsze wkompilowany i moze byc montowany jak kazdy inny wirtualny system plikow. Nie potrzeba zadnych narzedzi przestrzeni uzytkownika poza cat(1) i echo(1). tree(1) jest takze dobre do ogladania ogolnej struktury. mount -t sysfs none /sys Zobacz Documentation/filesystems/sysfs.txt by dowiedziec sie wiecej. JFS. ~~~~ JFS firmy IBM zostal wlaczony do 2.6. (I przeniesiony do 2.4.20, jednak tutaj byl jako pierwszy. Mozesz wiecej przeczytac o JFS na stronach http://www-124.ibm.com/developerworks/oss/jfs/index.html XFS. ~~~~ XFS z SGI zostal wlaczony i ma liczne opcje w przestrzeni uzytkownika. Zaleca sie przeczytanie http://oss.sgi.com/projects/xfs w celu uzyskania wiecej informacji. Rozliczne narzedzia do tworzenia i manipulacji woluminami XFS sa na serwerze SGI: ftp://oss.sgi.com/projects/xfs/download/download/cmd_tars/xfsprogs-2.5.4.src.tar.gz CIFS. ~~~~~ Narzedzia i dokumentacja dla wspolnego internetowego systemu plikow (CIFS) mozna znalezc na stronach http://us1.samba.org/samba/Linux_CIFS_client.html FAT. ~~~~ Obsluga CVF (Compressed VFAT) zostala usunieta. Oznacza to, ze nie bedziesz mogl juz miec dostepu do partycji DriveSpace. HugeTLBfs. ~~~~~~~~~~ Pliki w tym systemie plikow sa wspierane przez duze strony, jesli procesor oblsuguje je. Zobacz Documentation/vm/hugetlbpage.txt by dowiedziec sie wiecej. Wewnetrzne systemy plikow. ~~~~~~~~~~~~~~~~~~~~~~~~~~ /proc/filesystems zawiera kilka systemow plikow, ktore nie sa montowalne w przestrzeni uzytkownika, ale sa uzywane wewnetrznie przez jadro by sledzic rozne rzeczy. Wsrod nich sa futexfs i eventpollfs. Osbluga Asynchronicznego I/O (AIO) ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Obsluga AIO zostala wlaczona do jadra 2.6. AIO umozliwia nawet jednemu watkowi aplikacji nakladac operacje I/O, podczas gdy inna je przetwarza, poprzez udostepnianie interfejsu do zglaszania jednego lub wiecej rzadan i/o w jednym wywolaniu systemowym (io_submit) bez czekania na zakonczenie, w jednym oddzielnym interfejsie (io_getevents) by sprzatac zakonczone operacje i/o zwiazane z podana grupa konczaca. Ponizej jest szybkie podsumowanie co obecnie dziala zgodnie z oczekiwaniami: - zapisy i odczyty AIO na surowych (raw) urzadzeniach (i O_DIRECT na blockdev) - zapisy i odczyty AIO na plikach otwartych przy pomocy O_DIRECT na ext2, ext3, jfs, xfs I co nie dziala zgodnie z oczekiwaniami i nie jest obslugiwane: - zapisy i odczyty AIO na plikach otwartych bez O_DIRECT (tj. AIO na normalnym buforowanym systemie plikow). Na ext2, ext3, jfs, xfs i nfs, te nie zwracaja szczegolnego bledu, ale cicho przelaczaja domyslny tryb na synchroniczny niz decyduja sie na zachowanie nie zgodne z AIO (tj. io_submit czeka na skonczenie i/o w tych przypadkach). W przypadku wiekszosci systemow plikow zglaszany jest -EINVAL. - AIO fsync (nie obslugiwany na zadnym systemie plikow) - odczyt i zapis AIO na gniazdach (sockets) (nie zwraca szczegolnego bledu, ale cicho przelacza domyslny tryb na synchroniczny niz decyduje sie na zachowanie nie zgodne z AIO) Jesli piszesz aplikacje AIO ktore uzywaja natywnych interfejsow AIO, potrzebujesz zainstalowac libaio-0.3.92 (dostepne pod adresem: http://www.kernel.org/pub/linux/kernel/people/bcrl/aio/) Wiecej informacji jest pod adresem http://lse.sf.net/io/aio.html Profilowanie. ~~~~~~~~~~~~~ - A system wide performance profiler has been included in 2.6. With this option compiled in, you'll get an oprofilefs filesystem which you can mount, that the userspace utilities talk to. You can find out more at http://oprofile.sourceforge.net/ - Potrzebujesz poprawionego dla 2.5 narzedzia readprofile. Obecne w util-linux od wersji 2.11z Udoskonalona obsluga tablicy BIOS. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - Linux obsluguje teraz liczne nowe rozszerzenia BIOSow. Obsluga prostej flagi rozruchu (Simple boot flag). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Specyfikacja SBF jest rozszerzeniem BIOSu x86 ktore pozwala na szybszy rozruch systemu. Robi to poprzez oznaczanie pola w CMOS mowiacego 'Rozruch byl w porzadku, pomin rozlegly POST przy nastepnym rozruchu' Narzedzie przestrzeni uzytkownika jest dostepne pod adresem: http://www.codemonkey.org.uk/projects/sbf/sbf.c Wiecej info o SBF jest pod adresem: http://www.microsoft.com/hwdev/resources/specs/simp_bios.asp Obsluga EDD. ~~~~~~~~~~~~ - Obsluga dla rozszerzonych uslug napedow dyskowych BIOS (BIOS Enhanced Disk Driver Services (EDD)) zostala dodana. Eksportuje informacje o tym co BIOS sadzi ktory naped jest rozruchowy i inne uzyteczne informacje do /sys/firmware/edd - Matt Domsch jest zainteresowany sukcesami/porazkami tego kodu przy uzyciu paru prostych testow opisanych pod adresem http://domsch.com/linux/edd30/results.html Udoskonalone monitorowanie systemu. ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ - lm_sensors. - Dostarczane z jadrami dystrybucji od lat, lm_sensors jest juz czescia kodu. Ma jednak inny interfejs. (/sysfs zamiast /proc) - http://www.xs4all.nl/~thospel/ASIS/bin/psensors to wygodny skrypt do przetwarzania nowych pol sysfs. - IPMI. (Intelligent Platform Management Interface) - IPMI to standard monitorowania sprzetu w systemie. - Strona domowa pod adresem http://openipmi.sourceforge.net - Specyfikacja pod adresem http://www.intel.com/design/servers/ipmi/spec.htm Wykrywanie procesorow x86. ~~~~~~~~~~~~~~~~~~~~~~~~~~ - Kod wykrywania procesorow mial porzadne przemebleowanie. By miec pewnosc, ze wszystkie wazne obejscia dotyczace twojego procesora sa wlaczone, sprawdz czy jest wykryty poprawnie. cat /proc/cpuinfo powie jak kernel widzi twoj procesor. - Podobnie, sterownik MTRR dla x86 zostal znaczaco przerobiony. Sprawdz czy XFre886 wlacza MTRRy w ten sam sposob jak w 2.4 (Bledy beda zanotowane w /var/log/XFree86.log) - Wczesne procesory PII Xeon i prawdopodobnie inne wczesne procesory PII wymagaja aktualizacji mikrokodu albo z BIOSu albo ze sterownika mikrokodu by obejsc bledu procesora ktore ujawnia szeregowanie procesow O(1). Moznesz odnalezc narzedzia z tym zwiazane pod adresem: http://www.urbanmyth.org/microcode/ - Kazdy regres powiniem byc zgloszony pod adres: mochel@osdl.org Cc: davej@codemonkey.org.uk Dodatkowe zatrucia (tainting). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Uruchamianie okreslonych procesorow AMD w maszynach SMP jest poza specyfikacja i spowoduje zatrucie jadra z flaga 'S'. Uruchamianie 2 Athlonow XP np. moze wydawac sie, ze przebiega gladko, ale moze spowodowac trudne do odnalezienia bledy. Z czasem jest prawdopodobne ze to zatrucie bedzie rozszerzone na inne przypadki poza specyfikacja. Dodatkowo, nowy interfejs modulow bedzie zatruwal kernel jesli sprobojesz zmusic modul by sie wladowal poprzez insmod -f. Zardzadzanie energia. ~~~~~~~~~~~~~~~~~~~~~ - 2.6 zawiera bardziej aktualna migawke sterownika ACPI. W razie problemow podczas rozruchu, sproboj bootowac z argumentem "acpi=off" by wylaczyc interkacje ACPI. ACPI ma wieksza role w podnoszeniu systemu w 2.6 niz w 2.4 - Stara opcja rozruchu "acpismp=force" jest juz przestarzala i bedzie ignorowana z powodu usuniecia starego parsera "mini ACPI". - Programowe wstrzymanie (software suspend) jest nadal w rozwoju i potrzebuje by to troche dopracowac. Uzywanie SMP i/lub PREEMPT nie zalecane. - Kod ACPI bedzie robic podstawowe sprawdzenia bezpieczenstwa na strukturze DMI w BIOSie by okreslic date powstania. BIOSy sprzed roku 2000 uwaza sie za zepsute. W niektorych okolicznosciach, to zalozenie jest nie prawdziwe. Jesli zobaczysz wiadomosc mowiaca, ze ACPI jest wylaczone z tego powodu, sproboj bootowac z acpi=force. Jesli wszystko jest w porzadku, wyslij wydruk dmidecode (http://www.nongnu.org/dmidecode) pod adres: acpi-devel@lists.sf.net z wyjasnieniem dlaczego twoj BIOS nie powinien byc na czarnej liscie. Sterowanie czestotliwoscia CPU (CPU frequency scaling). ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~ Niektore procesory maja metody sterowania ich napieciem/czestotliwoscia. 2.6 przedstawia interfejs do tej cechy, zobacz Documentation/cpufreq by zobaczyc wiecej informacji. Ta funkcjonalnosc obejmuje opcje takie jak Intel speedstep i Powernow! obecna w mobilnych Athlonach AMD. Dodatkowo, poza wariantami x86, ta architektura takze obsluguje rozne procesory architektury ARM. Mozesz znalezc demona przestrzeni uzytkownika monitorujacego zywotnosc baterii i regulujacego zgodnie z tym czestotliwosc pod adresem: http://sourceforge.net/projects/cpufreqd Szukanie MCE w tle. ~~~~~~~~~~~~~~~~~~~ Oblsuga sprawdzen maszyny zostala rozszerzona w taki sposob, ze regularnie szuka problemow na systemach z procesorami AMD Atholn i Intel Pentium 4. To moze spowodowac wyjatki sprawdzen maszyny (machine check exceptions) wydarzajace sie czesciej niz w 2.4 na systemach poza specyfikacja (Przetaktowanie/nie odpowiednie chlodzenie/za slaby zasilacz) LVM2 - DeviceMapper. ~~~~~~~~~~~~~~~~~~~~ Kod LVM1 zostalo calkowicie usuniete i zastapione o wiele lepiej zaprojektowanym 'device mapperem'. - Jest to wstecznie kompatybilne z formatem LVM1 - Device mapper jednak wymaga nowych narzedzi by zarzadzac woluminami. Mozna jest zdobyc pod adresem ftp://ftp.sistina.com/pub/LVM2/tools/ Opcje odpluskwiania. ~~~~~~~~~~~~~~~~~~~~ W okresie stabilizacji, jest prawdopodobne, ze opcje odpluskwiania w menu "kernel hacking" spowoduja sporo problemow. Zglos prosze jakiekolwiek problemy pod adres linux-kernel@vger.kernel.org zamiast wylaczac zwiazane z tym opcje CONFIG_. Wlaczenie kksymoops oznacza, ze kernel bedzie wypluwal automatycznie wygenerowane oopsy (Koniec podsylania ich do ksymoops). Z tego powodu, zawsze powinno sie wlaczac opcje w menu "kernel hacking" oznaczona "Load all symbols for debugging/kksymoops". Testy z CONFIG_PREEMPT takze zwieksza ilosc kodu odpluskwiajacego aktywowanego przez jadro. Wywlaszczanie jadra daje mam sposobnosc by wykonac duzo sprawdzen odpluskwiajacych, takich jak spanie podczas blokady (sleeping with locks held), scheduling while atomic, wychodzeine 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 uzycie dodatkowej optymalizacji, ktorej 2.4 nie uzywalo. To moze spowodowac bledy kompilatora, ktorych 2.4 nie ujawnialo. - Nie uzywaj gcc 3.0.x na x86 z powodu bledu obslugi wskaznika stosu. - gcc 2.96 nie jest obslugiwany z opcja CONFIG_GRAME_POINTER=y z powodu bledu obslugi wskaznika stosu. Sprawy bezpieczenstwa. ~~~~~~~~~~~~~~~~~~~~~~ Kilka spraw dotyczacych bezpieczenstwa, ktore zostlay rozwiazane w 2.4 nie zostaly przeniesione do 2.6. Dlatego jadra 2.6.x nie powinny byc testowane na niezaufanych systemach. Testowanie znanych z 2.4 naduzyc (eksploitow) i zglaszanie raportow mile widziane. SELinux. ~~~~~~~~ NSA Security-Enhanced Linux (SELinux) zostal wlaczony do 2.6. SELinux domyslnie nie jest wlaczony w konfiguracji. Jesli wlaczysz go w konfiguracji, domyslnie bedzie uaktywniony. Jesli takze uzywasz opcji rozruchu, mozesz jej uzyc do dezaktywowania go, w przeciwnym razie selinux=1 jest zbedny, gdyz to jest domyslne. Mozesz pobrac narzedzia SELinux i przykladowa konfiguracje polityki spod adresu: http://www.nsa.gov/selinux Siec. ~~~~~ - ebtables Kod firewalla obslugujacy architektury mostkowane (bridge) zostal wlaczony. By obslugiwac to bedziesz potrzebowal narzedzie ebtables dostepne pod adresem: http://users.pandora.be/bart.de.schuymer/ebtables/ Wiecej na ten temat (bridge-nf) mozna znalezc pod adresem http://bridge.sourceforge.net - Mostkowane pakiety moga byc teraz 'widziane' przez iptables. - IPSec Linux nareszcie ma obsluge IPSec. Uzyj portu narzedzi KAME spod adresu: http://sourceforge.net/projects/ipsec-tools Wiecej informacji pod adresem: http://www.lib.uaa.alaska.edu/linux-kernel/archive/2002-Week-44/1127.html Takze Bert Hubert napisal howto pod adresem: http://lartc.org/howto/lartc.ipsec.html Dodatkowo, ipsec-utils sa pod adresem: http://sourceforge.net/projects/ipsec-tools Herbert Xu ma tez laty wobec FreeSWAN 2.00 by umowliwic tej przestrzeni uzytkownika uzywac funkcjonalnosci IPSec w 2.6. Mozna je pobrac spod adresu: http://gondor.apana.org.au/~herbert/freeswan/ Dodatkowe HOWTO jest pod adresem: http://www.ipsec-howto.org - Niektore aplikacje moga spowodowac by jadro wypluwalo ostrzezenia 'process xxx using obsolete setsockopt SO_BSDCOMPAT' . - Bind 9.2.2. sprawdza #ifdef SO_BSDCOMPAT w poprawnie, wiec wystarczy rekompilowac. - bind9-host z debian testing to powoduje, podczas gdy pakiet 'host' nie. - proces `snmpd' uzywa przestarzalego setsockopt SO_BSDCOMPAT - proces `snmptrapd' uzywa przestarzalego setsockopt SO_BSDCOMPAT - ntop uzywa przestazalego (PF_INET, SOCK_PACKET) - Uzytkownicy maszyn z wiecej niz 1 karta sieciowa moga zauwazyc, np. ze eth0 i eth1 sa odwrotnie mapowane do urzadzen niz w 2.4. Spowodowane jest to bledem ktory zostanie naprawiony przed 2.6.0. Jednym z wyjsc (lub obejsciem) jest uzywanie 'nameif' by nazywac interfejsy ethernetowe. Jest HOWTO o tym jak to robic pod adresem: - Obsluga roznych nowych RFC. - RFC3173 (IP Payload Compression). - RFC3041 (IPv6 Privacy Extensions). - RFC2473 (IPv6 in IPv6 tunnels). - RFC2960 (SCTP - zobacz ponizej). - Linux osiaga zapadniecie sie zageszczenia ruchu pod wplywem duzego obciazenia siecowego. NAPI naprawia to sposrod wielu innych rzeczy i przeto poprawia wydajnosc sieci. Wiecej 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 wiadomosci (message oriented) protokolem transportowym z kontrola zageszczenia ruchu, obsluga multi-homingu i obsluga wielu szeregowanych strumieni wiadomosci. RFC2960 definiuje rdzen protokolu. Wiecej informacji o protokole mozna znalezc pod adresem http://www.ietf.org/rfc/rfc2960.txt a o jego implementacji w jadrze Linuksa pod adresem http://lksctp.sourceforge.net - Obsluga ANSI/IEEE 802.2 LLC type 2 Pelna implementacja stosu LLC 1 i 2, uzywana przez Appletalk, IPX i Token Ring, takze potrzebna dla istniejacego poza drzewem jadra, jeszcze nie funkcjonujacego stosu NetBEUI i dla Linux SNA To jest oparte na stosie opublikowanym pod licencja GPL przez Procom Inc dla jadra Linux 2.0.30. Kryptografia ~~~~~~~~~~~~ - Generyczne API kryptograficzne (crypto API) zostalo wlaczone, oferujac wsparcie wielu algorytmow (HMAC,MD4,MD5,SHA-1,SHA256,SHA384,SHA512,DES, Triple DES EDE, Blowfish, Twofish, Serpent, AES, CAST5, CAST6) - Ta funkcjonalnosc jest uzywana przez IPSec i crypto-loop. Jest mozliwe, ze bedzie to pozniej dostepne w przestrzeni uzytkownika poprzez crypto device, prawdopodobnie kompatybilne z OpenBSD - Zawarty w jadrze loopback moze teraz szyfrowac dzieki CryptoAPI. Moze wymagac nowych wersji narzedzi. - Przewodnik migracji z 2.4 do 2.6 dla cryptoloop jest pod adresem http://clemens.endorphin.org/Cryptoloop_Migration_Guide.html Przenosnosc. ~~~~~~~~~~~~ - 2.6 obsluguje pare nowych architektur. - x86-64 (AMD Hammer) - ppc64 - UML (User mode Linux) Wiecej informacji pod adrsem: 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, zostal odseparowany od arm. - Architektura x86 takze ma obsluge 'podarchitektur' by wspierac 'dziwne' maszyny x86 (zazwyczaj zabawki duzych chlopcow). Aktualnie wspierane podarchitektury to: - ES7000 - PC9800 (niekompletne) - VISWS (Bylo w 2.4, ale jest znow utrzymywany) - Voyager. (http://www.hansenpartnership.com/voyager/) - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - Historia wersji: 0.48 - gadgetfs cryptoloop howto URL. Wskazowki do list mailowych. 0.47 - Dodano URL do artykule o futeksach. Poprawka adresu listy mailowej libc-alpha. Jeff Garzik nie powinien otrzymywac informacji o problemach z routingiem przerwan Wyjasnienie potrzeby uzycia syslinux do boot diskow. Dodano depmod do listy znanych problemow Regres w EFS Dodano notke o mkinitrd w sekcji moduly. Rozliczne poprawki gramatyczne Wzmianka o tree(1) w sekcji sysfs Poprawki w SELinux. Hej, numeryczne sysctl sa wycofane, nie wywolania systemowe. Dokumentacja opcji oddzielnego katalogu podczas kompilacji. Zmiany w /proc/stat psuly wiecej niz tylko DOTS. Dodano sprawe japonskiej klawiatury do sekcji wejscie. 0.46 - Aktualizacja adresu email akpm. Wzmianka o LLC w sekcji siec. Dodano link do przewodnika migracji do 2.6. 0.45 - DEVFS jest przestarzaly. Dodano tlumaczenie pt_BR. 0.44 - lm_sensors. Obsluga podarchitektur x86. Link do dokumentacji 2.6 Josepha Pranevicha. Wzmianka o chattr +S Aktualizacja linku dmidecode. Poprawka URL do sbf.c Poprawki typogrficzne (s/proprietory/proprietary/) Link do zalatanej wersji cdda2wav. Wzmianka o systemach plikow ktore 2.6 faktycznie obsluguje. Mala notka o SELinux Dodano pare RFC ktore obslugujemy do sekcji Siec Zmiana IPVS na IPVS (IP Virtual Server) Dodatkowe algorytmy szyfrowania ktore crypto api obsluguje Kilka pozycji do sekcji TODO URL do AIO. Link do polskiego tlumaczenia. Poprawka adresu davej@suse.de Aktualizacja linku do hiszpanskiego tlumaczenia. 0.43 - URL do oprofile zmieniony. Aktualizacja adresu email Linusa Odrzucono raporty o wadliwym kompilatorze gcc 3.2.2-5 z Red Hata Usunieto odniesienia do cdrecord wersji Jensa, standardowa wersja jest juz ok. Dodano notke o glosniczku PC. Wzmianka o elevator=deadline dla ludzi od baz danych. Zlaczono 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 liste Alana o bledach IDE. Dodano obejscia translatorow geometrii. Wzmianka o ograniczeniach pliku wymiany. Zaktualizowano nowe opcje Reiserfs. Przeniesiono niektore opcje 'zarzucone' do 'usuniete'. Dodano sekcje 'Rzeczy wymagajace przeniesienia z 2.4' Link do strony internetowej sterownika touchpada synaptics. Aktualizacja URL narzedzi ipsec. Wzmianka o zmianach w usb-storage Moduly sa teraz .ko zamiast .o Wzmianka o tym jak zmienic elewator z linii polecen. Dokumentacja da statfs64() Tryb ext3 data=journal powinien byc juz naprawiony. Poprawka sciezki do iosched. Udokumentowano zmiany w USB. Dodano SCTP do Sieci. s/2.5/2.6/ w wiekszosci dokumentu. Wzmianka o AIO. Dodatkowy URL do IPSEC howto. Zarzucono numeryczne wywolania systemowe. 0.42 - CONFIG_LOG_BUF_SHIFT is now sanity checked by Kconfig Hyperthreading scheduler improvements. Emulacja ALSA OSS. 32bitowy uidy w nowym systemie przydzialu (quota). Nie wszystkie systemy plikow obsluguja nanosekundowy stat. Zanotowano, ze NTFS nadal nie jest R/W Wzmianka o CryptoLoop. 0.41 - V=0 jest teraz domyslny. Udokumentowano V=1 s/Redhat/Red Hat/ wszedzie. Dodano notke o sprawie sysenter z vmware. MTRR dla vesafb Rozne poprawki gramatyczne. Wybieralne elewatory. Domeny PCI 0.40 - Urzadzenia Callout tty sa usuniete. Dodano informacje o modulach w Red Hat 9 0.39 - Informacja o irqbalance. Informacja o komunikatach o przestarzalosci w ntop, snmp Dodano link do strony Davida Mosvergera o O(1). Wzmianka o latakach FreeSWAN Herberta Xu's. Dodano CONFIG_VGA_CONSOLE do listy znanych problemow. Dodano informacje o .config z 2.4 do listy znanych problemow. Przeredagowano notke o devpts. 0.38 - Poprawiono URL do nameif 0.37 - devfs users now need to mount devpts. Wzmianka o porcie h8300. Wzmianka o przepisaniu NTFS. 0.36 - Wlaczenie 'positive SCSI spin' Douga Gilbertsa. Wzmianka o NAPI. Zmiany w opisie obejscia bledu z procesorem ktore scheduler O(1) ujawnia. Dodano sekcje 'Znane problemy' 0.35 - Wzmianka o apletach panela KDE. mount --move, dmask, fmask Usunieto wzmianke o narzedziach oprofile bedacych w rozwoju. Wzmianka o blokadach ext2 (ext2 locking) oraz alokatorze orlova w ext2/ext3 0.34 - Usunieto URLe people.redhat.com NPTL na rzyczenie Ulricha Dreppersa. Dodano notke o odejsciu s390x. Rozliczne aktualizacje w kbuild. Wzmianka o plikach wymiany. Dodano wzmianke o -p1 i -p0 Pelno poprawek literowek od Randy'ego Dunlapa. RPM z RH9 wydaje sie miec problemy. 0.33 - Dodano sekcje RFC o systemie sieci. 0.32 - Dodano URL narzedzia zastepujacego Soundmodem. 0.31 - Zanotowano bledy z ext3 data=journal. 0.30 - Athlon powernow jest juz obslugiwany. 0.29 - Wzmianka o bledach kart sieciowych zwiazanych z ACPI/APIC oraz zmianie kolejnosci kart sieciowych. 0.28 - Komunikaty 'SO_BSDCOMPAT obsolete', nfsutils. 0.27 - radeon -> radeonfb 0.26 - Dodano informacje o readprofile. 0.25 - Dodano przyklad cdrecord. Dodano URL do hiszpanskiego tlumaczenia. 0.1->0.24 - Niezarejestrowana 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: (Wyslij prosze do mnie maila jesli jestes ich wlascicielem). PCI IDs (new_id, agpgart try_unsupported) gadgetfs libsysfs zmiany w kdev_t? Przerobka ISDN AFS DVB Hangcheck timer /proc/sysrq-trigger libata initramfs