Ocena:

Książka jest dobrze oceniana jako wprowadzenie do rozwoju jądra Linuksa, chwalona za przejrzystość, strukturę i praktyczne podejście. Jednak niektórzy recenzenci uważają, że brakuje jej głębi i wystarczających przykładów wewnętrznych jądra, a także pewnych problemów z formatowaniem.
Zalety:⬤ Świetny materiał wprowadzający dla początkujących w rozwoju jądra Linuksa.
⬤ Dobrze zorganizowana i łatwa do czytania treść.
⬤ Zawiera praktyczne przykłady i praktyczne projekty.
⬤ Dokładnie omawia podstawowe tematy (zarządzanie pamięcią, planowanie, itp.).
⬤ Dodatkowe zasoby dostępne na GitHub.
⬤ Wciągający styl pisania, który utrzymuje zainteresowanie czytelników.
⬤ Niektórzy czytelnicy oczekują bardziej dogłębnego i kompleksowego omówienia wewnętrznych elementów jądra.
⬤ Krytycy zwracają uwagę na ogólny przegląd bez szczegółowych przykładów.
⬤ Obecność problemów z formatowaniem i nieaktualnych informacji opartych na konkretnych wersjach jądra.
⬤ Niektóre treści są postrzegane jako wypełniacze lub nie są ściśle zgodne z aktualnymi praktykami w programowaniu jądra Linuksa.
(na podstawie 20 opinii czytelników)
Linux Kernel Programming: A comprehensive guide to kernel internals, writing kernel modules, and kernel synchronization
Dowiedz się, jak pisać wysokiej jakości kod modułów jądra, rozwiązywać typowe problemy związane z programowaniem jądra Linuksa i zrozumieć podstawy wewnętrznych elementów jądra Linuksa
Główne cechy
⬤ Dowiedz się, jak pisać kod jądra przy użyciu frameworka Loadable Kernel Module.
⬤ Zapoznanie się z najlepszymi w branży technikami wydajnej alokacji pamięci i synchronizacji danych w jądrze.
⬤ Zrozumienie podstaw kluczowych tematów wewnętrznych, takich jak architektura jądra, zarządzanie pamięcią, planowanie procesora i synchronizacja jądra.
Opis książki
Linux Kernel Programming to kompleksowe wprowadzenie dla tych, którzy dopiero zaczynają pracę z jądrem Linuksa i tworzeniem modułów. Ten łatwy do zrozumienia przewodnik sprawi, że zaczniesz pisać kod jądra w mgnieniu oka. Ta książka wykorzystuje najnowsze jądro Linux 5.4 Long-Term Support (LTS), które będzie utrzymywane od listopada 2019 roku do grudnia 2025 roku. Pracując z jądrem 5.4 LTS w całej książce, możesz mieć pewność, że Twoja wiedza będzie nadal aktualna przez wiele lat.
Ta książka o Linuksie zaczyna się od pokazania, jak zbudować jądro ze źródła. Następnie dowiesz się, jak napisać swój pierwszy moduł jądra przy użyciu potężnego frameworka Loadable Kernel Module (LKM). Następnie książka obejmuje kluczowe tematy dotyczące jądra, w tym architekturę jądra Linuksa, zarządzanie pamięcią i planowanie procesora. Następnie zagłębisz się w dość złożony temat współbieżności w jądrze, zrozumiesz problemy, które może powodować, i dowiesz się, jak można je rozwiązać za pomocą różnych technologii blokowania (muteksy, spinlocki, operatory atomowe i refcount). Skorzystasz również z bardziej zaawansowanego materiału na temat efektów pamięci podręcznej, elementarza technik bez blokad w jądrze, unikania zakleszczeń (z lockdep) i technik debugowania blokad jądra.
Pod koniec tej książki o jądrze będziesz miał szczegółowe zrozumienie podstaw pisania kodu modułu jądra Linuksa dla rzeczywistych projektów i produktów.
Czego się nauczysz
⬤ Pisać wysokiej jakości modularny kod jądra (framework LKM) dla jąder 5.x.
⬤ Konfigurować i budować jądro ze źródeł.
⬤ Zgłębiać architekturę jądra Linux.
⬤ Zapoznać się z kluczowymi elementami wewnętrznymi dotyczącymi zarządzania pamięcią w jądrze.
⬤ Zrozumienie i praca z różnymi dynamicznymi interfejsami API przydzielania/oddalania pamięci jądra.
⬤ Poznanie kluczowych aspektów wewnętrznych dotyczących planowania procesora w jądrze.
⬤ Zrozumienie zagadnień współbieżności jądra.
⬤ Dowiedz się, jak pracować z kluczowymi prymitywami synchronizacji jądra.
Dla kogo jest ta książka
Ta książka jest przeznaczona dla programistów Linuksa rozpoczynających swoją przygodę z rozwojem jądra Linuksa. Programiści jądra Linux i sterowników, którzy chcą przezwyciężyć częste i powszechne problemy związane z rozwojem jądra, a także zrozumieć wewnętrzne elementy jądra, skorzystają z tej książki. Wymagana jest podstawowa znajomość Linux CLI i programowania w języku C.