Łatwe programowanie w systemie Linux – kompletny przewodnik z zasobami dla początkujących

Ujawnienie: Twoje wsparcie pomaga utrzymać działanie witryny! Pobieramy opłatę za polecenie niektórych usług, które zalecamy na tej stronie.


Linux to system operacyjny, platforma, ekosystem i kultura. Podczas gdy ciągła dominacja systemów Windows i Mac OS w komputerach stacjonarnych powoduje, że niewtajemniczony konsument zakłada, że ​​Linux jest rodzajem marginalnej opcji dla ekstremalnych maniaków i tych, którzy nie chcą płacić za system operacyjny, prawda jest taka, że Linux jest najczęściej używanym i najważniejszym systemem operacyjnym na świecie. Zasila sieć, zasila naszą infrastrukturę, zasila największe superkomputery na świecie.

Opracowanie dla Linuksa może być wyzwaniem, ale może być również bardzo satysfakcjonujące. Ten krótki przewodnik zapewni wprowadzenie do informacji i zasobów potrzebnych do rozpoczęcia programowania w systemie Linux. Obejmuje cztery obszary rozwoju Linuksa: wkład w jądro, budowanie nowych modułów, programowanie aplikacji dla Linuksa i wykonywanie skryptów Shell.

Rozwój jądra Linux

Jądro Linux jest prawdopodobnie najbardziej ambitnym projektem rozwoju oprogramowania na świecie. Nowe stabilne wersje pojawiają się mniej więcej co trzy miesiące, a każda z nich obejmuje tysiące programistów pracujących w kilkudziesięciu krajach.

Zaangażowanie się w tworzenie jądra jest, paradoksalnie, zarówno łatwiejsze niż się wydaje, jak powinno być, a także absurdalnie trudne. Jest to łatwiejsze niż się wydaje, ponieważ nie ma procesu rekrutacji, wywiadu ani biurokracji. Każdy, kto wie, co robią, może opracować rdzeń i przesłać łatki. Z drugiej strony jest to również niezwykle trudne, ponieważ jądro jest niezwykle skomplikowane. Co więcej, społeczność programistów jądra, choć pod pewnymi względami bardzo przyjazna, nie toleruje zbyt dobrze amatorskich shenaniganów. Chociaż pomaga mieć grubą skórę, nic tak naprawdę nie zastępuje faktycznej wiedzy o tym, co robisz. Rozwój rdzenia jest dość poważnym biznesem, obejmującym dość poważną informatykę. Jeśli dopiero zaczynasz pracę nad rozwojem systemu operacyjnego, tak naprawdę nie jest to miejsce, od którego można zacząć.

Co musisz wiedzieć

Umiejętności rozwojowe

Programowanie jądra Linux odbywa się w C. Nie w C ++, nie w Objective-C, nie w C #. Pierwszą rzeczą, którą musisz zrobić, to bardzo dobrze nauczyć się języka programowania C..

Konieczne jest również dogłębne zrozumienie teorii systemu operacyjnego, szczególnie w odniesieniu do systemu Linux. Więcej na ten temat w następnej sekcji.

  • Język programowania C: ostateczny przewodnik po języku. Dostępny również jako darmowy plik PDF.
  • Koncepcje systemu operacyjnego: gruntowne wprowadzenie do teorii i praktyki rozwoju systemu operacyjnego.

Zrozumieć Linuksa

Oczywiście musisz rozumieć Linuksa zarówno jako użytkownika, jak i programistę. Obejmuje to dość głębokie zrozumienie struktury jądra Linuksa i tego, jak różne podprojekty pasują do siebie.

  • Linux Programming Interface
  • Początkujący jądro Linuksa

Proces i kultura

