Książka Linux. Programowanie systemowe przeznaczona jest dla czytelników posiadających, co najmniej podstawową wiedzę na temat programowania w języku C, a także znających metody posługiwania się narzędziami programistycznymi takimi jak gcc, gdb czy make. Kwestie w niej omawiane są doskonałym uzupełnieniem wiedzy na temat programowania jądra i komunikacji z przestrzenią użytkownika. Na wstępie czytelnicy znajdą prezentację podstawowych pojęć związanych z programowaniem systemowym w Linuksie, a także garść informacji na temat standaryzacji począwszy od PO-SIX, poprzez język C, aż do Linuksa i jego standardów. Są w nim w sposób ogólny przedstawione również usługi dostarczane przez system Linux, takie jak pliki i system plików, procesy, komunikacja międzyprocesowa, sygnały itp. Kolejne rozdziały prowadzą czytającego przez gąszcz operacji realizowanych przez system, szczegółowo prezentując ich sposób działania, wykorzystywane struktury danych oraz funkcje systemowe służące do sterowania nimi. Ponieważ w Linuksie wszystko jest plikiem znaczna część książki poświęcona jest operacjom plikowym. Autor omawia najpierw proste operacje zapisu i odczytu pojedynczych znaków, następnie zajmuje się operacjami buforowanymi, tworzeniem i wykorzystywaniem strumieni, na zakończenie prezentując działanie zarządców operacji we/wy. Szczegółowo opisane są także procesy, metody ich tworzenia, synchronizacji, zarządzania nimi w systemach wieloprocesorowych. Nie mogło również zabraknąć rozdziału poświęconego pamięci operacyjnej, będącej chyba najważniejszym zasobem systemu operacyjnego. Zawarte w nim informacje pozwalają poznać metody stosowane przez jądro systemu do przydzielania pamięci procesom, zarządzania segmentami danych, czy blokowania pewnych jej obszarów. Uzupełnieniem wcześniej omawianych zagadnień jest rozdział poświęcony sygnałom. Prezentowana w nim jest koncepcja sygnałów, podstawowe i zaawansowane sposoby sterowania sygnałami, jak też użycia ich do komunikacji między procesami. Na zakończenie Robert Love przedstawia problematykę czasu w systemach Linuksowych. Opisuje sposoby odmierzania upływu czasu przez jądro, prezentuje struktury danych reprezentujące czas, a także omawia interfejs programistyczny dostępny dla programistów. Doskonałym dodatkiem do ogromnej ilości informacji zawartej w poszczególnych rozdziałach są przykłady ilustrujące omawiane zagadnienia, opatrzone zarówno opisem działania, jak też zawierające omówienie użytych funkcji systemowych, czy języka C. W związku z powyższym, uważam, że, Linux. Programowanie systemowe można polecić wszystkim tym, którzy chcą wiedzieć jak pisać programy korzystające z ogromu możliwości systemu spod znaku pingwina.
Linux+ Leszek Konka, 01/06/2009