Zaawansowane programowanie w systemie Linux.pdf

(508 KB) Pobierz
IDZ DO
PRZYK£ADOWY ROZDZIA£
SPIS TRE CI
Zaawansowane programowanie
w systemie Linux
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 :
Przechowywanie danych w systemie Linux ze szczególnym uwzglêdnieniem
PostgreSQL, MySQL i XML.
Implementacja interfejsów graficznych u¿ytkownika w systemie Linux -
omówienie KDE i GNOME.
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
obiektowych.
Oznaczanie wersji (za pomoc¹ CVS), dokumentacja, internacjonalizacja
i dystrybucja projektów.
Rozproszone rozwi¹zania sprzêtowe, takie jak bezdyskowy system Linux i klastry
Beowulf.
KATALOG KSI¥¯EK
KATALOG ONLINE
ZAMÓW DRUKOWANY KATALOG
TWÓJ KOSZYK
DODAJ DO KOSZYKA
CENNIK I INFORMACJE
ZAMÓW INFORMACJE
O NOWO CIACH
ZAMÓW CENNIK
CZYTELNIA
FRAGMENTY KSI¥¯EK ONLINE
Wydawnictwo Helion
ul. Chopina 6
44-100 Gliwice
tel. (32)230-98-63
e-mail: helion@helion.pl
Spis treści
O Autorach
Wstęp
23
33
Dla kogo jest przeznaczona ta książka?......................................................................33
Tematyka książki ......................................................................................................33
Czego wymagamy od czytelnika książki?.....................................................................37
Kod źródłowy............................................................................................................38
Oznaczenia stosowane w książce...............................................................................38
Rozdział 1. Projekt aplikacji
39
Informacje ogólne.....................................................................................................39
Formułowanie założeń...............................................................................................41
Modele tworzenia kodu .............................................................................................43
Opracowanie wczesnego prototypu .......................................................................44
Wczesne i częste testy ........................................................................................45
Wypożyczalnia DVD ...................................................................................................45
Założenia wstępne ..............................................................................................46
Analiza wymagań klienta ......................................................................................47
Spis wymagań ..........................................................................................................52
Przypadki użycia ..................................................................................................54
Architektura aplikacji ................................................................................................56
Projekt szczegółowy.............................................................................................58
Funkcje dostępu do danych..................................................................................59
Funkcje związane z danymi klientów......................................................................59
Funkcje związane z filmami ..................................................................................62
Funkcje opisujące płytę DVD ................................................................................63
Funkcje związane z wypożyczaniem .......................................................................63
Przykładowa implementacja .................................................................................65
Materiały dodatkowe.................................................................................................65
Podsumowanie.........................................................................................................66
Rozdział 2. CVS
67
Narzędzia dla systemu Linux .....................................................................................68
Terminologia ............................................................................................................69
Repozytorium ...........................................................................................................69
Obsługa CVS przez jednego użytkownika.....................................................................70
Format polecenia CVS .........................................................................................71
Zmienne środowiskowe .......................................................................................71
Import nowego projektu .......................................................................................72
Początek prac nad projektem w CVS .....................................................................74
Porównywanie zmian z zawartością repozytorium....................................................75
4
Zaawansowane programowanie w systemie Linux
Aktualizacja repozytorium.....................................................................................76
Wydanie projektu.................................................................................................77
Przeglądanie zmian .............................................................................................78
Dodawanie i usuwanie plików z projektu................................................................79
Rozwinięcia słów kluczowych ................................................................................79
Korekty, znaczniki i rozgałęzienia ...............................................................................80
Korekty...............................................................................................................80
Znaczniki ............................................................................................................81
Rozgałęzienia projektu .........................................................................................84
CVS dla wielu użytkowników ......................................................................................89
Praca zespołowa .................................................................................................90
Śledzenie zmian..................................................................................................92
Więcej zabawy z CVS ................................................................................................92
Pliki binarne........................................................................................................92
Poprawianie błędnych adnotacji ............................................................................93
Sieciowy dostęp do CVS............................................................................................93
Klienty CVS z interfejsem graficznym ..........................................................................96
Materiały dodatkowe.................................................................................................97
Podsumowanie.........................................................................................................98
Rozdział 3. Bazy danych
101
Wybór bazy danych .................................................................................................102
mSQL...............................................................................................................102
MySQL .............................................................................................................103
PostgreSQL ......................................................................................................103
Jaki wybór będzie odpowiedni? ...........................................................................103
PostgreSQL............................................................................................................104
Instalacja i uruchamianie ...................................................................................104
Tworzenie użytkowników ...............................................................................106
Tworzenie baz danych...................................................................................107
Tworzenie zapasowych kopii bazy danych .......................................................107
Zdalny dostęp..............................................................................................108
Podstawy teorii baz danych .....................................................................................109
Pierwsza postać normalna .................................................................................110
Druga postać normalna .....................................................................................111
Trzecia postać normalna ....................................................................................111
Denormalizacja .................................................................................................112
Prosta baza danych ...........................................................................................112
Korzystanie z psql ..................................................................................................117
Polecenia dla psql.............................................................................................117
Polecenia do definicji danych .............................................................................118
Tworzenie i usuwanie tabel ...........................................................................119
Typy danych w PostgreSQL............................................................................123
Polecenia do manipulacji danymi ........................................................................123
Wstawianie danych ......................................................................................124
Pobieranie danych z pojedynczej tabeli...........................................................125
Kombinowane pobieranie danych z wielu tabel ...............................................127
Aktualizacja danych w tabeli..........................................................................129
Usuwanie danych .........................................................................................129
Transakcje........................................................................................................130
Spis treści
5
Wskazówki dla projektu bazy danych ........................................................................132
Materiały dodatkowe...............................................................................................134
Podsumowanie.......................................................................................................134
Rozdział 4. Interfejsy PostgreSQL
135
Dostęp do PostgreSQL z kodu programu...................................................................135
Biblioteka libpq .................................................................................................136
Funkcje do obsługi połączeń z bazą danych ....................................................137
Uruchamianie poleceń SQL ...........................................................................139
Uzyskiwanie wyników zapytań........................................................................142
Biblioteka ecpg .................................................................................................155
Jaką metodę zastosować? .................................................................................166
Aplikacja................................................................................................................167
Podsumowanie.......................................................................................................174
Rozdział 5. MySQL
175
Instalacja i zarządzanie ...........................................................................................175
Pakiety skompilowane .......................................................................................175
Budowanie z plików źródłowych ..........................................................................177
Konfiguracja poinstalacyjna................................................................................178
Zarządzanie bazą MySQL.........................................................................................179
Polecenia .........................................................................................................179
isamchk ......................................................................................................180
mysql..........................................................................................................180
mysqladmin.................................................................................................181
mysqlbug ....................................................................................................181
mysqldump..................................................................................................181
mysqlimport ................................................................................................182
mysqlshow ..................................................................................................182
Tworzenie użytkowników i nadawanie uprawnień ..................................................183
grant...........................................................................................................183
with grant ....................................................................................................184
revoke, delete .............................................................................................185
Hasła ...............................................................................................................185
Tworzenie bazy danych ......................................................................................186
Obsługa standardu SQL przez PostgreSQL i MySQL ...................................................187
Dostęp do danych MySQL z języka C ........................................................................188
Inicjalizacja połączenia ......................................................................................189
Obsługa błędów ................................................................................................193
Wykonywanie poleceń SQL .................................................................................194
Polecenia SQL niezwracające danych.............................................................194
Polecenia zwracające dane ...........................................................................197
Przetwarzanie zwróconych danych..................................................................202
Funkcje dodatkowe............................................................................................207
Materiały dodatkowe...............................................................................................208
Podsumowanie.......................................................................................................208
Rozdział 6. Zmagania z błędami
209
Typy błędów ...........................................................................................................209
Zgłaszanie błędów ..................................................................................................210
Wykrywanie błędów w oprogramowaniu.....................................................................214
Rodzaje błędów w oprogramowaniu ..........................................................................214
6
Zaawansowane programowanie w systemie Linux
Instrukcje diagnostyczne .........................................................................................215
Weryfikacja założeń ...........................................................................................220
Gdzie jesteś?....................................................................................................222
Ślad wsteczny (backtrace)..................................................................................226
Usuwanie błędów
czynności wstępne ...................................................................228
Użycie programu uruchomieniowego ...................................................................229
Proste polecenia GDB........................................................................................230
Inne możliwości GDB .........................................................................................234
Zasoby ..................................................................................................................234
Podsumowanie.......................................................................................................235
Rozdział 7. Usługi katalogowe LDAP
237
Co to jest usługa katalogowa?.................................................................................237
X.500 i LDAP ....................................................................................................238
Struktura serwera katalogowego ..............................................................................239
Nazwy części... .................................................................................................240
Nadawanie nazw dn...........................................................................................241
Schemat nazewnictwa X.500 ........................................................................241
X.500 ze schematem nazewnictwa domen .....................................................241
Schemat nazewnictwa oparty na składniku domeny ........................................241
Składniki obiektów ............................................................................................242
Standardowe typy i atrybuty ..........................................................................243
Drzewo katalogowe LDAP ...................................................................................244
Pliki LDIF ..........................................................................................................245
Instalacja i konfiguracja serwera LDAP .....................................................................247
Instalacja OpenLDAP .........................................................................................248
Konfiguracja OpenLDAP .....................................................................................248
Uruchomienie serwera ............................................................................................251
Dostęp do LDAP z poziomu języka C.........................................................................253
Inicjalizacja biblioteki LDAP ................................................................................253
Powiązanie z serwerem LDAP .............................................................................254
Obsługa błędów LDAP........................................................................................255
Pierwszy program kliencki LDAP..........................................................................256
Wyszukiwanie ...................................................................................................257
Wybór zakresu .............................................................................................257
Filtracja wyników ..........................................................................................257
Wyszukiwanie przy użyciu API ........................................................................260
Sortowanie zwróconych obiektów...................................................................266
Zmiana danych.......................................................................................................266
Nowy wpis ........................................................................................................266
Modyfikacja wpisu .............................................................................................270
Usuwanie wpisu ................................................................................................272
Aplikacja................................................................................................................273
Materiały dodatkowe...............................................................................................273
Podsumowanie.......................................................................................................274
Rozdział 8. Programowanie graficznych interfejsów u ytkownika (GUI)
za pomocą GNOME-GTK+
275
Biblioteki GTK+ i GNOME ........................................................................................276
glib277
GTK+ ...............................................................................................................277
Zgłoś jeśli naruszono regulamin