Na koniec musisz zrozumieć, jak faktycznie działa proces rozwoju Linuksa. Obejmuje to wyczucie wspólnoty jako całości, jej kultury i tego, w jaki sposób różni członkowie społeczności programistów odnoszą się do siebie. Oznacza to również zrozumienie kontroli wersji rozproszonej i cyklu wydawania wersji rozwojowych.

  • Jak wziąć udział w społeczności Linux: wymagana lektura. Zacznij tutaj.
  • Trzy sposoby dla początkujących, aby wnieść wkład do jądra Linux: krótki, przyjazny przewodnik po zaangażowaniu.
  • Rzeczy oficjalne:
    • Archiwa jądra Linux
    • Lista mailingowa jądra systemu Linux
    • Śledzenie błędów jądra
  • Bycie kretynem na jądrze Linux: poradnik jak nie zachowywać się na liście mailingowej jądra Linux (lub jakiejkolwiek innej). (Nasza rekomendacja: czaj się przez co najmniej sześć miesięcy przed opublikowaniem czegokolwiek.)

Opracowywanie modułów jądra

Przed przejściem do głównego rozwoju jądra Linux dobrym sposobem na zwiększenie wiedzy i doświadczenia w programowaniu w systemie Linux jest praca nad modułem jądra. Są to niezależnie opracowane programy, które współpracują z jądrem w celu działania jako kompletny system operacyjny. Moduły jądra obejmują między innymi sterowniki urządzeń dla różnych urządzeń peryferyjnych, a także menedżery plików i inne funkcje systemu operacyjnego niskiego poziomu.

Bariery wejścia do pracy na module jądra są, ogólnie rzecz biorąc, znacznie niższe niż w przypadku pracy na jądrze Linuksa. Istnieją setki modułów opracowanych przez wiele różnych zespołów i osób, więc nie ma jednego zestawu strażników nadających ton rozwojowi. Co więcej, wraz z rozwojem modułów stawki są nieco niższe.

Co musisz wiedzieć

Moduły jądra, podobnie jak samo jądro, są zwykle napisane w C. (Istnieje debata na temat tworzenia modułów jądra w C ++, i istnieją pewne nieszablonowe sposoby osiągnięcia tego, ale z pewnością nie jest to normalny sposób ani czy to jest zalecane.)

Oczywiście, jeśli piszesz sterownik urządzenia dla jakiegoś sprzętu, musisz sporo wiedzieć o rodzaju sprzętu i wbudowanym oprogramowaniu. Potrzebujesz również przyzwoitego zrozumienia jądra opartego na Linuksie i sposobu, w jaki współdziała on z modułami jądra. Wreszcie, jeśli przyczyniasz się do istniejącego modułu jądra, musisz dowiedzieć się o ich procedurach i cyklu rozwoju.

  • Podręcznik programowania modułu jądra Linux: niezwykle dokładny przewodnik.
  • Jak napisać własny moduł jądra systemu Linux za pomocą prostego przykładu: fajny samouczek.
  • Pisanie systemu plików w jądrze Linuksa: kolejny stosunkowo łatwy do wykonania samouczek krok po kroku.

Zobacz także powyższą listę zasobów w sekcji Rozwój jądra.

Opracowywanie aplikacji dla systemu operacyjnego Linux

Gdy wyrwiemy się z chwastów związanych z rozwojem systemu operacyjnego i zaczniemy rozmawiać o tworzeniu rzeczywistych aplikacji dla systemu operacyjnego Linux, zadanie staje się nieco łatwiejsze i mamy o wiele więcej opcji dotyczących dalszego postępowania. Kompilatory i interpretatory dla prawie każdego języka programowania są dostępne dla platformy Linux, często więcej niż jeden dla określonego języka.

Co musisz wiedzieć

Jeśli jesteś przyzwyczajony do programowania w systemie Windows lub Mac OS, największym szokiem podczas programowania w systemie Linux jest prawdopodobnie różnorodność środowisk Linux. Istnieją dziesiątki dystrybucji Linuksa, a każdy użytkownik Linuksa ma możliwość znacznej zmiany sposobu działania określonego środowiska. Oznacza to, między innymi, że musisz bardziej zwracać uwagę na zarządzanie zależnościami, niż byłoby to konieczne.

