niedziela, 1 września 2013

Duchy piszą kod AMD dla Linuksa

Czytałem ostatnio raport opisujący wkład deweloperów i firm ich zatrudniających w Linuksa 3.11. Zestawienie można znaleźć na stronach LWN.net.

Nie zaskoczyły mnie wysokie pozycje RedHata, który od niepamiętnych czasów wkłada wiele sił w rozwój jądra, czy przeogromnego (ponad 100 000 pracowników) Intela. Zaskoczyła mnie wysoka pozycja AMD (zaledwie 10 000 pracowników).

Jeszcze niedawno czytałem newsa  AMD rezygnuje z Linuksa na desktopie, na rzecz serwerów:
Kilka dni temu świat obiegła szokująca wiadomość, ponieważ AMD zamknęło centrum badawcze Operating System Research Center, w którym pracowało 25 deweloperów Open Source. 
(...)
Po ostatnich kiepskich miesiącach i utracie sporej liczby deweloperów, związanych bezpośrednio z Linuksem, AMD postanowiło skupić się głównie na sektorze biznesowym, a dokładniej serwery.
(...)
Pytanie jest zatem proste - co teraz poczną obecni i przyszli użytkownicy platform, opartych o procesory i chipsety firmy AMD? Pozostaje domniemywać, iż jedynym ratunkiem będzie zmiana na Intela, który obecnie jest jedyną firmą, tak mocno wspierającą zarówno desktop, jak i serwery.
Według podsumowania LWN.net AMD jest na 11 miejscu pod względem wprowadzonych zmian i na 3 (wyprzedzając m. in. wymienionego wyżej Intela) pod względem liczby zmienionych linii kodu.  Kto napisał ten kod? Duchy czy krasnoludki?

Sprawa zamknięcie OSRC też nie jest taka prosta i  nie oznaczała końca wsparcia Linuksa. Mike Silverman z AMD opisał ją tak:
As announced during our last financial earnings results on October 18th 2012, AMD is restructuring its business and building a more efficient operating model. As consequence and as part of a global reduction in workforce, AMD GmbH is closing its operations in Dresden, including its Operating System Research Center (OSRC) as part of a full site closure at this location. We will continue to support the Linux kernel, and the software development work happening at the OSRC is being consolidated and will be performed at other AMD locations.
Mamy do czynienia więc ze zwykłą restrukturyzacją i działania wykonywane w OSRC zostały przeniesione do innych ośrodków, a nie zaprzestane.

Nie jest też prawdą, że AMD przestaje wspierać desktopy. Wystarczy spojrzeć na wcześniej przytaczane podsumowanie. Najbardziej aktywny pracownik AMD, Alex Deucher, zajmuje się układami graficznymi, które obecnie mają znaczenie tylko na desktopach i w notebookach. Alex znajduje się na trzecim miejscu biorąc pod uwagę zarówno liczbę zmian jak i linii kodu.

Tendencja powinna zostać utrzymana w przyszłości, wystarczy spojrzeć na zmiany w DRM Linuksa 3.12.
Obejmują one zarówno serwerowe APU "Berlin" (ciekawostka: poźniej pojawi "Warsaw") jak i układy graficzne "Canary Islands/Sea Islands", które zostaną dopiero wprowadzone do produkcji. Zresztą, w przypadku AMD wszystko idzie w kierunku unifikacji. Czy to PC-ty, czy serwery czy konsole (PS4/XO), architektura jest podobna: APU, HSA, hUMA. Szczególnie, gdy mówimy o Linuksie, tutaj kod współdzielą nawet urządzenia mobilne z superkomputerami z listy TOP500.

 Polecam zapamiętać tę listę z LWN.net:

Most active 3.11 employers
By changesets
(None)9769.1%
Intel9709.1%
Red Hat9118.5%
Linaro8908.3%
Samsung4854.5%
(Unknown)4834.5%
IBM4183.9%
Vision Engraving Systems3333.1%
Texas Instruments3193.0%
SUSE3102.9%
AMD2812.6%
Renesas Electronics2652.5%
Outreach Program for Women2302.1%
Google2242.1%
Freescale1511.4%
Oracle1371.3%
ARM1351.3%
Cisco1321.2%
By lines changed
(None)30799631.9%
Linux Foundation939299.7%
AMD577456.0%
Red Hat526795.5%
Intel408684.2%
Texas Instruments288193.0%
Qualcomm262152.7%
Renesas Electronics240842.5%
Samsung234132.4%
Linaro206492.1%
(Unknown)173621.8%
IBM173371.8%
AbsoluteValue Systems168721.7%
Nokia168471.7%
Mellanox168411.7%
Vision Engraving Systems122681.3%
Outreach Program for Women114991.2%
SUSE102791.1%
Obejmuje ona firmy, które wspierają Linuksa. Linuksa, a nie tylko swoje produkty na Linuksie. Greg Kroah-Hartman w pliku stable_api_nonsense.txt opisał prawa rządzące Linuksem:
So, if you have a Linux kernel driver that is not in the main kernel tree, what are you, a developer, supposed to do?  Releasing a binary driver for every different kernel version for every distribution is a nightmare, and trying to keep up with an ever changing kernel interface is also a rough job.

Simple, get your kernel driver into the main kernel tree (remember we are talking about GPL released drivers here, if your code doesn't fall under this category, good luck, you are on your own here, you leech .)  If your driver is in the tree, and a kernel interface changes, it will be fixed up by the person who did the kernel change in the first place.  This ensures that your driver is always buildable, and works over time, with very little effort on your part.

Może robię się monotematyczny, ale otwarty kod i kod wprowadzony bezpośrednio do jądra to cholernie ważna rzecz. I nie ma tu u mnie pobudek ideologicznych, są wyłącznie praktyczne.

3 komentarze:

  1. Witam ;)
    Dlaczego Nokia skreślona?

    OdpowiedzUsuń
  2. Nokia=Microsoft?

    OdpowiedzUsuń
    Odpowiedzi
    1. Mhm, już do mnie dotarło ;p Ale czy Microsoft nie wykupił samego działu produkującego urządzenia mobilne?

      Usuń