Linux. Programowanie systemowe - Helion
Tytuł oryginału: Linux System Programming: Talking Directly to the Kernel and C Library
TÅ‚umaczenie: Jacek Janusz
ISBN: 978-83-246-1497-4
stron: 400, Format: 168x237, okładka: miękka
Data wydania: 2008-09-25
Księgarnia: Helion
Cena książki: 57,00 zł
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!
Osoby które kupowały "Linux. Programowanie systemowe", wybierały także:
- Język C. Kurs video. Praktyczne wprowadzenie do programowania 99,00 zł, (44,55 zł -55%)
- Internet rzeczy. Podstawy programowania aplikacji i serwer 99,00 zł, (49,50 zł -50%)
- Nowoczesny C. Przegl 119,00 zł, (59,50 zł -50%)
- Efektywny C. Wprowadzenie do profesjonalnego programowania 69,00 zł, (34,50 zł -50%)
- Język C. Solidna wiedza w praktyce. Wydanie VIII 199,00 zł, (99,50 zł -50%)
Spis treści
Linux. Programowanie systemowe -- 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)