Cyfroteka.pl

klikaj i czytaj online

Cyfro
Czytomierz
00242 009895 11018915 na godz. na dobę w sumie
Zaawansowane programowanie w systemie Linux - książka
Zaawansowane programowanie w systemie Linux - książka
Autor: , Liczba stron: 1288
Wydawca: Helion Język publikacji: polski
ISBN: 83-7197-495-7 Data wydania:
Lektor:
Kategoria: ebooki >> komputery i informatyka >> programowanie >> inne - programowanie
Porównaj ceny (książka, ebook, audiobook).
Linux nieustannie umacnia swoją obecność w świecie jako platforma systemowa przeznaczona dla zaawansowanych aplikacji. Dojrzewanie i szybki rozwój tego wszechstronnego systemu, zapewniającego całe bogactwo bezpłatnych narzędzi programowania, pozwala mieć pewność, co do jego ugruntowanej pozycji w przyszłości. Przy niewielkim nakładzie sił i środków, system Linux udostępnia szeroki wachlarz narzędzi oraz obsługę nowych lub dopiero powstających technologii. Dzięki temu system Linux, pozwala wybrać i zastosować właściwe rozwiązania w procesie tworzenia aplikacji.

Niniejsza książka pozwala czerpać z praktycznej wiedzy i bogatego doświadczenia autorów w zakresie tworzenia oprogramowania dla systemu Linux. Czytelnik zostanie poprowadzony poprzez proces tworzenia przykładowej aplikacji dla wypożyczalni filmów DVD -- tematycznie opracowane rozdziały podejmują różne aspekty implementacji tej aplikacji. Z kolei samodzielne rozdziały o charakterze dygresyjnym omawiają ważne tematy, które wykraczają poza zakres motywu przewodniego, jakim jest przykładowa aplikacja. Niniejsza monografia podkreśla wagę praktycznych aspektów programowania, pokazuje, jak ważny jest właściwy dobór narzędzi programisty dla określonego zadania, uczy ich poprawnego użycia oraz wskazuje najkrótszą drogę do upragnionego celu.

Zarówno doświadczeni programiści, jak też i ambitni przyszli twórcy oprogramowania w systemie Linux znajdą tutaj mnóstwo praktycznych informacji na tematy takie jak: biblioteki oprogramowania, techniki, narzędzia oraz aplikacje. Od Czytelnika wymaga się znajomości podstaw systemu Linux, dobrej praktycznej znajomości programowania w języku C. Ponadto, zakłada się w niektórych rozdziałach zrozumienie zasad programowania zorientowanego obiektowo w języku C++.

W książce omówiono między innymi :

Znajdź podobne książki Ostatnio czytane w tej kategorii

Darmowy fragment publikacji:

IDZ DO IDZ DO PRZYK£ADOWY ROZDZIA£ PRZYK£ADOWY ROZDZIA£ SPIS TREĎCI SPIS TREĎCI Zaawansowane programowanie w systemie Linux KATALOG KSI¥¯EK KATALOG KSI¥¯EK KATALOG ONLINE KATALOG ONLINE ZAMÓW DRUKOWANY KATALOG ZAMÓW DRUKOWANY KATALOG TWÓJ KOSZYK TWÓJ KOSZYK DODAJ DO KOSZYKA DODAJ DO KOSZYKA CENNIK I INFORMACJE CENNIK I INFORMACJE ZAMÓW INFORMACJE ZAMÓW INFORMACJE O NOWOĎCIACH O NOWOĎCIACH ZAMÓW CENNIK ZAMÓW CENNIK CZYTELNIA CZYTELNIA FRAGMENTY KSI¥¯EK ONLINE FRAGMENTY KSI¥¯EK ONLINE Wydawnictwo Helion ul. Chopina 6 44-100 Gliwice tel. (32)230-98-63 e-mail: helion@helion.pl Autorzy: Neil Matthew, Richard Stones T³umaczenie: Robert Gêbarowski, Zygmunt Wereszczyñski ISBN: 83-7197-495-7 Tytu³ orygina³u: Professional Linux Programming Format: B5, stron: 1288 Przyk³ady na ftp: 1780 kB Linux nieustannie umacnia swoj¹ obecnoġæ w ġwiecie jako platforma systemowa przeznaczona dla zaawansowanych aplikacji. Dojrzewanie i szybki rozwój tego wszechstronnego systemu, zapewniaj¹cego ca³e bogactwo bezp³atnych narzêdzi programowania, pozwala mieæ pewnoġæ, co do jego ugruntowanej pozycji w przysz³oġci. Przy niewielkim nak³adzie si³ i ġrodków, system Linux udostêpnia szeroki wachlarz narzêdzi oraz obs³ugê nowych lub dopiero powstaj¹cych technologii. Dziêki temu system Linux, pozwala wybraæ i zastosowaæ w³aġciwe rozwi¹zania w procesie tworzenia aplikacji. Niniejsza ksi¹¿ka pozwala czerpaæ z praktycznej wiedzy i bogatego doġwiadczenia autorów w zakresie tworzenia oprogramowania dla systemu Linux. Czytelnik zostanie poprowadzony poprzez proces tworzenia przyk³adowej aplikacji dla wypo¿yczalni filmów DVD — tematycznie opracowane rozdzia³y podejmuj¹ ró¿ne aspekty implementacji tej aplikacji. Z kolei samodzielne rozdzia³y o charakterze dygresyjnym omawiaj¹ wa¿ne tematy, które wykraczaj¹ poza zakres motywu przewodniego, jakim jest przyk³adowa aplikacja. Niniejsza monografia podkreġla wagê praktycznych aspektów programowania, pokazuje, jak wa¿ny jest w³aġciwy dobór narzêdzi programisty dla okreġlonego zadania, uczy ich poprawnego u¿ycia oraz wskazuje najkrótsz¹ drogê do upragnionego celu. Zarówno doġwiadczeni programiġci, jak te¿ i ambitni przyszli twórcy oprogramowania w systemie Linux znajd¹ tutaj mnóstwo praktycznych informacji na tematy takie jak: biblioteki oprogramowania, techniki, narzêdzia oraz aplikacje. Od Czytelnika wymaga siê znajomoġci podstaw systemu Linux, dobrej praktycznej znajomoġci programowania w jêzyku C. Ponadto, zak³ada siê w niektórych rozdzia³ach zrozumienie zasad programowania zorientowanego obiektowo w jêzyku C++. W ksi¹¿ce omówiono miêdzy innymi : omówienie KDE i GNOME. PostgreSQL, MySQL i XML. • Przechowywanie danych w systemie Linux ze szczególnym uwzglêdnieniem • Implementacja interfejsów graficznych u¿ytkownika w systemie Linux - • Interfejsy WWW — zastosowanie modu³u PHP dla serwera Apache. • Zastosowanie jêzyka Python — rozszerzanie i wbudowywanie tego jêzyka. • astosowanie RPC oraz CORBA do konstrukcji rozproszonych aplikacji • Oznaczanie wersji (za pomoc¹ CVS), dokumentacja, internacjonalizacja • Rozproszone rozwi¹zania sprzêtowe, takie jak bezdyskowy system Linux i klastry Beowulf. obiektowych. i dystrybucja projektów. Spis treści O Autorach 23 Wstęp 33 Dla kogo jest przeznaczona ta książka?...................................................s...................33 Tematyka książki...................................................s...................................................s33 Czego wymagamy od czytelnika książki?...................................................s..................37 Kod źródłowy...................................................s...................................................s......38 Oznaczenia stosowane w książce...................................................s............................38 Rozdział 1. Projekt aplikacji 39 Informacje ogólne...................................................s..................................................39 Formułowanie założeń...................................................s............................................41 Modele tworzenia kodu ...................................................s..........................................43 Opracowanie wczesnego prototypu ...................................................s....................44 Wczesne i częste testy ...................................................s.....................................45 Wypożyczalnia DVD...................................................s................................................45 Założenia wstępne ...................................................s...........................................46 Analiza wymagań klienta ...................................................s...................................47 Spis wymagań...................................................s...................................................s....52 Przypadki użycia ...................................................s...............................................54 Architektura aplikacji ...................................................s.............................................56 Projekt szczegółowy...................................................s..........................................58 Funkcje dostępu do danych...................................................s...............................59 Funkcje związane z danymi klientów...................................................s...................59 Funkcje związane z filmami ...................................................s...............................62 Funkcje opisujące płytę DVD ...................................................s.............................63 Funkcje związane z wypożyczaniem ...................................................s....................63 Przykładowa implementacja ...................................................s..............................65 Materiały dodatkowe...................................................s..............................................65 Podsumowanie...................................................s...................................................s...66 Rozdział 2. CVS 67 Narzędzia dla systemu Linux ...................................................s..................................68 Terminologia ...................................................s...................................................s......69 Repozytorium ...................................................s...................................................s.....69 Obsługa CVS przez jednego użytkownika...................................................s..................70 Format polecenia CVS ...................................................s......................................71 Zmienne środowiskowe ...................................................s....................................71 Import nowego projektu ...................................................s....................................72 Początek prac nad projektem w CVS ...................................................s..................74 Porównywanie zmian z zawartością repozytorium...................................................s.75 4 Zaawansowane programowanie w systemie Linux Aktualizacja repozytorium...................................................s..................................76 Wydanie projektu...................................................s..............................................77 Przeglądanie zmian ...................................................s..........................................78 Dodawanie i usuwanie plików z projektu...................................................s.............79 Rozwinięcia słów kluczowych ...................................................s.............................79 Korekty, znaczniki i rozgałęzienia ...................................................s............................80 Korekty...................................................s...................................................s.........80 Znaczniki ...................................................s...................................................s......81 Rozgałęzienia projektu ...................................................s......................................84 CVS dla wielu użytkowników ...................................................s...................................89 Praca zespołowa ...................................................s..............................................90 Śledzenie zmian...................................................s...............................................92 Więcej zabawy z CVS ...................................................s.............................................92 Pliki binarne...................................................s...................................................s..92 Poprawianie błędnych adnotacji...................................................s.........................93 Sieciowy dostęp do CVS...................................................s.........................................93 Klienty CVS z interfejsem graficznym ...................................................s.......................96 Materiały dodatkowe...................................................s..............................................97 Podsumowanie...................................................s...................................................s...98 Rozdział 3. Bazy danych 101 Wybór bazy danych ...................................................s..............................................102 mSQL...................................................s...................................................s.........102 MySQL ...................................................s...................................................s.......103 PostgreSQL ...................................................s...................................................s103 Jaki wybór będzie odpowiedni? ...................................................s........................103 PostgreSQL...................................................s...................................................s......104 Instalacja i uruchamianie ...................................................s................................104 Tworzenie użytkowników ...................................................s............................106 Tworzenie baz danych...................................................s................................107 Tworzenie zapasowych kopii bazy danych ...................................................s....107 Zdalny dostęp...................................................s...........................................108 Podstawy teorii baz danych ...................................................s..................................109 Pierwsza postać normalna ...................................................s..............................110 Druga postać normalna ...................................................s..................................111 Trzecia postać normalna...................................................s.................................111 Denormalizacja ...................................................s..............................................112 Prosta baza danych ...................................................s........................................112 Korzystanie z psql ...................................................s...............................................117 Polecenia dla psql...................................................s..........................................117 Polecenia do definicji danych ...................................................s..........................118 Tworzenie i usuwanie tabel ...................................................s........................119 Typy danych w PostgreSQL...................................................s.........................123 Polecenia do manipulacji danymi ...................................................s.....................123 Wstawianie danych ...................................................s...................................124 Pobieranie danych z pojedynczej tabeli................................................s...........125 Kombinowane pobieranie danych z wielu tabel ...............................................127 Aktualizacja danych w tabeli...................................................s.......................129 Usuwanie danych ...................................................s......................................129 Transakcje...................................................s...................................................s..130 Spis treści 5 Wskazówki dla projektu bazy danych ...................................................s.....................132 Materiały dodatkowe...................................................s............................................134 Podsumowanie...................................................s...................................................s.134 Rozdział 4. Interfejsy PostgreSQL 135 Dostęp do PostgreSQL z kodu programu...................................................s................135 Biblioteka libpq ...................................................s..............................................136 Funkcje do obsługi połączeń z bazą danych ...................................................s.137 Uruchamianie poleceń SQL ...................................................s........................139 Uzyskiwanie wyników zapytań...................................................s.....................142 Biblioteka ecpg ...................................................s..............................................155 Jaką metodę zastosować? ...................................................s..............................166 Aplikacja...................................................s...................................................s..........167 Podsumowanie...................................................s...................................................s.174 Rozdział 5. MySQL 175 Instalacja i zarządzanie ...................................................s........................................175 Pakiety skompilowane ...................................................s....................................175 Budowanie z plików źródłowych ...................................................s.......................177 Konfiguracja poinstalacyjna...................................................s.............................178 Zarządzanie bazą MySQL...................................................s......................................179 Polecenia ...................................................s...................................................s...179 isamchk ...................................................s...................................................s180 mysql...................................................s...................................................s....180 mysqladmin...................................................s..............................................181 mysqlbug ...................................................s.................................................181 mysqldump...................................................s...............................................181 mysqlimport ...................................................s.............................................182 mysqlshow ...................................................s...............................................182 Tworzenie użytkowników i nadawanie uprawnień ..................................................183 grant...................................................s...................................................s.....183 with grant ...................................................s.................................................184 revoke, delete ...................................................s..........................................185 Hasła ...................................................s...................................................s.........185 Tworzenie bazy danych ...................................................s...................................186 Obsługa standardu SQL przez PostgreSQL i MySQL ...................................................s187 Dostęp do danych MySQL z języka C ...................................................s.....................188 Inicjalizacja połączenia ...................................................s...................................189 Obsługa błędów ...................................................s.............................................193 Wykonywanie poleceń SQL ...................................................s..............................194 Polecenia SQL niezwracające danych...................................................s..........194 Polecenia zwracające dane ...................................................s........................197 Przetwarzanie zwróconych danych...................................................s...............202 Funkcje dodatkowe...................................................s.........................................207 Materiały dodatkowe...................................................s............................................208 Podsumowanie...................................................s...................................................s.208 Rozdział 6. Zmagania z błędami 209 Typy błędów ...................................................s...................................................s.....209 Zgłaszanie błędów ...................................................s...............................................210 Wykrywanie błędów w oprogramowaniu...................................................s..................214 Rodzaje błędów w oprogramowaniu ...................................................s.......................214 6 Zaawansowane programowanie w systemie Linux Instrukcje diagnostyczne ...................................................s......................................215 Weryfikacja założeń ...................................................s........................................220 Gdzie jesteś?...................................................s.................................................222 Ślad wsteczny (backtrace)...................................................s...............................226 Usuwanie błędów — czynności wstępne ...................................................s................228 Użycie programu uruchomieniowego ...................................................s................229 Proste polecenia GDB...................................................s.....................................230 Inne możliwości GDB ...................................................s......................................234 Zasoby ...................................................s...................................................s............234 Podsumowanie...................................................s...................................................s.235 Rozdział 7. Usługi katalogowe LDAP 237 Co to jest usługa katalogowa?...................................................s..............................237 X.500 i LDAP ...................................................s.................................................238 Struktura serwera katalogowego ...................................................s...........................239 Nazwy części... ...................................................s..............................................240 Nadawanie nazw dn...................................................s........................................241 Schemat nazewnictwa X.500 ...................................................s.....................241 X.500 ze schematem nazewnictwa domen ...................................................s..241 Schemat nazewnictwa oparty na składniku domeny ........................................241 Składniki obiektów ...................................................s.........................................242 Standardowe typy i atrybuty ...................................................s.......................243 Drzewo katalogowe LDAP ...................................................s................................244 Pliki LDIF ...................................................s...................................................s....245 Instalacja i konfiguracja serwera LDAP ...................................................s..................247 Instalacja OpenLDAP ...................................................s......................................248 Konfiguracja OpenLDAP ...................................................s..................................248 Uruchomienie serwera ...................................................s.........................................251 Dostęp do LDAP z poziomu języka C...................................................s......................253 Inicjalizacja biblioteki LDAP ...................................................s.............................253 Powiązanie z serwerem LDAP ...................................................s..........................254 Obsługa błędów LDAP...................................................s.....................................255 Pierwszy program kliencki LDAP...................................................s.......................256 Wyszukiwanie ...................................................s................................................257 Wybór zakresu ...................................................s..........................................257 Filtracja wyników ...................................................s.......................................257 Wyszukiwanie przy użyciu API ...................................................s.....................260 Sortowanie zwróconych obiektów...................................................s................266 Zmiana danych...................................................s...................................................s.266 Nowy wpis ...................................................s...................................................s..266 Modyfikacja wpisu ...................................................s..........................................270 Usuwanie wpisu ...................................................s.............................................272 Aplikacja...................................................s...................................................s..........273 Materiały dodatkowe...................................................s............................................273 Podsumowanie...................................................s...................................................s.274 Rozdział 8. Programowanie graficznych interfejsów użytkownika (hGUI) za pomocą GNOME-GTK+ 275 Biblioteki GTK+ i GNOME ...................................................s.....................................276 glib277 GTK+ ...................................................s...................................................s.........277 Spis treści 7 GDK ...................................................s...................................................s...........277 Imlib ...................................................s...................................................s..........278 ORBit ...................................................s...................................................s.........278 libGnorba...................................................s...................................................s....278 Biblioteka glib ...................................................s...................................................s..278 Typy ...................................................s...................................................s...........279 Makrodefinicje ...................................................s...............................................280 Makrodefinicje diagnostyczne ...................................................s....................280 Funkcje obsługujące napisy...................................................s.............................282 Przydzielanie pamięci...................................................s......................................284 Listy...................................................s...................................................s...........285 GTK+...................................................s...................................................s...............287 Widżety ...................................................s...................................................s......287 Utworzenie widżetu ...................................................s...................................287 Pojemniki ...................................................s.................................................288 Tabele ...................................................s...................................................s..290 Sygnały ...................................................s...................................................s.292 Ukazanie, aktywność i ukrycie ...................................................s....................293 Zniszczenie ...................................................s..............................................293 gtk_init i gtk_main...................................................s..........................................293 Przykładowa aplikacja GTK+ ...................................................s............................293 Podstawy GNOME...................................................s................................................295 gnome_init ...................................................s...............................................295 GnomeApp ...................................................s...............................................296 Menu i paski narzędziowe ...................................................s...............................296 GnomeAppbar...................................................s...........................................299 Pasek postępu ...................................................s.........................................300 Okna dialogowe ...................................................s.............................................300 Tworzenie widżetu GnomeDialog...................................................s.................301 Pokazywanie widżetu GnomeDialog...................................................s.............302 GnomeAbout ...................................................s............................................304 GnomePropertyBox...................................................s....................................305 GnomeMessageBox ...................................................s..................................306 Przykładowa aplikacja GNOME...................................................s.........................307 Drzewo kodu źródłowego GNOME...................................................s..........................309 configure.in ...................................................s..............................................310 Makefile.am ...................................................s.............................................312 Zapis konfiguracji ...................................................s...........................................313 Przechowywanie danych...................................................s.............................314 Odczyt zachowanych danych ...................................................s......................315 Zarządzanie sesją ...................................................s..........................................315 GnomeClient ...................................................s............................................316 Analiza składniowa wiersza poleceń z użyciem popt .............................................319 Materiały dodatkowe...................................................s............................................322 Podsumowanie...................................................s...................................................s.323 Rozdział 9. Tworzenie GUI za pomocą Glade i GTK+/GNOME 325 Ogólne omówienie Glade...................................................s......................................326 Uwagi na temat projektowania GUI ...................................................s..................326 Samouczek Glade...................................................s................................................327 Okno główne...................................................s..................................................328 Paleta ...................................................s...................................................s........329 8 Zaawansowane programowanie w systemie Linux Okno właściwości...................................................s...........................................332 Kod źródłowy utworzony za pomocą Glade ...................................................s........335 lookup_widget...................................................s................................................337 Dopisywanie kodu ...................................................s..........................................338 libglade ...................................................s...................................................s......340 GUI do obsługi wypożyczalni płyt DVD...................................................s....................343 Projekt ...................................................s...................................................s.......344 Kompilacja i uruchamianie dvdstore...................................................s.................344 Struktura ...................................................s...................................................s....350 Kod...................................................s...................................................s............351 main.c ...................................................s...................................................s..351 callbacks.c ...................................................s...............................................353 member_dialog.c oraz title_dialog.c...................................................s............354 rent_dialog.c oraz return_dialog.c ...................................................s...............358 search_window.c ...................................................s......................................364 misc.c...................................................s...................................................s...374 Podsumowanie...................................................s...................................................s.379 Rozdział 10. Flex i Bison 381 Struktura danych wejściowych ...................................................s..............................382 Skanery i analizatory składni ...................................................s...........................383 Jak działają generatory?...................................................s..................................384 Skanery ...................................................s...................................................s...........385 Prosty skaner...................................................s.................................................386 Specyfikacje skanera...................................................s......................................386 Zasada najdłuższego dopasowania ...................................................s..................391 Wyrażenia regularne ...................................................s.......................................392 Łączenie wyrażeń regularnych ...................................................s....................393 Działania ...................................................s...................................................s....395 Przekierowanie wejścia i wyjścia skanera ...................................................s.........396 Zwracanie elementów ...................................................s.....................................397 Skanery kontekstowe ...................................................s.....................................398 Opcje programu flex ...................................................s.......................................398 Analizatory składni (parsery) ...................................................s.................................399 Tworzenie parserów...................................................s........................................401 Definicje...................................................s...................................................s404 Reguły...................................................s...................................................s...405 Kod dodatkowy ...................................................s.........................................406 Tworzenie testera składni ...................................................s...............................406 Typy elementów ...................................................s.............................................410 Działania w regułach...................................................s.......................................411 Opcje programu bison...................................................s.....................................418 Konflikty gramatyczne...................................................s.....................................419 Wyrażenia arytmetyczne...................................................s..................................420 Materiały dodatkowe...................................................s............................................421 Podsumowanie...................................................s...................................................s.422 Rozdział 11. Narzędzia do testowania 423 Testowanie wymagań...................................................s...........................................423 Architektura aplikacji ...................................................s......................................424 Etapy testowania...................................................s............................................425 Spis treści 9 Testy ogólne ...................................................s..................................................425 Testy regresyjne...................................................s.............................................426 Program testujący ...................................................s..........................................428 Nagłówki i deklaracje...................................................s.................................429 main() ...................................................s...................................................s...429 show_result()...................................................s............................................430 Interfejsy programisty (API) ...................................................s........................430 Testowanie programu dvdstore...................................................s........................433 Testy w postaci skryptów ...................................................s................................434 expect...................................................s...................................................s........434 Problemy z pamięcią...................................................s.......................................436 Pamięć statyczna ...................................................s......................................437 Stos ...................................................s...................................................s.....437 Pamięć dynamiczna...................................................s...................................442 Instalacja programu mpatrol...................................................s............................444 Zastosowanie programu mpatrol ...................................................s.....................445 Testy pokrycia...................................................s................................................450 Pokrycie instrukcji ...................................................s.....................................450 Pokrycie rozgałęzień programu i pokrycie danych ............................................451 GCOV — narzędzie do testów pokrycia instrukcji.............................................452 Testowanie wydajności ...................................................s...................................458 Podsumowanie...................................................s...................................................s.461 Rozdział 12. Bezpieczne programowanie 463 Czym jest bezpieczne programowanie?...................................................s..................463 Dlaczego tak trudno bezpiecznie programować?...................................................s.....464 Błędy utajone...................................................s.................................................464 Pochwała paranoi...................................................s...........................................465 Bezpieczeństwo systemu plików ...................................................s...........................467 Standardowe uprawnienia ...................................................s...............................467 Lepki bit ...................................................s...................................................s.....468 Atrybuty setuid i setgid ...................................................s...................................469 Atrybuty setuid i setgid dla plików wykonywalnych ...........................................469 Atrybut setgid dla katalogów ...................................................s......................470 Bezpieczne używanie setguid i setgid...................................................s...............470 Potwierdzanie tożsamości użytkowników...................................................s................471 Tradycyjne uwierzytelnianie w UNIX-ie ...................................................s...............471 Podstawowe techniki...................................................s.................................472 Ograniczenia...................................................s.............................................472 Dynamiczne moduły uwierzytelniające PAM...................................................s.......473 PAM w teorii ...................................................s.............................................473 Etapy sprawdzania tożsamości za pomocą PAM..............................................473 Rejestracja wywołań zwrotnych ...................................................s........................478 Przykład ...................................................s...................................................s479 Zarządzanie uprawnieniami ...................................................s.............................483 Porzucanie i odzyskiwanie uprawnień...................................................s..........483 Funkcje get*id i set*id ...................................................s..............................484 Strategie zarządzania uprawnieniami ...................................................s...............485 Bezpieczne korzystanie z kryptografii...................................................s.....................486 Krótkie wprowadzenie do kryptografii ...................................................s..........487 Kryptografia z kluczem publicznym...................................................s..............487 10 Zaawansowane programowanie w systemie Linux Bezpieczne algorytmy jednostronne ...................................................s............488 O pisaniu własnych algorytmów ...................................................s..................488 Niektóre powszechnie stosowane techniki...................................................s........489 Cyfrowe podpisy...................................................s........................................489 Uwierzytelnianie za pomocą hasła ...................................................s..............490 Szyfrowanie sesji ...................................................s......................................491 Generowanie liczb losowych w Linuksie...................................................s............492 Zarządzanie kluczem ...................................................s......................................493 Bezpieczne programowanie sieciowe...................................................s.....................494 Opracowywanie protokołów...................................................s...................................495 Jeśli jest to możliwe, należy stosować standardy .................................................495 Przyjazne zapory sieciowe ...................................................s...............................496 Zagadnienia bezpieczeństwa aplikacji WWW ...................................................s.....497 Zagadnienia związane z zarządzaniem sesją ...................................................s.....497 Skrypty zewnętrzne...................................................s....................................498 Standardowe sieciowe narzędzia kryptograficzne...................................................s....500 SSL-TLS ...................................................s...................................................s.....500 ssh ...................................................s...................................................s............500 Ogólne wskazówki i techniki zabezpieczeń...................................................s........501 Problemy ze środowiskiem ...................................................s...................................502 Specjalne zmienne środowiskowe...................................................s....................502 LD_*...................................................s...................................................s.....503 IFS...................................................s...................................................s........503 PATH...................................................s...................................................s.....504 Użycie plików tymczasowych ...................................................s......................504 Użycie „chroot”...................................................s.........................................505 Zagadnienia specyficzne dla języka...................................................s..................507 Jak działa przepełnienie bufora?...................................................s.................507 Jak unikać problemów z przepełnieniem bufora?.............................................509 Sprawdzanie błędów i wyjątków ...................................................s.......................510 Perl...................................................s...................................................s............510 Skrypty setuid i setgid w Perlu...................................................s.........................511 Python ...................................................s...................................................s.............511 PHP...................................................s...................................................s.................512 Materiały dodatkowe...................................................s............................................512 Podsumowanie...................................................s...................................................s.513 Rozdział 13. Programowanie GUI za pomocą KDE/Qt 515 Wprowadzenie...................................................s...................................................s..515 Informacje o Qt ...................................................s..............................................515 Informacje o KDE ...................................................s...........................................516 Instalacja Qt ...................................................s..................................................517 Instalacja KDE ...................................................s...............................................518 Biblioteki ...................................................s...................................................s....519 Programowanie aplikacji przy użyciu Qt ...................................................s..................519 Na początek: „Witaj świecie”...................................................s...........................519 Uproszczenie zarządzania plikiem MakefileMakefile za pomocą tmake ..................521 Sygnały i odbiorniki ...................................................s........................................522 „Witaj świecie” ponownie...................................................s................................525 Dziedziczenie z klas podstawowych...................................................s..................525 Widżety ...................................................s...................................................s......528 Układy...................................................s...................................................s........530 Spis treści 11 Programowanie aplikacji przy użyciu KDE ...................................................s...............534 Prosty edytor tekstowy...................................................s....................................534 Materiały dodatkowe...................................................s............................................542 Podsumowanie...................................................s...................................................s.542 Rozdział 14. Interfejs GUI dla wypożyczalni płyt DVD — implementacja w KDE i Qt 545 Projekt aplikacji...................................................s...................................................s546 Okno główne...................................................s..................................................549 Elementy menu...................................................s.........................................550 Pasek narzędzi ...................................................s.........................................551 Widżet główny...................................................s...........................................552 Rejestr transakcji...................................................s......................................553 Okno dialogowe klienta ...................................................s.............................554 Okno dialogowe wypożyczeń ...................................................s............................558 Wykaz wypożyczeń...................................................s.....................................558 Raport wypożyczenia...................................................s.......................................559 Okno wyszukiwań ...................................................s...........................................560 Strona wyszukiwania filmów...................................................s.......................561 Strona wyszukiwań klientów...................................................s.......................564 Strona wyszukiwania płyt ...................................................s...........................565 Menedżer ustawień ...................................................s........................................566 Dostosowanie kodu do KDE ...................................................s.................................568 Kconfig i SettingsManager ...................................................s..............................574 Materiały dodatkowe...................................................s............................................574 Podsumowanie...................................................s...................................................s.575 Rozdział 15. Python 577 Wprowadzenie...................................................s...................................................s..577 Cechy...................................................s...................................................s.........578 Język bardzo wysokiego poziomu (Very High Level Language — VHLL) ..............579 Interpretowany...................................................s..........................................579 Czysta, prosta i użyteczna składnia ...................................................s............580 Obiektowy ...................................................s................................................581 Dynamiczne określanie typu...................................................s.......................581 Duża biblioteka standardowa ...................................................s.....................581 Obsługa wielu platform...................................................s..............................581 Mnogość implementacji...................................................s.............................581 Duże możliwości rozbudowy ...................................................s.......................582 Otwarty dostęp do kodu źródłowego...................................................s............582 Rozrywka!...................................................s.................................................582 Python: odpowiednie narzędzie pracy ...................................................s...............583 ...ale nie każdej! ...................................................s............................................583 Instalacja Pythona ...................................................s...............................................583 Uruchomienie Pythona ...................................................s.........................................585 Interaktywny interpreter ...................................................s..................................586 Polecenie jako argument...................................................s.................................587 Skrypt jako argument...................................................s......................................587 „Samodzielnie” wykonywalny program...................................................s..............587 Szczegóły...................................................s...................................................s.........588 Interpreter i kompilacja bajtowa...................................................s.......................588 Składnia komentarzy ...................................................s......................................588 12 Zaawansowane programowanie w systemie Linux Znaczenie wielkości liter ...................................................s.................................589 Wbudowane typy danych i operatory...................................................s.................589 Nic...................................................s...................................................s........589 Liczby całkowite ...................................................s........................................590 Długie liczby całkowite...................................................s...............................593 Liczby zmiennoprzecinkowe...................................................s........................593 Liczby zespolone...................................................s.......................................593 Listy ...................................................s...................................................s.....594 Napisy ...................................................s...................................................s..596 Krotki...................................................s...................................................s....598 Słowniki ...................................................s...................................................s598 Zmienne...................................................s...................................................s.....599 Składnia struktury blokowej...................................................s.............................600 Składnia instrukcji...................................................s..........................................601 Instrukcje z wyrażeniami ...................................................s............................601 Przypisanie ...................................................s...............................................602 Instrukcje proste...................................................s.......................................602 Instrukcje złożone ...................................................s.....................................605 Funkcje ...................................................s...................................................s......607 Funkcje wbudowane ...................................................s.......................................609 Przestrzenie nazw...................................................s...........................................610 Moduły i pakiety ...................................................s.............................................610 Niektóre moduły ze standardowej dystrybucji ...................................................s....611 Klasy i obiekty ...................................................s...............................................611 Metody...................................................s...................................................s..612 self...................................................s...................................................s.......612 Dziedziczenie...................................................s............................................612 Metody specjalne...................................................s......................................613 Rozszerzenia Pythona ...................................................s.....................................614 Program przykładowy „co do grosza” ...................................................s.....................614 Materiały dodatkowe...................................................s............................................620 Podsumowanie...................................................s...................................................s.621 Rozdział 16. Tworzenie interfejsu WWW za pomocą PHP 623 PHP i skrypty wykonywane po stronie serwera...................................................s........624 Skrypty wykonywane po stronie serwera ...................................................s...........624 Skrypty CGI...................................................s...............................................624 Aktywne strony serwera ...................................................s.............................625 Strony Java i serwlety ...................................................s................................625 Pisanie skryptów w PHP...................................................s.............................625 Możliwości PHP...................................................s..............................................626 Instalacja i konfiguracja PHP ...................................................s................................627 Budowa i instalacja PHP jako interpretera CGI ...................................................s..628 Budowa i instalacja PHP z Apache i jako moduł Apache........................................629 Instalacja PHP z pliku RPM...................................................s..............................631 Konfiguracja PHP...................................................s............................................631 Wprowadzenie do składni PHP ...................................................s..............................633 Zmienne, stałe i typy danych ...................................................s...........................633 Operatory w PHP ...................................................s............................................635 Operatory arytmetyczne ...................................................s.............................635 Operatory porównań ...................................................s..................................635 Spis treści 13 Operatory logiczne ...................................................s....................................635 Inne operatory ...................................................s..........................................636 Instrukcje ...................................................s...................................................s...636 Funkcje ...................................................s...................................................s......637 Tablice ...................................................s...................................................s.......638 Realizacja projektu DVD za pomocą PHP ...................................................s...............639 HTTP, HTML i PHP ...................................................s..........................................639 Aplikacja...................................................s...................................................s.....641 Rejestracja w systemie (Login) ...................................................s...................641 Stan rezerwacji ...................................................s.........................................642 Wyszukiwanie tytułów ...................................................s................................642 Rezerwacja filmów...................................................s.....................................642 Odwołanie rezerwacji...................................................s.................................642 dvdstoredbfunctions.php ...................................................s...........................643 dvdstorecommon.php...................................................s................................650 dvdstorelogin.php ...................................................s.....................................653 dvdstoresearch.php ...................................................s..................................654 dvdstorestatus.php ...................................................s...................................656 dvdstorecancel.php...................................................s...................................657 dvdstorereserve.php ...................................................s.................................658 Materiały dodatkowe...................................................s............................................659 Podsumowanie...................................................s...................................................s.660 Rozdział 17. Wbudowywanie i rozszerzanie Pythona za pomocą C/C++ 661 Rozszerzenie Pythona za pomocą modułu rozszerzenia C/C++..............................662 Wbudowanie Pythona do programu macierzystego................................................662 Opracowanie modułów rozszerzenia w C/C++ ...................................................s........663 Wymagane oprogramowanie narzędziowe ...................................................s.........663 Interpreter Pythona ...................................................s...................................663 Biblioteki do opracowywania oprogramowania w Pythonie................................664 SWIG — uproszczony generator interfejsu otoczki...........................................664 Rozszerzenie Pythona przy użyciu SWIG...................................................s............664 Proste funkcje ...................................................s..........................................665 Kompilacja i test pliku otoczki utworzonego przez SWIG ..................................668 Testowanie modułu rozszerzenia ...................................................s................669 Dostęp do tablic przy użyciu wskaźników SWIG ...............................................670 Dodanie metod wirtualnych do struktur ...................................................s.......671 Zgłaszanie i obsługa wyjątków przy użyciu odwzorowań typów ..........................672 Tworzenie nowych typów obiektów za pomocą SWIG .......................................678 Rozszerzanie Pythona przy użyciu C API ...................................................s.................692 Typy obiektów Pythona...................................................s....................................693 Zliczanie odsyłaczy oraz prawo własności ...................................................s.........694 Przegląd metod opracowywania modułów rozszerzenia w języku C .........................695 Struktura modułu rozszerzenia ...................................................s...................695 Funkcja init...................................................s...............................................696 Proste funkcje...................................................s................................................697 Trochę bardziej złożona funkcja ...................................................s.......................698 Globalna blokada interpretera ...................................................s.........................700 Tworzenie nowych typów obiektów Pythona...................................................s.......700 Minimalny typ obiektu ...................................................s...............................701 Obsługa getattr...................................................s.........................................704 14 Zaawansowane programowanie w systemie Linux Obsługa setattr...................................................s.........................................705 Obsługa wywołań metod ...................................................s............................706 Inicjalizacja obiektu ...................................................s...................................707 Hermetyzacja obiektów C++ za pomocą interfejsu C API .......................................708 Wbudowywanie Pythona do programów C/C++...................................................s.......711 Środowisko programowania dla wbudowywania...................................................s.711 Wbudowywanie Pythona przy użyciu funkcji wysokiego poziomu .............................712 Statyczna konsolidacja programu macierzystego z modułem rozszerzenia ..............714 Wbudowywanie Pythona przy użyciu wywołań niższego poziomu .............................716 Uruchamianie napisów ...................................................s..............................716 Zastępowanie wewnętrznych funkcji Pythona ..................................................717 Wywoływanie funkcji Pythona ...................................................s.....................719 Tworzenie egzemplarza obiektu w Pythonie oraz wywoływanie jego metody........720 Przetwarzanie wielowątkowe ...................................................s......................722 tdemo.c ...................................................s...................................................s722 Ogólne sugestie ...................................................s..................................................728 Materiały dodatkowe...................................................s............................................729 Podsumowanie...................................................s...................................................s.729 Rozdział 18. Zdalne wywołania procedur 731 Omówienie...................................................s...................................................s.......731 Prosta sieciowa baza danych wypożyczalni DVD ...................................................s.....732 Gniazda BSD ...................................................s.................................................732 Prosty serwer gniazd (Simple Socket Server) ..................................................733 Prosty klient gniazd (Simple Socket Client).............................
Pobierz darmowy fragment (pdf)

Gdzie kupić całą publikację:

Zaawansowane programowanie w systemie Linux
Autor:
,

Opinie na temat publikacji:


Inne popularne pozycje z tej kategorii:


Czytaj również:


Prowadzisz stronę lub blog? Wstaw link do fragmentu tej książki i współpracuj z Cyfroteką: