Informacje

Tania wysyłka:

post-master Koszty przesyłek figurek zostały znacząco obniżone!
Poczta - od 7,90 zł.
Zobacz szczegóły >>.

Promocja dotyczy figurek do gier bitewnych.


 wysyłkowa księgarnia informatyczna 'e-link' Program partnerski

Polecamy


Symfonia C++ standard (dwa tomy razem, oprawa miękka)
Bezsprzecznie najlepszy podręcznik do nauki programowania C++ jaki został wydany po polsku.



Harry Potter i Książę Półkrwi (cz. 6)

Szósta części przygód Harrego Pottera..


Reklama

Wszystkie książki dostępne w Polsce, tytuły niedostępne, dobre ceny książek, szybka dostawa, pełna informacja o realizacji.
Zapraszamy
Księgarnia Twoja Książka.


Suprimo - markowe folie, które odmienią Twoje wnętrze



Folie okienne dekoracyjne


Szukanie podstawowe

Wpisz nazwę lub wybierz literę   ABCDEFGHIJKLŁMNOÓPRSTUVWXYZ       Zmień na szukanie zaawansowane

Koszyk koszty wysłania moje konto

Liczba pozycji w koszyku: 0


Wyniki: Znaleziono: 1    Wstecz



Pokaż więcej
 Informacje Opis pełny  Poleć znajomemu  Skomentuj Przechowaj...

Kod: un244
Tytuł: Linux. Niezbędnik programisty
Cena: 96,90   99,00
Realizacja: Nakład wyczerpany [więcej >>>]
Reklama: tania książka = Twoja Książka

Słowo wstępne (17)

Przedmowa (19)

Podziękowania (25)

O autorze (27)

Rozdział 1. Pobieranie i instalacja narzędzi oferowanych w trybie open source (29)

  • 1.1. Wprowadzenie (29)
  • 1.2. Czym jest tryb open source? (30)
  • 1.3. Co idea otwartego dostępu do kodu źródłowego oznacza dla nas? (30)
    • 1.3.1. Odnajdywanie właściwych narzędzi (31)
    • 1.3.2. Formaty dystrybucji oprogramowania (32)
  • 1.4. Wprowadzenie do tematyki plików archiwalnych (33)
    • 1.4.1. Identyfikacja plików archiwalnych (35)
    • 1.4.2. Przeglądanie zawartości plików archiwalnych (36)
    • 1.4.3. Rozpakowywanie plików z pliku archiwalnego (40)
  • 1.5. Poznajmy wykorzystywany menedżer pakietów (42)
    • 1.5.1. Wybór pomiędzy kodem źródłowym a wersją binarną (43)
    • 1.5.2. Praca z pakietami (46)
  • 1.6. Kilka słów o bezpieczeństwie w kontekście pakietów (46)
    • 1.6.1. Potrzeba uwierzytelniania (48)
    • 1.6.2. Podstawowe uwierzytelnianie pakietów (49)
    • 1.6.3. Uwierzytelnianie pakietów z podpisami cyfrowymi (51)
    • 1.6.4. Podpisy narzędzia GPG, stosowane dla pakietów RPM (52)
    • 1.6.5. Kiedy uwierzytelnienie pakietu jest niemożliwe (56)
  • 1.7. Analiza zawartości pakietu (57)
    • 1.7.1. Jak analizować pobrane pakiety (59)
    • 1.7.2. Szczegółowa analiza pakietów RPM (61)
    • 1.7.3. Szczegółowa analiza pakietów Debiana (62)
  • 1.8. Aktualizowanie pakietów (64)
    • 1.8.1. APT 3 Advanced Package Tool (66)
    • 1.8.2. YUM 3 Yellowdog Updater Modified (67)
    • 1.8.3. Synaptic 3 nakładka narzędzia APT z graficznym interfejsem użytkownika (67)
    • 1.8.4. up2date 3 narzędzie aktualizujące pakiety dystrybucji Red Hat (69)
  • 1.9. Podsumowanie (71)
    • 1.9.1. Narzędzia użyte w tym rozdziale (71)
    • 1.9.2. Materiały dostępne w internecie (72)

Rozdział 2. Kompilacja kodu źródłowego (73)

  • 2.1. Wprowadzenie (73)
  • 2.2. Narzędzia kompilujące (74)
    • 2.2.1. Rys historyczny (74)
    • 2.2.2. Zrozumieć program make (77)
    • 2.2.3. Jak przebiega proces łączenia programów (103)
    • 2.2.4. Zrozumieć biblioteki (104)
  • 2.3. Proces kompilacji (109)
    • 2.3.1. Narzędzia kompilacji GNU (110)
    • 2.3.2. Etap konfiguracji (skrypt configure) (111)
    • 2.3.3. Etap kompilacji 3 narzędzie make (113)
    • 2.3.4. Etap instalacji 3 polecenie make install (114)
  • 2.4. Zrozumieć błędy i ostrzeżenia (115)
    • 2.4.1. Typowe błędy w plikach Makefile (115)
    • 2.4.2. Błędy na etapie konfiguracji (119)
    • 2.4.3. Błędy na etapie kompilacji (120)
    • 2.4.4. Zrozumieć błędy kompilatora (124)
    • 2.4.5. Zrozumieć ostrzeżenia kompilatora (126)
    • 2.4.6. Zrozumieć błędy programu łączącego (138)
  • 2.5. Podsumowanie (140)
    • 2.5.1. Narzędzia użyte w tym rozdziale (140)
    • 2.5.2. Materiały dostępne w internecie (141)

Rozdział 3. Szukanie pomocy (143)

  • 3.1. Wprowadzenie (143)
  • 3.2. Narzędzia pomocy elektronicznej (144)
    • 3.2.1. Strona man (144)
    • 3.2.2. Organizacja stron man (145)
    • 3.2.3. Przeszukiwanie stron man - narzędzie apropos (149)
    • 3.2.4. Poszukiwanie właściwych stron man - polecenie whatis (151)
    • 3.2.5. Czego należy szukać na stronach man (152)
    • 3.2.6. Kilka szczególnie przydatnych stron man (153)
    • 3.2.7. Narzędzie info projektu GNU (155)
    • 3.2.8. Przeglądanie stron info (156)
    • 3.2.9. Przeszukiwanie stron info (159)
    • 3.2.10. Zalecane strony info (160)
    • 3.2.11. Narzędzia pomocy uruchamiane na pulpicie (160)
  • 3.3. Pozostałe źródła pomocy (162)
    • 3.3.1. Katalog /usr/share/doc (162)
    • 3.3.2. Odwołania do innych stron oraz mechanizmy indeksowania (163)
    • 3.3.3. Zapytania kierowane do pakietów (164)
  • 3.4. Formaty dokumentacji (166)
    • 3.4.1. Formaty TeX, LaTeX i DVI (166)
    • 3.4.2. Format Texinfo (167)
    • 3.4.3. Format DocBook (168)
    • 3.4.4. Język HTML (169)
    • 3.4.5. Język PostScript (171)
    • 3.4.6. Format PDF (173)
    • 3.4.7. Język troff (174)
  • 3.5. Źródła informacji w internecie (174)
    • 3.5.1. Witryna http://www.gnu.org/ (175)
    • 3.5.2. Witryna http://SourceForge.net/ (175)
    • 3.5.3. Witryna projektu The Linux Documentation Project (176)
    • 3.5.4. Grupy dyskusyjne Usenet (177)
    • 3.5.5. Listy dyskusyjne (177)
    • 3.5.6. Pozostałe fora (178)
  • 3.6. Odnajdywanie informacji o jądrze systemu Linux (178)
    • 3.6.1. Kompilacja jądra (178)
    • 3.6.2. Moduły jądra (180)
    • 3.6.3. Pozostałe źródła dokumentacji (182)
  • 3.7. Podsumowanie (182)
    • 3.7.1. Narzędzia użyte w tym rozdziale (182)
    • 3.7.2. Materiały dostępne w internecie (183)

Rozdział 4. Edycja i konserwacja plików źródłowych (185)

  • 4.1. Wprowadzenie (185)
  • 4.2. Edytor tekstu (186)
    • 4.2.1. Edytor domyślny (188)
    • 4.2.2. Jakich funkcji należy szukać w edytorze tekstu (188)
    • 4.2.3. Wielka dwójka - vi oraz Emacs (190)
    • 4.2.4. Vim - udoskonalony edytor vi (191)
    • 4.2.5. Edytor Emacs (215)
    • 4.2.6. Atak klonów (227)
    • 4.2.7. Podstawowe informacje o kilku edytorach tekstu z graficznym interfejsem użytkownika (230)
    • 4.2.8. Wymagania pamięciowe (235)
    • 4.2.9. Podsumowanie wiadomości o edytorach (237)
  • 4.3. Kontrola wersji (238)
    • 4.3.1. Podstawy kontroli wersji (238)
    • 4.3.2. Terminologia obowiązująca w świecie kontroli wersji (240)
    • 4.3.3. Narzędzia pomocnicze (243)
    • 4.3.4. Podstawy poleceń diff i patch (243)
    • 4.3.5. Przeglądanie i scalanie zmian (247)
  • 4.4. Upiększacze i przeglądarki kodu źródłowego (254)
    • 4.4.1. Upiększacze wcięć w kodzie źródłowym (255)
    • 4.4.2. Artystyczny styl narzędzia astyle (258)
    • 4.4.3. Analiza kodu za pomocą narzędzia cflow (259)
    • 4.4.4. Analiza kodu za pomocą narzędzia ctags (262)
    • 4.4.5. Przeglądanie kodu za pomocą narzędzia cscope (262)
    • 4.4.6. Przeglądanie i dokumentowanie kodu za pomocą narzędzia Doxygen (264)
    • 4.4.7. Analiza kodu źródłowego z wykorzystaniem kompilatora (266)
  • 4.5. Podsumowanie (268)
    • 4.5.1. Narzędzia użyte w tym rozdziale (269)
    • 4.5.2. Bibliografia (270)
    • 4.5.3. Materiały dostępne w internecie (270)

Rozdział 5. Co każdy programista powinien wiedzieć o jądrze systemu (273)

  • 5.1. Wprowadzenie (273)
  • 5.2. Tryb użytkownika a tryb jądra (274)
    • 5.2.1. Wywołania systemowe (276)
    • 5.2.2. Przenoszenie danych pomiędzy przestrzenią użytkownika a przestrzenią jądra (278)
  • 5.3. Mechanizm szeregowania procesów (279)
    • 5.3.1. Reguły szeregowania procesów (279)
    • 5.3.2. Blokowanie, wywłaszczanie i rezygnacje (282)
    • 5.3.3. Priorytety szeregowania i kwestia sprawiedliwości (283)
    • 5.3.4. Priorytety i wartość nice (287)
    • 5.3.5. Priorytety czasu rzeczywistego (289)
    • 5.3.6. Tworzenie procesów czasu rzeczywistego (292)
    • 5.3.7. Stany procesów (294)
    • 5.3.8. Jak jest mierzony czas pracy procesów (301)
  • 5.4. Zrozumieć urządzenia i sterowniki urządzeń (313)
    • 5.4.1. Rodzaje sterowników urządzeń (314)
    • 5.4.2. Słowo o modułach jądra (316)
    • 5.4.3. Węzły urządzeń (317)
    • 5.4.4. Urządzenia i operacje wejścia-wyjścia (330)
  • 5.5. Mechanizm szeregowania operacji wejścia-wyjścia (340)
    • 5.5.1. Winda Linusa (znana też jako noop) (342)
    • 5.5.2. Mechanizm szeregowania operacji wejścia-wyjścia z terminem granicznym (343)
    • 5.5.3. Przewidujący mechanizm szeregowania operacji wejścia-wyjścia (344)
    • 5.5.4. Mechanizm szeregowania operacji wejścia-wyjścia z pełnym kolejkowaniem (344)
    • 5.5.5. Wybór mechanizmu szeregowania operacji wejścia-wyjścia (344)
  • 5.6. Zarządzanie pamięcią w przestrzeni użytkownika (345)
    • 5.6.1. Omówienie pamięci wirtualnej (346)
    • 5.6.2. Wyczerpanie dostępnej pamięci (363)
  • 5.7. Podsumowanie (378)
    • 5.7.1. Narzędzia użyte w tym rozdziale (378)
    • 5.7.2. Interfejsy API omówione w tym rozdziale (379)
    • 5.7.3. Materiały dostępne w internecie (379)
    • 5.7.4. Bibliografia (379)

Rozdział 6. Zrozumieć procesy (381)

  • 6.1. Wprowadzenie (381)
  • 6.2. Skąd się biorą procesy (381)
    • 6.2.1. Wywołania systemowe fork i vfork (382)
    • 6.2.2. Kopiowanie przy zapisie (383)
    • 6.2.3. Wywołanie systemowe clone (384)
  • 6.3. Funkcje z rodziny exec (384)
    • 6.3.1. Skrypty wykonywalne (385)
    • 6.3.2. Wykonywalne pliki obiektów (387)
    • 6.3.3. Rozmaite binaria (389)
  • 6.4. Synchronizacja procesów za pomocą funkcji wait (392)
  • 6.5. Wymagania pamięciowe procesu (394)
    • 6.5.1. Deskryptory plików (397)
    • 6.5.2. Stos (404)
    • 6.5.3. Pamięć rezydentna i pamięć zablokowana (405)
  • 6.6. Ustawianie ograniczeń dla procesów (406)
  • 6.7. Procesy i system plików procfs (410)
  • 6.8. Narzędzia do zarządzania procesami (413)
    • 6.8.1. Wyświetlanie informacji o procesach za pomocą polecenia ps (413)
    • 6.8.2. Zaawansowane informacje o procesach, uzyskiwane z wykorzystaniem formatów (416)
    • 6.8.3. Odnajdywanie procesów według nazw za pomocą poleceń ps i pgrep (419)
    • 6.8.4. Śledzenie wymagań pamięciowych procesu za pomocą polecenia pmap (420)
    • 6.8.5. Wysyłanie sygnałów do procesów identyfikowanych przez nazwy (422)
  • 6.9. Podsumowanie (423)
    • 6.9.1. Wywołania systemowe i interfejsy API użyte w tym rozdziale (423)
    • 6.9.2. Narzędzia użyte w tym rozdziale (424)
    • 6.9.3. Materiały dostępne w internecie (424)

Rozdział 7. Komunikacja pomiędzy procesami (425)

  • 7.1. Wprowadzenie (425)
  • 7.2. Technika IPC z wykorzystaniem zwykłych plików (426)
    • 7.2.1. Blokowanie plików (431)
    • 7.2.2. Wady implementacji techniki IPC z wykorzystaniem plików (432)
  • 7.3. Pamięć współdzielona (432)
    • 7.3.1. Zarządzanie pamięcią współdzieloną za pośrednictwem interfejsu POSIX API (433)
    • 7.3.2. Zarządzanie pamięcią współdzieloną za pośrednictwem interfejsu System V API (437)
  • 7.4. Sygnały (440)
    • 7.4.1. Wysyłanie sygnałów do procesu (441)
    • 7.4.2. Obsługa sygnałów (442)
    • 7.4.3. Maska sygnałów i obsługa sygnałów (444)
    • 7.4.4. Sygnały czasu rzeczywistego (447)
    • 7.4.5. Zaawansowane operacje na sygnałach z wykorzystaniem funkcji sigqueue i sigaction (450)
  • 7.5. Potoki (453)
  • 7.6. Gniazda (454)
    • 7.6.1. Tworzenie gniazd (455)
    • 7.6.2. Przykład gniazda lokalnego, utworzonego za pomocą funkcji socketpair (458)
    • 7.6.3. Przykład aplikacji klient-serwer, zbudowanej z wykorzystaniem gniazd lokalnych (459)
    • 7.6.4. Przykład aplikacji klient-serwer, zbudowanej z wykorzystaniem gniazd sieciowych (465)
  • 7.7. Kolejki komunikatów (466)
    • 7.7.1. Kolejka komunikatów standardu System V (467)
    • 7.7.2. Kolejka komunikatów standardu POSIX (471)
    • 7.7.3. Różnice dzielące kolejki komunikatów standardów POSIX i System V (476)
  • 7.8. Semafory (477)
    • 7.8.1. Interfejs API semaforów standardu POSIX (483)
    • 7.8.2. Interfejs API semaforów standardu System V (486)
  • 7.9. Podsumowanie (488)
    • 7.9.1. Wywołania systemowe i interfejsy API użyte w tym rozdziale (489)
    • 7.9.2. Bibliografia (490)
    • 7.9.3. Materiały dostępne w internecie (490)

