Book description
Przewodnik po j?drze sytemu Linux!
J?dro systemu Linux to jeden z najwi?kszych projektów rozwijanych przez ogromn? spo?eczno??. Setki wolontariuszy dniami i nocami rozwijaj? najwa?niejszy element tego systemu operacyjnego. I robi? to naprawd? skutecznie! Ka?de kolejne wydanie Linuksa zawiera dziesi?tki nowinek oraz ulepsze? - jest coraz szybsze, bezpieczniejsze i po prostu lepsze. Jednak pocz?tkuj?cy programi?ci mog? mie? problemy z wykorzystaniem us?ug dostarczanych przez kernel. Masz obawy, ?e nie odnajdziesz si? w g?szczu mo?liwo?ci wspó?czesnego j?dra systemu Linux?
Ta ksi??ka rozwieje je w mig. Jest to wyj?tkowa pozycja na rynku wydawniczym, zg??biaj?ca w?a?nie te tajemnice. W trakcie lektury nauczysz si? tworzy? niskopoziomowe oprogramowanie, które b?dzie si? komunikowa?o bezpo?rednio z j?drem systemu. Operacje wej?cia i wyj?cia, strumienie, zdarzenia, procesy to tylko cz??? elementów, które b?yskawicznie opanujesz. Ponadto nauczysz si? zarz?dza? katalogami i plikami oraz poznasz koncepcj? sygna?ów. Ksi??ka ta jest niezast?pionym ?ród?em informacji dla wszystkich programistów pracuj?cych z j?drem Linuksa. Docenisz t? lektur?!
Poznaj:
- metody zarz?dzania procesami
- zastosowanie sygna?ów
- zaawansowane interfejsy wej?cia i wyj?cia
- j?dro systemu od podszewki
Poznaj j?dro systemu od podszewki!
Robert Love - od wielu lat jest u?ytkownikiem i wspó?twórc? systemu Linux. Rozwija ?rodowisko graficzne GNOME oraz j?dro systemu. Pracuje jako projektant oprogramowania w firmie Google, by? te? cz?onkiem zespo?u projektuj?cego system operacyjny Android. Jest autorem licznych ksi??ek po?wi?conych programowaniu w systemie Linux.
Table of contents
- Linux: Programowanie Systemowe
- Przedmowa
- Wstęp
- 1. Wprowadzenie — podstawowe pojęcia
-
2. Plikowe operacje wejścia i wyjścia
- Otwieranie plików
- Czytanie z pliku przy użyciu funkcji read()
- Pisanie za pomocą funkcji write()
- Zsynchronizowane operacje wejścia i wyjścia
- Bezpośrednie operacje wejścia i wyjścia
- Zamykanie plików
- Szukanie za pomocą funkcji lseek()
- Odczyty i zapisy pozycyjne
- Obcinanie plików
- Zwielokrotnione operacje wejścia i wyjścia
- Organizacja wewnętrzna jądra
- Zakończenie
-
3. Buforowane operacje wejścia i wyjścia
- Operacje wejścia i wyjścia buforowane w przestrzeni użytkownika
- Typowe operacje wejścia i wyjścia
- Otwieranie plików
- Otwieranie strumienia poprzez deskryptor pliku
- Zamykanie strumieni
- Czytanie ze strumienia
- Pisanie do strumienia
- Przykładowy program używający buforowanych operacji wejścia i wyjścia
- Szukanie w strumieniu
- Opróżnianie strumienia
- Błędy i koniec pliku
- Otrzymywanie skojarzonego deskryptora pliku
- Parametry buforowania
- Bezpieczeństwo wątków
- Krytyczna analiza biblioteki typowych operacji wejścia i wyjścia
- Zakończenie
-
4. Zaawansowane operacje plikowe wejścia i wyjścia
- Rozproszone operacje wejścia i wyjścia
- Odpytywanie zdarzeń
- Odwzorowywanie plików w pamięci
- Porady dla standardowych operacji plikowych wejścia i wyjścia
- Operacje zsynchronizowane, synchroniczne i asynchroniczne
- Zarządcy operacji wejścia i wyjścia oraz wydajność operacji wejścia i wyjścia
- Zakończenie
-
5. Zarządzanie procesami
- Programy, procesy i wątki
- Identyfikator procesu
- Uruchamianie nowego procesu
- Zakończenie procesu
- Oczekiwanie na zakończone procesy potomka
-
Użytkownicy i grupy
- Rzeczywiste, efektywne oraz zapisane identyfikatory użytkownika i grupy
- Zmiana rzeczywistego lub zapisanego identyfikatora dla użytkownika lub grupy
- Zmiana efektywnego identyfikatora dla użytkownika lub grupy
- Zmiana identyfikatora dla użytkownika lub grupy w wersji BSD
- Zmiana identyfikatora dla użytkownika lub grupy w wersji HP-UX
- Zalecane modyfikacje identyfikatorów użytkownika i grupy
- Wsparcie dla zapisanych identyfikatorów użytkownika
- Otrzymywanie identyfikatorów użytkownika i grupy
- Grupy sesji i procesów
- Demony
- Zakończenie
-
6. Zaawansowane zarządzanie procesami
- Szeregowanie procesów
- Completely Fair Scheduler
- Udostępnianie czasu procesora
- Priorytety procesu
- Wiązanie procesów do konkretnego procesora
-
Systemy czasu rzeczywistego
- Systemy ścisłego oraz zwykłego czasu rzeczywistego
- Opóźnienie, rozsynchronizowanie oraz parametry graniczne
- Obsługa czasu rzeczywistego przez system Linux
- Linuksowe strategie szeregowania i ustalania priorytetów
- Ustawianie parametrów szeregowania
- sched_rr_get_interval()
- Środki ostrożności przy pracy z procesami czasu rzeczywistego
- Determinizm
- Ograniczenia zasobów systemowych
-
7. Wątkowość
- Binaria, procesy i wątki
- Wielowątkowość
- Modele wątkowości
- Wzorce wątkowości
- Współbieżność, równoległość i wyścigi
- Synchronizacja
- Standard Pthreads
- Dalsze zdobywanie wiedzy
-
8. Zarządzanie plikami i katalogami
- Pliki i ich metadane
- Katalogi
- Dowiązania
- Kopiowanie i przenoszenie plików
- Węzły urządzeń
- Komunikacja poza kolejką
- Śledzenie zdarzeń związanych z plikami
-
9. Zarządzanie pamięcią
- Przestrzeń adresowa procesu
- Przydzielanie pamięci dynamicznej
- Zarządzanie segmentem danych
- Anonimowe odwzorowania w pamięci
- Zaawansowane operacje przydziału pamięci
- Uruchamianie programów używających systemu przydzielania pamięci
- Przydziały pamięci wykorzystujące stos
- Wybór mechanizmu przydzielania pamięci
- Operacje na pamięci
- Blokowanie pamięci
- Przydział oportunistyczny
- 10. Sygnały
- 11. Czas
-
A. Rozszerzenia kompilatora GCC dla języka C
- GNU C
- Funkcje wplatane (inline)
- Zapobieganie wplataniu funkcji
- Funkcje czyste (pure)
- Funkcje stałe
- Funkcje, które nie wracają do procedury wywołującej
- Funkcje przydzielające pamięć
- Wymuszanie sprawdzania wartości powrotnej dla procedur wywołujących
- Oznaczanie funkcji niezalecanych
- Oznaczanie funkcji używanych
- Oznaczanie funkcji lub parametrów nieużywanych
- Pakowanie struktury
- Zwiększanie wartości wyrównania dla zmiennej
- Umieszczanie zmiennych globalnych w rejestrach
- Optymalizacja gałęzi kodu
- Uzyskiwanie typu dla wyrażenia
- Uzyskiwanie wielkości wyrównania dla danego typu
- Pozycja elementu w strukturze
- Uzyskiwanie powrotnego adresu funkcji
- Zakresy funkcji case
- Arytmetyka wskaźników do funkcji oraz wskaźników void
- Więcej przenośności i elegancji za jednym razem
- B. Bibliografia
- C. O autorze
- Indeks
- Kolofon
- Copyright
Product information
- Title: Linux. Programowanie systemowe. Wydanie II
- Author(s):
- Release date: January 2014
- Publisher(s): Helion
- ISBN: 9781492013709
You might also like
book
미술관에 GAN 딥러닝 실전 프로젝트: GAN으로 쓰기, 그리기, 게임하기, 작곡하기
이 책은 케라스를 사용한 딥러닝 기초부터 AI 분야 최신 알고리즘까지 설명한다. 기계 스스로 그림을 그리고, 글을 …
book
Najlepsze praktyki w Kubernetes
Systemy informatyczne oparte na chmurze stały się atrakcyjną alternatywą dla standardowej infrastruktury. Wymusiły jednak radykalne zmiany …
book
Nowoczesny Linux
Linux cieszy się dużą popularnością wśród administratorów i użytkowników. Znakomicie sprawdza się nawet na bardzo skromnym …
book
Architektura aplikacji w Pythonie
Python zyskuje coraz większą popularność i jest wykorzystywany do tworzenia bardzo różnych aplikacji, jednak projektowanie dużych, …