Kolejną różnicą, szczególnie w porównaniu z systemem Windows, jest to, że wielu użytkowników Linuksa woli kompilować swoje aplikacje z kodu źródłowego. Dzieje się tak również w systemie Mac OS, ale z mniejszą częstotliwością. W świecie Linuksa duża liczba użytkowników zawsze woli kompilować aplikacje ze źródła niż z pakietu instalacyjnego. Może to wpłynąć na Twoje zdanie na temat rozwoju i dystrybucji oprogramowania.

Większość programowania skoncentrowanego na Linuksie odbywa się w C, C ++, Perl lub Python. Dobra znajomość tych języków i zanurzenie się w zasobach wymienionych powyżej (jądro i moduły) i poniżej (skryptowanie) bardzo pomoże.

  • Programowanie C w systemie Linux: dokładne wprowadzenie i samouczek na temat programowania aplikacji Linux w języku C..
  • Szkolenie programistów systemu Linux: płatne kursy na temat rozwoju systemu Linux, od Linux Foundation.

Skrypty w systemie Linux

Być może „najniższym poziomem” programowania w systemie Linux jest skryptowanie powłoki. Jest to jednak nie mniej „programowanie” niż cokolwiek innego. Skrypty powłoki w systemie Linux to świetny sposób na automatyzację rutynowych zadań i wykonywanie większej ilości pracy w krótszym czasie. Dodatkowo, zagłębianie się w zaawansowane skrypty powłoki zapewni głębszą wiedzę i zrozumienie systemu operacyjnego Linux. Skrypty powłoki naprawdę oddzielają początkujących konsumentów Linuksa od zaawansowanych użytkowników Linuksa.

Co musisz wiedzieć

Chociaż istnieją inne opcje, najpopularniejszym językiem skryptowym jest Bash. Nawet jeśli planujesz przejść na bardziej zaawansowane języki skryptowe, opanowanie Basha pozwoli Ci zacząć od właściwej stopy dla wszystkich rodzajów skryptów systemu operacyjnego. Większość osób, które naprawdę zajmują się skryptami jako sposobem na zwiększenie produktywności, używa Pythona lub Perla przez większość swojej pracy. Kiedy już uderzysz w ścianę tym, co możesz łatwo osiągnąć w Bash, prawdopodobnie będziesz chciał przejść na jeden z tych języków.

Zasoby Bash

  • Przewodnik Bash dla początkujących
  • Advanced Bash-Scripting Guide
  • Samouczek skryptowania powłoki Linux

Zasoby w języku Python

  • Naucz się języka Python na własnej skórze: jedno z najpopularniejszych wprowadzeń do programowania w języku Python.
  • Zautomatyzuj nudne rzeczy za pomocą Pythona: praktyczne programowanie dla początkujących: świetne wprowadzenie do skryptowania (w przeciwieństwie do „programowania”) w Pythonie. Dostępny również za darmo online jako kurs wideo.

Zasoby Perla

  • Wprowadzenie do Perla dla początkujących
  • Jak pisać skrypty powłoki w Perlu
  • UNIX, skryptowanie powłoki i wprowadzenie do Perla

Ogólne zasoby systemu Linux

Linux Foundation

Linux.org: centralne forum dla wszystkich rzeczy Linux.

Projekt dokumentacji systemu Linux: ogromna biblioteka przewodników po Linuksie na wszystkie powyższe tematy oraz kilka innych rzeczy. Jest to jedno z najważniejszych miejsc, w którym można uzyskać szczegółowe informacje o systemie Linux.

Podsumowanie

To była szalona jazda! Od programowania jądra Linux aż do skryptowania powłoki. Istnieją nieskończone sposoby programowania systemu operacyjnego Linux. Dzięki temu przewodnikowi powinieneś być na dobrej drodze.

Jeffrey Wilson Administrator
Sorry! The Author has not filled his profile.
follow me
    Like this post? Please share to your friends:
    Adblock
    detector
    map