Linux 2.6.30

Kilka godzin temu, tj. 9 czerwca o godzinie 20:36 letniego czasu pacyficznego, Linus Torvalds na liście mailingowej linux-kernel obwieścił wydanie jądra w wersji 2.6.30. Zwyczajowo pojawiło się w nim sporo nowości i usprawnień, z którymi choćby pokrótce warto się zapoznać.

Dwóch autorów napisało niusa o wydaniu jądra Linux: Sparrow1 oraz przemoc, jednakże ta wersja jest obszerniejsza, dlatego by nie siać zamętu, druga informacja została usunięta. szmergiell

Po testowaniu i poprawkach naniesionych w linii 2.6.29 efekt projektu Fastboot polegający na wprowadzeniu asynchronicznych rozwiązań w procesie rozruchu, pozwalających np. na równoległe skanowanie urządzeń magazynujących, został domyślnie włączony. Można o nim przeczytać w artykule na LWN: An asynchronous function call infrastructure. Czas rozruchu powinien być teraz zauważalnie krótszy.

Tak jak i w poprzednim wydaniu pojawiły się nowe systemy plików:

  • NILFS2 to system plików o budowie logu (ang. log-structured file system), w którym dysk jest traktowany jako ciąg następujących po sobie bloków (zwany logiem), a wszystkie operacje umieszczają dane na jego końcu. Tym samym nie ma nadpisywania danych, chyba że skończy się miejsce, wówczas zacznie się nowy cykl i zapis rozpocznie się od początku dysku. Takie podejście powoduje, że tworzenie nowych plików czy ich modyfikacja mogą być zamienione na sekwencyjne operacje, które są szybsze. Co więcej pady nie mogą zniszczyć systemu plików. Przy montowaniu wykrywany jest prawdziwy koniec logu i dalsza praca jest kontynuowana od tego miejsca. Miłą konsekwencją takiego rozwiązania jest to, iż log oferuje wgląd w historię wszelkich działań wykonywanych na dysku w przeszłości (z dokładnością do jego wielkości), co jest nazywane ciągłym snapshotowaniem (ang. continuous snapshotting), a sam NILFS2 pozwala na dostęp do tych snapshotów, umożliwiając także ich montowanie. Warto zapoznać się z dokumentacją i stroną projektu: http://www.nilfs.org/.
  • EXOFS to tradycyjny uniksowy system plików działający na szczycie urządzeń OSD (ang. Object-based Storage Devices). OSD to realizacja koncepcji zrywającej z tradycyjnym interfejsem dostępu do urządzeń magazynujących na poziomie bloków na rzecz interfejsu na wyższym poziomie – tablicy obiektów, na których to operuje system operacyjny nie będąc świadomym jak w istocie odbywa się składowanie danych. W tej wersji jądra protokół OSD działa w oparciu o stos SCSI. Dokumentacja exofs, OSD i artykuł na LWN: Linux and object storage devices pozwolą lepiej zrozumieć to zagadnienie.
  • FS-Cache to warstwa buforująca dla sieciowych systemów plików podobna do CacheFS obecnego na innych Uniksach. Dzięki niemu dane z sieciowych systemów plików mogą być trzymane na dysku, przyspieszając wiele operacji. Aktualnie wykorzystać ją potrafią jedynie NFS i AFS, ale warstwa ta jest ogólna, więc może być używana przez inne sieciowe systemy plików. Szczegółów dostarcza dokumentacja.

Tematu systemu plików nie wypełniają same nowości, ale także modyfikacje w istniejących rozwiązaniach (polecam podsumowanie pewnego wątku z listy mailingowej, który pojawił się po wydaniu wersji 2.6.29, dostępne na LWN: That massive filesystem thread):

  • zmiana nazwy pliku lub jego przycięcie skutkuje niewidocznym wewnętrznym wykonaniem bezpośrednio po tych działaniach operacji fsync() w ext3, ext4 i btrfs,
  • domyślny sposób księgowania przy obsłudze ext3 zmieniono z ordered, w którym dane zapisywane są w systemie plików zawsze przed metadanymi w dzienniku, na wydajniejszy writeback, w którym kolejność zapisów nie jest wymuszana,
  • nowy domyślny sposób aktualizacji czasu ostatniego dostępu do plików (tzw. atime) nazwany relatime dokonujący owej aktualizacji tylko jeżeli obecny czas ostatniego dostępu jest wcześniejszy aniżeli utworzenia (tzw. ctime) lub modyfikacji (tzw. mtime), a także nie rzadziej niż raz na dzień.

