Jesteś tutaj

Linux. Programowanie systemowe

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!

SPIS TREŚCI:

Przedmowa (7)
Wstęp (9)

1. Wprowadzenie - podstawowe pojęcia (15)

  • Programowanie systemowe (15)
  • API i ABI (18)
  • Standardy (20)
  • Pojęcia dotyczące programowania w Linuksie (23)
  • Początek programowania systemowego (36)

2. Plikowe operacje wejścia i wyjścia (37)

  • Otwieranie plików (38)
  • Czytanie z pliku przy użyciu funkcji read() (43)
  • Pisanie za pomocą funkcji write() (47)
  • Zsynchronizowane operacje wejścia i wyjścia (51)
  • Bezpośrednie operacje wejścia i wyjścia (55)
  • Zamykanie plików (56)
  • Szukanie za pomocą funkcji lseek() (57)
  • Odczyty i zapisy pozycyjne (59)
  • Obcinanie plików (60)
  • Zwielokrotnione operacje wejścia i wyjścia (61)
  • Organizacja wewnętrzna jądra (72)
  • Zakończenie (76)

3. Buforowane operacje wejścia i wyjścia (77)

  • Operacje wejścia i wyjścia, buforowane w przestrzeni użytkownika (77)
  • Typowe operacje wejścia i wyjścia (79)
  • Otwieranie plików (80)
  • Otwieranie strumienia poprzez deskryptor pliku (81)
  • Zamykanie strumieni (82)
  • Czytanie ze strumienia (83)
  • Pisanie do strumienia (86)
  • Przykładowy program używający buforowanych operacji wejścia i wyjścia (88)
  • Szukanie w strumieniu (89)
  • Opróżnianie strumienia (91)
  • Błędy i koniec pliku (92)
  • Otrzymywanie skojarzonego deskryptora pliku (93)
  • Parametry buforowania (93)
  • Bezpieczeństwo wątków (95)
  • Krytyczna analiza biblioteki typowych operacji wejścia i wyjścia (97)
  • Zakończenie (98)

4. Zaawansowane operacje plikowe wejścia i wyjścia (99)

  • Rozproszone operacje wejścia i wyjścia (100)
  • Interfejs odpytywania zdarzeń (105)
  • Odwzorowywanie plików w pamięci (110)
  • Porady dla standardowych operacji plikowych wejścia i wyjścia (123)
  • Operacje zsynchronizowane, synchroniczne i asynchroniczne (126)
  • Zarządcy operacji wejścia i wyjścia oraz wydajność operacji wejścia i wyjścia (129)
  • Zakończenie (141)

5. Zarządzanie procesami (143)

  • Identyfikator procesu (143)
  • Uruchamianie nowego procesu (146)
  • Zakończenie procesu (153)
  • Oczekiwanie na zakończone procesy potomka (156)
  • Użytkownicy i grupy (166)
  • Grupy sesji i procesów (171)
  • Demony (176)
  • Zakończenie (178)

6. Zaawansowane zarządzanie procesami (179)

  • Szeregowanie procesów (179)
  • Udostępnianie czasu procesora (183)
  • Priorytety procesu (186)
  • Wiązanie procesów do konkretnego procesora (189)
  • Systemy czasu rzeczywistego (192)
  • Ograniczenia zasobów systemowych (206)

7. Zarządzanie plikami i katalogami (213)

  • Pliki i ich metadane (213)
  • Katalogi (228)
  • Dowiązania (240)
  • Kopiowanie i przenoszenie plików (245)
  • Węzły urządzeń (248)
  • Komunikacja poza kolejką (249)
  • Śledzenie zdarzeń związanych z plikami (251)

8. Zarządzanie pamięcią (261)

  • Przestrzeń adresowa procesu (261)
  • Przydzielanie pamięci dynamicznej (263)
  • Zarządzanie segmentem danych (273)
  • Anonimowe odwzorowania w pamięci (274)
  • Zaawansowane operacje przydziału pamięci (278)
  • Uruchamianie programów, używających systemu przydzielania pamięci (281)
  • Przydziały pamięci wykorzystujące stos (282)
  • Wybór mechanizmu przydzielania pamięci (286)
  • Operacje na pamięci (287)
  • Blokowanie pamięci (291)
  • Przydział oportunistyczny (295)

9. Sygnały (297)

  • Koncepcja sygnałów (298)
  • Podstawowe zarządzanie sygnałami (304)
  • Wysyłanie sygnału (309)
  • Współużywalność (311)
  • Zbiory sygnałów (314)
  • Blokowanie sygnałów (315)
  • Zaawansowane zarządzanie sygnałami (316)
  • Wysyłanie sygnału z wykorzystaniem pola użytkowego (324)
  • Zakończenie (325)

10. Czas (327)

  • Struktury danych reprezentujące czas (329)
  • Zegary POSIX (332)
  • Pobieranie aktualnego czasu (334)
  • Ustawianie aktualnego czasu (337)
  • Konwersje czasu (338)
  • Dostrajanie zegara systemowego (340)
  • Stan uśpienia i oczekiwania (343)
  • Liczniki (349)

A: Rozszerzenia kompilatora GCC dla języka C (357)
B: Bibliografia (369)
Skorowidz (373)

openSuSE Linux

openSuSE jest dystrybucją Linuksa sponsorowaną przez firmę Novell. Jest to Linux doskonale sprawdzający się jako system serwerowy, choć głównym zamierzeniem jego twórców było stworzenie Linuksa typu desktop. OpenSuSE Linux jest doskonałą alternatywą dla systemów Microsoft. Zawiera dopracowane graficzne narzędzia konfiguracyjne YaST i SaX2. Doskonale nadaje się dla początkujących użytkowników Linuksa.

Mandriva Linux

Mandriva Linux jest jedną z najpopularniejszych dystrybucji ogólnego użytku ostatnich lat. Dzięki swojej innowacyjności zdobyla uznanie zarówno początkujących jak i zaawansowanych użytkowników Linuksa. W kolejnych, wydawanych cyklicznie w odstępach półrocznych wersjach Mandriva Linux jest liderem we wprowadzaniu nowych narzędzi i funkcjonalności, niedostępnych jeszcze w innych dystrybucjach Linuksa.

Slackware Linux

Slackware Linux jest jedną z najstarszych dystrybucji Linuksa, rozwijaną aktywnie aż do chwili obecnej. Pierwsza wersja Slackware Linux została wydana w lipcu 1993 roku jako dystrybucja dla zaawansowanych użytkowników. Do chwili obecnej, jako jedna z niewielu dystrybucji, Slackware Linux wykorzystuje podczas instalacji tekstową wersję instalatora, przez co uznawana jest niesłusznie za trudniejszą w instalacji niż inne popularne dystrybucje.

Copyright 2003-2011 PHU Altkomp

stat4u