|
Kernel Traffic Latest | Archives | People | Topics |
Wine Latest | Archives | People | Topics |
GNUe Latest | Archives | People | Topics |
| Czech |
| Home | News | RSS Feeds | Mailing Lists | Authors Info | Mirrors | Stalled Traffic |
linux-kernel FAQ | zapisz się na linux-kernel | archiwa linux-kernel | kernelnotes.org | Nawigator po źródłach Linuksa LxR | Wszystkie jądra | Porty jądra Linuksa | Dokumentacja do jądra | Encyklopedia Gary'ego: jądro Linuksa | #kernelnewbies
Table Of Contents
| 1. | 17 Jul 2001 - 24 Jul 2001 | (16 posts) | Funkcje haszujące |
| 2. | 20 Jul 2001 | (2 posts) | Zbliżając się do 2.5 |
| 3. | 21 Jul 2001 - 23 Jul 2001 | (6 posts) | Sytuacja debuggerów jądra |
| 4. | 22 Jul 2001 - 23 Jul 2001 | (10 posts) | Sytuacja systemów plików z księgowaniem |
| 5. | 23 Jul 2001 - 25 Jul 2001 | (2 posts) | Stan prac nad obsługą NTFS |
| 6. | 24 Jul 2001 | (3 posts) | Automatyczne uruchamianie/automatyczne wykrywanie (autorun/autodetect) macierzy RAID |
| 7. | 25 Jul 2001 | (1 post) | Nowe wydanie "Linux Device Drivers" |
| 8. | 26 Jul 2001 - 27 Jul 2001 | (12 posts) | Nowe zasady używania funkcji 'inline' dla GCC 3.0 |
| 9. | 26 Jul 2001 | (2 posts) | Maksymalna liczba otwartych plików |
Introduction
Chciałbym zwrócić Waszą uwagę na tekst i odnośnik na dole każdej strony w tym serwisie (kt.zork.net). Jeśli jeszcze nie słyszeliście, rosyjski programista Dmitry Sklyarow został aresztowany w tym miesiącu pod zarzutem pogwałcenia zasad DMCA - Ustawy o prawie autorskim cyfrowego tysiąclecia (The Digital Millenium Copyright Act). Electronic Frontier Foundation odegrało znaczącą rolę w przekonaniu Adobe do wycofania początkowych zarzutów, ale Sklyarow cały czas jest oskarżony o pogwałcenie DCMA i może zostać uwięziony. Wiele osób próbuje przekonać rząd amerykański do jego uwolnienia. Jeśli chcecie uczestniczyć w tych wysiłkach, możecie skorzystać z listy dyskusyjnej free-sklyarov Na całym świecie miało już miejsce wiele protestów w tej sprawie, a kolejne są planowane. Więcej informacji na ten temat uzyskacie na stronie http://www.freesklyarov.org/.
Mailing List Stats For This Week
We looked at 1024 posts in 4349K.
There were 406 different contributors. 168 posted more than once. 151 posted last week too.
The top posters of the week were:
1. Funkcje haszujące
17 Jul 2001 - 24 Jul 2001 (16 posts) Archive Link: "Implementacja zwykłych tablic haszujących"
Summary By Zack Brown
People: Larry McVoy, Daniel Phillips
Brian J. Watson chiał wypracować powszechną implementację tablic haszujących, zgodnie z wytycznymi z include/linux/list.h; gdy natrafił na include/linux/ghash.h, pomyślał, że ktoś już to przed nim zrobił, dopóki nie zauważył notki o prawach autorskich z 1997 roku. Zauważył także, że ten kod nie jest przez nikogo używany, więc zapytał czy istnieje zapotrzebowanie na coś ciut nowszego. Richard Guenther zaproponował sprawdzenie pewnego kodu, generującego kod dla statycznych tablic haszujących. Larry McVoy dodał:
Mamy już całkiem fajny interfejs do tablic haszujących w BitKeeperze, który chcielibyśmy udostępnić na zasadach GPL. Zawsze myślałem, że fajnie byłoby mieć go i w jądrze -- my wykorzystujemy go wszędzie.
http://bitmover.com:8888//home/bk/bugfixes/src/src/mdbm
pozwoli Ci się mu bliżej przyjżeć. Ogólny interfejs jest zbliżony do gdbm() i dostępne są wersje opierające się zarówno na pliku jak i na pamięci. Interfejs został zaprojektowany tak, aby być użytecznym zarówno w dużych jak i w małych plikach konfiguracyjnych; o ile dobrze pamiętam możesz mieć hasza 128-bajtowego.
Daniel Philips aż oblizał usta na samą myśl o możliwości testowania nowych tablic haszujących, ale dodał: "sądzę, że osoba, która zaczęła ten wątek miała na myśli raczej ogólny interfejs do wstawiania, usuwania i przeszukiwania, który jest obecnie wykorzystywany w kilku miejscach w prawie ogólny sposób. Jedyne miejsce, w którym tak nie jest to hasz w buforach, ale nie widzę powodu dla którego tak się stało. To byłby dobry punkt wyjścia dla demonstracji." Brian także się podekscytował postem Larry'ego, ale przyznał rację Danielowi, że chodziło mu o coś nieco innego.
Daniel wynurzył się z głębi kodu ogłaszając:
Przetestowałem wszystkie implementacje, żeby zobaczyć, jak sobie poradzą z indeksowaniem katalogów. Tak naprawdę są tylko dwa kryteria oceny:
Moich testów nie można raczej nazwać precyzyjnymi. To co głównie robię to haszowanie wielu nielosowych ciągów znaków i sprawdzanie czy ich rozkład po rozrzuceniu jest w miarę jednostajny. *Jedyną* funkcją ze zbioru Larry'ego, która dobrze działała z punktu widzenia losowości był hasz liniowy bazujący na własnościach kongruencji (,,linear congruential hash'') - był prawie tak dobry jak mój dx_hack_hash.
Niespodziewanie, przynajmniej dla mnie, okazało się, że CRC32 zachowuje się w niezwykle zmienny sposób. Z małą liczbą ,,kubełków'' (powiedzmy 100) daje sobie dobrze radę, ale przy większej ich liczbie rozkład okazuje się być dość dziwny. Oczywiście to co piszę jest zbyt mało precyzyjnym sposobem opisu tego, co się zdarzyło i powinienem się temu bliżej przyjrzeć. Nie mam odpowiednich podstaw matematycznych, aby być tego w pełni pewnym, ale podejrzewam, że CRC32 nie jest w ogóle optymalizowana z punktu widzenia losowości - jest optymalizowana ze względu na wykrywanie błędów w pojedynczych bitach i ma dobre własności w odniesieniu do sąsiadujących bitów, własności, które nie są użyteczne w funkcjach randomizujących. W każdym razie nie byłem taki znowu nieszczęśliwy widząc, że CRC32 nie zachowuje się dobrze z dwóch powodów: a) tablica xor, 1K pokazałaby 25% wzrost kodu opowiadającego za indeksowanie i b) haszowanie przez tablice zjada dodatkowe 1K cennego cache 1L.
Liniowy hasz oparty na kongruencji ze zbioru Larry'ego i mój dx_hack_hash mają wspólną cechę: obydwa kodują każdy znak przy użyciu pseudolosowego ciągu. W haszu Larry'ego jest to liniowa sekwencja kongruentna, w moim jest to zwrotne przesunięcie rejestru. Dodatkowo, używam zwielokrotnienia tak, żeby rozproszyć efekt kodowania pojedynczych znaków na szerszy zakres bitów.
Hasz Larry'ego tego nie robi i można zauważyć, że łańcuchy znaków, które różnią się tylko ostatnim znakiem nie będą rozrzucane losowo. To mogłoby działać trochę lepiej gdyby haszowanie było robione bardziej w ten sposób:
- ((h) = 0x63c63cd9*(h) + 0x9c39c33d + (c))
+ ((h) = 0x63c63cd9*(h + (c)) + 0x9c39c33d)
Nie próbowałem tego, ale spróbuję.
Jest paru ludzi, którzy wiedzą dużo więcej ode mnie o analizowaniu funkcji skrótu i gdzieś w mojej skrzynce pocztowej są ich nazwiska. Poproszę ich wkrótce o przetestowanie całego pakietu funkcji, które były mi w ostatnich miesiącach podsuwane. Tak czy inaczej, gdybyście jeszcze tego nie odkryli, ten rodzaj działalnosci jest naprawdę czasochłonny.
2. Zbliżając się do 2.5
20 Jul 2001 (2 posts) Archive Link: "Linux 2.5"
Summary By Zack Brown
People: Thiago Vinhas de Moraes, Andre Dahlqvist
Thiago Vinhas de Moraes spytał:
Chciałbym zapytać czego jeszcze brakuje aby rozpocząć prace nad serią 2.5, i dlaczego seria 2.4 nie została przekazana pod opiekę Alana Coksa.
Pytam, ponieważ uważam, że seria 2.4 jest już wystarczająco stabilna i sądzę, że należy rozpocząć rozwój 2.5.
Obecnie w serii 2.4 dołączane są jedynie małe poprawki, które bez żadnego problemu mogłyby być dokonywane przez Alana.
Czy Linus ma jakiś plan dotyczący przekazania kierownictwa nad 2.4 i rozpoczęcia prac na wspaniałym jądrem 2.5?
Andre Dahlqvist opdarł:
21 czerwca Linus wypowiedział się następująco w poście wysłanym na linux-kernel:
"Wygląda na to, że rozpoczniemy zabawę z 2.5.x za tydzień czy dwa, więc nie mówimy o jakiś odległych terminach".
Zatem przypuszczalnie planuje rozpoczęcie prac na 2.5.x niebawem (osobiście sądzę, że stanie się to w momencie ukazania się jądra 2.4.8, ale to tylko takie moje gdybanie :-)
Linus Torvalds nie miał nic do powiedzenia.
3. Sytuacja debuggerów jądra
21 Jul 2001 - 23 Jul 2001 (6 posts) Archive Link: "kgdb i/lub kdb dla RH7.1"
Summary By Zack Brown
People: Keith Owens, Amit S. Kale
Michael S. Miles spytał czy istnieją łaty z debuggerami jądra kgdb lub kdb dla wersji 2.4.2-pre2 i zaproponowałał pomoc w ich stworzeniu, o ile nie istnieją. Keith Owens odpowiedział:
Na stronie ftp://oss.sgi.com/projects/xfs/download/Release-1.0/patches/linux-2.4.2-kdb-04112001.patch.gz jest kdb v1.8 dla Red Hata 7.1. W łacie cie ma żadnych zależności od XFS, ale kdb i xfs współdzielą kilka plików, więc pewnie będziesz musiał uporać się z tym, że łata nie zaaplikuje się czysto.
Dużo łatwiej zacząć od tej łaty niż próbować dostosować łatę kdb na zwykłe jądro do jądra Red Hata. RH używa łat z serii -ac, które dość mocno zamieszały w kdb i zajęło mi kilka godzin, aby dojść do tego co RH napsuł i przygotować łatę z kdb. AFAICR, łata IKD nie pasuje zbyt dobrze do RH 7.1.
Troche później Keith odpowiedział sobie mówiąc: "Poprawka, to jest łata na standardowe jądro 2.4.2. Najlepsza dla Ciebie, jakie mi się udało znaleźć to: ftp://oss.sgi.com/projects/xfs/download/testing/Release-1.0.1-PR3/patches/patch-RH2.4.3-xfs-1.0.1-kdb Łata jest zrobiona dla jądra z Rawhide, a nie RH 7.1, ale powinna być dość podobna. Tyle łat, a tak mało czasu :(."
Z kolei Tigran Aivazian wskazał na http://kgdb.sourceforge.net/, mówiąc, że jest to utrzymywane przy życiu przez Amita S. Kale. Amit odpowiedział:
Na razie nie robię łaty z kgdb na RH7.1. Oto wyciąg z właśnie uaktualnionego FAQ na stronie.
Dlaczego tylko jedna wersja jądra jest obsługiwana? Rozwijam kgdb i piszę do niego dokumentację dość często i regularnie. Ten proces jest łatwy do przeprowadzenia z jedną wersją jądra, ponieważ mogę równolegle pracować nad samym jądrem jak i jego współpracą z kgdb. Osobiście używam kgdb do pracy w nowych jądrach nad systemami plików. Utrzymywanie kgdb dla starszych wersji jądra wymagałoby konwersji nowych rzeczy dla ich potrzeb i testowania. Zazwyczaj łata z kgdb działa z wieloma wersjami jądra, choć być może trzeba ręcznie poprawiać parę drobnych niezgodności. Gdy rozpocznie się rozwój jądra 2.5, chcę aby kgdb obsługiwało zarówno 2.4, jak i 2.5.
4. Sytuacja systemów plików z księgowaniem
22 Jul 2001 - 23 Jul 2001 (10 posts) Archive Link: "OT: Porównanie sytemów plików z księgowaniem"
Summary By Zack Brown
People: Ian Chilton, Hans Reiser, Tigran Aivzian, Martin Knoblauch
Ian Chilton zapytał o względne zalety oraz sytuację różnych systmów plików z księgowaniem: ext3, reiserfs, XFS oraz JFS. Powiedział:
Wyróżnia się ext3, z powodu swej zgodności z ext2 - sprawia ona, że łatwo jest przejść z ext2 na ext3 bez utraty/przenoszenia danych. Łatwiej także przenieść napęd z jednej maszyny do innej bez obawy o to, czy w drugim jądrze wkompilowana jest obsługa reiserfs czy też inne ustrojstwa.
Jednakże słyszałem, że ext3 jest wolniejszy (najwyraźniej z powodu dodatkowych operacji zapisywania) i czasami niestabilny.
Słyszałem także, że ReiserFS jest najszybszy z całej stawki, ale przy konwersji tracone są wszystkie dane, no i oczywiście ratowanie danych i przenoszenie dysków jest utrudnione. Dołączony jest on za to w oficjalnym jądrze..
Steven Cole wskazał na stronę, która wygląda na martwą, a Constantin Loizides podał odnośnik do swojej strony poświęconej reiserfs.
Było również kilka innych komentarzy. Hans Reiser powiedział: "Ostatnia łata ReiserFS do NFS dla Linuksa 2.4 najwyraźniej była dobra, bo nie słyszę więcej narzekań na tandem reiserfs i nfs. Jednak to dość swieża poprawka, więc zobaczymy." Tigran Aivazian stwierdził gdzie indziej: "gdy robiłem własne testy używając SPEC SFS jako punktu odniesienia, wybór był oczywisty -- reiserfs bił wszystko inne na głowę. Przynajmniej wszystko powszechnie dostępne. (to nie było tak dawno -- ledwie jakieś 2 miesiące temu)." Hans zauważył: "SPEC SFS nie jest wolnym ani tanim testem wzorcowym, co niestety uniemożliwiło nam optymalizację reiserfs pod jego kątem, a szkoda, bo przypuszczam, że wiele byśmy się nauczyli analizując jego wyniki." W trakcie dalszej dyskusji Martin Knoblauch spytał: "jaki jest stopień włączenia różnych łat ReiserFS do głównego jądra i gałęzi Alana? Np. wygląda na to, że łata ,,umount'' nie została włączona do żadnego z jąder 2.4.[5-7]." Hans odpowiedział: "Funkcjonalny odpowiednik tej łaty został włączony w 2.4.6" .
5. Stan prac nad obsługą NTFS
23 Jul 2001 - 25 Jul 2001 (2 posts) Archive Link: "Stan prac nad obsługą NTFS, było Re: [PATCH] 2.4.7 Więcej drobnych poprawek do NTFS"
Summary By Zack Brown
People: Anton Altaparmakov
Gabriel Rocha spytał, jak wygląda obsługa NTFS pod Linuksem, czy nadal jest w fazie ,,kiepskiej obsługi''. Anton Altaparmakov odparł:
Odpowiem jako obecny zarządca kodem NTFS. (-:
Jeśli przez ,,kiepską obsługę'' rozumiesz, że projekt był przez dłuższy czas nierozwijany, to rzeczywiście wiele się zmieniło. Obsługa NTFS w jądrze Linuksa i po stronie programów użytkownika jest aktywnie rozwijana. Teraz z przyjemnością otrzymuję różne łaty i przekazuję dalej do Linusa, o ile na to zasługują, bądź włączam je do mojego lokalnego jądra, aby poźniej odesłać w postaci większej łaty (zależy to od błahości łatek). Zawsze staram się jak najszybciej odpowiadać na różne zapotrzebowania/raporty o błędach/itp. Aktualnie czas reakcji waha się pomiedzy 5min. a tygodniem, w zależności od tego, jak jestem zajęty.
Jeśli przez ,,kiepską obsługę'' rozumiesz, że nie działa zbyt dobrze, to to też się znacząco poprawiło. Mamy już w pełni funkcjonalny program mkntfs po stronie używtkownika oraz ntfsfix, który naprawia szkody wyrządzane przez sterownik ntfs, co czyni pracę z ntfs pod Linuksem nieco bezpeczniejszą. Sam sterownik przez ostatnie kilka miesięcy znacznie się poprawił. Zapisywanie działa całkiem dobrze o ile działa się na systemie jednoprocesorowym, i o ile działa się na małych plikach i katalogach. Cały czas pozostaje gros pracy do wykonania, więc na razie tylko prostsze przypadki działają. Odczytywanie działa w miarę stabilnie i w zakresie odczytu atrybutów plików zarówno skompresowanych jak i nieskompresowanych większość rzeczy jest już zaimplementowana. Teraz możemy się zająć się dużymi plikami aż to górnych ograniczeń NTFS (np. teraz walczymy z plikami o rozmiarze do 2^63 bajtów) żeby wymienić tylko jeden przykład usprawnień.
Gwoli podsumowania: pracujemy ciężko, ale nie wstrzymuj oddechu. NTFS ma bardzo złożoną strukturę i jest nędznie udokumentowany. Większość naszej wiedzy bazuje na reverse engineeringu i zaglądaniu bezpośrednio w struktury dyskowe przy użyciu edytorów dysku i to zajmie trochę czasu zanim otzymamy w pełni działającą i w pełni funkcjonalną implementację NTFS...
Koniec Wątku (tm).
6. Automatyczne uruchamianie/automatyczne wykrywanie (autorun/autodetect) macierzy RAID
24 Jul 2001 (3 posts) Archive Link: "[PATCH] dodanie interfejsu "autorun" (automatycznego uruchamiania) do md"
Summary By Adam Buchbinder
People: Kees Cook, Neil Brown
Kees Cook zakładał wyjmowalną macierz RAID, i zauważył: "Po starcie (lub jako moduł) sterownik "md" nie posiada interfejsu do uruchomienia funkcji "autostart_arrays". W przypadku wyjmowalnych dysków (np. USB, lub w moim przypadku, FireWire), jako że dyski mogą nie pojawiać się w tym samym miejscu, lub w tej samej kolejności, standardowe narzędzie ,,raidstart'' z pakietu raidtools nie będzie działało (wywołując interfejs md.c ,,raidstart''), ponieważ nazwy urządzeń się nie zgadzają. " Wysłał on wstępną łatę umożliwiającą automatyczne wykrywanie jego macierzy, i poprosił o uwagi.
Neil Brown odpowiedział, że także pracuje nad sterownikiem md, i zaproponował Keesowi dołączenie się do listy dyskusyjnej linux-raid@vger.kernel.org. Kontynuował: "automatyczne uruchamianie/automatyczne wykrywanie po prostu nie jest częścią jądra. Powinno to być wykonywane w przestrzeni użytkownika. Jądro powinno samo montować macierz raid tylko w przypadku urządzenia root." Ciągnął dalej: "To prawda, że nie istnieje obecnie żadne narzędzie przestrzeni użytkownika, które wykonuje zadania równoważne do automatycznego wykrywania, ale wkrótce takie się pojawi." Wysłał odnośnik do bieżącej wersji beta swego kodu pod adresem: http://www.cse.unsw.edu.au/~neilb/source/mdctl/ i wątek się zakończył.
7. Nowe wydanie "Linux Device Drivers"
25 Jul 2001 (1 post) Archive Link: "Linux Device Drivers dostępne online"
Summary By Adam Buchbinder
People: Jonathan Corbet
Jonathan Corbet napisał:
Drugie wydanie książki _Linux_Device_Drivers autorstwa Alessandro Rubiniego i mojego w końcu jest dostępne online. Znajdziecie je pod adresem:
http://www.xml.com/ldd/chapter/book/index.html
Książka znajduje się tam w formie HTML-a, PDF-a i XML-a (DocBook). Wydana jest na licencji GNU FDL, która pozwala na jej redystrybucję i wszystkie inne fajowe rzeczy.
Nie było odpowiedzi.
8. Nowe zasady używania funkcji 'inline' dla GCC 3.0
26 Jul 2001 - 27 Jul 2001 (12 posts) Archive Link: "[PATCH] gcc-3.0.1 i 2.4.7-ac1"
Summary By Adam Buchbinder
People: Alan Cox, Linus Torvalds
Petr Vandrovec przesłał łatkę zmieniającą kilka funkcji "extern inline" na "static inline" tak, by działały z gcc w wersji 3.0.1 2 0010721 (Debian prerelease) i wywołał tym prawdziwe poruszenie i płomienne dyskusje. Alan Cox zaproponował, "Naprawić gcc. Używamy 'extern inline', aby powiedzieć 'musi być inline' i taką zwykło mieć to semantykę. Niektóre z naszych funkcji 'inline' nie będą działać jeśli kompilator nie potraktuje ich jako 'inline'. " Linus Torvalds wyraził swoją opinię:
Kłóciłem się już o to parę lat temu z ludźmi od gcc i dali mi oni bardzo logiczny argument na uzasadnienie obecnej semantyki.
Jedyny problem z "static inline" był w _naprawdę_ starych wersjach gcc, które robiły źle, bo używały statycznych wersji funkcji w _każdej_ kompilowanej jednostce, niezależnie od tego czy było to potrzebne. Te wersje gcc i tak nie działają obecnie z jądrem, więc..
Uważam, że obecna semantyka gcc (a) daje większe możliwości niż stara (b) jest używana dostatecznie długo, więc zamiana nie będzie bolesna dla Linuksa. Krótko mówiąc, moglibyśmy nawet na tym skorzystać, a jeśli nie, to powinniśmy przerzucić wszystkich aktualnie używających "extern inline" na "static inline".
9. Maksymalna liczba otwartych plików
26 Jul 2001 (2 posts) Archive Link: "Zwiększenie liczby otwartych plików"
Summary By Adam Buchbinder
People: Edouard Soriano, Nick DeClario
Edouard Soriano zgłosił, że musi "zamykać niektóre okienka w systemie, żeby wykonać jakieś inne zadania" , i sądził, że być może system używa maksymalnej liczby równocześnie otwartych plików. Spytał, czy można ustawić coś w /proc żeby to zmodyfikować.
Nick DeClario odpowiedział, mówiąc, że "maksymalna liczba plików jest zawarta w /proc/sys/fs/file-max. Domyślnie jest to 4096. Spróbuj zmienić to na 8192, to powinno pomóc. " Nie było więcej odpowiedzi.
Sharon And Joy
Kernel Traffic is grateful to be developed on a computer donated by Professor Greg Benson and Professor Allan Cruse in the Department of Computer Science at the University of San Francisco. This is the same department that invented FlashMob Computing. Kernel Traffic is hosted by the generous folks at kernel.org. All pages on this site are copyright their original authors, and distributed under the terms of the GNU General Public License version 2.0. |