|
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 |
Table Of Contents
| 1. | 17 Oct 2001 - 21 Oct 2001 | (25 posts) | Dalsza dyskusja nad piętnowaniem jądra związanym z licencjami |
| 2. | 20 Oct 2001 - 23 Oct 2001 | (19 posts) | Nowa łata wywłaszczająca jądro |
| 3. | 22 Oct 2001 - 24 Oct 2001 | (25 posts) | Dalsze dyskusje na temat podsystemu VM |
| 4. | 24 Oct 2001 | (6 posts) | Stan supermount |
Introduction
Noam Chomsky dał niewiarygodny wykład na MIT na temat wojny, jako część Forum Technologii i Kultury MIT. Aby go posłuchać, potrzebujecie realplayera. Jeśli ktoś zna źródło mp3, niech da mi znać.
Serdecznie polecam lekturę. Tym, którzy nie znają Chomsky'ego, na stronach Google jego sekcja.
Mailing List Stats For This Week
We looked at 973 posts in 4323K.
There were 408 different contributors. 166 posted more than once. 178 posted last week too.
The top posters of the week were:
1. Dalsza dyskusja nad piętnowaniem jądra związanym z licencjami
17 Oct 2001 - 21 Oct 2001 (25 posts) Archive Link: "MODULE_LICENSE i EXPORT_SYMBOL_GPL"
People: Keith Owens, Alexander Viro, Kai Henningsen, Nils Philippsen, John Alvord, Alan Cox
Keith Owens miał już dość i wobec tego zdecydował się zrobić coś z sytuacją, w której się znalazł. Napisał:
Na l-k pojawiło się wiele mylących i świadczących o niedoinformowaniu komentarzy dotyczących MODULE_LICENSE i EXPORT_SYMBOL_GPL. Spróbuję przedstawić to tak prosto jak to tylko możliwe, by poprawić stosunek sygnału do szumu na tej liście.
Proszę się nie trudzić wpisując mnie w cc: w odpowiedziach. Nie interesują mnie także wasze poglądy na temat tego czym jest GPL lub czym powinna być.
MODULE_LICENSE
MODULE_LICENSE() pozwala developerom identyfikować jądra, które zostały napiętnowane modułami, których kod źródłowy nie jest powszechnie dostępny. Brak udostępnionego kodu źródłowego oznacza, że tylko dostawca oprogramowania może pomóc odnaleźć źródło problemu, zatem należy wysyłać raporty producentom, nie na l-k. Precyzyjne określenie, które z oznaczeń licencji uznamy za wolnodostępne jest cały czas ustalane.
Moduł, który nie ma licencji musi być uważany za moduł należący do producenta. Nie wszystkie istniejące moduły mają już MODULE_LICENSE(), ale wiele z nich ma, a reszta nie zostaje daleko w tyle. Dla kodu, który nie znajduje się w standardowych źródłach jądra, podanie napisu określającego licencję zależy od dostawcy oprogramowania. Dla modułów dystrybuowanych bez kodu źródłowego polecam umieszczenie mniej więcej takiego napisu :-
MODULE_LICENSE("Proprietary. Send bug reports to joe.bloggs@somewhere")
Modutils zaznaczają jądro jako napiętnowane gdy ładowany jest moduł bez zgodnego z GPL MODULE_LICENSE(), zgłaszając napis oznaczający licencję, tak by użytkownicy wiedzieli gdzie mają wysyłać raporty o błędach. Oops zgłasza stan jądra jako napiętnowane. Developerzy jądra mogą decydować czy chcą zajmować się raportami o takich błędach, czy nie. Koniec opowieści.
Ktoś podniósł kwestię konsolidacji z jądrem kodu, będącego czyjąś właśnością. Jeśli kompilujesz i konsolidujesz kod z jądrem i nie dostarczasz kodu źródłowego, to nie możesz rozprowadzać wynikowego jądra. Takie postępowanie jest naruszeniem warunków GPL, przeczytajcie GPL jeśli mi nie wierzycie. Nie ma możliwości, aby powstrzymać Cię od kompilacji twojego własnego jądra w połączeniu z elementami dostarczanymi jedynie w formie binariów i używania go dla własnych celów, ale wszystkie błędy stają się Twoim problemem i nie wolno Ci rozprowadzać wynikowego jądra.
EXPORT_SYMBOL_GPL
Niektórzy developerzy jądra nie są specjalnie szczęśliwi gdy widzą, że dostarczane przez nich zewnętrzne interfejsy ich kodu są używane przez moduły rozprowadzane bez kodu źródłowego. Według nich jest to przywłaszczanie sobie cudzej pracy. Nieważne czy zgadzasz się z takim widzeniem sprawy, osoba, która posiada prawa autorskie decyduje jak może być użyty wynik jej pracy.
EXPORT_SYMBOL_GPL() pozwala zaznaczać nowe interfejsy jako takie, które są dostępne tylko dla modułów na licencji zgodnej z GPL. Jest to niezależne od piętnowania jądra, ale oczywiście opiera się na napisach MODULE_LICENSE().
EXPORT_SYMBOL_GPL() może być użyte tylko dla nowych eksportowanych symboli, o których mówił Linus. Mam nadzieję że ci, którzy zmieniają istniejące eksportowane interfejsy, zostaną nawiedzeni przez zabójcze pingwiny z piłami łańcuchowymi.
To wszystko nie dotyczy i nie może dotyczyć wywołań systemowych, to kolejny element zakłócający dyskusję. Wszyscy, którzy myślą inaczej -- nie rozumieją GPL. Wywołania systemowe definiują, w jaki sposób kod w trybie użytkownika dociera do jądra, nikt nie uważa, że program w przestrzeni użytkownika, który jest rozprowadzany tylko w formie binariów, nie może używać wywołań systemowych.
Alexander Viro dodał:
... i jeśli ktoś myśli, ze zamiana
int foo(void *bar);
oraz
EXPORT_SYMBOL(foo);
na
int __foo(void *bar, int baz);
static int foo(void *bar)
{
return __foo(bar, 0);
}
oraz
EXPORT_SYMBOL_GPL(__foo);
uchroni go przed wyżej wspomnianymi zabójczymi pingwinami, niech pamięta, że są gorsze i wolniejsze metody i raczej nie chcielibyście ich poznać z pierwszej ręki.
W innym miejscu Kai Henningsen zastanawiał się, "Tak się składa, że istnieje argument na to, że używanie EXPORT_SYMBOL_GPL tak naprawdę sprawia, że kod jest niezgodny z GPL, jako że łamie klauzulę o ,,dodatkowych ograniczeniach''. To nie ma znaczenia tak długo jak jest to *tylko* twój kod (autor zawsze może robić różne rzeczy), ale *ma* znaczenie jeśli dodajesz kod na GPL autorstwa *innych* (taki jak reszta jądra), bo łamiesz *ich* GPL... " Ale Nils Philippsen był przeciwny, "Nie to ostatnie -- nie ma czegoś takiego jak kod ,,(nie)zgodny z GPL'' -- możesz zmieniać (lub pisać) kod na GPL tak, żeby robił (albo nie robił) co tylko chcesz, ale ma być GPL. Zastrzeżenie dodatkowych ograniczeń w GPL, o którym mówisz oznacza ograniczenia w licencjonowaniu, nie ograniczenia techniczne. Mogę zmodyfikować kod glibc tak by nie działał, gdy jest używany przez proces o nazwie ,,acroread'' albo ,,vmware'' albo cokolwiek (nie, żeby to miało jakiś sens), a taki glibc wciąż będzie w pełni zgodny z GPL tak długo, jak rozprowadzając to powołam się na GPL."
Innym razem zastanawiano się, czy istniejące moduły mogą przestać działać z nowym systemem, a John Alvord odpowiedział, "Linus powiedział, że wszystkie istniejące elementy pozostaną nieoznaczone. Zatem nie będzie to miało wpływu na istniejące moduły."
W pewnym momencie David Lang zgłosił pretensję, że BSD (bez klauzuli o ogłaszaniu) jest zgodna z GPL i nie powinna wobec tego piętnować jądra, ale Keith odpowiedział:
Licencja BSD bez ogłaszania nie jest uznana za zgodną z GPL w jądrze. Jedynie podwójna BSD/GPL nie powoduje napiętnowania jądra, ponieważ kod jest również dostepny na GPL. Wszyscy wykorzystujący licencję BSD bez ogłaszania do tworzenia modułów dostarczanych bez kodu źródłowego będą napiętnowani.
To powoduje problemy z niektórymi modułami w drzewie jądra, które mają licencję BSD bez ogłaszania. Najlepiej by było, gdyby zmienionoby tę licencję na podwójną BSD/GPL, ale to może okazać się niemożlwe. Ponieważ ich kod źródłowy jest zawsze dostępny, możemy je zamienić na
"BSD bez klauzuli o ogłaszaniu, źródła w drzewie jądra"
i dodać taki napis do listy licencji nie powodujących piętnowania. Kod na BSD bez ogłaszania, który nie jest w drzewie jądra, może zmienić licencjonowanie na licencję podwójną BSD/GPL, albo może być piętnowany, wybór należy do dostawcy kodu.
Alan Cox odpowiedział: "BSD bez ogłaszania, bez spraw patentowych (a zatem do zastosowania), w połączeniu z kodem GPL kończy i tak jako GPL, więc nie widzę problemu w używaniu podwójnego oznaczenia BSD/GPL."
2. Nowa łata wywłaszczająca jądro
20 Oct 2001 - 23 Oct 2001 (19 posts) Archive Link: "[PATCH] aktualizacja wywłaszczalnego jądra"
People: Robert Love, Colin Phipps, Andrew Morton
Robert Love ogłosił:
Poszukuję testerów:
łatki, które umożliwiają zbudowanie w pełni wywłaszczalnego jądra są dostępne pod adresem: http://tech9.net/rml/linux dla jąder 2.4.10, 2.4.12, 2.4.12-ac3 i 2.4.13-pre5.
Cóż to jest:
Wywłaszczalne jądro. Zmniejsza wszelkie opóźnienia w jądrze.
Co nowego:
Kilka następnych łat będzie miało na celu zlokalizowanie pozostałych zmiennych per-CPU, które muszą być bezpośrednio blokowane przy wywłaszczaniu.
Szonyi Calin zauważył znaczną poprawę przy tej łacie i spytał, czy ma ona szansę dostać się do głównego jądra, a Robert odpowiedział, że być może w 2.5.
Colin Phipps zgłosił pad systemu przy działaniu łaty. Wysłał oopsa i zgłosił: "Wystąpił przy niewielkim obciążeniu maszyny, właśnie wychodziłem z X i wylogowywałem się z konsoli -- być może nacisnąłem ctrl-d dwa razy." Andrew Morton odpowiedział:
To już było zgłaszane wcześniej.
n_tty_receive_buf() wkłada znak do kolejki tty i woła con_flush_chars(), które dotyka tty->driver_data.
Problem występuje, gdy jest okno pomiędzy dwiema operacjami, gdzie urządzenie zostanie otwarte (zwłaszcza, gdy znakiem będzie ,,^D''!), a con_close() wyzeruje tty->driver_data. Wówczas wystąpi odwołanie do zerowego wskaźnika.
W zasadzie nie wierzę temu wyjaśnieniu, ponieważ nie zgadzały się czasy operacji -- czytacz nie jest budzony, zanim flush nie jest wywołane. No i z tego powodu niezmiernie trudno jest spowodować wyścig. Przyczyna tkwi raczej gdzie indziej. Ale nieco dogłębniejsze śledztwo powinno wyjaśnić przyczyny.
Wysłał łatę; Robert dodał, że również ma łatę, ale ta od Andrew jest dużo prostsza. Zaoferował ją, jeśli rozwiązanie Andrew nie zadziała. Ktoś inny miał pytanie odnośnie wersji Andrew, ale nie było dalszej dyskusji.
3. Dalsze dyskusje na temat podsystemu VM
22 Oct 2001 - 24 Oct 2001 (25 posts) Archive Link: "Re: VM"
People: Alan Cox, Marcelo Tosatti, Ed Tomlinson, Keith Owens, Oliver Xymoron
Michael T. Babcock spytał, czy byłoby bardzo koszmarnie, gdyby uczynić kod podsystemu obsługi pamięci wirtualnej Rika van Riela i Andrei Arcangeli opcją wybieraną przy konfuguracji jądra, co umożliwiłoby ludziom łatwiejszy wybór którejś wersji. Alan Cox odpisał: "Zbyt koszmarnie, aby o tym mówić." Mike Fedyk zasugerował, że możnaby to zrobić w 2.5 i spytał, czy nie ma sposobu, aby uczynić to mniej koszmarnym. Marcelo Tosatti odpowiedział: "Nawet jeśli będzie mniej koszmarne, to nie będzie to proste. Zbyt duże nakłady. W 2.5 mamy nadzieję na połączenie sił przy pracy nad VM."
W pewnym momencie Daniel Phillips zasugerował dodanie możliwości konfiguracyjnej do aplikowania łat. Powiedział, że to uczyniłoby znacznie łatwiejszym, to co chciał Michael. Ed Tomlinson odparł: "To w zasadzie _jest_ rozwiązanie, które może zadziałać. IBM to robił przez dziesięciolecia z 'VM' w swoim systemie operacyjnym. Masz plik podstawowy, kilka plików kontrolujących oraz listę łat. Gdy chcesz zbudować jądro, łaty są aplikowane, a źródła kompilowane..." Keith Owens dodał także:
To raczej kbuild a nie konfigurator potrzebuje takiej możlwości. Mogę to bardzo prosto zrobić w kbuild 2.5, prawie to dodałem za jednym razem. To nie działa, gdy masz zachodzące na siebie łaty: wybierasz jedną konfigurację albo drugą i to działa, wybierasz obie (zakładając, że nie są rozłączne) i nie działa.
Nie mam rozwiązania, a objawy nakładających się łat są gorsze niż problemy, które łaty próbują rozwiązać, więc zostawiłem obsługę łat do 2.5. Możesz używać bliźniaczych drzew, gdy nakładasz nową implementację podsystemu na bazowe jądro, a później przełączać się pomiędzy wersjami, określając, którego drzewa chcesz używać.
Gdzie indziej, Alan powiedział, że ma nadzieję, iż w 2.5 zostanie osiągnięty konsensus, w którą stronę rozwijać VM. Marcelo Roberto Jimenez powiedział, że być może nie ma najlepszej wersji VM, a Oliver Xymoron mu odpowiedział: "Jeśli nie jesteśmy w stanie stwierdzić, które z rozwiązań ma lepszą wydajność w skończonej ilości czasu, wygrywa rozwiązanie prostsze. Tak więc będzie możliwość podjęcia decyzji."
4. Stan supermount
24 Oct 2001 (6 posts) Archive Link: "stan supermount?"
People: Jonas Berlin, Marcelo Tosatti, Alan Cox
Shawn Walker zauważył, że ostatnia wersja supermount jest przeznaczona dla jądra 2.4.0; spytał, czy ktoś przeniósł kod do nowszego jądra, na co Jonas Berlin odpowiedział:
Wysłałem identyczne pytanie do opiekuna supermounta ponad sześć miesięcy temu, ale nie dostałem żadnej odpowiedzi. Tak więc uaktualniłem łatę samodzielnie tak, aby działało z wersjami 2.4.2, 2.4.4 i 2.4.5. W pewnym momencie zacząłem używać 2.4.4-ac9, które działa mi bez problemów, ale nie miałem jeszcze czasu przenieść łaty do tego jądra.
Nie mam pojęcia, czy ktoś inny robi cos podobnego. Sam znalazłem tę łatę, jako część standardowego jądra mandrake 7.2 (chyba), ale nie wiem, czy w dalszym ciągu ją mają. Sprawdzę to. W każdym razie, jeśli jeszcze nikt tego nie robi, mogę postarać się zakutualizować łatę do najnowszych dostępnych wersji jądra, także tych z serii -ac i, jeśli mi się uda, kontynuować opiekę nad aktualizacjami. Będę szczęśliwy ponownie mając supermount.
Ponieważ jest to pierwsza część jądra, którą będę aktualizował, chętnie posłuchałbym dobrych rad i odnośników do źródeł, które mogą mi podpowiedzieć, które interfejsy się zmieniły itp. już w trakcie serii 2.4. Pamiętam, że było wiele zmian pomiędzy 2.4.0 i 2.4.4, które wymagały zmiany części kodu, między innymi dlatego, że łata zawierała także trochę zmian w ogólnym kodzie systemów plików (głównie kwestie związane z blokowaniem).
Marcelo Tosatti odpowiedział: "Ostatnio słyszałem, że Juan J. Quintela <quintela@fi.udc.es> przenosił supermount do 2.4.x. Z tego co wiem od niego, nie jest to łatwe zajęcie: aktualne łaty na 2.4.x mają dużo problemów." A Christian Borntrager zauważył, że Mandrake ma działający supermount w jądrze 2.4.8 w Mandrake 8.1; również Alan Cox dodał: "Alternatywnie, dzięki wyczyszczeniu kodu montowania przez Ala Viro, możesz zrobić takie same rzeczy w przestrzeni użytkownika. Popatrz na volumagic pod adresem: ftp://ftp.linux.org.uk/pub/linux/alan/. to jest po prostu dowód tezy."
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. |