Book description
Wykorzystaj moc Linuksa i twórz funkcjonalne oprogramowanie systemowe!
- Jak zarz?dza? plikowymi operacjami wej?cia i wyj?cia?
- Jak zablokowa? fragmenty przestrzeni adresowej?
- Jak sterowa? dzia?aniem interfejsu odpytywania zdarze??
Dzisiaj systemu Linux nie musimy ju? nikomu przedstawia?, dzi?ki swojej funkcjonalno?ci i uniwersalno?ci sta? si? niezwykle popularny i szeroko wykorzystywany. Dzia?a wsz?dzie ― poczynaj?c od najmniejszych telefonów komórkowych, a na pot??nych superkomputerach ko?cz?c. Z Linuksa korzystaj? agencje wywiadowcze i wojsko, jego niezawodno?? doceni?y równie? banki i instytucje finansowe. Oprogramowanie z przestrzeni u?ytkownika w systemie Linux mo?e by? uruchamiane na wszystkich platformach, na których poprawnie dzia?a kod j?dra.
Czytaj?c ksi??k? "Linux. Programowanie systemowe", dowiesz si?, jak utworzy? oprogramowanie, które jest niskopoziomowym kodem, komunikuj?cym si? bezpo?rednio z j?drem oraz g?ównymi bibliotekami systemowymi. Opisany zosta? tu sposób dzia?ania standardowych i zaawansowanych interfejsów zdefiniowanych w Linuksie. Po lekturze napiszesz inteligentniejszy i szybszy kod, który dzia?a we wszystkich dystrybucjach Linuksa oraz na wszystkich rodzajach sprz?tu. Nauczysz si? budowa? poprawne oprogramowanie i maksymalnie je wykorzystywa?.
- Programowanie systemowe
- Biblioteka j?zyka C
- Kompilator j?zyka C
- Interfejs odpytywania zdarze?
- Zarz?dzanie procesami i pami?ci?
- U?ytkownicy i grupy
- Ograniczenia zasobów systemowych
- Zarz?dzanie plikami i katalogami
- Identyfikatory sygna?ów
- Struktury danych reprezentuj?ce czas
- Konwersje czasu
Poznaj i ujarzmij pot?g? Linuksa!
Table of contents
- Linux. Programowanie systemowe
- SPECIAL OFFER: Upgrade this ebook with O’Reilly
- 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
- Interfejs odpytywania 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
- 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
- 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
- Wspieranie 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. 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
-
8. 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
- 9. Sygnały
- 10. 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
- SPECIAL OFFER: Upgrade this ebook with O’Reilly
- Copyright
Product information
- Title: Linux. Programowanie systemowe
- Author(s):
- Release date: September 2008
- Publisher(s): Helion
- ISBN: 9781457176623
You might also like
book
Sieci Linux. Receptury
Jak stworzy? sie? opart? o serwery pracuj?ce pod kontrol? Linuksa? Jak uruchomi? serwer VoIP i sie? …
book
Linux. Programowanie systemowe. Wydanie II
Przewodnik po j?drze sytemu Linux! J?dro systemu Linux to jeden z najwi?kszych projektów rozwijanych przez ogromn? …
book
Bash. Receptury
Poznaj mo?liwo?ci pow?oki bash i dostosuj system do w?asnych potrzeb Jak pisa? skrypty konwertuj?ce pliki w …
book
Linux. Leksykon kieszonkowy. Wydanie II
Niezb?dny pomocnik ka?dego u?ytkownika Linuksa! Linux to najcz??ciej wybierany system operacyjny dla instalacji serwerowych. Jego wydajno??, …