W kwestiach sieciowych mamy następujące usprawnienia:

  • Obsługa protokołu Reliable Datagram Sockets (RDS) o wysokiej przepustowości i małej zwłoce będącego niezawodnym protokołem komunikacji międzyprocesowej i systemem transportowym dla serwerów w klastrze. Używając go można na jednym gnieździe (ang. socket) prowadzić rozmowę z pozostałymi procesami w klastrze zamiast stosowania wielu gniazd jak ma to miejsce w przypadku gniazd zorientowanych na połączenia (ang. connection-oriented sockets) wykorzystywanych np. przez protokół TCP. Szczegóły są dostępne w dokumentacji.
  • Wstępna implementacja jeszcze niezatwierdzonej poprawki (a więc w oparciu o aktualne drafty) do standardu IEEE 802.11, ochrzczonej mianem 802.11w, zwiększającej bezpieczeństwo ramek zarządzających.
  • Wstępna obsługa NFS 4.1 w postaci mechanizmu sesji, który był niezbędny do zaimplementowania. Pozostałe funkcje są obecnie rozwijane poza drzewem. Skorzystanie z nowego protokołu wymaga aktualnej wersji nfs-utils.

Kernel doczekał się wsparcia kompresji algorytmami innymi niż GZIP, mianowicie BZIP2 i LZMA, które w porównaniu z GZIP zmniejszają jego rozmiar odpowiednio o około 10% w przypadku pierwszego i 33% w przypadku ostatniego. Choć oba są wolniejsze od GZIP (w obie strony), dekompresja LZMA trwa krócej niż BZIP2 , stąd można się spodziewać jej upowszechnienia z biegiem czasu w tym rejonie (w sferze typowo użytkowej dzięki 7-zip czy PeaZip radzi sobie doskonale).

Wywołania systemowe (ang. system calls) preadv() i pwritev() obecne już od jakiegoś czasu w systemach z rodziny BSD zagościły wreszcie także w Linuksie. Jak nazwa słusznie sugeruje to połączenie funkcjonalności odpowiednio syscalli pread() z readv() i pwrite() z writev(). Teraz możliwy będzie odczyt i zapis z zadanego offsetu w pliku (bez zmiany tego offsetu) bezpośrednio do wskazanych buforów. Bardziej zainteresowanych odsyłam do commitów: dac121, 6949a6 i f3554f.

Garść informacji dla programistów na poziomie jądra, czyli nowości, o których wypada wspomnieć:

  • obsługa przerwań w wątkach (ang. threaded interrupt handlers), przez co w sterownikach możliwe jest ustawianie procedury obsługi przerwania działającej we własnym wątku i oczekuje się, że sterowniki będą z tego korzystać, ostatecznie pozwalając na usunięcie udogodnień takich jak przestarzałe i wysłużone tasklety – obecny od linii 2.3 mechanizm odroczonego wykonywania funkcji w przerwaniach programowych (więcej na LWN: Moving interrupts to threads; commit 3aa551),
  • mutex z adaptacyjnym aktywnym oczekiwaniem (ang. adaptive spinning mutex) zaczerpnięty z drzewa -rt, zmieniający sposób rywalizacji o wzajemne wykluczanie na zbliżony zachowaniem do spinlocków o ile blokada założona jest na rdzeniu innym od tego wykonującego kod oczekujący na jej zdjęcie; zakłada się, że zdjęcie nastąpi w najbliższym czasie (szczegóły w commicie 0d66bf),
  • pula wątków dla długo wykonujących się zadań (ang. slow work item execution thread pool), która w przeciwieństwie do workqueues nie posiada sztywnego modelu jednego wątku per rdzeń dla każdego właściciela takiej kolejki zadań, a dynamiczny, regulujący liczbę wątków w zależności od obciążenia (dokumentacja i opis na LWN: The slow work mechanism; commity 07fe7c, 109d92, 12e22c i 8f0aa2f),
  • … i wiele innych niewymienionych tutaj – dokładniejsze informacje znajdziecie na LWN: API changes in the 2.6 kernel series.

