|
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. | 28 mar 2002 - 4 kwi 2002 | (16 posts) | NTFS 2.0.1 dla jądra 2.5.7 |
| 2. | 3 kwi 2002 - 8 kwi 2002 | (89 posts) | Dyskusja na temat licencjonowania jądra |
| 3. | 3 kwi 2002 - 4 kwi 2002 | (4 posts) | Nowe API fbdev |
| 4. | 3 kwi 2002 - 6 kwi 2002 | (23 posts) | Statystyki BitKeepera |
| 5. | 4 kwi 2002 | (1 post) | Ogłoszenie BitMover o BitKeeperze |
| 6. | 4 kwi 2002 - 5 kwi 2002 | (5 posts) | Kłopoty z DAC960 w jądrach 2.4 |
| 7. | 5 kwi 2002 - 7 kwi 2002 | (3 posts) | Rekomendacje jąder 2.4 dla procesorów SPARC |
| 8. | 9 kwi 2002 - 10 kwi 2002 | (9 posts) | Stan łaty scheduler O(1) |
| 9. | 11 kwi 2002 | (3 posts) | Stan opieki nad ext2 |
| 10. | 11 kwi 2002 | (3 posts) | Mierzenie czasu spędzanego w jądrze |
| 11. | 11 kwi 2002 | (3 posts) | Stan łaty Highmem Patch w 2.4 |
Introduction
Chciałbym przeprosić za URL, który umieściłem we wstępie w zeszłym tygodniu. Jak ktoś zauważył, artykuł był zupełnie bez sensu i nie miał nic wspólnego z oficjalną polityką Stanów Zjednoczonych. Następnym razem będę uważniejszy.Mailing List Stats For This Week
We looked at 1356 posts in 6732K.
There were 438 different contributors. 195 posted more than once. 129 posted last week too.
The top posters of the week were:
1. NTFS 2.0.1 dla jądra 2.5.7
28 mar 2002 - 4 kwi 2002 (16 posts) Archive Link: "ANN: ukazało się NTFS 2.0.1 dla jądra 2.5.7"
People: Anton Altaparmakov, Mike Fedyk, Richard B. Johnson, Nerijus Baliunas
Anton Altaparmakov ogłosił ukazanie się wersji NTFS 2.0.1 dla jądra 2.5.7 z małą aktualizacją "pozwalającą na wykonywanie binariów, zmieniając domyślne uprawnienia do plików, ustawiając na nich bit wykonywalności. Było to dość często postulowane przez użytkowników wine, więc proszę bardzo." Padraig Brady sądził, że nie był to najlepszy sposób rozwiązania problemu. Powiedział, że użytkownicy wine mogli uruchamiać programy bezpośrednio podając ścieżkę, jak 'wine /ntfs/lookout.exe', a ustawienie wykonywalnego bitu na plikach zepsuje takie rzeczy, jak midnight commander, kolorowanie ls, dopełnianie tab-em w powłoce i inne. Podał odnośnik do dyskusji dotyczącej podobnej kwestii w vfat i zasugerował ustawienie bitów do odczytu/wykonywania dla katalogów i tylko do odczytu dla plików.
Anton przeczytał wątek, ale pozostał nieprzekonany. Powiedział, że zmieni to, jeśli więcej osób będzie narzekać, ale dodał, że już uruchamiał programy z partycji NTFS i sądzi, że takie ustawienia są użyteczne. Nie miał problemu z uzupełnianiem tabulatorem, nie przeszkadzało mu, że ls pokazywał wszystkie pliki na zielono i powiedział, że sposób wywoływania wine podany przez Padraiga nie zadziała.
Mike Fedyk zauważył: "NTFS tym się różni od innych, że można tam natywnie wykorzystać uprawnienia uniksowe bez dodatkowych widocznych plików, jak w umsdos," ale nie doczekał się odpowiedzi. Padraig kończąc zasugerował, aby po prostu pliki z rozszerzeniami .exe, .com czy .bat oznaczyć jako wykonywalne i bingo! -- problem znika. Ale Richard B. Johnson rzekł:
Pod DOS-em było tak, że pliki ,,.COM'' były ładowane i ,,wykonywane'', nawet jeśli to były pliki tekstowe. Dalej, jeśli mieliśmy do czynienia z plikiem ,,.EXE'', to był on wykonywany jeśli pierwszymi dwoma bajtami było 'MZ', więc mogłeś stworzyć plik tekstowy z pierwszymi dwoma znakami ,,MZ'' i nazwać go ,,CRASH.EXE'', bo to było to, co robił. Wszystkie pliki ,,.BAT'' były interpretowane jako skrypty przez 'COMMAND.COM' -- powłokę. To oznacza, że można stworzyć plik ,,.BAT'' o nazwie ,,COMMAND.BAT'', co może dać ciekawe wyniki.
Gdy FAT-32, NTFS, VFAT, system(y) plików Windozy były rozwijane nie było takich zakładów. Długie nazwy plików są wynikiem przyjęcia pomysłu ,,pojemnika-pliku'' i wszystko idzie.
Zatem jedynym sposobem na zgadnięcie zdolności tego pliku do wykonywania jest odczytanie nazwy -- i to jest złe zgadywanie.
Jeśli pliki NIE są oznaczone jako 'wykonywalne' przy odczycie przez Linuksa, to samba nie zadziała. Aby pliki były widoczne dla klientów WIN, wszystkie bity muszą być ustawione. Ten 'fjuczer' może być użyty, aby pliki DOS/Win mogły być chwilowo niedostępne klientów WIN (jak przy robieniu kopii zapasowej).
Mike sądził, że Richard się mylił co do zachowania Samby, ale Richard nalegał: "Sprawdź, zanim zaczniesz marudzić. Mam tutaj wszędzie serwery samby. Jeśli masz zamontowany system plików DOS albo VFAT, który jest używany przez sambę jako ,,share'', tylko pliki wykonywalne są widziane przez klientów. Sprawdź to." Nie było odpowiedzi.
Gdzie indziej, w oryginalnej odpowiedzi Antona na krytykę Padraiga, Anton powiedział, że to mc było zepsute, jeśli nie mogło obsługiwać plików z ustawionym bitem wykonywalności. Powiedział, że mc powinno odpalać domyślne binarny edytor. Ale Nerijus Baliunas odpowiedział: "Chyba nie zrozumiałeś problemu - nie mogę wejść do plików archiwum (.tgz, .zip) w mc, jeśli te pliki są oznaczone jako wykonywalne - mc po prostu próbuje je wykonać."
W pewnym momencie Padraig zauważył, że jest więcej osób, które nie chcą domyślnego bitu wykonywalności, a nie ujawnił się nikt, komu by się to podobało i spytał Antona, czy licznik niezadowolenia osiągnął wystarczającą wartość, aby to zmienić. Anton odpowiedział: "Zamierzam zmienić domyślną maskę pliku na 0177. Zmiana wejdzie w następnej wersji."
2. Dyskusja na temat licencjonowania jądra
3 kwi 2002 - 8 kwi 2002 (89 posts) Archive Link: "Re: [PATCH 2.5.5] eksportowanie vmalloc_to_page do modułów..."
People: Alan Cox, Andrea Arcangeli, Tigran Aivazian, Alexander Viro, Kai Henningsen, Linus Torvalds, Ingo Molnar, Gerd Knorr, Keith Owens
Andrea Arcangeli zmienił kod vmalloc tak, że eksportuje on swoje API do dowolnego kodu (używając EXPORT_SYMBOL), zamiast tylko do kodu na GPL (EXPORT_SYMBOL_GPL). Alan Cox odpowiedział:
Autorzy tego kodu opublikowali go na GPL. Nie masz prawa tego zmieniać. To, co zrobiłeś to to samo, jakby ktoś zabrał cały Twój kod i udostępnił go tylko w formie binariów.
Tym samym:
ale gorsze od tego jest to, że ignorujesz podstawowe prawa moralne autorów tego kodu.
Wiele osób naskoczyło na Alana po tej wypowiedzi. Na początku Andrea napisał, że ten kod nie miał żadnych specjalnych ograniczeń ani wymagań. Powiedział: "z twojego komentrza wydaje się wynikać, że przez znacznik _GPL rozumiesz to, że dajesz specjalną licencję funkcjom, co nie jest oczywiste, nigdzie to nie zostało napisane, nawet w twojej poczcie, zatem polecam ci ASAP właściwie licencjonować twój kod, jeśli nie chcesz używać standardowego licencjonowania kodu jądra (tak jak w bsdcomp i innych kawałkach kodu źródłowego)." Alan odpowiedział:
Każda linijka kodu, którą kiedykolwiek przesłałem Linusowi, jest na -czystym- GPL. Nosi nagłówek GPL. W to włączona jest moja część pracy nad vmalloc_to_page. Nigdy nie była ona dostępna modułom nie będącym na GPL. Wziąłeś kod, który jest mój i wielu innych i zrobiłeś z tego bibliotekę dla użytkowników, którzy nie używają GPL. Jeśli użyją go w ten sposób, to pogwałcą prawa autorskie i *dostaną* listy namawiające do zaprzestania takich praktyk.
Wszyscy, którzy używają mojego kodu z jądra z kodem nie będącym na GPL robią to, opierając się o doktrynę prawną, która określa co jest, a co nie jest pracą pochodną i robią to na własną odpowiedzialność prawną. Zabieranie kodu, którego jestem jednym z autorów i sprawianie, że jest on wygodny w używaniu w kodzie nie będącym na GPL dla ludzi takich jak veritas to zupełnie inna sprawa. To po prostu czysta kradzież.
Tigran Aivazian napisał: "tak, decyzją autora powinno być (i tu się z Tobą zupełnie zgadzam) to, czy dany symbol jest lub nie jest eksportowany i czy powinien być eksportowany do wszystkich modułów, czy tylko do niektórych ,,wewnętrznych/jądrowych". Ale to jest kwestia techniczna, nie ma nic wspólnego z prawem/licencjami czy sympatią lub antypatią autora do binarnych modułów." W innym miejscu dodał: "mówisz, że Andrea zmienił licencję pewnego kodu z GPL na nie-GPL. To jest oczywiście nieprawda, jestem wręcz zaskoczony, że muszę to wyjaśniać explicite (szczególnie Tobie: jak powiedział Jezus Nikodemowi, ty jesteś nauczycielem w Izraelu i tego nie wiesz?)"
Alexander Viro też odpowiedział Alanowi, pisząc: "Alan, to kanał. Funkcja, o którą chodzi w pytaniu, może być w trywialny sposób zmieniona w extern inline i zupełnie usunięta z listy eksportowanych. _Jeśli_ taką zmianę można uczynić nielegalną przez wyeksportowanie wersji nie-inlined z EXPORT_SYMBOL_GPL - zamierzam *teraz* rozgałęzić drzewo i zacząć wymieniać to, co jest eksportowane w ten sposób na nienapiętnowane czyste implementacje. Moduły, które są dystrybuowane jedynie w formie binariów budzą we mnie obrzydzenie i każdy mechanizm, który umożliwia takie gierki, musi zostać zlikwidowany. Nikt nie powinien móc zabronić równoważnych przekształceń kodu (a zmiana funcji na funcję ,,inline'' _jest_ taką transformacją), przez wyciąganie brudów licencyjnych. "
Nie było odpowiedzi na ten list, ale Kai Henningsen także odpowiedział na oryginalny komentarz Alana, pisząc: "Wierzę, że dodawanie symboli ,,tylko GPL'' do jądra jest zarówno nielegalne (zabronione przez GPL), jaki i moralnie niewłaściwe, *chyba że* uda się uzyskać na to zgodę *wszystkich* właścicieli praw autorskich do jądra." Na to odpowiedział Alan: "Jest inaczej. Pamiętaj, że jądro jest na GPL, nie na LGPL. "
W pewnym miejscu dyskusji Linus Torvalds wkroczył z:
Cóż, nikt z was nie ma racji, bthththt...
Usunięcie .._GPL() w tym przypadku jest poprawne, ale nie z któregokolwiek z wymienionych powodów, ale po prostu dlatego, że nawet Ingo zgodził się, że nie powinno to być _GPL, bo jest pomyślane dla sterowników, które nie powinny wiedzieć nic o wewnętrznych rozwiązaniach w VM. Na GPL lub nie.
Kod ten był przeniesiony z 2.5.x wraz z _GPL, które tam były tylko przez pomyłkę, częściowo dlatego, że nie dostałem uaktualnień od Ingo...
Ingo Molnar odparł: "rzeczywiście. Nie mam specjalnego przekonania do obydwu podejść, obiecałem lekartwo na to, ale go nie przesłałem. Zrobiłem to _GPL z czysto technicznych powodów: nie widziałem w 2.5 żadnych sterowników na innej licencji niż GPL, które by tego używały, a na pierwszy rzut oka funkcjonalność wyglądała na na tyle wewnętrzną, żeby zagwarantować jej eksport z _GPL. W każdym jednak wypadku, chociaż mogłem napisać niektóre łaty, głównym autorem ostatecznego interfejsu jest Linus. Mam nadzieję, że to koniec tej sprawy. " Alan także powiedział Linusowi:
Zatem Linusowi wolno dowolnie wystawiać na zewnątrz to, co stworzyli inni? Sądzę, że musimy zrobić z tym porządek i ustalić, co ludzie uważają za obowiązujące zasady. Jak rozumiem oryginalny kod był:
Nie wydaje się by ktoś tu pamiętał o pytaniu o pozwolenie.
Ale Gerd Knorr napisał:
Nie.
Ja przesłałem jedynie kod przeniesiony na 2.4.x, a jedynym powodem dla którego wyeksportowałem go jako _GPL było to, że był on _GPL w 2.5.x. Byłoby w bardzo złym stylu gdyby ten symbol był bez _GPL w 2.4, ale z _GPL w 2.5 i mogłoby zdenerwować ludzi, którzy zaczęliby używać tej funkcji w 2.4, a później, że zauważyli, że w 2.5 jest eksportowane z większymi ograniczeniami ...
Z przyjemnością podeślę Marcelo łatkę usuwającą _GPL, gdy tylko to nastąpi w drzewie 2.5 Linusa.
Kod w 2.5.x (który wziąłem do przeniesienia) był przesłany przez Ingo i zaktualizowany przez Linusa, tak mówi lista zmian w moim BK. Ingo oczywiścnie *nie* zrobił prostego kopiuj&wklej kodu Dave'a M z bttv. Funkcja vmalloc_to_page() w 2.5.x obsługuje pte-highmem i jądra z wywłaszczaniem, a tego kodu nigdy nie było w bttv.
W innym miejscu Tigran zaproponował zmianę nazwy z EXPORT_SYMBOL_GPL na EXPORT_SYMBOL_INTERNAL lub coś podobnego, "Wtedy, w przyszłości, nie trzeba by było decydować oddzielnie dla każdego przypadku, tak jak to mamy dziś (i składać podania do Cezara :), bo nazwa ujawniałaby intencje? " Linus odparł: "Zgadzam się, to jest prawdziwe znaczenie tego _GPL, a to prawdopodonie spowoduje, że ludzie zaczną reagować mniej gwałtownie na tę sprawę. " Tigran spytał, czy Marcelo także się z tym zgadza, a Alan napisał: "To pytanie do Keitha Owensa - czy to popsuje aktualne modutils. Myślę, że zgodność modutils dla 2.4 musi być świętością." Keith odpowiedział:
Trywialna zmiana modutils, zachowująca zgodność wstecz, tak by EXPORT_SYMBOL_GPL == EXPORT_SYMBOL_INTERNAL.
Kiedy prawnicy i pieniacze zgodzą się co tak naprawdę rozumieją przez EXPORT_SYMBOL_GPL lub jego zastępnik i wszyscy zdecydują jakie to powinno byś słowo kluczowe, to dajcie mi znać, a ja opublikuję nowe modutils. W innym wypadku, nie wciągajcie mnie w wojnę bluzgów.
Tigran zaczął:
Spójrzmy najpierw na możliwy projekt, najpierw dla 2.5, potem dla 2.4.
Znaczenie EXPORT_SYMBOL_INTERNAL jest takie, że może być to używane do eksportowania symboli przez podstawowe podsystemy jądra (statyczne lub modularne) do innych podstawowych podsystemów jądra, które mogą być skompilowane jako moduły. Zatem, jeśli jakiś symbol jest eksportowany przez coś, o czym można myśleć jako o ,,podstawowym jądrze'', to powinny go używać tylko moduły, które zgłoszą się jako ,,podstawowe jądro''. Podobnie, jeśli coś jest eksportowane przez sterownik, to tylko moduły blisko związane z tym sterownikiem (dla sterowników podzielonych na wiele modułów) powinny móc go używać.
Innymi słowy, eksportowanie symboli nie powinno być oparte od licencję dla konsumenta, bo jest to technicznie niewłaściwe kryterium.
Implementacja EXPORT_SYMBOL_INTERNAL mogłaby być może wyglądać tak:
EXPORT_SYMBOL_INTERNAL(runqueue_lock, "scheduler");
a odpowiadający moduł, który implementuje ,,scheduler'' może zgłaszać swoje prawa przez:
MODULE_CLASS("scheduler");
Moduł powinien oczywiście móc należeć do wielu klas, to znaczy można by było podać zarówno ,,scheduler'' by skorzystać z runqueue_lock, jak i ,,filesystem'', by mieć get register_filesystem().
Zatem, modutils sprawdzałyby klasy modułu i rozwiązywały lub zabraniały użycia odpowiednich symboli. A EXPORT_SYMBOL(sym) znaczyłby ,,wyłącz sprawdzanie klasy przez modutils dla tego symbolu''.
Nie proponuję wyrzucenia MODULE_LICENSE z .modinfo, tylko, że to nie powinno mieć związku z eksportowaniem symboli (to znaczy powinno funkcjonować tak, jak poleca autor/opis itp).
Dalej, wszystko to co powyżej nie wygląda jak coś, co nadaje się do 2.4, to powinno prawdopodobnie być zaimplementowane w 2.5. Dla 2.4 być może powinna to być po prostu sprawa zmiany obecnej nazwy EXPORT_SYMBOL_GPL na EXPORT_SYMBOL_INTERNAL, co w .kstrtab, w miejsce GPLONLY_ wstawiłoby INTERNAL_. A to co powinno łączyć to z modułem, to nie powinno być MODULE_LICENSE, ale nowe makro:
MODULE_SYMBOLS_INTERNAL;
Moduł, który nie zgłasza żadnych specjalnych żądań (dla zgodności) dostaje jedynie symbole eksportowane przez EXPORT_SYMBOL, a moduł, który chce dostępu do symboli MODULE_SYMBOLS_INTERNAL, dostaje także te wyeksportowane przez EXPORT_SYMBOL_INTERNAL.
Nie powinno być żadnych ,,implikacji wynikających z licencji'', wystarczy po prostu (udokumentowany) fakt, że jeśli ktoś, kto pisze nie-wolny moduł jest na tyle głupi, że używa symboli w swoim module, jego moduł będzie się psuł dużo częściej ze względu na istnienie _i_ semantykę/implementację pozycji eksportowanych tylko ,,wewnętrznie''. Ale to już ich problem -- nie powinniśmy im ani pomagać, ani powstrzymywać ich przed wykonywaniem pracy i zarabianiem na życie. To jest moje zdanie. Jeśli producent ma tyle zasobów, że może ich używać na monitorowanie rozwoju jądra Linuksa (i w ten sposób nie uniknie zaangażowania i _pomocy_ w tym rozwoju!) tak, by być na bieżąco z każdą implementacją wewnętrznych symboli, to w porządku -- nawet lepiej dla Linuksa. Ale jeśli chcą oni pisać stabilne i utrzymywalne moduły, to nigdy nie użyją MODULE_SYMBOLS_INTERNALS. Zawsze powinniśmy przekonywać autorów kodu zamkniętego naszą przewagą technologiczną, zamiast utrudniać im życie podpierając się tym, że pozwolenie na używanie eksportowanych symboli zależy od wybranej licencji.
Proste, etyczne i wszystkim się podoba, albo przynajmniej tym, którzy rozumieją, że uniksowe systemy operacyjne zostały zaprojektowane tak, że powinny wyróżniać się przewagą techniczną zamiast używać marketoidalnej broni (kto mieczem wojuje, ten od miecza ginie).
Arjan van de Ven miał wrażenie, że to przesada, także Alan odpowiedział Tigranowi: "Używanie jakichkolwiek wnętrzności jądra Linuksa ma implikacje związane z licencją. " Oraz: " dlaczego próbujesz mnie pozbawić mojej pracy przez pozwolenie ludziom na używanie mojego kodu w sposób, którego nie dopuszcza GPL. To nie tak. " Tigran odparł:
Tak byłoby _tylko_ przy jeszcze jednej interpretacji GPL. To co jest dziwne z GPL to to, że jest tak wiele jej interpretacji do wyboru :)
Twoja interpretacja jest dobra, a moja nie, więc jak mam cię przekonać? Ale jestem przywiązany do zdania, że twoja interpretacja jest, w pewnym sensie, zła. Nazywając rzeczy po imieniu, w tym sensie, że jest niespójna z podobną sytuacją dotyczącą bibliotek albo nawet wołań systemowych. Nie widzę dlaczego eksportowanie symboli jądra powinno być tak radykalnie różne i ekstremalnie wrażliwe na licencję konsumenta w przypadku niektórych symboli, a w przypadku innych nie...
Ingo odparł:
Tigran, ta różnica jest bardzo, bardzo podstawowa, pomyśl o tym proszę i proszę spróbuj pominąć fakt, że pracujesz dla Veritas. Moduły z wewnątrz jądra, będącego na GPL, to tylko techniczna modularyzacja kompletnej i ujednoliconej pracy, która jest na GPL. Chcielibyśmy by zostało to spójne, chcemy, żeby *nasza* praca była w pełni debugowalna, byśmy byli w stanie oferować wsparcie dla naszych produktów i byśmy mogli rozumieć i rozwijać każdą jego część. Takie są nasze intencje.
w chwili, w której zacząłeś kłócić się o to ,,dlaczego nie możemy po prostu dodać tego zbioru EXPORT-ów i umieścić modułów jedynie binarnych tu i tam'', podważyłeś w gruncie rzeczy naszą wolność do określenia licencji naszej pracy. Psujesz wewnętrzny mechanizm modularyzacji tak, by użyć czegoś w kodzie, którego nie możemy debugować, przeczytać, rozwijać i oferować wsparcia w żaden sensowny sposób. To tak, jakbyś chciał wymienić kernel/sched.o na twoją implementację, dostępną tylko w formie binariów, bez publikacji kodu źródłowego. Jeśli chcesz grać w takie gierki, to musisz zaimplementować także pozostałe 4 miliony linii, nikt cię od tego nie powstrzyma.
wołania systemowe są publikowanym, szanowanym, utrzymywanym interfejsem. Aplikacje z przestrzeni użytkownika są niezależnymi projektami, nie są w żaden sposób pochodnymi jądra, które jest na GPL. Oto wyjątek.
historycznie patrząc, wybraliśmy takie rozwiązanie by dostarczyć różnych typów API mniej lub bardziej wydzielonym fragmentom kodu, takim jak niezależnie rozwijane sterowniki sprzętu nie będące na GPL. Niech cię nie zdziwi fakt, że pewien techniczny mechanizm jest także używany do łączenia na żądanie oddzielnych, mniejszych części jądra.
Wpływ modułów pozostających jedynie w formie binarnej na architekturę jądra nie jest zerowy, ale też niespecjalnie znaczący, więc większość z nas jest po prostu pragmatyczna w tej w kwestii, tak długo, jak długo producenci takich modułów nie nadużywają tego mechanizmu by wpływać na integralność jądra i tworzyć dzieła pochodne bez przestrzegania zasad GPL. I jest jasne, że wewnętrzne symbole to właśnie to: wewnętrzne, część pracy wykonanej nad jądrem. [a bezpośrednim tego wynikiem jest to, że przestrzegane jest GPL.]
Przez ,,nadużycie'' rozumiem na przykład pochodną jądra ze ,,zmodyfikowanym'' schedulerem. W dniu, w którym będzie możliwe umieszczenie sched.o dostępnego jedynie w formie binariów, przestanę robić cokolwiek dla Linuksa. Nie jestem tutaj by rozwijać pewną ,,lekką'' wersję systemu operacyjnego, gdzie wszystkie interesujące rzeczy dzieją się za zamkniętymi drzwiami. Nie jestem też tu by patrzeć jak spada jakość tego systemu powodowana niewprawnym programowaniem w szeroko używanych modułach, które są dystrybuowane jedynie w formie binarnej i nie jest możliwe ich naprawienie.
Zasady GPL chronią teraz naszą pracę przed nadużyciem jej w taki sposób - nielegalne jest dostarczenie sched.o w formie jedynie binarnej i skompilowanie z tego jądra, bo wynikowe jądro jest ciągle całością, a całość musi być na GPL. Równie nielegalne jest wyodrębnienie z końcowego obrazu jądra sched.o i zlinkowanie jądra w trakcie wykonywania ze sched.o dystrybuowanym jedynie w postaci binariów. Tak samo nielegalne jest osiągnięcie tego efektu przez wewnętrzny interfejs modułów.
Pomyśl o tym, każde pojedyncze .o w jądrze Linuksa może być równoważnie opisane w regułach eksportowanych interfejsów modułów, nagłówków będących na GPL i modułów z zamkniętymi źródłami. To jest dobry powód, dla którego GPL zabrania dodawania tak dowolnie zdefiniowanych ,,interfejsów modułów''. Pomyśl o GPL jako o cenie, którą płacisz za to, że możesz używać kodu źródłowego Linuksa i możesz do niego coś przyłączać - nie jesteś w żaden sposób do tego zmuszany.
i nie, nie masz *prawa* dołączać do jądra Linuksa sched.o dostępnego jedynie w formie binariów - nawet jeśli rozwijałeś sched.c ,,osobno'' - i intuicyjnie czuć, że to jest w jakiś sposób zupełnie inna praca, wynik końcowy cały czas jest pochodną jądra. Takie pogwałcenie licencji jest nielegalne w większości krajów, a w części państw jest to nawet przestępstwo.
Tigran zaś odpowiedział:
Po przemyśleniu (i uważnym przeczytaniu twoich wyjaśnień) muszę stwierdzić, że twoje widzenie sprawy jest prawdopodobnie bezpieczniejsze, to znaczy w dłuższym okresie ochrona statusu jądra Linuksa, zgodna z tym co napisałeś, jest dla niego lepsza, nawet jeśli nie jest aż tak ,,miła'' czy ,,dla wszystkich wygodna'' jak schemat o którym ja mówiłem.
Jeśli chodzi o to, co powinno być, a co nie powinno być uważane za pochodną, z twojego listu wynika (i nie sądzę, że jest to złe), że jądro Linuksa jest chronione w taki sposób, by zapewnić to, że ,,interesująca'' funkcjonalność jest w jądrze lub istnieje jako moduł będący na GPL.
Żeby trochę rozjaśnić moje przemyślenia, załóżmy, że nie istnieje system plików z księgowaniem dla Linuksa, który jest na GPL (to znaczy reiserfs, ext3 i inne nagle zniknęły). Wtedy, aby twoje myślenie było spójne, musiałbyś wyłączyć eksportowane interfejsy wymagane dla rozwijania systemu plików z księgowaniem. W innym wypadku, pracowałbyś bowiem nad ,,lekkim'' systemem operacyjnym i ,,interesujące rzeczy działyby się za zamkniętymi drzwiami''. Tak jak powiedziałem to niekoniecznie jest ,,złe'', to znaczy być może dla przetrwania Linuksa byłoby to konieczne i dlatego jestem za tym. Myślałem tylko, że jest w tym coś _technicznie_ nieprzyjemnego czy ,,niewłaściwego''... Być może ,,niewłaściwe'' jest niewłaściwym słowem, ale wiesz o co mi chodzi.
3. Nowe API fbdev
3 kwi 2002 - 4 kwi 2002 (4 posts) Archive Link: "[ŁATA] nowe api fbdev."
People: James Simmons, Dave Jones
James Simmons napisał: "Ta łata jest pierwszą z serii łat pozwalających na przeniesienie się na nowe api fbdev. Jest przygotowana na 2.5.7. Podstawowym jej celem jest usunięcie ton zbędnego kodu z warstwy fbdev i uproszczenie api. Głównym sposobem na osiągnięcie tego jest zrzucenie nadmiaru logiki na system konsoli. System fbdev był później rozwijany i widać w nim sporo niepotrzebnej funkcjonalności dodanej do warstwy fbdev. Przepływ funkcjonalności powinien się odbywać z systemu konsoli do warstwy fbdev, nie w odwrotnym kierunku. Osiągnięto także oddzielenie warstwy fbdev od warstwy konsoli. To będzie miało bardzo istotny wpływ na urządzenia z osadzonym Linuksem. Odbyły się testy, włączono to też jakiś czas temu do drzewa Dave'a Jonesa. Geert, z twoim błogosławieństwem chciałbym mieć to dodane do drzewa Linusa." Geert Uytterhoeven dał błogosławieństwo, a Dave Jones dodał: "Rzeczywiście, zmiany w fb są obecnie największym kawałkiem -dj. Trzy ciężkie łaty czekające na włączenie przez ich opiekunów to połowa z tego, co zostało do zsynchronizowania..." A James odpowiedział: "Mam jeszcze więcej :-/ Staram się to podzielić tak bardzo, jak tylko możliwe. Mam też parę zmian/poprawek do wysłania, ale poczekam z tym jeszcze."
4. Statystyki BitKeepera
3 kwi 2002 - 6 kwi 2002 (23 posts) Archive Link: "Linux-2.5.8-pre1"
People: Larry McVoy, Linus Torvalds, Dave Jones
Linus Torvalds ogłosił ,,sporawą'' łatkę 2.5.8-pre1 , a Larry McVoy umieścił ją na bkbits.net. Napisał "Sporawa to dobrze powiedziane. 1200 delt." Dodał: "Możesz kliknąć na dowolne imię by zobaczyć kto nad czym pracował, jeśli wybierzesz jakieś imię, to obejrzysz dane przez filtr ,,tylko ten użytkownik''." Linus odparł:
Uwaga na boku: to działa tylko częściowo.
Na przykład, z 297 zbiorów zmian w 2.5.8-pre1, 147 było przysłanymi pocztą łatami (odsetek 50% wydaje się być niezmienny w czasie: około połowa rzeczy, które dostaję to łaty w starym stylu, a połowa to łączenia w BK. Oczywiście, zaletą BK widoczną dla mnie jest to, że łączenia BK w połowie przypadków wymagają _mniej_ niż 50% czasu).
W każdym razie: ze 147 łat, 125 były łączeniami z drzewem Dave'a Jonesa (tylko 123 dało sie włączyć od ręki - dwie łaty wymagały ręcznego poprawiania przez bezpośrednie edytowanie listów).
Z tych 123 zbiorów zmian zaznaczonych jako pochodzące od Dave'a, większość była oczywiście napisana przez innych, a Dave działał tylko jako ich intergrator (co nie jest oczywiście nieważne - 99% tego co ja sam teraz robię to tylko integracja).
Statystyki są zatem zaburzone przez takie szczegóły jak ten - to tylko częściowe wskazanie tego, kto naprawdę _napisał_ łatkę.
(Ta sama prawda dotyczy czasem samych łatek z BK, nie tylko łatek z listów elektronicznych, które dostaję do integratorów takich jak Dave, który wciąż używa diffów przy łączeniu ze mną. To oczywiście zależy od tego, kto i jak stworzył oryginalny zbiór zmian BK).
Dave Jones zasugerował: "Jeśli ustanowię jakiś jeden sposób zaznaczania oryginalnego autora, powinieneś prawdopodobnie wzbogacić swoje skrypty łączące tak by wyciągały tę informację i zamiast mnie wymieniały $ktokolwiek. " Larry wystąpił z tym samym pomysłem i również odpowiedział Linusowi, pisząc:
Myślę, że rozumiem. Jeśli dostajesz łatkę GNU od kogoś takiego jak Dave, który dostaje ją od kogoś innego, to ona pokazuje się jako łatka Dave'a w na twojej liście zmian. Hmm. Nie sądzisz, że warto spróbować i zrobić jakieś dodatkowe parsowanie wiadomości, tak, żeby ustawiać $BK_USER na właściwą osobę, jeśli wiadomość zawiera taką informację. Dave i tak wpisuje takie coś:
Opis łaty...
Pierwotnie pochodzi od Matta Domscha.
Jeśli to trochę sformalizujemy to mamy szansę otrzymać właściwe informacje. Wiem, że to może brzmieć jak napad na czyjeś ego, ale jest dość użyteczne, gdy patrzy się na historię zmian i szuka się, kto coś zrobił, łatwiej jest taką osobę namierzyć i przesłać jej nowe zmiany/sugestie/itp. Tia, to sprawia, że łatwiej jest też dręczyć ich pytaniami, ale to się i tak dzieje.
Nie było odpowiedzi na ten pomysł.
5. Ogłoszenie BitMover o BitKeeperze
4 kwi 2002 (1 post) Archive Link: "2 miesiące BK"
People: Larry McVoy
Larry McVoy zgłosił:
Czas leci. Uruchomiłem statystyki na drzewie Linusa.
Linus stworzył swoje drzewo 2002-04-03 17:03:45-08:00.
3177 zbiorów zmian (logicznych zmian/łatek/jakkolwiek chcesz je nazywać). 55000 delt w 11832 plikach.
Te informacje w BitKeeperze, to znaczy rzeczy związane ze zbiorami zmian, nieskompresowane zajmują 7MB. Na początku było to około 1.5MB, zatem rośniemy około 3MB miesięcznie, a to jest problem.
Skoro już piszę, oto lista rzeczy, które obecnie nas obchodzą i nad którymi pracujemy dla drzewa jądra Linuksa:
To są te najważniejsze i wystarczy nam zajęcia na przynajmniej kilka następnych miesięcy.
Nie było odpowiedzi.
6. Kłopoty z DAC960 w jądrach 2.4
4 kwi 2002 - 5 kwi 2002 (5 posts) Archive Link: "2.4.x i problemy z DAC960"
People: Marcelo Tosatti
Albert Max Lai zgłosił, że na jego Tyan S1836DLUAN-BX, z podwójnym PIII 600Mhz, sterownik DAC960 zawiesza się przy dowolnym jądrze 2.4. Nie miał problemu z jądrami 2.2. Marc A. Volovic odpowiedział, że ten sterownik działał u niego świetnie pod 2.4 na jego podwójnym 550MHz MSI 6120S. Podejrzewał, że system Alberta robi coś złego z przerwaniami i poprosił Alberta od podesłanie pliku /proc/interrupts. Marc miał w związku z tym parę pytań, ale zadał je poza listą. Marcelo Tosatti także napisał: "Przekazałem twój pierwszy list Leonardowi (autorowi sterownika)... być może dostaniemy jakąś odpowiedź niebawem." Ale nie było odpowiedzi.
7. Rekomendacje jąder 2.4 dla procesorów SPARC
5 kwi 2002 - 7 kwi 2002 (3 posts) Archive Link: "Najlepsze jądro 2.4 na SPARC-a?"
People: Sean Neakums, Luigi Genoni
Martin Eriksson zapytał, które jądro 2.4 działa najlepiej na maszynach SPARC, dokładnie chodziło mu o SPARC Ultra 10 3D creator z RedHatem 6.2; Sean Neakums odpowiedział: "Od paru tygodni z powodzeniem używam na moim Ultra5 jądra 2.4.18 z głównego drzewa z rmap12h. Zbudowano je przy pomocy pakietu egcs64 z Debiana, wersja chyba 1.1.2. Jest bardzo pewny; nie mam żadnych problemów." Luigi Genoni także napisał: " Używam bezproblemowo 2.4.18 na ultra2, ultra5 ultra10 E280 E420, przetestowałem więc system z jednym procesorem, jak i SMP (do 4 CPU). Na ultra2 SMP testowałem także łatę wywłaszczającą jądro (preemptive kernel patch). Myślę więc, że możesz zaufać ostatnim jądrom 2.4. Inaczej rzecz wygląda z jądrami 2.5, nie udało mi się użyć wielu z nich na sparcu."
8. Stan łaty scheduler O(1)
9 kwi 2002 - 10 kwi 2002 (9 posts) Archive Link: "dokąd zmierza łata O(1)?"
People: Dieter Neutzel
Ktoś spytał co się stało z łatą O(1) Ingo, zmieniającą algorytm przydziału czasu procesora. Czy była ona w 2.4.19? 2.5.x? Gdzie? Joe Sloan napisał, że weszła do 2.5, i łat -ac do drzewa 2.4. J.A. Magallon zwrócił też uwagę, że ostatnia wersję można znaleźć pod adresem: http://giga.cps.unizar.es/~magallon/linux/kernel/. Dieter Nuetzel zauważył: "Czy nie zwróciliście uwagi na którykolwiek z raportów o bardzo złych wynikach opóźnień od ostatniej wersji Ingo, czyli 2.4.17-K3? Nawet drzewo Alana pokazuje to samo (ostatnie, które sprawdzałem to 2.4.19-pre2-ac2)." Dodał: "Trzeba najpierw poprosić Ingo o parę słów. Nie odpowiada na moje listy od lutego ;-(" . Pomyślał, że może ma zły adres poczty elektronicznej Ingo, ale Peter Kelemen potwierdził, że Dieter ma właściwy adres.
9. Stan opieki nad ext2
11 kwi 2002 (3 posts) Archive Link: "Możliwy pad systemu plików EXT2 w jądrze 2.4"
People: Frank Krauss, Andreas Dilger, Andrew Morton
Frank Krauss doświadczył problemu z ext2 i napisał: "Na początku spróbowałem wysłać tę informację do Remy Carda, wymienionego w pliku MAINTAINERS na adres RemyCard@linux.org, ale odesłało mi wiadomość o nieznanym użytkowniku." Andreas Dilger podesłał łatkę mówiąc: "Oto łatka (po nie wiem jak wielu latach od czasu, gdy przestał on pracować nad tym), która usuwa Remy Carda z listy opiekunów ext2. Ponieważ nie czuję się władny dodawać nazwiska innych ludzi jako opiekunów (i na dodatek nie wiem, czy Linus/Marcello/Alan by to zaakceptowali), umieściłem tam adres listy ext2-devel. Wszyscy deweloperzy ext2 są na nią zapisani. " Andrew Morton odpowiedział: "Tak, popieram to. To smutne, ale nie ma żadnego powodu by wprowadzać ludzi w błąd w ten sposób. Remy jest już wymieniony w ./CREDITS dla ext2."
10. Mierzenie czasu spędzanego w jądrze
11 kwi 2002 (3 posts) Archive Link: "mierzenie czasu spędzanego w jądrze"
People: Karim Yaghmour
Torrey Hoffman zwrócił uwagę, że narzędzia takie jak top nie zgłaszają ilości czasu spędzanego w jądrze. Słyszał kiedyś o narzędziu, które używało tak wielu cykli, jak to tylko możliwe w celu dokładnego zmierzenia czasu systemowego, ale nie wydawało mu się, by znalazł coś takiego przez Googlowanie. Karim Yaghmour zasugerował: "Możesz wypróbować LTT: http://www.opersys.com/LTT. To, oprócz wielu innych rzeczy, da ci ten typ informacji, i nie pochłonie żadnych cykli." Andrew Morton także podrzucił odnośnik do strony z wynikiem wyszukiwania cyclesoak w Google. Nie było odpowiedzi.
11. Stan łaty Highmem Patch w 2.4
11 kwi 2002 (3 posts) Archive Link: "[łata 2.5.8] statystyki bounce/swap"
People: Randy Dunlap, Marcelo Tosatti, Jens Axboe
Randy Dunlap podesłał łatkę i napisał: " Wygeneruję łatkę dla 2.4.naście + highmem, jeśli kogoś ona interesuje, albo po tym jak higmem zostanie włączona do 2.4. ...będzie dodana do 2.4, prawda?" Marcelo Tosatti odpowiedział: "highmem IO będzie włączone do 2.4.20pre1." A Jens Axboe odparł: "Dzięki Marcelo, osobiście przygotuję wypolerowaną wersję dla ciebie, jak tylko wyjdzie ostateczne 2.4.19. "
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. |