Rozdział 8. Diagnozowanie mechanizmów komunikacji międzyprocesowej za pomocą poleceń powłoki (491)

  • 8.1. Wprowadzenie (491)
  • 8.2. Narzędzia operujące na otwartych plikach (491)
    • 8.2.1. Polecenie lsof (492)
    • 8.2.2. Polecenie fuser (493)
    • 8.2.3. Polecenie ls (494)
    • 8.2.4. Polecenie file (495)
    • 8.2.5. Polecenie stat (495)
  • 8.3. Zrzucanie danych z pliku (496)
    • 8.3.1. Polecenie strings (499)
    • 8.3.2. Polecenie xxd (500)
    • 8.3.3. Polecenie hexdump (501)
    • 8.3.4. Polecenie od (502)
  • 8.4. Narzędzia powłoki do obsługi komunikacji międzyprocesowej standardu System V (504)
    • 8.4.1. Pamięć współdzielona standardu System V (504)
    • 8.4.2. Kolejki komunikatów standardu System V (507)
    • 8.4.3. Semafory standardu System V (509)
  • 8.5. Narzędzia powłoki do obsługi komunikacji międzyprocesowej standardu POSIX (510)
    • 8.5.1. Pamięć współdzielona standardu POSIX (510)
    • 8.5.2. Kolejki komunikatów standardu POSIX (511)
    • 8.5.3. Semafory standardu POSIX (512)
  • 8.6. Narzędzia pomocne w pracy z sygnałami (514)
  • 8.7. Narzędzia pomocne w pracy z potokami i gniazdami (516)
    • 8.7.1. Potoki i struktury FIFO (517)
    • 8.7.2. Gniazda (518)
  • 8.8. Identyfikacja plików i obiektów IPC na podstawie i-węzłów (521)
  • 8.9. Podsumowanie (523)
    • 8.9.1. Narzędzia wykorzystane w tym rozdziale (523)
    • 8.9.2. Materiały dostępne w internecie (523)

Rozdział 9. Doskonalenie wydajności (525)

  • 9.1. Wprowadzenie (525)
  • 9.2. Wydajność systemu (525)
    • 9.2.1. Problemy związane z pamięcią (526)
    • 9.2.2. Wykorzystanie procesora i rywalizacja o dostęp do magistrali (537)
    • 9.2.3. Urządzenia i przerwania (541)
    • 9.2.4. Narzędzia umożliwiające identyfikację problemów w zakresie wydajności systemu (550)
  • 9.3. Wydajność aplikacji (560)
    • 9.3.1. Pierwsze kroki - polecenie time (560)
    • 9.3.2. Zrozumieć architekturę procesora z wykorzystaniem narzędzia x86info (561)
    • 9.3.3. Stosowanie pakietu Valgrind do analizy efektywności rozkazów (565)
    • 9.3.4. Wprowadzenie do narzędzia ltrace (570)
    • 9.3.5. Stosowanie narzędzia strace do monitorowania wydajności programu (572)
    • 9.3.6. Tradycyjne programy do optymalizacji oprogramowania - gcov oraz gprof (574)
    • 9.3.7. Podstawowe informacje o narzędziu OProfile (583)
  • 9.4. Wydajność w środowisku wieloprocesorowym (590)
    • 9.4.1. Rodzaje systemów SMP (591)
    • 9.4.2. Programowanie dla komputerów SMP (596)
  • 9.5. Podsumowanie (600)
    • 9.5.1. Omówione w tym rozdziale problemy związane z wydajnością (601)
    • 9.5.2. Terminy wprowadzone w tym rozdziale (601)
    • 9.5.3. Narzędzia wykorzystane w tym rozdziale (601)
    • 9.5.4. Materiały dostępne w internecie (602)
    • 9.5.5. Bibliografia (602)