Pozwolę sobie także przytoczyć za LWN (2.6.30 merge window, part I; 2.6.30 merge window, part II) jakie nowe sterowniki urządzeń dołączono do tego jądra:

  • blokowe: host adaptery PCI-Express SAS 6Gb/s, Marvell MMC/SD/SDIO,
  • graficzne: AMD R6xx/R7xx GPUs (tylko 2D na razie), framebuffer dla Samsung S3C,
  • sieciowe: modemy USB Qualcomm Serial, karty Marvell Libertas 8686 SPI 802.11b/g, karty bezprzewodowe PCI/PCIe Marvell 88w8xxx TOPDOG, adaptery bezprzewodowe Prism54 SPI (stlc45xx), adaptery bezprzewodowe USB Atmel at76c503/at76c505/at76c505a, urządzenia OpenCores 10/100 Mbps Ethernet MAC, urządzenia USB Atheros “otus” 802.11n i adaptery serwerowe PCIe Neterion X3100 Series 10GbE,
  • dźwiękowe: telefony Mitac MIO A701, kodeki Wolfson Micro WM8400 oraz WM9705, moduły Wolfson Microelectronics 1133-EV1, urządzenia DAC Atmel Audio Bitstream, kontrolery Atmel AC97, transmitery S/PDIF Asaki-Kasei AK4104, karty Echo Audio IndigoIOx i IndigoDJx, karty Turtle Beach Classic, Fiji i Pinnacle, karty dźwiękowe Asus Xonar Essence STX oraz urządzenia audio HTC Magician,
  • Video/DVB: kamery USB Mars-Semi MR97310A, szerokopasmowe tunery CMOS Freescale MC44S803, kamery USB oparte na SQ Technologies SQ905 i SQ905C, interfejsy sensorów kamer i.MX3x/i.MX1/i.MXL, demodulatory satelitarne ST STV0900, krzemowe tunery ST STV6110, krzemowe tunery Zarlink ZL10036, tunery oparte na LG Electronics LGDT3305, urządzenia USB Hauppauge HD PVR, odbiorniki DVB-T USB2.0 Intel CE6230, urządzenia USB przechwytywania obrazu Conexant cx231xx i demodulatory Legend Silicon LGS8913/LGS8GL5/LGS8GXX DMB-TH,
  • procesorowe i systemowe: płyty referencyjne oparte na SuperH SH7786, ESPT-Giga SH7763, platformy referencyjne SMSC z procesorami SH7709S, systemy Palm LifeDrive i Tungsten|T5, płyty główne Brivo Systems LLC ACS-5000, platformy Dave/DENX QongEVB-LITE, płyty deweloperskie Marvell RD-78×00-mASA, procesory Marvell PXA168 i PXA910, procesory TI OMAP850, płyty OMAP 3430 SDP, tablety internetowe Nokia RX-51, systemy Teltonika 3G Router RUT100, rdzenie Faraday FA526, rozwiązania SoC z rodziny Cortina Systems Gemini, płyty PowerPC GE Fanuc SBC310 i PPC9A, płyty Freescale Media5200, systemy AMCC Redwood(460SX), płyty Phytec phyCORE-MPC5200B-IO (pcm032), płyty Freescale MPC8544 (“Socrates”), procesory Tensilica S6000, referencyjne zestawy tworzenia kamer IP S6105 i płyty oparte na Merisc AVR32,
  • różne: akceleratory kryptograficzne AMCC PPC4xx, urządzenia PCI Adrienne Electronics Corporation do kodów czasowych, skanery kodów kreskowych Symbol 6608, kontrolery E-Ink Broadsheet/Epson S1D13521, kontrolery i2c NXP Semiconductor PCA9665, układy sensoryczne Siemens Syleus i Hades, układy sensoryczne National Semiconductor LM9524, interfejsy I2C monitorowania kontrolerów Hot Swap Linear Technology LTC4215, kontrolery pamięci IBM DDR2 PPC4xx, huby I/O AMD8111 HyperTransport, układy AMD8131 HyperTransport PCI-X Tunnel, regulatory napięcia PMIC TI TWL4030/TWL5030/TPS695x0, kontrolery do gier DragonRise, urzadzenia DAC National Semiconductor DAC124S085 SPI, kontrolery LED Rohm BD2802 RGB, kontrolery flashowych pamięci NAND TXx9 SoC i interfejsy sprzętowego monitorowania ACPI ASUS ATK0110.

Na powyższej liście (jak i we wcześniej podanych nowościach) nie znalazły się nawet-jeszcze-nieeksperymentalne sterowniki, tzw. staging drivers, które są trzymane z jądrem w celach czysto deweloperskich, tzn. aby ułatwić zarządzanie kodem (poprzez trzymanie go w jednym miejscu) i procesem późniejszego właściwego włączania ich do jądra.

