Debian zrezygnuje z GLIBC na rzecz EGLIBC

Już wkrótce do repozytorium Debiana trafi EGLIBC — fork GLIBC (GNU C Library) zoptymalizowany dla urządzeń wbudowanych (embedded), kompatybilny ze swoim pierwowzorem. Zastąpi on dotychczas używaną bibliotekę GLIBC.

Głównym z powodów tej zmiany jest osobisty konflikt programistów Debiana z programistą GLIBC Ulrichem Drepperem, który polega m.in. odrzucaniu zgłoszeń błędów na architekturach ARM (Any change will negatively impact well designed architectures for the sole benefit of this embedded crap. — cytat z bugzilli). Programiści EGLIBC deklarują otwartość i chęć współpracy w tej kwestii.

Z powodu tych błędów EGLIBC lepiej zachowuje się w systemach wbudowanych, m.in. na procesorach ARM, które w niedługim czasie mają szanse zaistnieć na rynku netbooków. Najprawdopodobniej z tego powodu deweloperom Debiana zależy na wydajnej pracy ich systemu na tej platformie.

Oprócz tego biblioteka EGLIBC obsługuje powłoki inne niż BASH oraz opcję kompilacji -Os (czyli optymalizacja względem rozmiaru kodu wynikowego).

Nowa biblioteka zapewnia także pełną zgodność binarną ze starą biblioteką GNU.

ż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 rmrmg
    rmrmg

    "Oprócz tego biblioteka EGLIBC wspiera powłoki inne niż bash"
    W jaki sposób *glibc wspiera powłoki? W jaki sposób glibc nie wspiera inych powłok niż bash?

    1. Awatar Sparrow1
      Sparrow1

      Chodzi o używanie np. bash-owej składni w ldd, które deklaruje #/bin/sh jako swój shell-przez to nie działa poprawnie np. pod dash'em.

      PS
      Polecam poczytać podlinkowany blog i linki w nim-fascynujący przykład jak "sodówa" uderza do głowy developerom, którzy "wiedzą lepiej".

      1. Awatar m4dm3n
        m4dm3n

        > Stop reopening the bug. If you want explanations pay somebody.

        Paid $1 via paypal. Trans ID 3H4989806A1962407

        Please fix.

        po prostu rozwalilo mnie to 🙂

        pozdrawiam

        1. Awatar MichalK
          MichalK

          piękne

      2. Awatar cofko
        cofko

        Polecam też przeczytać ten blog: http://linuxhaters.blogspot.com/2009/05/tribute.h…

  2. Awatar jeronimmo
    jeronimmo

    Może się mylę, ale flaga -Os to broszka kompilatora

    1. Awatar TPJ
      TPJ

      Flagi kompilatora to na 100% broszka kompilatora, ale problem jest bardziej złożony. Piszesz kod, a następnie kompilujesz go dwa razy: raz z flagą -Os, drugi raz bez tej flagi. Otrzymasz dwa różne kody wynikowe. *Teoretycznie* obydwa powinny działać, w praktyce może być różnie. Czasami dany kod przez dany kompilator z konkretnymi flagami kompilacji może nie działać.

      Jak rozumiem, problem polega na tym, że kod wynikowy po skompilowaniu GLIBCa za pomocą GCC z flagą -Os nie działa tak, jak powinien. Kompilacja EGLIBCa w analogiczny sposób daje dobre efekty i stąd ta właśnie uwaga. Tak przynajmniej przypuszczam, bo sam ani GLIBCa, ani EGLIBCa ze źródęł nie kompiluję.

      1. Awatar DeeTah
        DeeTah

        -Os w ogóle nie kompiluje GLIBC afaik. Któraś z funkcji jest inline’owana i potem GCC zgłasza undefined reference. Do dzisiaj nie widziałem patcha/hacka na ten błąd istniejący od kilku wydań, ale też jakoś szczególnie nie szukałem 😉

        Osobiście, bardzo mi się ta informacja podoba, może zacznie się nowy trend. Jak wygląda sprawa z konfiguracją tego EGLIBC? Podejrzewam że to magiczne E samo w sobie usuwa sporo bloatu? :>

  3. Awatar cutugno
    cutugno

    „Nowa biblioteka zapewnia także pełną zgodność binarną ze starą biblioteką GNU.”

    No to przyjmujemy zakłady: kiedy nowa biblioteka będzie zapewniać zgodność binarną w 98%?

    1. Awatar kocio
      kocio

      Debian to potężny gracz na linuksowym "rynku", więc jeśli są jakieś niedociągnięcia, to jest idealna motywacja, żeby je zlikwidować. OIDP np. kiedy KDE postanowiło przejść na cmake, to jakość tego narzędzia szybko się poprawiła.

      1. Awatar cutugno
        cutugno

        Może bym w to uwierzył gdybym był z 15 lat młodszy.

        Binarna zgodność zawsze była, delikatnie mówiąc, mało priorytetowa.

    2. Awatar riklaunim
      riklaunim

      gdzieś mieli wypunktowane że zgodność "where feasible", czyli jak GLIBC zacznie bardziej wariować to pokażą mu wała 🙂

      1. Awatar cutugno
        cutugno

        Taa, jeśli dodać do tego, że EGLIBC jest 'copyright assigned to FSF', że Stallmann z Drepperem się uwielbiają i że obaj są nieźle szurnięci, zapowiadają się ciekawe czasy.

  4. Awatar kocio
    kocio

    Ciekawe jak na to zareagują inne dystrybucje, w szczególności Ubuntu. Nie każdy ma tak szeroki zakres architektur jak Debian, ale problemy ze współpracą mogą się objawiać nie tylko przy ARM-ie.

    1. Awatar riklaunim
      riklaunim

      Gentoo też teraz ciśnie ARM, Ubuntu ma swoją mobilną wariację… sporo może się zainteresować 😉

    2. Awatar aix
      aix

      w tej chwili ARM jest przyszłością elektroniki, więc inni też z czasem, i to krótkim, będą tak robić.

  5. Awatar [r4]
    [r4]

    No i gość ukuł nowe pojęcie: GLibC nazi 🙂

  6. Awatar janc
    janc

    ahh ci niemieccy inzynierowie 🙂

    ulrich jest faktycznie osoba, z ktora sie ciezko dyskutuje ale bez przesady…

    patrzac na podane przez Aureliena przyklady mozna zauwazyc, ze 3 z 4 zgloszonych bledow z wielkim bolem ale zostaly naprawione.
    Zreszta co do bledu w gethostbyname() (ktora wg POSIX i tak jest obsolete) to wg mnie racje ma Ulrich. Skopane sa aplikacje, ktore zakladaja, ze dostana dany adres tylko 1 raz. Urlich dobrze tez wskazuje, ze pewne modyfikacje kodu moga byc zawarte w porcie na ARM a nie w glownej galezi (nie zmienia to tego, ze obecny kod w glibc zaklada wyrownywanie adresow do 4 bajtow, co jest niezbyt eleganckie)

    Wydaje mi sie, ze opiekunowie glibc w debianie tez sie troszke na wyrost obrazaja i niejako na zlosc chca forkowac kod. Nie wyjdzie to na dobre ani debianowi ani glibc…

    1. Awatar Bastek
      Bastek

      Parę(naście) miesięcy temu debian z podobnych powodów zmieniał biblioteki do wypalania płyt CD/DVD. Pamięta ktoś jak zakończyła się tamta migracja?

      1. Awatar kocio
        kocio

        Od tamtej pory zapadła błoga cisza w sieci na ten temat – moim zdaniem to świadczy o tym, że cdrkit sprawuje się po prostu dobrze.

      2. Awatar janc
        janc

        @Bastek
        tylko, ze sytuacja z cdrecord->wodim dotyczyla (podobnie jak xfree->xorg) problemow licencyjnych i dlatego zostala tak latwo i szybko przyjeta rowniez przez inne dystybucje.

        Sytuacja z (e)glibc ma charakter personalny. Myslisz, ze redhat bedacy pracodawca Urlicha zrezygnuje z glibc na rzecz eglibc? Zreszta eglibc nie jest niczym wiecej jak zestawem latek dla glibc. I na prawde nie widze innego powodu niz osobiste urazy dlaczego tworzyc z tego nowy projekt zamiast skupic sie na odpowiednich portach.

        Dodatkowo (z FAQ eglibc):

        EGLIBC is not meant to be a fork of GLIBC. GLIBC is well-suited to its core mission: providing a C library for use on workstation and server GNU/Linux systems. However, the GLIBC developers have requirements that make GLIBC difficult to use on embedded systems. The goal of EGLIBC is to provide a variant of GLIBC for use on embedded systems, but with as few changes to GLIBC as possible.

        Jak to sie ma do migrowania całego debiana na eglibc? Ja rozumiem, ze netbootki i arm sa obecnie trendy, ale bez przesady. Cos czuje, ze za jakis czas bedzie info, ze eglibc merguje swoje latki do portu glibc na arm/mips:)

        Swoja droga widze, ze czlonkiem eglibc jest m.i. windriver. Jest to o tyle ciekawe, ze ze swoja dystrbucja daja glibc (i tak pewnie zostanie sadzac po tym, ze wiekszosc pakietow windrivera importowana jest z fedory/rawhide).

  7. Awatar Otaq
    Otaq

    Wołałbym żeby jednak zaważyły względy techniczne a nie „bo my nie lubimy tego pana”. Ale skoro zamiast się gryźć będą poprawiać jakość oprogramowania a technicznie EGLIBC też jest lepszy (według newsa, ja się nie znam 😛 ) to należy się tylko cieszyć 🙂

    1. Awatar kocio
      kocio

      To może się jeszcze różnie skończyć i niekoniecznie musi wyjść jak z XFree86, które spowodowało powstanie nowego X.Org.

      Czasem forki wracały do źródeł, albo pierwotna gałąź przesiadała się na nowy kod – w glibc tak już raz było*, EGCS stał się podstawą nowego GCC, a niedawno Compiz i Beryl połączyły się w Compiz Fusion…

      * – http://pl.wikipedia.org/wiki/GNU_libc#Linuksowy_f…

      1. Awatar rjc
        rjc

        Wedlug projektu EGLIBC nie jest forkiem.

  8. Awatar maciek
    maciek

    czy to magiczne eglibc będzie jedynie w debjanie ARMowym, czy przelezie do wszystkich debianów?

    1. Awatar janc
      janc

      http://ftp-master.debian.org/new/eglibc_2.9-11.ht…
      (Architecture: source all amd64)

      Zastapi we wszystkich architekturach.

      1. Awatar xd
        xd

        Bez sensu 😐

        1. Awatar rjc
          rjc

          Coz za merytoryczna pointa.

          Czy ktokolwiek z "fudziarzy" odwiedzil strone EGLIBC i przyczytal chocby FAQ?

        2. Awatar kocio
          kocio

          W końcu przeczytałem:

          EGLIBC is not meant to be a fork of GLIBC. (…) The goal of EGLIBC is to provide a variant of GLIBC for use on embedded systems, but with as few changes to GLIBC as possible.

          Niepotrzebnie się irytujesz – to jest trochę gra słów, a trochę efekt psychologiczny: nie zamierzają być forkiem, ale spokojnie można powiedzieć też, że jednak nim są.

          Chodzi pewnie o to, że chcą dać znać, że chodzi im tylko o autonomię, a nie zupełną niezależność kodu, ponieważ słowo "fork" może sugerować że to kompletnie niezależny, oderwany od GLIBC projekt. Chodzi pewnie zarówno o jasny przekaz informacyjny, jak i uniknięcie głupich pytań czy robią jakiś rewolucyjny nowy GLIBC – autorzy zwykle nie lubią być zaczepiani przez łowców sensacji, jeśli chodzi im o coś w gruncie rzeczy prostego i nierewolucyjnego.

          Z tym, że fork może oznaczać też każdą osobną gałąź robioną przez inny zespół, a to właśnie robią – dokładają własne łatki, czyli tworzą własną wersję, tylko tyle że cały czas na bazie aktualnego GLIBC, więc to jest de facto seria forków.

          To tak, jak istnieje ileś forków Linuksa synchronizowanych na bieżąco z linią Linusa i nie ma problemu. A pamiętam, jak kilka lat temu napisano kilka alarmistycznych artykułów na temat możliwej "bałkanizacji" jądra i zagrożeniu forkami – właśnie dlatego, że piszący nie dopuścili myśli o tym, że fork nie musi być wrogi.

          Przy okazji polecam rozdzialik z książki o "produkcji" FLOSS:

          http://producingoss.com/en/forks.html

        3. Awatar rjc
          rjc

          http://en.wikipedia.org/wiki/Fork_(software_devel…

  9. Awatar xd
    xd

    Super, ale co jeśli faktycznie spadnie wydajność na innych architekturach? Nie wiem, czy to jest takie "osobiste".

    Będą dostępne chociaż obie biblioteki do wyboru?

  10. Awatar rjc
    rjc

    Już wkrótce do repozytorium Debiana trafi EGLIBC — fork GLIBC (GNU C Library) zoptymalizowany dla urządzeń wbudowanych (embedded), kompatybilny ze swoim pierwowzorem. Zastąpi on dotychczas używaną bibliotekę GLIBC.

    EGLIBC to NIE fork.

    1. Awatar Wojtek
      Wojtek

      Ja tam sie boje żeby w przyszłości nie okazało się że ten EGLIBC przestanie być zgodny z GLIBC i wtedy może być problem z kompilacją paczek z innych dystrybucji a tego bym niechciał, czy ktoś mnie możę zapewnić że w tym wypadku nie wystąpi taka możliwość

      1. Awatar bober
        bober

        podobny problem wystepuje juz dzis na poziomie kernela (z powodu braku abi) w komercyjnych dystrybucjach.

  11. Awatar rjc
    rjc

    Nie za bardzo rozumiem co rozumiesz przez "kompilacja paczek z innych dystrybucji".

    P.S. *BSD, GNU/Linux, OpenWRT i kilka innych – projekty te uzywaja roznych standardowych bibliotek C.

  12. Awatar skoczko
    skoczko

    Drepper jest znany z raczej szorstkiego obejscia ale to swietny programista i na pierwszym miejscu zawsze stawia wydajnosc, ktorej to, glibc i calemu GCC ciagle jednak brakuje. Wprowadzanie kolejnych warstw abstrakcji by lepiej obslugiwac architektury takie jak ARM brzmi ladnie ale wydajnosci na x86 napewno nie pomoze. Co zaczyna byc naprade widoczne to nonszalancja maintenerow Debiana – "it's my way or the highway" – warto wspomniec chociazby wybryki typu Iceweasel. Oj, panowie troche wiecej 'otwartosci' :).

    1. Awatar macias
      macias

      Obejrzalem, ten przykladowy bug report i patrzac po reakcji, raczej gosc, ktory sie zacietrzewia i nie potrafi w ogole dyskutowac merytorycznie, co slusznie mu wytknieto przy okazji zalozen co do wyrownania bajtow. Kod wygladal _przed_ po prostu humorystycznie.

    2. Awatar bies
      bies

      Opisy ,,świetny programista'' i ,,na pierwszym miejscu stawia zawsze wydajność'' są sprzeczne. A Drepper to nadęty bufon któremu warto by ,,podciąć skrzydełka'' przez uderzenie do kierownictwa RH.

      1. Awatar cutugno
        cutugno

        "Opisy ,,świetny programista” i ,,na pierwszym miejscu stawia zawsze wydajność” są sprzeczne."

        Przy czymś takim jak libc już tak bardzo sprzeczne nie są.

        "A Drepper to nadęty bufon któremu warto by ,,podciąć skrzydełka” przez uderzenie do kierownictwa RH."

        O ile z opisem osobowości Dreppera trudno się nie zgodzić, nie sądzę byś był pierwszym, który chciałby "uderzyć do kierownictwa RH", myślę nawet, że niektórzy już spróbowali.

        Dowcip polega na tym, że kierownictwo RH nie płaci Drepperowi za mizianie się z debianowcami jęczącymi o bugi na niewspieranej platformie, tylko za prowadzenie glibc zgodnie z potrzebami RH, a ostatnio RHEL na ARMie nie działał.

        A to Drepper robi raczej dobrze.

        1. Awatar ufoludek
          ufoludek

          @cotugno: i dlatego właśnie Linux ma problemy z "przejęciem władzy nad światem". Z jednej strony aspiruje do wspierania wszystkich platform, od superkomputerów po tostery, a z drugiej jeden ćwok wymusza robienie jakichś debilnych prawie-forków, bo mu się nie podoba ARM.
          Gdyby glibc był robiony nieco bardziej komercyjnie (czytaj: autorom by zależało na udziale w rynku) gość by wyleciał na zbitą twarz z korzyścią dla wszystkich.
          Wprawdzie jestem daleki od pomysłów typu "każdego inżyniera można zastąpić skończoną liczbą studentów", ale gostek z nastawieniem gwiazdy rocka jest dla projektu po prostu szkodliwy, bo zniechęca do współpracy innych.

    3. Awatar rjc
      rjc

      Iceweasel wybrykiem bynajmniej nie jest. Logo Firefoksa nie jest wolne i Fundacja Mozilla zastrzegaja sobie prawo uzycia nazwy jedynie dla niezmodyfikowanych wersji, wiec ten "wybryk" jest właśnie z powodu "otwartości". Po prostu inaczej sie nie da. Gdyby Linus zrobil podobnie z kernelem, Debian znany bylby prawdopodobnie jako Debian GNU, lub cos w podobie.

    4. Awatar azhag
      azhag

      > wybryki typu Iceweasel
      To jest „wybryk” Mozilla Corp. Notabene nie tylko Debian i pochodne muszą używać zmienionej nazwy, Iceweasel znajduje się choćby w PLD.

    5. Awatar blinkkin
      blinkkin

      O ile rozumiem powody istnienia Iceweasel (niekoniecznie się z tym zgadzam) to usilne poprawianie wszystkiego po swojemu budzi we mnie pewne obawy. Zawsze przypominają mi się Debianowe poprawki i przewidywalny generator liczb losowych w OpenSSL.

      1. Awatar rjc
        rjc

        Co ma piernik do wiatraka?
        Z czym dokładnie sie nia zgadzasz jeśli chodzi o Iceweasel?

        1. Awatar blinkkin
          blinkkin

          Debian-way mi po prostu nie odpowiada. Wiele paczek jest tak mocno spatchowana, że uzyskanie pomocy od twórców danego oprogramowania jest prawie niemożliwa – odpowiedź "to nie jest nasz problem, tylko Debiana" jest dosyć częsta? Prawdą jest, że ten problem nęka także inne dystrybucje.

          Udawanie, że EGLIBC nie jest forkiem, chociaż niekoniecznie musi zachowywać się jak standardowa bliblioteka GLIBC jest moim zdaniem dziwne.

          Wracając do Iceweasel to Debianowe pojęcie "free" różni się znacząco od tego co sądzi o tym większość. Mam w tej sferze inne poglądy.

          Być może moja niechęć do Debiana bierze się stąd, że "wychowałem" się na Slacku i nie będę tego ukrywać.

Dodaj komentarz

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