Rozdział 10. Diagnozowanie oprogramowania (603)

  • 10.1. Wprowadzenie (603)
  • 10.2. Najprostsze narzędzie diagnostyczne - funkcja printf (604)
    • 10.2.1. Problemy związane ze stosowaniem funkcji printf w roli narzędzia diagnostycznego (604)
    • 10.2.2. Efektywne korzystanie z funkcji printf (610)
    • 10.2.3. Kilka słów podsumowania metod diagnozowania oprogramowania z wykorzystaniem funkcji printf (620)
  • 10.3. Jak opanować podstawy debugera GNU - gdb (622)
    • 10.3.1. Wykonywanie kodu pod kontrolą debugera gdb (623)
    • 10.3.2. Zatrzymywanie i wznawianie wykonywania kodu (624)
    • 10.3.3. Analiza i modyfikowanie danych (636)
    • 10.3.4. Dołączanie debugera gdb do pracującego procesu (649)
    • 10.3.5. Diagnozowanie plików rdzenia (649)
    • 10.3.6. Diagnozowanie programów wielowątkowych za pomocą debugera gdb (653)
    • 10.3.7. Diagnozowanie zoptymalizowanego kodu (655)
  • 10.4. Diagnozowanie obiektów dzielonych (659)
    • 10.4.1. Kiedy i dlaczego stosujemy obiekty dzielone (659)
    • 10.4.2. Tworzenie obiektów dzielonych (660)
    • 10.4.3. Lokalizowanie obiektów dzielonych (661)
    • 10.4.4. Nadpisywanie domyślnych lokalizacji obiektów dzielonych (662)
    • 10.4.5. Problemy związane z bezpieczeństwem obiektów dzielonych (663)
    • 10.4.6. Narzędzia wykorzystywane w pracy z obiektami dzielonymi (663)
  • 10.5. Poszukiwanie problemów związanych z pamięcią (667)
    • 10.5.1. Podwójne zwalnianie pamięci (668)
    • 10.5.2. Wycieki pamięci (668)
    • 10.5.3. Przepełnienia buforów (669)
    • 10.5.4. Narzędzia biblioteki standardowej glibc (671)
    • 10.5.5. Diagnozowanie problemów związanych z pamięcią za pomocą pakietu Valgrind (675)
    • 10.5.6. Identyfikacja przepełnień za pomocą debugera Electric Fence (682)
  • 10.6. Techniki niekonwencjonalne (685)
    • 10.6.1. Tworzenie własnych czarnych skrzynek (685)
    • 10.6.2. Śledzenie wsteczne w czasie wykonywania (688)
    • 10.6.3. Wymuszanie zrzutów rdzenia (691)
    • 10.6.4. Stosowanie sygnałów (692)
    • 10.6.5. Diagnozowanie oprogramowania z wykorzystaniem systemu pakietu procfs (693)
  • 10.7. Podsumowanie (696)
    • 10.7.1. Narzędzia wykorzystane w tym rozdziale (697)
    • 10.7.2. Materiały dostępne w internecie (697)
    • 10.7.3. Bibliografia (697)

Skorowidz (699)



Porady


Znaleziono: 1   

Oglądasz: John Fusco - Linux. Niezbędnik programisty  
Księgarnia 'e-link'- książki, informatyka, gry bitewne - wszystko najtaniej!
Gry bitewne Gry i edukacja Informatyka Nauka i technika Humanistyka Poradniki Literatura Filmy, media
Szybkie linki: Na szyby | Książki