Zmian w jądrze jest naturalnie dużo więcej niż udało mi się przedstawić, dlatego na koniec dla wytrwałych lista zmian z megabajtami tekstu. Szybkiej lektury życzę. Jeszcze cieplutkie archiwum ze źródłami nowego jądra jest standardowo dostępne pod adresem: http://kernel.org/pub/linux/kernel/v2.6/linux-2.6.30.tar.bz2

PS Oczywiście Tux ponownie został maskotką jądra wygryzając z tej pozycji diabła tasmańskiego. Widać nie będzie Tuz Racera. 🙁

żadnych reklam, sama wiedza.

Zarejestruj się na BEZPŁATNY NEWSLETTER i raz w tygodniu otrzymuj najważniejsze wiadmości
ze świata IT, nowych technologii i kryptowalut.

Bez reklam.

  1. Awatar SlashBeast
    SlashBeast

    Normlanie wykop efekt… kernel.org dziala, ale strasznie wolno i na stronie glownej nie ma 2.6.30 a eu.kernel.org w ogole nie dziala.

  2. Awatar przemoc
    przemoc

    W istocie Sparrow1 mnie ubiegł, ale decyzję o usunięciu jego wersji nie ja podjąłem (także nie byłem jej wykonawcą), więc mam nadzieję, że jednak mi wybaczy uboczny efekt napisania przeze mnie niusa.

  3. Awatar trasz
    trasz

    Mile, ze developerzy Linuksa w koncu wzieli sie w garsc i zaczeli implementowac rozwiazania obecne od lat w innych systemach – mowie m.in. o adaptive mutexes i interrupt threads, uzywanych w Solarisie, OSX czy FreeBSD. Z tym, ze tamte implementacje nadal sa lata przed Linuksem, bo w Linuksie interrupt threads to dodatek, a tam – podstawa dzialania kernela. Znakomicie upraszczajaca locking, warto dodac.

    1. Awatar przemoc
      przemoc

      Sam Linus oponował, żeby <code>request_irq()</code> zastępować nową wersję i miał w tym trochę racji, bo łatwiej (także z punktu widzenia kontroli jakości kodu) wprowadzić nową funkcję <code>request_threaded_irq()</code> i sukcesywnie poprawiać resztę kodu by z niej skorzystała niż dać nową wersję i poprawiać masę kodu. Myślę, że z czasem <code>request_irq()</code> praktycznie wypadnie z użycia, chociaż gorzej być może z zamkniętymi sterownikami, bo ich deweloperzy muszą sami się dostosować, a właściwie nie muszą i właściwie pewnie do tego za kurtyną pijesz, poniekąd słusznie.

  4. Awatar SlashBeast
    SlashBeast

    Zaraz po boocie 2.6.30 zauwazylem regresje w KMS, na konsoli zle ustawia mi monitor (rozdzialka 1280×800 ale obraz wyswietla jak na 800×600, na dole i po prawej mam puste miejsca) – w 2.6.30-rc8 bylo dobrze.

    1. Awatar joi
      joi

      napisz w takim razie raport o błędzie na LKML

    2. Awatar Michal
      Michal

      Zglos na bug liste

  5. Awatar yoshi314
    yoshi314

    ciekawe czy wsparcia kompresji kernela przez lzma oznacza ze dekompresor lzma trafił do jądra? jezeil tak, to byc moze niedlugo squashfs-lzma trafi do jądra?

    1. Awatar SlashBeast
      SlashBeast

      No skoro mozna juz uzywac LZMA zarowno dla obrazu jadra jak i dla initramfs, to raczej trafila.

      1. Awatar yoshi314
        yoshi314

        no tego to wlasnie nie jestem pewien.

        to ze jadro i initramfs mozna spakowac lzma nie musi od razu oznaczac ze algorytm automatycznie musi byc dostepny jest dla wszystkich podsystemow jadra. pytam bo chcialbym rozwiac potencjalne watpliwosci.

  6. Awatar Franek
    Franek

    Skopiowałem .config, z 2.6.29.4 – cały dzień nad nim pracowałem, jest dla mnie niemal idealny 😉 – a się okazje, że ten zadaje kilkanaście pytań o nowe funkcję (y/n/m) 😛 – znowu trzeba poczytać, ehhh przechlapane życie linux-ludka 😉

    1. Awatar LV
      LV

      Zainstaluj Vistę, o nic nie pyta.

      1. Awatar LeD
        LeD

        @LV
        Usiadłem kiedyś u kumpla przy Viscie i wyobraź sobie, że co chwilę o coś mnie pytała. Czy aby jestem pewny, że coś chcę zrobić…

        1. Awatar LV
          LV

          A podobno to ja wszystko, niezależnie od wszystkiego, traktuję poważnie… Vista to najbardziej upierdliwy system od niepamiętnych czasów, co jest dosyć znanym faktem (co prawda winę za to ponoszą głównie programiści firm trzecich, ale odbija się to na całości)…

        2. Awatar wujek_bogdan
          wujek_bogdan

          zawsze można wyłączyć UAC, tylko właśnie po to jest UAC, żeby użytkownik zdawał sobie sprawę z tego co robi. to taki odpowiednik sudo, chociaż do sudo to jednak mu wiele bratkuje.

          z UAC źle, bo system jest upierdlowy
          bez UAC też źle ze względów bezpieczeństwa.

          niestety nie ma tutaj idealnego rozwiązania.

        3. Awatar none
          none

          Przeciez Microsoft oficjalnie przyznal, ze implementacja UAC nie jest stworzona ze wzgledow bezpieczenstwa a jedynie po to, zeby irytowac uzytkownikow. Z tym bezpieczenstwem UAC naprawde sporo przesadziles.

        4. Awatar LV
          LV

          Mhm, a nie zmusić przypadkiem programistów do sensownego doboru prawy wymaganych od systemu itd.?

        5. Awatar LV
          LV

          *praw… tak, tak, zaraz idę spać.

        6. Awatar Led
          Led

          @wujek_bogdan
          zawsze można wyłączyć UAC

          Przy Viscie spędziłem jak na razie w sumie ~10 minut (ustawiałem coś znajomej). Nawet mi się nie chce szukać gdzie można toto wyłączyć.

        7. Awatar Paweł
          Paweł

          Ja wyłączyłem UAC, tam mi się wydawało. I co? Nic to nie zmieniło w sumie, jest może 5% mniej komunikatów. Dobrze, że to nie mój sprzęt, bo bym chyba oszalał.

  7. Awatar Mariusz
    Mariusz

    Szkoda że nie ma otwartych sterowników do ATI HD które obsługiwałby 3D (w tym Compiza)… 🙁 liczyłem że na 2.6.30 uda mi się to odpalić.. Niestety 🙁

    1. Awatar Jabbas
      Jabbas

      sterowniki radeonhd i radeon to nie jest część kernela.
      w kernelu leży tylko kod odpowiedzialny za DRI.

      1. Awatar val-gaav
        val-gaav

        Nie całkiem, z wprowadzeniem kms, sterowniki graficzne stają się coraz bardziej częścą kernela 😉

  8. Awatar Hakier
    Hakier

    wie ktoś gdzie ustawia się fastboot? Nigdzie nie moge tego znaleźć. Szukałem także na sieci ale tam tylko pytania bez odpowiedzi.

    1. Awatar Sparrow1
      Sparrow1

      Przyłączam się do pytania… Czy to jest wbudowane "na stałe" czy trzeba użyć jakiegoś configa?
      Pod "SCSI Device Support" jest opcja "Asynchronous SCSI scanning", ale nie wiem czy to to 🙂

      1. Awatar none
        none

        Jak nazwa wskazuje chodzi o urzadzenia SCSI ;>

      2. Awatar przemoc
        przemoc

        O ile czegoś nie przeoczyłem (o to łatwo w dużym projekcie, niemniej zgadzam się, że autorowi niusa to nie przystoi), to FastBooot po prostu jest włączony by default (tak jak napisałem w niusie) — commit 971079. Nie mam szczerze mówiąc czasu by teraz zanalizować ścieżkę użycia w libata/scsi i czy wymaga odpowiednich zmian w konfigu. Podejrzewam, że jeżeli podsystem SCSI wymagał wcześniej włączenia stosownej opcji by skanować urządzenia asynchronicznie, to tego nie zmieniali i dalej potrzebne jest jej włączenie.

        1. Awatar Sparrow1
          Sparrow1

          To jest ta opcja którą wymieniłem. W 2.6.29 jest domyślnie wyłączona, w 2.6.30 domyślnie włączona. Co do SCSI to o ile wiem całe SATA (i PATA jeśli używa się nowszych driverów) jest traktowane jako SCSI więc teoretycznie powinien być jakiś efekt. O ile ktoś używa kilku twardych dysków, bo przy jednym to wątpie czy będzie różnica 😉

  9. Awatar kocio
    kocio

    Świetny artykuł, wielkie dzięki – rzadko ktoś zorientowany we wnętrzu oprogramowania ma motywację, żeby coś opowiedzieć reszcie (np. takim jak ja, którzy rozglądają się raczej dokoła niż wgłąb). W dodatku ładnie po polsku (tylko kilka rzeczy retuszowałem). A pamiętam kiedyś jak zespół LN marudził, żeby nie pisać niusów o nowych wersjach jądra, bo wystarczy automatycznie aktualizowany link do bieżącej wersji…

    Jak ktoś chce poczytać więcej po polsku, to polecam też bardzo fajną serię w Heise Online:

    http://www.heise-online.pl/open/Jadro-Linux-co-pr…

  10. Awatar pelnalufa
    pelnalufa

    kernel panic! ozyly dawne wspomnienia! znow czuje sie mlody! 🙂

  11. Awatar Ponton
    Ponton

    Co to znaczy, że dodano sterowniki do kart graficznych i dźwiękowych? Czy takie sterowniki nie są już w X.orgu i ALSA?

    1. Awatar yab
      yab

      ALSA to część kernela, a z tego co się orientuję, to sterowniki z xorga potrzebują też odpowiednich modułów kernela, żeby działała akceleracja.

    2. Awatar Sławek
      Sławek

      Myślę, że nie. Na pewno nie zamknięte. Chodzi tu może o włączenie takich projektów, jak Noveau, itd. Nie pełny sterownik siedzi w serwerze X-ów. Większość obecnych sterowników zamkniętych dostarcza własnego sterownika bufora ramki i dla X-ów.

  12. Awatar Moses
    Moses

    jeee ale sobie "pokompiluję" 😀 shit tylko ze mój aktualny kernel to 2.6.28-11 ale to chyba nie problem? to moja pierwsza kompilacja jajka więc życzcie mi powodzenia 😉

    1. Awatar norbert_ramzes
      norbert_ramzes

      Kompilować to można na czymkolwiek. Niektórzy zapaleńcy kompilują Linuksa na Windowsie 🙂

      1. Awatar morsik
        morsik

        To jest już chyba zboczenie zawodowe 😀

        1. Awatar norbert_ramzes
          norbert_ramzes

          http://www.google.pl/search?q=%22linux+on+windows… http://www.colinux.org/screenshots/boot.png http://www.colinux.org/screenshots/knoppix.png

          Kiedyś gdzieś czytałem o samiusieńkim jądrze Linuksa pracującym na XP dlatego bo nie dało się inaczej rozwiązać problemu (nie pamiętam ani nazwy projektu ani do czego to służyło – jutro poszukam bo mi się oczy same zamykają…).

        2. Awatar norbert_ramzes
          norbert_ramzes

          Za pierona nie mogę znaleźć.

          Ktokolwiek widział, ktokolwiek wie, proszony jest o linka.

        3. Awatar Sławek
          Sławek

          Chodziło pewno o korzystanie z Linuksowych systemów plików pod Windowsem. Artykuł jest na osnews.

        4. Awatar norbert_ramzes
          norbert_ramzes

          Dzięki za odświeżenie pamięci. Znalazłem: http://serwer22962.lh.pl/ext3-reiserfs-i-xfs-w-windows-dz…

          Głowy nie dam ale chyba o to mi chodziło.

  13. Awatar tadzik_
    tadzik_

    Jest może gdzieś gotowa łata wsadzająca z powrotem Tuza na miejsce Tuxa?

    1. Awatar przemoc
      przemoc

      Commit Rusty'ego wprowadzający Tuza to: 8032b5, a revert dokonany przez Linusa to: 3d4f16. Swoją drogą <code>git.kernel.org</code> lekko obciążony jest…

      1. Awatar jellonek
        jellonek

        no byl wczoraj calkiem niezle – wieczorem juz calkiem ok dzialal…

  14. Awatar guitar
    guitar

    I’m impressed, I must say. Seriously hardly ever before do I encounter a website that is definitely each educative and entertaining, and let me let you know, you’ve got hit the nail about the head. Your believed is exceptional; the problem is a thing that not ample individuals are talking intelligently about. I’m very blissful that I stumbled all the way through this in my look for one particular issue referring to this

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany. Wymagane pola są oznaczone *