4 marca, 2022

kroki do przyczynienia się do powstania jądra Linuksa

jeden z największych—i najszybciej poruszających się—projektów open source, jądro Linuksa, składa się z około 53,600 plików i prawie 20 milionów linii kodu. Z ponad 15,600 programistów przyczyniających się do projektu na całym świecie, jądro Linuksa podąża za modelem współpracy opiekunów.

w tym artykule przedstawię krótką listę kroków związanych z dokonaniem pierwszego wkładu w jądro i przyjrzę się temu, co powinieneś wiedzieć przed przesłaniem poprawki. Aby dokładniej przyjrzeć się procesowi przesyłania pierwszej poprawki, przeczytaj samouczek Kernelnewbies First Kernel Patch.

Tworzenie jądra

Krok 1: Przygotuj swój system.

kroki w tym artykule Załóżmy, że masz następujące narzędzia w systemie:

  • edytor tekstu
  • klient poczty e-mail
  • system kontroli wersji (np.)

Krok 2: Pobierz repozytorium kodu jądra Linuksa:

git clone -b staging-testing
git://git.kernel.org/pub/scm/linux/kernel/git/gregkh/staging.git

skopiuj bieżącą konfigurację:

cp /boot/config-`uname -r`* .config

Krok 3: Zbuduj / zainstaluj jądro.

make -jX
sudo make modules_install install

Krok 4: Stwórz gałąź i przełącz się na nią.

git checkout -b first-patch

Krok 5: zaktualizuj jądro, aby wskazywało na najnowszą bazę kodu.

git fetch origin
git rebase origin/staging-testing

Krok 6: Zmień podstawę kodu.

przekompiluj za pomocą polecenia make, aby upewnić się, że zmiana nie spowoduje błędów.

Krok 7: zatwierdź zmiany i utwórz łatkę.

git add <file>
git commit -s -v
git format-patch -o /tmp/ HEAD^

obiekt składa się ze ścieżki do nazwy pliku oddzielonej dwukropkami, po której następuje to, co robi łata w czasie imperatywnym. Po pustej linii pojawia się opis łatki i obowiązkowy podpisany tag, a na koniec różnica Twojej łatki.

oto kolejny przykład prostej łatki:

następnie wyślij łatkę e-mailem z wiersza poleceń (w tym przypadku Mutt):

mutt -H /tmp/0001-<whatever your filename is>

aby poznać listę opiekunów, do których wysłać łatkę, użyj get_maintainer.pl scenariusz.

co warto wiedzieć przed przesłaniem pierwszej poprawki

  • Greg Kroah-Hartman ’ s staging tree jest dobrym miejscem do przesłania pierwszej poprawki, ponieważ akceptuje łatwe łatki od nowych współpracowników. Po zapoznaniu się z procesem wysyłania łatek można wysyłać łatki specyficzne dla podsystemu o zwiększonej złożoności.
  • Możesz również zacząć od poprawiania problemów ze stylem kodowania w kodzie. Aby dowiedzieć się więcej, przeczytaj dokumentację stylu kodowania jądra Linuksa.
  • skrypt checkpatch.pl wykrywa błędy stylu kodowania. Na przykład uruchom:
    perl scripts/checkpatch.pl -f drivers/staging/android/* | less
  • możesz wypełnić TODOs pozostawione niekompletne przez deweloperów:
    find drivers/staging -name TODO 
  • Coccinelle jest pomocnym narzędziem do dopasowywania wzorów.
  • przeczytaj archiwa mailingowe jądra.
  • przejdź przez Linuksa.Git log, aby zobaczyć commity poprzednich autorów w celu uzyskania inspiracji.
  • uwaga: nie umieszczaj top-postów, aby komunikować się z recenzentem twojego patcha! Oto przykład:

    Wrong way:

    Chris,
    tak zaplanujmy spotkanie jutro, na drugim piętrze.
    >on Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
    > Hey John, I had some questions:
    > 1. Chcesz umówić spotkanie na jutro?
    > 2. Na którym piętrze w biurze?
    > 3. Która godzina jest dla Ciebie odpowiednia?

    (zauważ, że ostatnie pytanie zostało przypadkowo pozostawione bez odpowiedzi.

    poprawny sposób:

    Chris,
    Zobacz moje Odpowiedzi poniżej…
    >on Fri, Apr 26, 2013 at 9:25 AM, Chris wrote:
    > Hey John, I had some questions:
    > 1. Chcesz umówić spotkanie na jutro?
    tak jutro jest ok.
    > 2. Na którym piętrze w biurze?
    zostawmy to na drugim piętrze.
    > 3. Która godzina jest dla Ciebie odpowiednia?
    09: 00

    (na wszystkie pytania udzielono odpowiedzi, dzięki czemu zaoszczędzono czas czytania.)

  • wyzwanie Eudyptula to świetny sposób na naukę podstaw jądra.

aby dowiedzieć się więcej, przeczytaj samouczek Kernelnewbies First Kernel Patch. Następnie, jeśli nadal masz jakieś pytania, pytaj na liście dyskusyjnej kernelnewbies lub na kanale IRC # kernelnewbies.

Dodaj komentarz

Twój adres e-mail nie zostanie opublikowany.