background image
background image
background image
background image

4

maj 2008

Spis treści

5

www.lpmagazine.org

Opis płyt

Na płycie umieściliśmy najnowszą wersję stabilnej i bezpiecznej dys-
trybucji  Debian  4.0.  Oprócz  tego  znajdziecie  na  niej  multimedialny 
kurs  IBM  DB2  oraz  skuteczną  ochronę  przed  spamem  –  Comdom 
Antispam  for  Linux.  Nie  zabrakło  też  czegoś  dla  wielbicieli  Minta 
oraz Slaxa. Zapraszamy do instalacji

Aktualności

Mandriva

Tomasz Bednarski

News

Maciej Michalec

Gentoo

Grzegorz Madajczak

OpenOffice

Przemysław Żarnecki

CentrumXP

Aleksander Zdyb

Dla początkujących

Instalacji i konfiguracji się nie boję!

Łukasz Ciesielski
Autor w bardzo przejrzysty sposób opisuje instalację i konfi-

gurację systemów z rodziny Open Source.

Miesięcznik Linux+ (11 numerów w roku) jest wydawany 

przez Software-Wydawnictwo Sp. z o. o. 

Dyrektor wydawniczy: 

Sylwia Pogroszewska

Redaktor naczelna: 

Anna Czerwińska, anna.czerwinska@software.com.pl 

Kierownik produkcji: 

Marta Kurpiewska, marta.kurpiewska@software.com.pl

Opracowanie DVD:  

Tomasz Kostro, tomasz.kostro@software.com.pl

Korekta:  

Bartłomiej Stalewski

Dział reklamy: 

reklama@lpmagazine.org, tel.: (22) 427 35 32

Prenumerata: 

Marzena Dmowska, pren@software.com.pl, 

tel.: (22) 427 36 79

Projekt graficzny okładki: 

Agnieszka Marchocka 

Grafika na okładce: 

Maciej Frołow - insane

DTP Manager:

Robert Zadrożny

DTP:

Przemysław Banasiewicz, 

Stali współpracownicy: 

Grzegorz Respondek, Przemysław Prytek, Aneta Duk

Tomasz Bednarski, Roger Zacharczyk 

Adres korespondencyjny: 

Software-Wydawnictwo Sp. z o. o., 

02-682 Warszawa, ul. Bokserska 1

e-mail: redakcja@lpmagazine.org,  

tel. (22) 427 35 32

Redakcja dokłada wszelkich starań, aby publikowane w piśmie i na 

towarzyszących mu nośnikach informacje i programy były poprawne, 

jednakże nie bierze odpowiedzialności za efekty ich wykorzystania. 

Redakcja Linux+ pracuje na sprzęcie dostarczonym przez firmę Device 

Polska 

Płyty uszkodzone podczas wysyłki wymienia dział prenumeraty.

Wszystkie znaki firmowe zawarte w piśmie są własnością 

odpowiednich firm i zostały użyte wyłącznie w celach 

informacyjnych.

Nakład: 10 000 egz.

Redakcja używa systemu automatycznego składu 

Płyty dołączone do magazynu przetestowano programem 

AntiVirenKit firmy G DATA Software Sp. z o.o.

Sprzedaż aktualnych lub archiwalnych numerów pisma po innej 

cenie niż wydrukowana na okładce – bez zgody wydawcy – jest

 działaniem na jego szkodę i skutkuje odpowiedzialnością sądową.

Linux 

®

 jest zarejestrowanym znakiem towarowym należącym 

do Linusa Torvaldsa.

Pismo ukazuje się w następujących wersjach językowych: 

polskiej  , 

francuskiej  , 

hiszpańskiej    

oraz czeskiej  .

Kochani linuksowcy!..

C

odziennie przetwarzamy, odbieramy i wysyłamy informacje 
elektroniczne. Korzystanie z bezprzewodowych  połączeń jest 

bardzo wygodne, a lista urządzeń mobilnych wciąż wzrasta. Użyt-
kownik ma z czego wybierać. My jesteśmy od tego, by przybliżyć 
Wam nowe pozycje i rozwiązania pojawiające sie na rynku. Mamy 
nadzieję, że uda się nam sprostać Waszym oczekiwaniom również 
w tym numerze, który poświęciliśmy urządzeniom mobilnym. 

 

W tym numerze powracamy do dawno niepublikowanych Tip-

sów. Piotr  Pawłowski opisuje program GKrellm, pozwalający na stałe 
monitorowanie komponentów komputera. Dzięki artykułowi “Linux ko-
mórkowy”dowiecie się czegoś na temat kilku programów, które pozwolą 
na lepszą kontrolę nad telefonem w środowisku systemu Linux. Grzegorz 
Madajczak postarał się udowodnić jak wiele urządzeń jako OS wykorzy-
stuje odpowiednio zmodyfikowanego Linuksa.

W kolejnym numerze czeka na Was niespodzianka. Przygoto-

wujemy  dla  Was  coś  naprawdę  specjalnego.  Badźcie  czujni  i  nie 
przegapcie!

 

Chcecie współpracować z Linuksem+? Macie do przekazania 

fanom linuksowego oprogramowania konkretną wiedzę lub ciekawostkę? 
Nie czekajcie- dołączcie do nas!

 Miłej lektury!

Redakcja Linux+

W bieżącym numerze

10

13

12

14

8

11

background image

4

maj 2008

Spis treści

5

www.lpmagazine.org

Wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w 

Motorola Polska SP. z o. o

Felieton

Stąd do przyszłości

Roger Zacharczyk

Księgozbiór

Oprogramowanie 

użytkowe w systemie Linux

Wojciech Hryń

Rozwiązania

Qtopia – przykład platformy 

linuksowej w urządzeniach mobilnych

Przemysław Żarnecki

W  artykule  autor  prezentuje  platformę  przeznaczoną  na  telefony 
komórkowe z wbudowanym Linuksem.

Usługi Google cz. 1

Łukasz Olender

Coraz więcej osób używa aplikacji webowych firmy Google. Autor 
artykułu opisuje kilka przydatnych programów z których korzy-
stamy na co dzień oraz przybliża te mniej znane. 

Linux na urządzeniach 

z wbudowanym systemem

Grzegorz Madajczak

Autor przedstawia kilka ciekawych urządzeń z wbudowanym sys-
temem 

Praktyka

D-Bus w praktyce

Zbigniew Kozak
Celem niniejszego artykułu jest przedstawienie podstaw 

funkcjonowania systemu D-Bus i możliwości jego wykorzystania. 
Autor wprowadza podstawowe pojęcia i idee związane z D-Busem, 
a następnie, na przykładach, pokazuje jak ten system funkcjonu-
je w praktyce.

Linux komórkowy

Robert Multan

W  tym  artykule  Robert  przedstawia  kilka  programów,  które 
pozwolą na lepszą kontrolę nad telefonem w środowisku syste-
mu Linux.

Programowanie

Freebasic – Basic na miarę XXI wieku

Marek Sawerwain

Marek przedstawia język programowania FreeBasic, czyli 

bardzo nowoczesną odmianę języka Basic.

Rozrywka

Second Life

Przemysław Żarnecki

Rzut okiem na wirtualny świat rozgrywki

Tipsy

Gkrellm

Piotr Pawłowski

Aplikacja pozwalajaca na stałe monitorowanie komponentów kom-
putera.

Urządzenia mobilne

Temat miesiąca

72

20

24

32

42

60

56

68

74

78

79

background image

6

maj 2008

opis DVD

DVD

7

www.lpmagazine.org

opis DVD

DVD 

Debian 4.0

D

ebian  od  początku  uważany 
był  za  najstabilniejszą  i  naj-
bezpieczniejszą  dystrybucję 
Linuksa.  Z  tego  właśnie  po-

wodu  często  wybierany  jest  jako  system 
operacyjny  dla  serwerów,  ale  doskonale 
sprawdza  się  także  w  zastosowaniach  biu-
rowych oraz domowych. Na tle innych wy-
różnia go także świetne narzędzie do insta-
lacji pakietów, jakim jest APT.

Instalacja

Przystąpmy więc do instalacji. Po urucho-
mieniu komputera z bootowalnej płyty za-
wierającej  Debiana  zobaczymy  menu  star-
towe. Ponieważ chcemy skorzystać z insta-
latora graficznego, należy wpisać instlalgui 
i wcisnąć Enter.

Po  załadowaniu  instalatora  pierwszym 

krokiem,  który  musimy  wykonać  jest  wy-
bór języka i polecam tutaj wybrać oczywi-
ście język polski, podobnie jak w przypad-
ku wyboru układu klawiatury. Po niedługiej 
chwili  (instalator  wczyta  do  pamięci  tro-
chę  dodatkowych  danych)  będziemy  mo-
gli skonfigurować sieć. Tutaj niestety użyt-
kownik zdany jest już na siebie, gdyż kon-
figuracja sieci zależy od sposobu podłącze-
nia do internetu. Najczęściej jednak jest to 
zwykła sieć ethernet i wystarczy konfigura-
cja automatyczna.

Ustalmy teraz partycje dysku twardego. 

Zaleca się przeznaczyć co najmniej 5 GB na 

partycję  root  /  oraz  wydzielić  osobną  par-
tycję domową /home o rozmiarze zależnym 
od preferencji użytkownika (jeżeli chcemy 
trzymać  dużo  danych,  należy  przeznaczyć 
więcej miejsca na nią).

Pozostaje  teraz  wybrać  odpowiednią  dla 

siebie strefę czasową, następnie ustalenie ha-
sła dla użytkownika root oraz stworzenie kon-
ta zwykłego użytkownika.

Teraz nastąpi instalacja systemu  podsta-

wowego.  Po  tej  czynności  przejdziemy  do 
instalacji oprogramowania. Mamy tutaj spo-
ry wybór, więc warto zastanowić się, co bę-
dzie nam potrzebne do pracy. Po skopiowa-
niu plików ostatnim krokiem będzie instala-
cja programu rozruchowego (wystarczy klik-
nąć TAK).

Uruchomienie i konfiguracja

W  końcu  możemy  cieszyć  się  jedną  najbar-
dziej stabilnych dystrybucji Linuksa – Debia-
nem. Po jej uruchomieniu mamy do dyspozy-
cji gotowe środowisko pracy. Zależnie od te-
go,  jakie  pakiety  wybraliśmy  do  instalacji, 
znajdzie się także pakiet biurowy, przeglądar-
ka internetowa, komunikatory, gry. Jeżeli ja-
kichś programów nam zabraknie, zawsze mo-
żemy je doinstalować przy pomocy APT.

Comdom antispam for Linux

Comdom AntiSpam zapewnia, dzięki poszcze-
gólnym modułom składającym się na aplika-
cję, skuteczną ochronę przed spamem.

Podstawowe moduły to:

•   brama pocztowa,
•   kontrola transmisji,
•   wspomaganie autoryzacji,
•   filtr Bayesa,
•   czarne, białe, szare listy,
•   konfiguracja zależna od domeny/email,
•   DKIM,
•   SPF.

Comdom  Antispam  jest  dostępny  dla  każ-
dego  bez  żadnej  rejestracji,  ani  innych  pro-
cedur!  Wystarczy  jedynie,  że  zaakceptujesz 
umowę  licencyjną  i  możesz  w  pełni  korzy-
stać z tego rozwiązania. Wersja ta jest ograni-
czona do 100 adresów email (nie do 100 użyt-
kowników!). Adresy muszą być jasno wpisane 
w pliku konfiguracyjnym po instalacji progra-
mu.  Tylko  wtedy  wiadomości  będą  akcepto-
wane, w przeciwnym wypadku e-maile zosta-
ną odrzucone. Wersja ta nie posiada żadnej ba-
zy spamu, jednak umożliwia zbudowanie wła-
snej. Aby pobrać już przygotowane bazy, nale-
ży się zarejestrować. 
WWW:  www.ti.com.pl,  www.comdomanti-
spam.pl
www.comdomsoft.com.
E-mail: comdom@ti.com.pl 

Wprowadzenie do systemu 

IBM DB2 w systemie Linux.

Firma IBM już od lat 70. XX wieku, praco-
wała nad systemami bazodanowymi. To wła-
śnie dzięki wysiłkom badaczy tej firmy po-
wstał  relacyjny  model  (Relational  Model) 
baz danych, a także wykorzystywany do dzi-
siaj język SQL (Structured Query Language 
– czyli strukturalny język zapytań). IBM ma 
na swoim kącie całą masę różnych rozwią-
zań z zakresu RDBMS (Relational Database 
Management Systems.

Jednym  z  takich  rozwiązań  jest  program 

IBM DB2, który po raz pierwszy został udo-
stępniony już w roku 1983 dla systemu MVS.

Obecnie  program  ten  jest  udostępniany 

dla  technologii  serwerowych  IBM  xSeries, 
pSeries,  iSeries  i  zSeries  dla  różnych  syste-
mów operacyjnych.

IBM DB2 udostępniany jest w następu-

jących wersjach:

Enterprise Server Edition

Jest  to  najbardziej  rozbudowana  wersja 
serwera  baz  danych.  Cechuje  go  obsługa 

Rysunek 1. 

Wstępna konfiguracja DB2 w systemie Linux, za pomocą gotowego skryptu

background image

6

maj 2008

opis DVD

DVD

7

www.lpmagazine.org

opis DVD

DVD 

64 bitowych systemów operacyjnych. Po-
siada  także  możliwość  partycjonowania 
bazy  danych,  dzięki  czemu  możliwy  jest 
podział danych w ramach jednego lub wie-
lu serwerów z tym samym systemem ope-
racyjnym.

Express Edition

To wersja ekonomiczna, jest w pełni funk-
cjonalna. Nadaje się dla małych i średnich 
firm które nie mają odpowiednio wyszkolo-
nego personelu do obsługi bardziej zaawan-
sowanych wersji DB2.

Wersja Express Edition dostępna jest na 

systemy  MS  Windows  i  Linux  zarówno  z 
procesorami Intel jak i AMD.

Personal Edition

Jest to wersja z założenia przeznaczona dla 
jednego  użytkownika.  Dostępne  są  w  niej 
wszystkie narzędzia graficzne i funkcje ser-
wera bazy danych.

Wersja Personal umożliwia łączenie się 

jedynie  z  innymi  serwerami  DB2,  ale  nie 
udostępnia  połączeń  dla  innych  kompute-
rów klienckich.

Workgroups Server Edition

DB2  przeznaczony  dla  grup  roboczych  i 
małych  firm.  Dostępny  jest  w  wersji  dla 
systemów MS Windows, Linux i Unix. Li-
cencje do tej wersji udostępniane są dla:

•   użytkownika  (np.  dla  aplikacji  z  nie-

wielką liczbą użytkowników)

•   na  procesor  (dla  aplikacji  z  wieloma 

użytkownikami, np. dla stron WWW)

Cechy bazy danych DB2: 

•   jest to pierwsza baza ze wsparciem dla ję-

zyka Java

•   to  pierwsza  na  świecie  baza  certyfiko-

wana na Windows 2000

•   posiada  silne  wsparcie  dla  systemów 

Linux, także tych 64-bitowych

•   to  pierwsza  baza  z  optymalizatorem 

kosztowym

•   pierwsza  baza  z  przepisywaniem  SQL 

do optymalnej postaci

•   jest to pierwsza baza relacyjna pozwa-

lająca na obiektowe rozszerzenia

•   jest  dostępna  na  wszystkie  platformy 

sprzętowe 

Systemy  operacyjne  na  których  dostępny 
jest DB2:

•   AIX (32, 64 bit)
•   Solaris UltraSparc (32, 64 bit)
•   HP-UX  oparte  na  HP  PA-RISC  (32,  64 

bit)

•   HP-UX oparte na Intel Itanium (32, 64 

bit)

•   iSeries (OS/400)
•   zSeries (OS/390 oraz z/OS)
•   GNU/Linux  32,  64  bit  na  platformach 

Intel,  pSeries,  iSeries  oraz  zSeries  (S/
390)

•   Microsoft  Windows  32  bit  (Inte-

l+AMD)

•   Microsoft  Windows  64  bit  oparte  na 

Intel Intanium i AMD Athlon/Opteron

Niniejszy kurs jest wstępem do IBM DB2. 
Zaprezentowana  została  instalacja  serwe-
ra DB2 w systemie Linux, zarówno w try-
bie graficznym jak i tekstowym. Jako od-
niesienie zaprezentowana została także in-
stalacja  DB2  Enterprise  w  systemie  MS 
Windows.

Następnie pokazano jak można skonfi-

gurować i używać DB2 zarówno z poziomu 
narzędzi graficznych jak i tekstowych.

Rysunek 2. 

Obsługa DB2 z poziomu shella w systemie Linux

Rysunek 3. 

Obsługa DB2 z poziomu przeglądarki WWW

background image

aktualności

Mandriva

8

maj 2008

dział prowadzi: Tomasz Bednarski tomasz.bednarski@mandriva.pl

aktualności

Mandriva

9

www.lpmagazine.org

dział prowadzi: Tomasz Bednarski tomasz.bednarski@mandriva.pl

Nowe oprogramowanie

w Mandriva Linux 2008.1 Spring

W nowym wydaniu czekają na nas 

świeżutkie wersje oprogramowania:

•  jadro systemu 2.6.24;

•  X.org 7.3;

•  środowiska graficzne KDE 3.5.9, KDE 

4.0.2, GNOME 2.22, Xfce 4.4. i mene-

dżer okien Avant;

•  przeglądarka Mozilla Firefox 2.0 (bę-

dzie uwzględniał wszystkie dostępne 

poprawki); 

•  OpenOffice.org 2.4;

•  pulpit 3D Compiz 0.7;

•  system dźwięku Pulse Audio;

•  centrum multimedialne Elisa;

•  program do synchronizacji danych z 

różnych źródeł Conduit.

Podstawowym środowiskiem graficznym 

jest nadal KDE 3.5.9. KDE 4 jest cały czas 

doskonalone i zagości jako główny pul-

pit Mandrivy prawdopodobnie w wer-

sji 4.1. Na razie jest dostępne jako dodat-

kowe środowisko, a pakiety rpm znajdu-

ją się w repozytorium Contrib. Aby zain-

stalować KDE 4 można użyć meta pakietu 

task-kde4, tzn. zainstalować go z użyciem 

RpmDrake lub urpmi (polecenie 

urp-

mi task-kde4

). Wystarczy zaznaczyć ten 

jeden pakiet, aby zainstalować wszystkie 

niezbędne programy i biblioteki.

Wersje Mandriva Linux 2008.1 Spring 

Mandriva Linux 2008.1 Spring będzie 

dostępna w kilku wersjach:

•  Free – bezpłatne wydanie zawierają-

ce tylko wolne oprogramowanie, tzn. na 

jednej z licencji uznawanej za otwartą;

•  One – bezpłatne wydanie typu Live (bez 

instalacji na dysku twardym) ze zinte-

growanymi dodatkowymi sterownikami 

i programami na licencjach własnościo-

wych (np. sterowniki kart graficznych, 

wtyczki do przeglądarek itp.);

•  PowerPack - komercyjne wydanie z 

usługami pomocy technicznej, komercyj-

nym oprogramowaniem i sterownikami.

Tworzone w Polsce wydanie Xtreme jest 

publikowane według własnego cyklu 

jakiś czas po wydaniu francuskim.

Mandriva Linux 2008.1 Spring

 – więcej, szybciej, łatwiej

W

łaśnie  ukazała  się  pierwsza  wersja 
kandydująca  systemu  Mandriva  Li-

nux  2008.1.  Zrobiła  na  mnie  bardzo  dobre 
wrażenie z kilku powodów. Po pierwsze sta-
bilność – mimo że to wydanie testowe nie na-
potkałem jeszcze żadnych błędów. Po drugie 
wydajność  –  Spring  działa  wyraźnie  szyb-
ciej na moim komputerze testowym (Celeron 
1,7 Ghz) niż wersja 2008. Po trzecie KDE 4 
– wygląda naprawdę nieźle i ma wiele cieka-
wych funkcji. Nie mogę sie doczekać wersji 
dopracowanej pod względem funkcjonalnym. 
Po czwarte – bardzo dużo usprawnień i zmian 
technologicznych.

Na  temat  nowości  technicznych  wie-

le pisałem w poprzednich numerach Linux+. 
Dla  przypomnienia  wspomnę  tylko,  że  wie-
le zmieniło się w jakości obsługi kart graficz-
nych,  sieci  bezprzewodowych  oraz  klawia-
tur  multimedialnych.  Do  użytku  wszedł  tak-
że nowy system dźwięku PulseAudio. Dzisiaj 
chciałbym bliżej przyjrzeć się zmianom w za-
kresie zarządzania oprogramowaniem. 

Instalacja i aktualizacja 

programów jeszcze łatwiejsza

Wprowadzono szereg poprawek w RpmDrake-
'u
, które mają ułatwić instalowanie programów. 
Na  dystrybucję  składa  się  wiele  tysięcy  róż-
nych pakietów. Wiele z nich to biblioteki i ste-
rowniki lub programy konsolowe, których na-
zwy niewiele mówią początkującym użytkow-

nikom. Dlatego w menu konfiguracji widoku 
pojawiła  się  opcja  umożliwiająca  wyświetla-
nie programów, które działają w trybie okien-
kowym (opcja Pogramy z interfejsem graficz-
nym
,  Rysunek  3).  Dzięki  temu  początkujący 
szybciej odszuka niezbędne aplikacje. 

Poszukiwanie programów

Jedną  z  zalet  dystrybucji  Linuksa  jest  to,  że 
nie trzeba szukać programów w różnych miej-
scach  internetu  i  instalować  każdej  z  osob-
na. Praktycznie wszystko co potrzebne moż-
na znaleźć w przepastnych repozytoriach dys-
trybucji. W  repozytoriach  Mandrivy  jest  ok. 
16  tys.  pakietów  rpm.  Wśród  nich  możemy 
znaleźć programy praktycznie do wszystkie-
go. Trzeba je tylko znaleźć w tym gąszczu) Na 
szczęście w RpmDrake jest to łatwe – można 
szukać programów według kategorii (drzewo 
po lewej stronie okna – Rysunek 4.) lub sko-

Rysunek 1. 

Nowy wygląd pulpitu – nowa tapeta i menu 

Rysunek 2. 

KDE 4 – nowoczesne środowisko wprost z przyszłości 

background image

aktualności

Mandriva

8

maj 2008

dział prowadzi: Tomasz Bednarski tomasz.bednarski@mandriva.pl

aktualności

Mandriva

9

www.lpmagazine.org

dział prowadzi: Tomasz Bednarski tomasz.bednarski@mandriva.pl

Nowe zainstalowane 

programy - gdzie ich szukać?

Czasem zdarza się, że szukamy w menu pro-
gramów, które właśnie zainstalowaliśmy. Aby 
to ułatwić w menu Kickoff (alternatywne me-
nu)  można  wykorzystać  dwie  ciekawe  opcje. 
Pierwsza  to  wyszukiwarka,  która  umożliwia 
szybkie  dotarcie  do  każdej  opcji  znajdującej 
się w menu. Po wpisaniu nazwy programu lub 
jej fragmentu pojawi się lista wpisów w menu 
pasujących do zapytania. Teraz wystarczy klik-
nąć, aby uruchomić program. Drugie udogod-
nienie to specjalny wpis w podmenu Aplikacje
gdzie pod hasłem Nowe aplikacje pojawiają się 
informacje o świeżo zainstalowanych progra-
mach (Rysunek 6).

Wygodniejsze aktualizacje 

Zmiany nie ominęły programu Mandriva Onli-
ne. Służy on do sprawdzania czy pojawiły się ja-
kieś aktualizacje dla systemu. Odpowiedni ko-
munikat informujący o aktualizacjach wyświetla 
się w rogu ekranu (Rysunek 7). Wystarczy klik-
nąć,  podać  hasło  administratora  i  to  wszystko 
– aktualizacje zostaną pobrane z internetu i za-
instalowane w systemie. Aplet mdkapplet (czy-
li Mandriva Online) jest widoczny w pasku tray, 
tylko gdy znajdzie nowe aktualizacji. Jeżeli sys-
tem jest zaktualizowany ikona znika, aby niepo-
trzebnie nie zajmować miejsca. Stan aktualiza-
cji  jest  sprawdzany  kilka  minut  po  zalogowa-
niu się użytkownika do systemu. Mandriva Li-
nux  2008.1  Spring  to  duży  krok  naprzód.  Za-
wiera bardzo dużo nowości i usprawnień. Wie-
le programów działa szybciej i są bardziej przy-
jazne. Zaimplementowano nowoczesne techno-
logie  związane  z  obsługą  dźwięku,  sieci  bez-
przewodowych i sposobów wyświetlania obra-
zu. Usunięto też drobne niedogodności, na które 
zwracano uwagę w przeszłości. Moim zdaniem 
efekt jaki osiągnęli inżynierowie Mandrivy jest 
bardzo dobry. Warto wypróbować!

Informacje na temat Mandriva Linux 2008.1 

Spring: http://wiki.mandriva.com/en/2008.1

rzystać  z  wyszukiwarki  (Rysunek  5.),  która 
pozwala  przeszukiwać  bazę  programów  we-
dług nazw pakietów, plików oraz opisów.

Lepiej na wolnych łączach

Nowy  RpmDrake  będzie  bardziej  wygod-
ny  dla  użytkowników  wolnych  łącz  inter-
netowych. Przed rozpoczęciem instalacji po-
da łączną wielkość pakietów (w MB lu KB) 
do  pobrania  przed  instalacją.  To  ważna  in-
formacja  bo  ułatwia  kontrolowanie  ilości 
danych  pobieranych  z  internetu  (szczegól-
nie  dla  osób  posiadających  łącza  z  limito-
wanym  transferem).  Przyspieszeniu  ulegnie 
także  aktualizowanie  nośników  interneto-
wych (repozytoriów z pakietami), ponieważ 
zmieniono technologię przechowywania do-
datkowych informacji o pakietach, takich jak 
opisy  programów,  informacje  o  zmianach  i 
listy plików. Użytkownik będzie sam decy-
dował  czy  chce,  aby  RpmDrake  wyświetlał 
takie dane, a jeżeli tak to kiedy ma je pobrać 
z repozytorium. Zamiast pobierania informa-
cji o wszystkich kilkunastu tysiącach pakie-
tów, pobierane będę małe ilości, wtedy kiedy 
będą potrzebne. W rezultacie zamiast kilku-
dziesięciu MB przez sieć przepłynie kilkaset 
KB. Czysta oszczędność czasu i łącza.

Asus Eee friendly

Znacie ten mały, popularny ostatnio 

notebook? Z pewnością chociaż o nim 

słyszeliście. A najlepsze jest to, że 

Mandriva Linux 2008.1 Spring działa 

na nim doskonale. Przeprowadzone we 

Francji testy wykazały, że wszystkie 

urządzenia w Asus Eee zostały wykryte i 

zainstalowane poprawnie. Nie pozostaje 

nic innego jak instalować).

Xtreme DVD Live

– bezpłatnie z Klubu Mandrivy

W marcu pojawiła się długo oczekiwana 

wersja Live systemu Mandriva Xtreme, 

którą można uruchomić bez instalowania 

na dysku komputera. System jest dostępny 

bezpłatnie w Klubie Mandrivy w postaci 

obrazu ISO płyty DVD. Edycję DVD 

Live stworzono w oparciu o Mandriva 

Linux 2008. Zawiera zestaw aplikacji 

znanych z Mandriva Xtreme 2 (kreatory 

połączeń internetowych, Xtreme Studio 

itd.) i trójwymiarowy pulpit Compiz 

Fusion. Jego działanie sprawdzono na 

następujących kartach graficznych:

•  GeForce 8400M GS;

•  GeForce 4 MX;

•  ATI 9600;

•  GeForce 7600;

•  ATI 9200;

•  GeForce 7800;

•  Intel X3100.

Działa bez zarzutu. Można testować. 

Klub Mandrivy: www.mandrivaclub.pl

Mandriva Xtreme 2 USB

Mandriva Xtreme 2 USB to najnowsza 

wersja specjalnej, mobilnej wersji systemu 

Mandriva Xtreme. Jest to system szczególnie 

ciekawy dla użytkowników, którzy często 

podróżują i chcą mieć dane zawsze pod ręką. 

Na kluczu usb o rozmiarze 2 lub 4 GB został 

zainstalowany w pełni funkcjonalny system 

operacyjny Mandriva Xtreme 2. Ponadto do 

dyspozycji użytkownika jest 400 MB lub 2 

GB miejsca na pliki.

Jest to pierwsza stworzona od początku 

do końca wersja systemu przeznaczonego 

do instalacji na kluczach USB. Oparto 

ją na Mandrivie, ale struktura systemu 

docelowego, sposób instalacji, konfiguracja, 

dodatkowe oprogramowanie oraz 

zestaw aplikacji to wynik pracy polskich 

inżynierów.

Rysunek 3. 

Rpmdrake potrafi wyświetlać listę pro-

gramów z interfejsem graficznym

Rysunek 4. 

Przeszukiwanie programów według 

kategorii

Rysunek 5. 

Wyszukiwanie programów według 

nazw pakietów, plików oraz opisów

Rysunek 6. 

Świeżo zainstalowane aplikacje będą 

wyróżnione w menu Kickoff.

Rysunek 7. 

Mandriva Online – są nowe aktualiza-

cje do zainstalowania

background image

dział prowadzi Maciej Michalec maciek@linux.pl

aktualności

News

10

maj 2008

NEWS

Nowa wersja TrueCrypt

Światło dzienne ujrzała kolejna, bowiem 

oznaczona numerem 5 wersja aplikacji słu-

żącej do szyfrowania danych – TrueCrypt. 

Oprócz standardowych poprawek i niewiel-

kich ulepszeń wprowadzono także poważ-

niejsze zmiany, m.in. dodano graficzny in-

terfejs użytkownika do wersji przeznaczo-

nej dla systemów Linuksowych oraz zmie-

niono wykorzystywany do tej pory algo-

rytm SHA-1 na SHA-512.

KDE 4.0.1

Niedawno wydano kolejną wersję popular-

nego środowiska graficznego K Desktop 

Environment, opatrzoną numerkiem 4.0.1. 

Nie wnosi ona żadnych konkretnych nowo-

ści, poprawiono jedynie zgłoszone w po-

przedniej wersji błędy.

Innotek zakupiony przez Suna

Sun Microsystems poinformował o zaku-

pieniu niemieckiej firmy Innotek, produ-

centa służącego do wirtualizacji popular-

nego programu VirtualBox. Transakcja ma 

na celu wspomóc rozwój tworzonej przez 

Sun platformy xVM Server,poprzez włą-

czenie do niej VirtualBoksa. Więcej infor-

macji na stronie firmy Sun, pod adresem 

http://www.sun.com/aboutsun/pr/2008-02/

sunflash.20080212.1.xml.

Nowe logo KOffice i licencji GNU

Niedługo po wydaniu nowej wersji (3) li-

cencji GNU, nowe logo otrzymały licen-

cje GNU GPL, LGPL oraz AGPL. Grafiki 

są odpowiednio w trzech kolorach: czerwo-

nym, zielonym i fioletowym i nawiązują do 

GPLv3. O logotyp wzbogacił się także pa-

kiet biurowy KOffice wchodzący w skład 

środowiska graficznego K Desktop Envi-

ronment. Od początku swego istnienia pro-

jekt KOffice nie posiadał bowiem własnego 

logo. Nowe grafiki, zarówno licencji GNU 

jak i pakietu biurowego można znaleźć 

na stronach http://www.dertig.nl/projects/

koffice/ oraz http://www.gnu.org/graphics/

license-logos.html.

KTorrent 3.0

Ukazała się nowa wersja programu KTor-

rent, popularnego linuksowego klienta sie-

ci BitTorrent. W wydaniu oznaczonym nu-

merem 3 jedną z ważniejszych nowości jest 

całkowite wsparcie dla środowiska graficz-

nego KDE 4 a także szóstej wersji protoko-

łu IP. http://www.ktorrent.org/.

Damn Small Solaris 0.1

Wzorem, jak się możemy domyślić dystry-

bucji Damn Small Linux, powstał system o 

podobnie brzmiącej nazwie: Damn Small 

Solaris. Jest to oczywiście dystrybucja Li-

veCD Solarisa, a została ona udostępnio-

na na licencji GNU General Public License. 

DSS zajmuje niecałe 64 megabajty, nie po-

siada także wygórowanych wymagań. Już 

teraz można pobrać z Internetu obraz ISO 

dystrybucji, znaleźć go można np. na popu-

larnej Softpedii. Więcej informacji na stro-

nie http://www.sunhelp.ru/ (po rosyjsku). 

Czy Nokia kupi Trolletech?

N

okia zaoferowała 153 miliony dolarów za 
zakup  firmy  Trolltech,  która  stworzyła  i 

rozwija bibliotekę Qt (udostępnioną niedawno na 
licencji GNU GPL). Według zapewnień produ-
centa telefonów komórkowych, Qt, które nadal 
ma być rozwijane, wciąż dostępne ma być tak-
że na wolnej licencji. Przejęcie Trolltech będzie 

możliwe dopiero po uzyskaniu zgody akcjonariu-
szy tej firmy. Po ogłoszeniu możliwości przeję-
cia Trolltech przez Nokię, inna firma telekomuni-
kacyjna – Motorola zapowiedziała, że wycofa ze 
swoich urządzeń technologię Qt. W swojej histo-
rii firma stworzyła już wiele telefonów komórko-
wych z systemem Linux i użyciem biblioteki Qt. 

Kolejne wdrożenia za granicą

ostatnim  czasie  Linuksa  wybiera  co-
raz więcej firm i instytucji. Jak poinfor-

mował Novell, producent systemu operacyjnego 
SUSE, francuskie Renault zdecydowało się za-
stąpić dotychczas używane różne dystrybucje Li-
nuksa systemem SUSE Linux Enterprise Server, 
który pozwoli zapewnić większą zgodność z  wy-
korzystywanym tam Windowsem. Zgodnie z za-
wartą umową, Renault otrzyma także abonament 
na priorytetową pomoc techniczną.

Inną  dystrybucję  wybrała  natomiast  prze-

chodząca  na  Linuksa  francuska  policja.  Do  tej 
pory zainstalowane tam systemy Windows XP, 
mają  być  zastąpione  przez  popularne  Ubuntu. 
Według  przewidywań  tej  instytucji,  pełna  mi-
gracja powinna zakończyć się dopiero około ro-
ku 2014 – powodem jest ogromna liczba kom-
puterów które objęte mają być wymianą systemu 

– jest ich ponad 60 tysięcy.

Jak się okazuje, nasi zachodni sąsiedzi nie 

próżnują  pod  względem  wprowadzania  Linuk-
sa do swoich urzędów. Niedawno bowiem Nie-
miecki Urząd Pracy postanowił zastąpić dotych-
czas  używane  tam  systemy  Windows  NT  pro-
stym, stabilnym i bezpiecznym Linuksem: dys-
trybucją  OpenSUSE.  Migracja  ma  obejmować 
około 13 tysięcy stanowisk komputerowych. O 
planach wdrożenia w swojej infrastrukturze Li-
nuksa  poinformowała  też  amerykańska  armia. 
Dystrybucja  z  jakiej  zdecydowano  się  skorzy-
stać to Red Hat Enterprise Linux w wersji 5. Na 
początek postanowiono opracować odpowiednie 
sposoby zapewniające współpracę i kompatybil-
ność  różnych  systemów  operacyjnych,  dopiero 
później możliwa jest pełna migracja.

SLAX 6.0

P

ojawiła się stabilna szósta wersja dystrybu-
cji  SLAX,  stworzonej  przez Tomasa  Ma-

tejicka.  Wielu  użytkownikom  znana  jest  ona 
przede  wszystkim  ze  swej  mobilności  –  sys-
tem bezproblemowo zainstalujemy zarówno na 
dysku  twardym,  pendrive,  a  także  skorzysta-
my z płyty LiveCD. SLAX dostępny jest więc 
w dwóch formatach: TAR, przeznaczonym dla 
urządzeń USB oraz ISO dla płyt CD. Instalacja 

systemu na wymienionych wyżej nośnikach nie 
powinna  sprawić  nikomu  problemów.  Oprócz 
porad zawartych na stronie internetowej dystry-
bucji w Sieci znajdziemy również wiele nieza-
leżnych  opisów  i  instrukcji  dotyczących  insta-
lacji  SLAX-a.  Dokładniejsze  informacje  o  tej 
opartej na Slackware dystrybucji, a także pliki 
do pobrania znajduja się na oficjalnej witrynie 
projektu: http://www.slax.org/.

background image

dział prowadzi: Grzegorz Madajczak madajczak@gmail.com

aktualności

Gentoo

11

www.lpmagazine.org

Zakończono wybory do Rady Fundacji Gentoo

B

ez  wątpienia  newsem  miesiąca  jest  za-
kończenie  wyborów  do  Rady  Fundacji 

Gentoo, o których znaczeniu pisałem już w po-
przednim  miesiącu.  Niejasna  sytuacja  praw-
na  samej  fundacji,  a  także  zamieszanie  wo-
kół propozycji Daniela Robbinsa sprawiło, że 
oczy całej społeczności Gentoo zwrócone by-
ły na te wybory.

Przede  wszystkim  należy  przypomnieć, 

że Daniel Robbins wbrew jego własnym pra-
gnieniom, nie mógł uczestniczyć w wyborach 
– zarówno czynnie, jak i biernie ze względów 
formalnych.  Statut  Fundacji  mówi,  że  pra-
wo wyborcze mają wszyscy aktywni dewelo-
perzy projektów Gentoo, to znaczy tacy, któ-
rzy przez ostatnie 365 dni wysłali przynajm-
niej jednego maila na listy dyskusyjne dewelo-
perów danych projektów. Ostatni mail Danie-
la Robbinsa pochodził sprzed wspomnianego 
okresu, więc nie mógł on ani być wybieranym, 
ani nawet wybierać.

Wracając  jednak  do  samych  wyborów... 

Kandydatów  do  wyborów  można  było  zgła-
szać  do  12  lutego  tego  roku.  Ogółem  zgło-
szono 20 kandydatów, z czego proces weryfi-
kacji przetrwało jedynie ośmiu. Opublikowa-
li oni swoje manifesty, w których szczegółowo 

opisali co zamierzają zrobić jako członkowie 
Rady Fundacji Gentoo. Więcej informacji na 
ten  temat  można  znaleźć  na  stronie  http://
www.gentoo.org/proj/en/elections/foundation-
200802.xml

W  dniach  14  –  28  lutego  odbył  się  pro-

ces elektronicznego głosowania na wcześniej 
zgłoszonych i dopuszczonych kandydatów, w 
wyniku którego wybrano następujące osoby:

•   Roy Bamford (nick: NeddySeagoon),
•   Ferris McCormick (fmccor),
•   Joshua Jackson (tsunam),
•   Tom Gall (tgall),
•   William Thomson (wltjr).

Pierwsze  spotkanie  członków  nowo  wybra-
nej Rady zaplanowano na 16 marca 2008 ro-
ku na kanale #gentoo-trustees serwera irc.fre-
enode.net
. W trakcie tego spotkania odbędzie 
się między dyskusja na temat aspektów praw-
nych fundacji, a także przyszłości samej fun-
dacji. Zobaczymy co z tego wyniknie. Na pew-
no mają wiele do zrobienia. Przede wszystkim 
stoi  przed  nimi  zadanie  odzyskania  zaufania 
społeczności  Gentoo  do  oficjeli,  co  po  ostat-
nich wydarzeniach nie będzie łatwe.

Błąd kernela

O

statnimi  czasy  niespodziewanie  wy-
kryto  krytyczny  błąd  w  kodzie  jądra 

systemowego.  Błąd  ten  umożliwiał  nada-
wanie  zwykłemu  użytkownikowi  praw  ad-
ministratora, a zlokalizowany był w kodzie 
funkcji 

vmsplice()

.  Błąd  ten  został  wy-

kryty w kodzie jądra w wersji 2.6.17 i póź-
niejszych.  Wersje  jądra  pozbawione  błędu 
to  2.6.24.2,  2.6.23.16  oraz  2.6.22.18.  Jed-
nocześnie  w  kodzie  jądra  w  wersji  2.6.23 
wykryto inny błąd o analogicznym działa-
niu, jak opisany powyżej. Wersje jądra po-
zbawione drugiego błędu to 2.6.23.15  oraz 

2.6.24.1.  Z  powyższych  względów  zaleca 
się aktualizację jądra do wyżej wspomnia-
nych wersji:

# emerge =gentoo-sources-2.6.23-r8

lub

# emerge =gentoo-sources-2.6.24-r2

Pierwsze  polecenie  instaluje  najnowszą  bez-
pieczną  stabilną  wersję  jądra,  natomiast  dru-
gie – niestabilną.

Mniejsze Portage

J

edna z większych zalet Gentoo – system 
Portage zaczyna być jego przekleństwem. 

W tradycyjnym wydaniu drzewo Portage zaj-
muje bardzo dużo miejsca, które rośnie wraz 
z dodawaniem do niego nowych programów. 
Stąd też powstała inicjatywa stworzenia no-
wej  wersji  Portage  o  nieco  odchudzonym 
rozmiarze.  W  CVS  dostępna  jest  taka  wer-
sja (opatrzona numerem 2.1). Mniejsze Por-

tage zakłada między innymi zastąpienie poje-
dynczych plików digest dla każdego z ebuil-
dów jednym plikiem Manifest dla całej pacz-
ki (czyli jednego lub więcej ebuildów), co po-
zwoliłoby na znaczne zaoszczędzenie miejsca 
– nawet o 200 MB. Więcej informacji na te-
mat nowego Portage można znaleźć na stro-
nie:  http://www.gentoo.org/news/20080204-
digest-files-removed.xml

KDE 4.0 w Gentoo

Dawno nie było tak oczekiwanego wy-

darzenia, jak premiera nowego wydania 

środowiska KDE. Nie będę się rozpisy-

wał na temat nowości, które znalazły się 

w tym wydaniu, gdyż temat ten był po-

ruszany wielokrotnie - również na ła-

mach Linux +.

W Gentoo nie mogło oczywiście zabrak-

nąć najnowszej wersji KDE. Pierwotnie 

środowisko to dostępne było tylko dzię-

ki Portage-overlay, lecz wraz z pierw-

szym wydaniem stabilnym, znalazło się w 

oficjalnym drzewie Portage. Metapakiet 

kde, podobnie jak i wszystkie inne pakiety  

składowe, mają na razie status hard ma-

sked za sprawą braku polskich tłumaczeń 

do najnowszego   środowiska.

Tak więc w celu instalacji najnowszej 

wersji KDE z gałęzi 4.x należy przede 

wszystkim odmaskować pakiety pod-

stawowe środowiska oraz właściwe za-

leżności. Najprościej można tego doko-

nać dodając do pliku make.conf wpis AC-

CEPT_KEYWORDS="~x86"  lub AC-

CEPT_KEYWORDS="~amd64" (w za-

leżności od architektury). Bezpieczniej 

jest jednak odmaskować pojedyncze pa-

kiety dodając odpowiednie wpisy do pli-

ku package.keywords. W związku z tym, 

iż KDE 4.x wymaga bibliotek Qt z linii 

4.x, w pliku package use powinien zna-

leźć się następujący wpis: 

x11-libs/qt:

4 accessibility dbus gif jpeg 
png qt3support ssl zlib

. Po wy-

konaniu powyższych czynności możemy 

przystąpić do instalacji programów:

#  emerge  -avD  kde-base/kde-me-

ta: kde-4

# emerge -avD kde-base/kdebase-

startkde:kde-4

Pierwsze polecenie zainstaluje pełne śro-

dowisko KDE, natomiast drugie – zain-

staluje tylko podstawowe pakiety – samo 

niezbędne minimum.

Różnice pomiędzy KDE 4.x a 3.5.x wi-

dać już na etapie instalacji, dzięki migra-

cji z autotools to cmake, co dało możli-

wość obserwacji postępu kompilacji wy-

rażonej w procentach. Inną ważną zmia-

ną jest nowy skrypt startowy KDE 4.x, co 

niestety sprawiło, że ustawienia ze środo-

wiska w wersji 3.5 nie będą odczytywane 

przez nowe środowisko.

Ja również na próbę zainstalowałem no-

we KDE na swoim komputerze i muszę 

przyznać, że wzbudziło we mnie mie-

szane uczucia. Na pewno jest ładniejsze 

i bardziej zaawansowane. Z pewnością 

działa nieco szybciej, lecz jednocześnie 

jest pełne wodotrysków, co sprawia, że 

bardziej przyzwyczajonym do starej wer-

sji pracuje się trudniej. Ja przede wszyst-

kim poczekam na pełną polonizację, za-

nim zdecyduję się zmienić swoje 3.5 na 

coś nowszego.

background image

dział prowadzi Przemysław Żarnecki p.zarnecki@plusnet.pl 

aktualności

OpenOffice

12

maj 2008

OpenOffice w komórce

Wielu użytkowników zawiedzionych było 

brakiem mobilnej implementacji jednego z 

najpopularniejszych pakietów biurowych. 

Aby rozwiązać ten dylemat powstał pro-

jekt mOOo, który przenosi pakiet do śro-

dowiska J2ME, przez co czyni dostępnym 

dla wszystkich urządzeń mobilnych obsłu-

gujących Javę

Źródło: https://mooo.dev.java.net/ 

Alternatywa dla Wordpress

Najpopularniejszemu silnikowi do blogo-

wania przybyła w końcu poważna kon-

kurencja. Przynajmniej tak zapowiada się 

Chyrp. Zbudowany modułowo, w oparciu 

o PHP, MySQL i Ajax system jest podat-

ny na przeróbki i wszelkie sugestie ze stro-

ny użytkownika. Informacja o konkurencji 

to dobra sprawa. Jeszcze ciekawej brzmi 

fakt, że autorem nowej platformy jest szes-

nastolatek, któremu Wordpress co naj-

mniej podpadł. 

Więcej na ten temat możecie przeczytać na 

http://chyrp.net

Zmiana licencji OpenOffice.org

Pakiet dokonał migracji z licencji LGPL 

2.1 na LGPL v3. Zmiany mają zwią-

zek w związku z coraz gorętszą atmos-

ferą wokół zamkniętego oprogramowa-

nia, zwłaszcza patentów. Takie rozwiąza-

nie ma zapewnić o wiele większą możli-

wość publikowania swoich własnych po-

prawek, nawet nie będąc członkiem Ope-

nOffice.org

Nowe Kadu

P

o  kilkunastomiesięcznej  pracy  światło 
dzienne  ujrzała  najnowsza  wersja  komu-

nikatora  internetowego  Kadu,  czyli  klienta  ga-
du-gadu  dla  Linuksa,  BSD  oraz  Mac. W  trak-
cie  prac  nad  najnowszą  wersją  nad  zespołem 
developerów  przeszła  więcej  niż  jedna  burza. 
Przede wszystkim zmianie uległ skład Kadu Te-
am,  zmieniono  stronę  internetową  i  opracowa-
no całkowicie nowy kalendarz wydawniczy. Po-
jawił się zresztą jasny i czytelny nowy plan roz-
woju Kadu.

W nowym Kadu położono nacisk na uno-

wocześnienie interfejsu użytkownika. Po pierw-
sze spore zmiany zaszły w wyglądzie aplikacji. 
Czy na lepsze, to już ocenią użytkownicy. Deve-
loperzy całkowicie od nowa napisali konfigura-
cję programu, czyniąc ją jeszcze bardziej przyja-
zną dla użytkownika. Ze spraw wizualnych, war-
to wspomnieć o nowym, bardzo ciekawym mo-
tywie graficznym ikon.

Zdecydowanej poprawie uległ moduł konfe-

rencji. Pojawiła się możliwość jej opuszczania w 
trakcie rozmowy, czego brakowało wcześniej.

Poprawie uległa również współpraca z prze-

glądarkami i klientami pocztowymi. W poprzed-
nich wersjach istniała wprawdzie podobna opcja, 
jednakże brakowało jej wielu przeglądarek. Li-
stę zaktualizowano i uzupełniono o współpracę 
z klientami pocztowymi. Do ważniejszych zmian 
można zaliczyć unowocześniony sposób przesy-

łania plików, pomijając kwestię nowej strony wi-
zualnej, poprawiono współpracę z nowymi wer-
sjami protokołu gg. Tradycyjnie już wraz z no-
wą  wersją  programu,  pojawiają  się  całkowicie 
nowe sposoby powiadamiania o nadchodzących 
wiadomościach, łatwiej jest dostać się do ostat-
nio  otwartych.  Ponadto  pojawił  się  szereg  ma-
łych, ale przydatnych usprawnień. Dobrym przy-
kładem jest możliwość przerobienia wg własne-
go mniemania opisów (data, godzina) rozmów w 
oknie chatu.

Tych  zmian  można  by  wymieniać  jeszcze 

bez  liku.  Nowy  klient  GG  jest  naprawdę  wart 
skorzystania, zaś więcej informacji o jego możli-
wościach znajdziecie na stronie www.kadu.net.

Nowe Kadu

Mint 4.0 KDE CE

W

ydano  najnowszą  wersję  popular-
nej dystrybucji o nazwie Mint. W naj-

większym skrócie Mint to dystrybucja oparta na 
Ubuntu, której twórcy nie zawracają sobie gło-
wy czymś takim jak patenty. Po zainstalowaniu 
Minta otrzymujemy w pełni multimedialny sys-
tem, z Java, MP3, flashem i wieloma innymi, 
które trzeba w Ubuntu samodzielnie z racji pa-
tentów i zamkniętego kodu instalować i konfi-
gurować. Ponadto Mint posiada wiele własnych 
narzędzi, które wspomagają użytkownika w co-
dziennej pracy. Do najważniejszych należą:

•   mintInstall,
•   mintWifi,
•   mintUpdate,
•   mintAssistant,
•   mintUpload.

Cztery ostatnie to w zasadzie nowość. Poza tym 
w dystrybucji znajdziemy również przerobione 
w odpowiedni sposób wersje popularnych pro-

gramów. Przykładem są chociażby zmintowane 
wersje Firefox i Sunbird. Od pozostałych wer-
sji Mint 4.0, ta różni się przede wszystkim uak-
tualnionymi wersjami poszczególnych narzędzi 
oraz środowiskiem graficznym. Twórcy nie zde-
cydowali się na dołączenie w domyślnej wersji 
środowiska graficznego KDE 4.0, wykorzystu-
jąc starszą, ale sprawdzoną gałąź KDE. Najnow-
sze dziecko można oczywiście zainstalować. W 
trakcie  pisania  tekstu  wydawana  była  również 
specjalna wersja Minta z KDE 4.0, na DVD.

Mint 4.0 w wersji z KDE

background image

dział prowadzi Aleksander Zdyb aleksander.zdyb@centrumxp.pl

aktualności

News

13

www.lpmagazine.org

NEWS

Linux Standard Base 3.2

Po kilkumiesięcznym opóźnieniu Linux 

Foundation opublikowała wersję 3.2 Li-

nux Standard Base. LSB jest zbiorem 

standardów i wytycznych mających na 

celu zniwelowanie różnic między dystry-

bucjami Linuksa. W nowej wersji wpro-

wadzono między innymi konieczność 

obsługi języków skryptowych (Python, 

Perl). Określono także sposób dostępu do 

podsystemu dźwiękowego ALSA. Dys-

trybucje zgodne z LSB muszą też od tej 

wersji zawierać bibliotekę Qt4. Więcej 

informacji znaleźć można na stronie Li-

nux Foundation http://www.linux-foun-

dation.org.

Linux Desktop Testing Project wydany

Linux Desktop Testing Project jest zbio-

rem aplikacji wspomagających testowanie 

graficznych programów. LDTP umożliwia 

nagranie makr będących zapisem czyn-

ności wykonywanych przy pomocy my-

szy i klawiatury. Makra te można potem 

wielokrotnie odtwarzać np. w celu prze-

testowania tworzonego oprogramowania 

lub automatyzacji dowolnych czynności. 

LDTP może być wykorzystany z aplika-

cjami GNOME i KDE oraz innymi, speł-

niającymi standardy dostępności, np.: Mo-

zilla czy OpenOffice.org. Oprogramowa-

nie można pobrać z oficjalnej strony: http:

//ldtp.freedesktop.org.

Google poprawia Wine

Po tym jak dwa lata temu Google podpi-

sał umowę z CodeWeavers, która prze-

widywała wprowadzenie poprawek do 

projektu Wine, by dało się na nim uru-

chomić Picasę, doszło do zawarcia ko-

lejnego kontraktu. Tym razem CodeWe-

avers (producent m.in. CrossOver Linux) 

ma poprawić obsługę Photoshopa przez 

Wine. Biorąc pod uwagę fakt, jak wielu 

użytkowników deklaruje, że oprogramo-

wanie graficzne firmy Adobe jest ostatnią 

rzeczą hamującą ich przesiadkę na wolne 

systemy widać, że Google wyraźnie dąży 

do spopularyzowania Linuksa w zasto-

sowaniach biurkowych. Już w tej chwili 

da się uruchomić Photoshopa CS2 na Wi-

ne, ale niestety wielu użytkowników na-

rzeka na stabilność takiego rozwiązania. 

Miejmy nadzieję, że wkład Google i Co-

deWeavers w krótkim czasie zaradzi tym 

problemom.

Landscape w wersji beta

Firma Canonical wydała wersję beta no-

wego oprogramowania wspomagającego 

administratorów systemów Ubuntu. Land-

scape ma umożliwić m.in. jednoczesną ad-

ministrację wieloma systemami w zakre-

sie zarządzania pakietami, obsługi kont 

użytkowników, monitorowania obciąże-

nia a nawet inwentaryzacji sprzętu. Więcej 

informacji znaleźć można na stronie pro-

jektu: http://www.canonical.com/projects/

landscape.

Ubuntu Mobile – internet bez kompromisów

U

buntu  Mobile  to  nowa  dystrybu-
cja  przeznaczona  dla  internetowych 

urządzeń  przenośnych,  tzw.  MID  (ang. 
Mobile  Internet  Device).  Wydana  zosta-
ła  przez  firmę  Canonical  Ltd.,  producen-
ta m.in. Ubuntu.

Całkiem nowe Ubuntu?

O nowej dystrybucji po raz pierwszy usły-
szeliśmy w maju 2007, gdy Matt Zimmer-
man na liście dyskusyjnej Ubuntu ogłosił, 
że Canonical we współpracy z Intelem pra-
cować  będą  nad  systemem  dedykowanym 
urządzeniom przenośnym. Pierwsze wyda-
nie planowane było na październik wraz z 
Ubuntu  7.10  Gutsy  Gibbon,  ale  opóźniło 
się o kilka miesięcy.

Ubuntu  Mobile  reklamowane  jest  ha-

słem  pełnia  internetu,  bez  kompromisów 
(ang  full  internet,  no  compromise).  Wy-
dawca  twierdzi,  że  system  ma  zupełnie 
zmienić  i  przedefiniować  nasz  pogląd  o 
mobilnych urządzeniach. Jak sugeruje na-
zwa, dystrybucja jest oparta o Ubuntu, ale 
w dużej mierze stworzona została od pod-
staw. System ma być elastyczny i łatwy do 
przystosowania  do  szerokiej  gamy  urzą-
dzeń.

Wymagania sprzętowe

Typowe urządzenie gotowe do współpracy 
z  Ubuntu  Mobile  ma  posiadać  4-7''  ekran 
dotykowy  oraz  fizyczną  bądź  wirtualną 
klawiaturę.  Oprócz  tego  zawierać  miało-
by  2-8GB  pamięci  Flash  i  ponad  256MB 
ramu.  Oferowane  ma  być  także  wsparcie 
dla takich akcesoriów jak WiFi, Bluetooth, 
GPS, czy kamera. Dodatkowo możliwe bę-
dzie wykorzystanie OpenGL.

Pełnia internetu, bez kompromisów

Jak  sugeruje  hasło  reklamowe,  w  Ubun-
tu  Mobile  główny  nacisk  położono  na 
przeglądanie  internetu. Wbudowana  prze-
glądarka  charakteryzuje  się  pełną  obsłu-
gą  technologii  AJAX  (ang.  Asynchrono-
us JavaScript and XML
), co ma pozwalać 
na  dostęp  do  wszelkich  popularnych  ser-
wisów  Web  2.0,  takich  jak  MySpace  czy 
Facebook.
 Dodatkowo ma być możliwość opcjonal-
nego zainstalowania Flasha i Javy. Dzięki 
dostarczonemu  oprogramowaniu  na  urzą-
dzaniach  typu  MID  możliwe  będzie  tak-
że słuchanie muzyki, oglądanie filmów, a 

nawet  granie  w  gry  3D.  Oprócz  tego  bę-
dziemy mieć dostęp do komunikatora, Vo-
IP, kalendarza i wielu innych aplikacji co-
dziennego użytku.

Platforma  ma  oferować  także  system 

automatycznych  aktualizacji.  Dodatko-
wym  atutem  będzie  takie  skonstruowanie 
całości  interfejsu  użytkownika,  by  możli-
we było obsługiwanie urządzenia palcami, 
bez  konieczności  używania  rysika.  Ma  to 
poprawić łatwość i intuicyjność obsługi.

Elastyczne rozwiązanie

dla producentów sprzętu

Ubuntu  Mobile  nie  ma  być  jednak  prze-
znaczony do samodzielnej instalacji na po-
siadanych  już  urządzeniach.  System  ofe-
rowany  będzie  producentom  w  ramach 
umów OEM (sprzedawany wraz ze sprzę-
tem) i ODM (sprzedawany pod inną mar-
ką). Ma być to możliwe dzięki wspomnia-
nej już elastyczności i konfigurowalności. 
W ramach dostosowywania dystrybucji do 
własnych  potrzeb  producenci  instalować 
będą mogli dodatkowe (także własnościo-
we)  oprogramowanie,  np.  aplikacje  użyt-
kowe, czy kodeki.

Możliwości  tworzenia  oprogramowa-

nia  ma  być  wiele.  Interfejsy  użytkowni-
ka  mogą  być  wykonane  w  technologiach: 
HTML,  Flash,  Python/GTK,  C/C++/GTK 
i  Java.  Firma  Canonical  oferuje  także 
wsparcie dla autorów aplikacji oraz zamie-
ściła w sieci przykłady jak tworzyć i porto-
wać oprogramowanie dla Ubuntu Mobile.

Jeszcze poczekamy

Niestety, jak utrzymuje Canonical, system 
był do tej pory testowany tylko na jednym 
urządzeniu  firmy  Samsung.  Biorąc  jed-
nak  pod  uwagę  informacje  zamieszczone 
na stronie Ubuntu Mobile, a także rozmiar 
sukcesu  Ubuntu  w  zastosowaniach  biur-
kowych,  można  wierzyć,  że  nowy  system 
rzeczywiście zrewolucjonizuje rynek urzą-
dzeń przenośnych.

background image

Dla początkujących

Instalacji i konfiguracji się nie boję!

14

maj 2008

Dla początkujących

Instalacji i konfiguracji się nie boję!

15

www.lpmagazine.org

   

 lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Instalacji i konfiguracji 

się nie boję!

Niektórzy twierdzą żartobliwie, że tak naprawdę istnieją trzy systemy z rodziny pingwina: Debian, 
Slackware i Gentoo. Oczywiście my mamy świadomość, że jest to jedynie forma przekornego dowcipu. 
Ale czy jest tak naprawdę? Przecież wiemy, że Debian i Slackware to dwie najstarsze, rozwijane do 
dzisiaj dystrybucje. Obecnie istnieje mnóstwo projektów opartych właśnie na tych wspomnianych. Można 
by rzec, że są one jakby rodzicami współczesnych linuxów. 

Łukasz Ciesielski

Z

arówno  Debian  jak  i  Slackware  powstały  w 
1993  roku.  Uważane  są  one  za  jedne  z  naj-
trudniejszych do opanowania, chociaż każdy 
z  nich  prezentuje  inną  politykę  zarządzania 

systemem.  Czy  rzeczywiście  słusznym  stwierdzeniem 
jest  nazwanie  tych  systemów  trudnymi  do  okiełznania 
przekonamy się w praktyce. Niestety temat jest rozległy, 
więc skupimy się jedynie na Debianie oraz opartym na 
nim  Ubuntu.  Zdecydowanie  konfiguracja  tego  drugiego 
jest  łatwiejsza.  Twórcy  Ubuntu  zastosowali  wiele  udo-
godnień, które sprawiają, że jego obsługa stała się prosta 
i przyjemna nawet dla początkujących, którzy nie mieli 
wcześniej styczności z linuxem. Byłoby jednak błędem, 
gdybyśmy rozpoczęli naszą przygodę od Debiana. Jeże-
li wcześniej nie mieliśmy styczności z linuxem, mogli-
byśmy się łatwo zniechęcić. Najlepiej zastosować w tym 
przypadku metodę małych kroków i stopniowo podnosić 
poprzeczkę. Jeżeli kogoś naprawdę interesują systemy z 
pingwinkiem, powinien się zastanowić, czy w przyszło-
ści chciałby przejść na bardziej zaawansowaną dystrybu-
cję, a także czy potrzebuje łatwego do opanowania sys-
temu operacyjnego. Osoby zainteresowane poszerzaniem 

swoich wiadomości na temat obsługi linuxa powinny za-
cząć  od  lekkiej  dystrybucji,  a  następnie  w  momencie, 
w  którym  uznają,  że  posiadły  już  odpowiednią  wiedzę 
przejść  na trudniejszą. Tu godne polecenia stają się wy-
mienione na początku trzy systemy (Debian, Slackware, 
Gentoo). Ale jaki system wybrać? Autor nie chce fawory-
zować konkretnych dystrybucji. Należy jednak przemy-
śleć  pewną  kwestię.  Czy  finalnie  chcielibyśmy  używać 
Debiana,  czy  Slackware?  Następnie  dobieramy  proste-
go w obsłudze linuxa opartego na konkretnej gałęzi, np. 
na Debianie (tu godne polecenia są: cała rodzina wspo-
mnianego już Ubuntu, Linux Mint, oraz Knoppix), lub na 
Slackware (Slax). 

Czemu ma służyć ten zabieg? Odpowiedź jest prosta. 

Załóżmy, że wybraliśmy Debiana i Ubuntu. Wiemy, że w 
przyszłości chcemy korzystać z Debiana. Biorąc pod uwa-
gę fakt, że Ubuntu jest oparty właśnie na Debianie, posia-
da  ogromną  zgodność  pod  względem  narzędzi,  komend, 
systemu pakietów itd. ze swoim pierwowzorem. Aby zbyt-
nio nie komplikować tematu, kontynuujmy wątek Debia-
na i Ubuntu. Zaczniemy od krótkiej charakterystyki, prze-
brniemy  przez  instalację  (czasem  bardzo  kłopotliwą)  i 

background image

Dla początkujących

Instalacji i konfiguracji się nie boję!

14

maj 2008

Dla początkujących

Instalacji i konfiguracji się nie boję!

15

www.lpmagazine.org

zmierzając  ku  codziennemu  użytkowaniu, 
uporamy się z konfiguracją.

Ubuntu i rodzina

Ubuntu  jest  ciekawym  projektem,  na  czele 
którego stoi firma Canonical. Aktualna wer-
sja to 7.10 o wdzięcznej nazwie Gutsy Gib-
bon,  które  zajmuje  czołowe  miejsca  w  ran-
kingach  popularności    linuxów.  Zaletą  tego 
systemu  są  różnorodne  udogodnienia  zwią-
zane  z  konfiguracją.  Mam  tu  na  myśli  cho-
ciażby  graficzne  programy  lub  nakładki  na 
aplikacje  konsolowe,  służące  do  ustawiania 
ekranu  (rozmiaru,  odświeżania  itp.),  insta-
lacji nowych pakietów, pobierania aktualiza-
cji, łączenia z Internetem i wreszcie, co naj-
ważniejsze – instalacji systemu. Ubuntu jest 
dostępne  w  wielu  tzw.  smakach  (czyli  wer-
sjach  o  różnych  środowiskach  graficznych, 
jak  chociażby  Ubuntu  z  GNOME,  Kubun-
tu z KDE, Xubuntu z Xfce, Fluxbuntu z Flu-
xbox), jednak każdy smak ma cechę wspól-
ną:  występuje  w  postaci  LiveCD  lub  Live-
DVD. Co to oznacza? Wręcz trywialną insta-
lację systemu na dysku twardym. Właściwie 
każdy, kto potrafi czytać poradziłby sobie z 
zainstalowaniem Ubuntu. Wystarczy włożyć 
płytę do napędu CD-ROM. Zresztą takie są 
założenia Ubuntu. Ma to być system w pełni 
przyjazny dla użytkownika. W ustawieniach 
BIOS-u ustawiamy, aby CD-ROM był starto-
wany przed dyskiem twardym. Po wystarto-
waniu płyty, naszym oczom ukaże się menu.

Poprzez naciśnięcie klawisza F2 wyświe-

tlimy kolejne menu, dzięki któremu będzie-
my  mogli  wybrać  język.  Po  wyborze  języ-

ka akceptujemy pierwszą pozycję menu star-
towego, czyli Start or install Ubuntu. Nato-
miast  kiedy  załaduje  się  LiveCD  możemy 
wybrać z pulpitu ikonę Zainstaluj i podążać 
za programem instalacyjnym. 

Aby  nie  było  wątpliwości  prześledźmy 

ten  proces  i  przyjrzyjmy  się  kolejnym  kro-
kom.  Zaczynamy  oczywiście  od  uruchomie-
nia LiveCD. Naszym oczom ukaże się pulpit 
gotowego do pracy systemu.

Pierwszym z siedmiu kroków jest wybór 

najdogodniejszego  dla  nas  języka  (np.  pol-
skiego).  Teraz  zostaniemy  poproszeni  o  wy-
bór  strefy  czasowej  (np.  Warszawa).  Jest  to 
potrzebne  do  określenia  najbliższego  nam 
serwera Ubuntu, z którego system będzie po-
bierał aktualizacje oraz do ustawienia zegara. 
Trzecim  krokiem  jest  ustawienie  odpowied-
niego układu klawiatury. 

W tym momencie należy sprawdzić, czy 

możemy  pisać  polskie  znaki  diakrytyczne 
(np. ś, ć, ń, ź itd.), oraz czy klawisze Y i Z 
nie  zostały  zamienione.  Teraz  najważniej-
szy krok (choć dopiero czwarty): tworzymy 
odpowiednie partycje. No dobrze, ale co to 
znaczy, że tworzymy partycje? Otóż nic in-
nego, jak to, że dzielimy dysk twardy w spo-
sób, który nam najbardziej odpowiada. Ma-
my tu kilka możliwości. Przede wszystkim 
możemy zainstalować system w wolnym od 
danych miejscu naszego dysku (np. obok in-
nego  systemu,  powiedzmy  Windows).  In-
nym  (i  najbardziej  polecanym)  sposobem 
jest wybranie opcji, w której tzw. przewod-
nik podzieli cały dysk na poszczególne par-
tycje.  Domyślnie  zostaną  utworzone  dwie 
partycje: domowa (z systemem plików ext3) 

oraz wymiany (swap). Ostatnią metodą po-
działu dysku na partycje jest wybranie opcji 
tzw. manualnego podziału (aż chciałoby się 
powiedzieć  ręcznego)  wykorzystując  pro-
gram GParted.

Po  wyznaczeniu  partycji  instalator 

Ubuntu  zaproponuje  import  istniejących 
profili.  Nie  ma  tu  nic  skomplikowanego, 
więc nie będziemy tego rozpisywać. W szó-
stym kroku instalator zada kilka pytań odno-
śnie naszych danych osobowych (imię i na-
zwisko, e-mail itp.). Ostatni krok instalacji 
to podsumowanie.

Akceptujemy  wszystkie  ustawienia, 

których  wyboru  dokonaliśmy  w  programie 
instalacyjnym  i  nie  pozostaje  nam  nic  in-
nego  jak...  oczekiwanie  na  nasz  nowy  sys-
tem. Po zakończeniu pracy instalator zapy-
ta nas, czy chcemy w dalszym ciągu korzy-
stać z wersji LiveCD, czy uruchomić kom-
puter  ponownie,  aby  móc  korzystać  z  sys-
temu,  który  przed  momentem  zainstalowa-
liśmy. Oczywiście czym prędzej restartuje-
my komputer, aby zobaczyć nasze arcydzie-
ło
. Na pierwszy rzut oka wygląda identycz-
nie jak wersja LiveCD. Ale jest pewna róż-
nica - teraz możemy dowolnie konfigurować 
naszego  Ubuntu.  O  tym  porozmawiamy  w 
następnym podrozdziale.

Małymi krokami zmierzamy do...

No  właśnie,  do  czego?  Do  osiągnięcia  efek-
tu końcowego, którym jest w pełni skonfigu-
rowany i gotowy do pracy system. Od czego 
zacząć? Zapamiętajmy następującą zasadę: je-
żeli jest taka możliwość, to konfigurację linu-
xa zawsze zaczynajmy od ustawienia parame-

Rysunek 1. 

Menu główne płyty liveCD

Rysunek 2. 

Ikona umożliwiająca rozpoczęcie proce-

su instalacyjnego

Listing 1. 

Przykładowa lista repozytoriów w pliku sources.list

## WWW.DEBIAN-MULTIMEDIA.ORG

deb

 

http

:

//

www

.

debian

-

multimedia

.

org

 

etch

 

main

deb

-

src

 

http

:

//

www

.

debian

-

multimedia

.

org

 

etch

 

main

 

## OPERA

deb

 

http

:

//

deb

.

opera

.

com

/

opera

stable

 

non

-

free

 

## SKYPE

deb

 

http

:

//

download

.

skype

.

com

/

linux

/

repos

/

debian

stable

 

non

-

free

## PICASA

deb

 

http

:

//

dl

.

google

.

com

/

linux

/

deb

stable

 

non

-

free

## BACKPORT

deb

 

http

:

//

www

.

backports

.

org

/

debian

 

etch

-

backports

 

main

 

contrib

 

non

-

free

## WINE

deb

 

http

:

//

wine

.

budgetdedicated

.

com

/

apt

 

etch

 

main

## VIRTUALBOX

deb

 

http

:

//

www

.

virtualbox

.

org

/

debian

 

etch

 

non

-

free

## UNOFICIAL

deb

 

http

:

//

ftp

.

debian

-

unofficial

.

org

/

debian

etch

 

main

 

contrib

 

non

-

free

 

restricted

background image

16

Dla początkujących

Instalacji i konfiguracji się nie boję!

maj 2008

17

Dla początkujących

Instalacji i konfiguracji się nie boję!

www.lpmagazine.org

trów potrzebnych do połączenia z Internetem. 
Jest ono niezbędne do zainstalowania aktuali-
zacji oraz dodatkowych pakietów. W tym ce-
lu  wybieramy  z  menu  System-->Administra-
cja–>Sieć
.  Pozostaje  jeszcze  sprawdzenie, 
czy jesteśmy posiadaczami połączenia mode-
mowego, czy przewodowego.

Jeżeli do połączenia z Internetem wyko-

rzystujemy  modem,  należy  wybrać  taki  wła-
śnie  typ. Teraz  wchodzimy  we Właściwości. 
Ujrzymy tam trzy zakładki. Najpierw w usta-
wieniach ogólnych wpisujemy nasz numer te-
lefonu  oraz  prefix.  Dalej  wskazujemy  mo-
dem, wybieramy port modemu, oraz decydu-
jemy, czy wybieranie numeru będzie impulso-
we, czy tonowe.

W  przypadku  połączenia  przewodowe-

go mamy do wyboru kilka opcji: DHCP (pró-
buje automatycznie skonfigurować nasz Inter-
net), Statyczny adres IP, lub Lokalna sieć Ze-
roconf
.  Najprawdopodobniej  będziemy  zmu-
szeni wybrać opcję Statyczny adres IP i wy-
pełnić kolejne pola: Adres IP, Maska podsie-
ci i Adres bramki.

W  kolejnej  zakładce  ustawiamy  adresy 

serwerów  DNS.  Należy  podać  przynajmniej 
jeden numer. Teraz nie pozostało nam nic in-
nego jak tylko zapisać ustawienia klikając na 
Save (przycisk z rysunkiem dyskietki).

Gotowe,  Internet  jest  skonfigurowany. 

Proces  ten  odbywa  się  tak  samo  zarówno 
dla Debiana jak i Ubuntu. W przypadku De-
biana wybieramy z menu Środowisko–>Ad-
ministracja–>Ustawienia sieci
. Oczywiście 
Internet można (a nawet powinno się) usta-
wić już podczas instalacji, ale o tym w dal-
szej części tekstu. Jeżeli poprawnie ustawi-
my  sieć,  to  prawie  natychmiast  zostanie-
my poinformowani o dostępnych aktualiza-
cjach. Oczywiście zaleca się ich instalację. 
Podsumujmy, co już zrobiliśmy. Mamy do-
stęp do Internetu oraz zaktualizowany sys-
tem. To jest bardzo dużo, ponieważ mamy 
możliwość  pobierania  nowego  oprogramo-
wania  (i  nie  tylko),  oraz  aktualny  system, 
co  z  kolei  wiąże  się  między  innymi  z  je-
go  bezpieczeństwem.  Zadaniem  aktualiza-

cji  jest  usuwanie  błędów  oraz  dodawanie 
nowych  opcji  (lub  udoskonalanie  już  do-
stępnych).

Kolejnym  krokiem  jest  uzupełnienie 

tzw. listy repozytoriów czyli miejsc, z któ-
rych  system  będzie  pobierał  oprogramo-
wanie  oraz  aktualizacje.  Jest  to  chyba  jed-
na z kluczowych czynności podczas każdej 
konfiguracji, ponieważ od tego zależy jakie 
oprogramowanie będziemy mogli pobierać z 
Internetu. Dla tych, którzy nie mieli wcze-
śniej styczności z linuxem, repozytoria bę-
dą prawdziwą nowością. Wyjaśnię, czym w 
ogóle są repozytoria. Ogólnie rzecz ujmując 
są to miejsca, w których znajdują się pakie-
ty gotowe do instalacji. Równie dobrze mo-
że być to płyta CD/DVD jak serwer. Repo-
zytoria  są  podzielone  według  odpowied-
nich kategorii (np. otwartość kodu, komer-
cyjność, alfabetycznie). Lista taka znajduje 
się w pliku sources.list. Musimy go edyto-
wać jako root:

sudo gedit /etc/apt/sources.list

Gedit to domyślny program do przeglądania 
plików  tekstowych  w  GNOME.  Jeżeli  uży-
wasz np. KDE, XFCE to zmień Gedit na in-
ny,  np.  Kate, Vim,  Nano  itp.  Jeśli  otworzy-
liśmy  już  ten  plik,  musimy  dodać  do  niego 
kilka adresów. Ponieważ jest to bardzo waż-
ne, omówimy listę repozytoriów dość szcze-
gółowo. Dodam tylko, że w pliku tym istnie-
je  możliwość  dodawania  komentarzy.  Dzię-
ki  nim  łatwiej  jest  utrzymać  porządek,  po-
nieważ  możemy  oddzielić  od  siebie  np.  re-
pozytoria bazowe od tych związanych z me-
diami itd. Komentarz poprzedzamy znakiem 
#.  Po  tym  znaku  możemy  wpisać  dowol-
ny  tekst.  Nie  używajmy  jednak  polskich  li-
ter z ogonkami. Zacznijmy od adresów pod-
stawowych.

•   deb  http://pl.archive.ubuntu.com/ubuntu/ 

gusty main restricted 

•   deb-src 

http://pl.archive.ubuntu.com/

ubuntu/ gusty main restricted 

•   deb  http://pl.archive.ubuntu.com/ubuntu/ 

gusty-updates main restricted 

•   deb-src 

http://pl.archive.ubuntu.com/

ubuntu/ gusty-updates main restricted 

•   deb  http://pl.archive.ubuntu.com/ubuntu/ 

gusty universe 

•   deb-src 

http://pl.archive.ubuntu.com/

ubuntu/ gusty universe 

•   deb  http://pl.archive.ubuntu.com/ubuntu/ 

gusty multiverse 

•   deb-src 

http://pl.archive.ubuntu.com/

ubuntu/ gusty multiverse 

•   deb  http://pl.archive.ubuntu.com/ubuntu/ 

gusty-backports  main  restricted  universe 
multiverse 

•   deb-src 

http://pl.archive.ubuntu.com/

ubuntu/  gusty-backports  main  restricted 
universe multiverse 

•   deb  http://security.ubuntu.com/ubuntu  gu-

sty-security main restricted 

•   deb-src  http://security.ubuntu.com/ubuntu 

gusty-security main restricted 

•   deb  http://security.ubuntu.com/ubuntu  gu-

sty-security universe 

•   deb-src  http://security.ubuntu.com/ubuntu 

gusty-security universe 

•   deb  http://security.ubuntu.com/ubuntu  gu-

sty-security multiverse 

•   deb-src  http://security.ubuntu.com/ubuntu 

gusty-security multiverse

Dzięki tym adresom nasz system będzie za-
wsze  zaktualizowany,  pozbędziemy  się  nie-
chcianych  błędów,  a  także  będziemy  mogli 
instalować oprogramowanie wspierane przez 
Ubuntu. Zawierają one tzw. wolne oprogra-
mowanie. Niestety jak wiadomo prawie każ-
demu  użytkownikowi  linuxa,  istnieje  także 
wiele aplikacji spod znaku non-free lub com-
mercial (np. java, mp3 itp.). Skąd je pobrać? 
Także z repozytoriów. Dodajmy w tym celu 
kilka nowych adresów:

•   deb http://medibuntu.sos-sts.com/repo/ gu-

sty free 

•   deb http://medibuntu.sos-sts.com/repo/ gu-

sty non-free 

•   deb-src http://medibuntu.sos-sts.com/repo/ 

gusty free 

•   deb-src http://medibuntu.sos-sts.com/repo/ 

gusty non-free 

•   deb  http://packages.medibuntu.org/  gusty 

free non-free

•   deb  http://archive.canonical.com/ubuntu 

gusty-commercial main

Możemy  już  zainstalować  javę,  kodeki  au-
dio  i  wideo  przeznaczone  dla  Windows. 
Właściwie  do  szczęścia  nic  więcej  nie  po-

Rysunek 3. 

Pulpit ze środowiskiem GNOME

Rysunek 4. 

Pulpit ze środowiskiem KDE

background image

16

Dla początkujących

Instalacji i konfiguracji się nie boję!

maj 2008

17

Dla początkujących

Instalacji i konfiguracji się nie boję!

www.lpmagazine.org

trzeba.  Można  jeszcze  dodać  kilka  dodat-
kowych,  ale  ciekawych  zarazem  adresów. 
Mam  tu  na  myśli  skype,  picasa  (świetna 
przeglądarka grafiki oraz edytor, w którym 
możemy korygować zdjęcia), wine (emula-
tor aplikacji przeznaczonych dla Windows), 
googleearth,  oraz  kadu  (odpowiednik  Ga-
du-Gadu).

•   deb 

http://download.skype.com/linux/

repos/debian/ stable non-free 

•   deb  http://dl.google.com/linux/deb/  stable 

non-free 

•   deb http://www.kadu.net/download/binary/

ubuntu/repo gusty main 

•   deb  http://wine.budgetdedicated.com/apt 

gusty main

I to już cała lista repozytoriów. Teraz w konso-
li wpisujemy: 

sudo apt-get update

. I w tym 

momencie system powinien zarządać tzw. klu-
czy. Jeżeli tak się stało, to niczym się nie przej-
muj. Tak  miało  być.  Musimy  dać  systemowi, 
czego żąda. Aby pobrać taki klucz wydajemy 
takie polecenia:

gpg --keyserver subkeys.pgp.net --

recv-keys numer_klucza

gpg --armor --export numer_klucza | 

sudo apt-key add -

Jeżeli  chodzi  o  wstępną  konfigurację,  to  już 
koniec. Dodam tylko, chociaż dotyczy to ra-
czej Debiana, że można też dołączyć do repo-
zytoriów  płytę  CD/DVD.  Jest  to  istotne  kie-
dy  nie  mamy  połączenia  z  Internetem.  Aby 
tego  dokonać  w  konsoli  wpisujemy  jako  ro-
ot  apt-cdrom  add.  Teraz  program  przeszuka 
CD/DVD i wpisze nowe źródło do pliku so-
urces.list
.  Teraz  nie  pozostaje  nam  nic  inne-
go jak żmudne instalowanie dodatkowych pa-
kietów. Proponuję zacząć od polonizacji sys-
temu. Aby cieszyć się spolszczeniami instalu-
jemy pakiety:

sudo  apt-get  install  language-pack-gno-

me-pl  language-pack-gnome-pl-base  langu-
age-support-pl  language-pack-pl  language-
pack-pl-base myspell-pl openoffice.org-l10n-pl 
mozilla-firefox-locale-pl-pl  thunderbird-loca-
le-pl wpolish aspell-pl

Teraz nawet sam proces konfiguracji powi-

nien być prostszy, ponieważ będzie łatwiej zna-
leźć odpowiednie opcje. No dobrze, ale pewnie 
chcielibyście posłuchać muzyki, albo obejrzeć 
film. Dodajmy więc potrzebne paczki. Ich skład 
jest pokaźny, jednak poza kilkoma (np. w32co-
decs) mają małe rozmiary.

sudo  apt-get  install  ubuntu-restricted-

extras gstreamer0.10-ffmpeg gstreamer0.10-gl 

gstreamer0.10-plugins-base  gstreamer0.10-
plugins-good 

gstreamer0.10-plugins-bad 

gstreamer0.10-plugins-bad-multiverse  gstre-
amer0.10-plugins-ugly gstreamer0.10-plugins-
ugly-multiverse  w32codecs  avifile-win32-plu-
gin  avifile-mjpeg-plugin  avifile-xvid-plugin 
avifile-vorbis-plugin  avifile-mad-plugin  avi-
file-divx-plugin  ffmpeg  ffmpeg2theora  libxi-
ne-extracodecs  libdvdcss2  ubuntu-restricted-
extras  gstreamer0.10-ffmpeg  avifile-divx-plu-
gin avifile-xvid-plugin libavcodec0d ffmpeg lib-
dvdcss2  libdvdread3  w32codecs  totem-gstre-
amer  libxine1-ffmpeg  libxine1-plugins  libxi-
ne1-gnome libxvidcore4

Do prawidłowego działania multimediów 

wystarczyłaby jedynie część podanych pakie-
tów  (w32codecs,  libdvdcss2,  libdvdread3), 
jednak czasem lepiej mieć więcej niż mniej. 

Gratulacje! 

Właśnie  skonfigurowałeś  swój  system.  Nie 
było to trudne. Na koniec dodam, że czasami 
Ubuntu nie wykrywa rozdzielczości monitora. 
Musimy sami ją ustawić. Dawniej trzeba było 
wpisywać dane manualnie w pliku xorg.conf
Gutsy  Gibbon  oferuje  jednak  nakładkę  Xse-
rver-Xorg, w której jedynie wybieramy intere-
sujące nas parametry, zapisujemy i już. 

Rysunek 5. 

Wybór odpowiedniego dla danego kraju układu klawiatury

Rysunek 6. 

GParted - program partycjonujący

background image

18

Dla początkujących

Instalacji i konfiguracji się nie boję!

maj 2008

19

Dla początkujących

Instalacji i konfiguracji się nie boję!

www.lpmagazine.org

Chciałbym  jeszcze  zaznaczyć,  że  aby 

ustawienia grafiki zostały wczytane przez sys-
tem, należy zresetować samą grafikę. Uwaga, 
nie resetujemy całego systemu, a jedynie gra-
fikę.  Robimy  to  za  pomocą  klawiszy:  CTR-
L+ALT+BACKSPACE.  Teraz  już  wszystko 
powinno działać.

Debian - ojciec stabilności

System może dać użytkownikowi trzy rzeczy: 
stabilność, funkcjonalność, oraz wydajność. I 
to wszystko właśnie oferuje Debian. Występu-
je on w kilku wersjach, takich jak stable, te-
sting, unstable oraz w wersji eksperymental-
nej. Nie mamy tu do czynienia z czymś takim 
jak  "smaki"  w  Ubuntu.  Jest  tylko  jeden  sys-
tem - Debian. Oczywiście można pobrać z sie-
ci lub kupić płyty zawierające ten system wraz 
ze  skonfigurowanym  (do  pewnego  stopnia) 
środowiskiem graficznym, np. KDE, GNOME 
czy XFCE. Należy jednak mieć świadomość, 
że Debian pozostanie Debianem. Zasadniczo 
jest  to  linux  skierowany  do  osób  z  pewnym 
doświadczeniem.  Najczęściej  jest  pobierany 
z  sieci  w  postaci  tzw.  netinstall.  Jest  to  sys-
tem bazowy, bardzo odchudzony. Do instala-
cji wersji netinstall niezbędne jest połączenie 
z Internetem. W trakcie jego instalacji pobie-
rane są potrzebne pakiety oraz biblioteki wła-
śnie z sieci. Ponieważ jest to najbardziej za-
awansowana forma instalacji skupimy się wła-
śnie na niej, oraz na instalacji z pierwszej pły-
ty  CD.  Jak  zapewne  Czytelnikowi  wiadomo 
aktualnie,  kompletny  system  (wraz  z  repo-
zytoriami) zajmuje 22 płyty CD, lub 4 DVD 
(czwarta to aktualizacje). Zalecam następują-

cą zależność: dla serwerów oraz komputerów, 
od  których  wymaga  się  stabilności  polecam 
wersję stabilną (czyli aktualnie Debian Etch), 
natomiast dla komputerów, od których nie wy-
maga się rygorystycznie stabilności mogę re-
komendować wersję testową (Debian Lenny). 
Dlaczego?  Już  wyjaśniam.  Otóż  cykl  wyda-
wania wersji stabilnych w Debianie jest dosyć 
ociężały. Starając się aby wersja stabilna by-
ła praktycznie niezawodna, występująca przed 
nią wersja testowa musi być rzetelnie testowa-
na przez okres 1,5-3 lat. Po tym czasie wersja 
testing staje się stable, a wersja do tej pory nie-
stabilna staje się testową. Wspomniałem jesz-
cze  o  wersji  eksperymentalnej.  Nie  jest  ona 
jednak włączana w hierarchię Debiana (mam 
tu na myśli wersję stabilną, testową i niesta-
bilną). Trafiają do niej jedynie aplikacje, które 
mogłyby poważnie zachwiać stabilność syste-
mu (lub nawet komputera).

Jeżeli  jesteśmy  już  posiadaczami  pły-

ty  z  systemem  przystępujemy  do  instalacji. 
Po  pierwsze  włączamy  komputer  tak,  aby 
jako  pierwszy  był  czytany  CD-ROM.  Jeżeli 
wszystko pójdzie tak jak powinno (a na tym 
etapie nie ma innej możliwości) przystępuje-
my do właściwej instalacji.

W  momencie  kiedy  ujrzymy  ekran  po-

witalny mamy możliwość wybrania trybu in-
stalacji. Nie łudźmy się jednak, nie będzie to 
tak prosta instalacja jak w przypadku Ubun-
tu. Jednakże możemy wybrać tryb tekstowy 
lub  pseudograficzny.  Dlaczego  pseudo?  Po-
nieważ wygląda on tak jak tekstowy z tą tyl-
ko różnicą, że możemy posługiwać się mysz-
ką  przy  dokonywaniu  wyborów.  Być  może 

jednak ktoś ma takie życzenie. Należy wpi-
sać  expertgui  i  zaakceptować  to  klawiszem 
ENTER. Jeśli jednak wybieramy tryb teksto-
wy  wciskamy  po  prostu  ENTER  i  przecho-
dzimy dalej. Teraz Debian pozwoli nam wy-
brać język oraz układ klawiatury.

Kolejnym krokiem będzie próba automa-

tycznego  wykrycia  i  konfiguracji  sieci  (tzw. 
DHCP).

Najczęściej  jednak  będziemy  postawieni 

w sytuacji, w której sami będziemy konfiguro-
wać Internet. Autor instalował Debiana na kil-
ku maszynach i niestety nigdy automatycznie 
sieć nie została wykryta. W przypadku nieuda-
nej próby konfiguracji sieci pojawi się menu, 
w którym będziemy mogli wybrać najwygod-
niejszą dla nas opcję: Konfiguruj sieć ręcznie 
lub Nie konfiguruj sieci teraz. Zalecam jednak 
skonfigurować sieć, ponieważ Internet jest po-
trzebny  do  całkowitego  ustawienia  systemu 
(między  innymi  mam  na  myśli  repozytoria  i 
aktualizacje).  Wybierając  tę  opcję  będziemy 
musieli przebrnąć przez kolejne panele żąda-
jące od nas informacji takich jak: IP, Maska, 
Brama, DNS. Teraz należy jeszcze wpisać na-
zwę hosta oraz domenę. Jeżeli komputer jest 
podłączony do jakiejś sieci lokalnej to poda-
jemy odpowiednie nazwy. Jeśli jednak nie je-
steśmy  w  lokalnej  sieci  to  najzwyczajniej  w 
świecie zostawiamy pola tak jak są i potwier-
dzamy klawiszem [ENTER].

Przyszła kolej na coś, co przyprawia o gę-

sią skórkę początkujących – partycjonowanie. 
Strach przed nim jest nieuzasadniony i wyni-
ka raczej z mitów o komputerach niż jakiejkol-
wiek ich destrukcji. Należy jednak podejść do 
tego rozsądnie, ponieważ źle ustawienie dysku 
sprawi, że praca stanie się mniej komfortowa. 
Co mam na myśli? Chodzi mi o to, że bardzo 
często folder domowy /home (czyli ten, w któ-
rym będziemy przechowywać nasze cenne da-
ne) jest tworzony na tej samej partycji co sys-
tem.  Oczywiście  rozumiem,  że  nikt  nie  prze-
widuje  reinstalacji  systemu,  czy  awarii.  nale-
ży jednak mieć świadomość, że takie sytuacje 
się zdarzają. Bezpieczniej jest umieścić ten fol-
der na osobnej partycji. Kolejna sprawa: należy 
pamiętać o tzw. partycji wymiany, czyli swap
Jeżeli ktoś jest szczęśliwym posiadaczem 1 GB 
pamięci  RAM,  to  nie  musi  sobie  zbytnio  za-
wracać tym głowy. Ale w przypadku, gdy nasz 
komputer nie jest aż tak wyposażony, partycja 
swap jest niezwykle przydatna. Jest to taka pa-
mięć RAM
 w postaci pliku na dysku twardym. 
Wracając do tematu. W menu partycjonowania 
mamy  do  wyboru  cztery  możliwości.  Począt-
kującym radzę wybrać partycjonowanie całego 
dysku
. Osobom, które miały już do czynienia 
z  partycjonowaniem  (obojętnie  na  jakim  sys-

Rysunek 7. 

Okno ustawień połączenia sieciowego

Rysunek 8. 

Ustawienie sieci dla ppp

Rysunek 9. 

Manualne uzupełnianie danych dla połą-

czenia sieciowego

Rysunek 10. 

Adresy serwerów nazw (DNS)

background image

18

Dla początkujących

Instalacji i konfiguracji się nie boję!

maj 2008

19

Dla początkujących

Instalacji i konfiguracji się nie boję!

www.lpmagazine.org

temie operacyjnym) zalecam manualne dziele-
nie dysku twardego. Jeśli zdecydowaliśmy się 
na opcję Manual musimy sami zadbać o utwo-
rzenie partycji, nadanie systemu plików itp. Nie 
jest to trudne. na początek wybieramy Utwórz 
nową partycję
. Podajemy rozmiar nowej party-
cji (możemy go podać w procentach, np. 20%). 
Teraz wskazujemy, czy partycja ma być podsta-
wowa, czy logiczna (podstawowa jeśli forma-
towaliśmy  cały  dysk,  natomiast  logiczna  gdy 
Debian  nie  jest  jedynym  systemem).  Wybie-
ramy lokalizację (początek lub koniec dysku). 
Pamiętajmy jednak, że na samym końcu dys-
ku powinna się znaleźć partycja swap. Wiąże 
się  to  z  faktem,  że  najszybszy  dostęp  do  da-
nych na dysku jest na jego początku oraz koń-
cu. Jeszcze tylko ustalimy typ plików, np. ext3. 
W przypadku partycji swap zamiast Typ plików 
wybieramy pozycję Przestrzeń wymiany. Zapi-
sujemy zmiany i gotowe! Po partycjonowaniu 
przyszła  chwila  na  odprężenie.  Kolejne  kroki 
nie sprawią już trudności. Będziemy proszeni 
o hasło superużytkownika (root) oraz nazwę i 
hasło nowego użytkownika. Kiedy wprowadzi-
my te dane zostanie zainstalowany system ba-
zowy. Instalator poprosi nas o podanie serwera 
lustrzanego (czyli miejsca z dodatkowymi pa-
kietami).  Najlepiej  wybrać    ftp.pl.debian.org
Zostaniemy  też  poproszeni  o  podanie  nazwy 

serwera pośredniczącego. Jeśli takiego nie po-
siadamy zostawiamy pole puste i przechodzi-
my dalej. W tym momencie ukaże się okno z 
zapytaniem  o  tzw.    popularity-contest.  Co  to 
jest i do czego służy? Jeżeli wyrazimy zgodę, 
to nasz system raz w tygodniu wyśle informa-
cje o najczęściej używanych przez nas aplika-
cjach. Komu to jest potrzebne? Developerom, 
którzy na podstawie statystyk umieszczają naj-
chętniej  używane  aplikacje  w  systemie  (jako 
domyślne). Jeszcze tylko zainstalujemy środo-
wisko graficzne i będziemy mogli cieszyć się 
Debianem. W tym celu wybieramy z menu od-
powiednie pakiety. Dla komputerów klasy PC 
zalecam  System podstawowy oraz Środowisko 
graficzne
, natomiast w przypadku instalowania 
Debiana na laptopie rozsądnie jest dołączyć pa-
kiety z gałęzi Laptop. Istnieje także możliwość 
zainstalowania jedynie systemu bazowego i do-
instalowania (bądź nie) środowiska graficzne-
go (czyli tzw. X-ów) później. Na samym końcu 
potwierdzamy instalację GRUB'a. I to już ko-
niec. Nie było aż tak ciężko. Kolejnym etapem 
jest  oczywiście  konfiguracja.  Jest  ona  bardzo 
podobna do Ubuntu (ponieważ Ubuntu powstał 
na bazie Debiana). Podam jednak repozytoria 
dla Debiana Etch w wersji stabilnej. Z poziomu 
root'a edytujemy plik gedit /etc/apt/sources.list 
i dopisujemy:(Listing 1.)

Zapisujemy  zmiany  i  wydajemy  polece-

nie  apt-get  update.  Zostaniemy  poproszeni  o 
tzw. klucze. Wpisujemy je tak jak w przypadku 
Ubuntu. Teraz nie pozostaje nic innego jak insta-
lacja oprogramowania.

Podsumowanie

Proces  instalacji  oraz  konfiguracji  systemu 
nie jest tak skomplikowany jak się na pierw-
szy  rzut  oka  wydaje.  Przede  wszystkim  nie 
należy się bać obsługi systemu poprzez kon-
solę. Dla osób, które wcześniej pracowały na 
systemie Windows będzie to na początku lek-
ki szok. Kiedy autor zaczynał przygodę z li-
nuxem,  także  doznał  takiego  szoku.  Teraz 
jednak wie, że konsola jest potężnym, nieza-
stąpionym oraz szybkim narzędziem, dzięki 
któremu  linux  jest  tak  potężnym  systemem. 
Na forach internetowych nowi użytkownicy 
często  stawiają  minus  tym  systemom,  które 
mają tekstowy instalator. Wynika to zapew-
ne ze strachu oraz braku pewnych umiejętno-
ści. Obecnie jednak nawet tekstowe instala-
tory są tak napisane, że czytając kolejne po-
lecenia bez problemu można przebrnąć przez 
proces  instalacji.Jeżeli  chodzi  natomiast  o 
sam  proces  konfiguracji  nowego  systemu 
to  można  przedstawić  go  w  czterech  kro-
kach:  nawiązanie  połączenia  z  Internetem, 
dodanie odpowiednich repozytoriów do pli-
ku  sources.list,  instalacja  aktualizacji  oraz 
instalacja  dodatkowego  oprogramowania 
(np. kodeki audio i wideo). Czasami musi-
my  jeszcze  ustawić  bądź  doinstalować  ste-
rowniki dla posiadanego sprzętu. I to by by-
ło na tyle.Tekst został oparty na Ubuntu oraz 
Debianie  nie  bez  przyczyny.  Ubuntu  zyskał 
w ostatnim czasie ogromną popularność, któ-
ra nadal rośnie. Jest to najczęściej wybierana 
przez nowicjuszy dystrybucja linuxa. Często 
jednak  nie  wiedzą  oni  jak  wykonać  podsta-
wowe czynności. Tekst jest w pierwszej czę-
ści skierowany właśnie do nich. Druga część 
tekstu została poświęcona Debianowi, ponie-
waż  bardzo  często  użytkownicy  Ubuntu  w 
momencie,  kiedy  posiądą  już  wystarczające 
umiejętności  zamieniają  Ubuntu  na  Debia-
na,  który  jest  niewątpliwie  trudniejszym  do 
konfiguracji systemem. Pamiętajmy jednak o 
jednym. Bez względu na dystrybucję, linuxa 
można  okiełznać.  Nie  należy  się  bać  skom-
plikowanej  instalacji  czy  konfiguracji.  Po-
traktujmy to jako nową przygodę i wyzwanie 
dla nas samych!   

Rysunek 11. 

Graficzna nakładka służąca do modyfi-

kacji zawartości pliku xorg.conf

Rysunek 12. 

Powitalny ekran instalatora systermu 

debian

Rysunek 13. 

Wybór języka

Rysunek 14. 

Próba automatycznej konfiguracji sieci 

za pomocą DHCP

Rysunek 15. 

Proces partycjonowania dysków

Autor 8 lat zajmuje się programowaniem i 
linuksem. Od 4 lat pisze teksty związane z 
tą tematyką. Ponadto jest jednym z redak-
torów Dragonia Magazine.
Kontakt z autorem: 
lucas.ciesielski@gmail.com

O autorze

background image

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

20

maj 2008

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

21

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Q

topia została stworzona przez znaną w społecz-
ności  linuksowej  firmę  Trolltech.  Najbardziej 
znanym  osiągnięciem  jest  stworzenie  bibliote-
ki  QT,  czyli  podstawy  środowiska  graficznego 

KDE. Na tej bibliotece jest również oparta Qtopia. Spotka-
łem się również z określeniami, zupełnie prywatnie, że Qto-
pia to takie niewielkie KDE dla komórek. Nie można oprzeć 
się wrażeniu, że jest podobne do KDE, niemniej aż tak dale-
ko wysuniętych teorii bym nie wysnuwał.

Qtopia  stała  się  interesującą  pozycją  zwłaszcza  wtedy, 

kiedy Trolltech  wpadł  na  pomysł  całkowitego  otwarcia  jej 
kodu.  Wcześniej  był  on  częściowo  zamknięty,  częściowo 
otwarty, czyli podwójnie licencjonowany.

Generalnie  sytuacja  w  segmencie  urządzeń  mobilnych 

(często zwanych smartfonami) stała się w roku 2007 i po-
czątkiem 2008 bardzo ciekawa. Jeszcze do niedawna więk-
szość linuksowych platform objętych była przynajmniej po-
dwójną licencją. Jak się zapewne domyślacie, producent za-
mykał tę część, którą sam opracował, niewiele pozostawia-
jąc do modyfikacji. Sytuacja ta zaczęła się całkiem niedaw-
no zmieniać. Pojawił się projekt o nazwie OpenMoko, któ-
ry z założenia ma być całkowicie otwarty. Pierwszy telefon z 

nim to FIC Neo1973. Trolltech postanowił wyprzedzić kon-
kurencję i wydał na licencji GNU GPL całą platformę Qto-
pia Phone Edition, z telefonem Greenphone. W późniejszym 
czasie udało się również przenieść platformę na Neo1973, co 
zwiększyło jego atrakcyjność.

W praktyce Qtopia jest nie tylko abstrakcyjną platformą 

linuksową, ale również interesującym środowiskiem graficz-
nym, które daje nam całkiem duże możliwości. Najlepszym 
sposobem na jego omówienie jest przedstawienie przykładu. 
Niestety dostępność Greenphone, czy Neo1973 w Polsce nie 
jest zbyt dobra (w okolicach poziomu zero), stąd posiłkowa-
nie się ich nieco starszym bratem, który po pierwsze jest w 
Polsce stosunkowo popularny, niekoniecznie drogi, oferuje 
zaś całkiem spore możliwości.

Środowisko Qtopia omówię na przykładzie telefonu Mo-

torola (Ming) A1200. Środowisko nie jest w nim całkowi-
cie na wolnej licencji, jednakże w naprawdę dużym stopniu. 
Zresztą wydanie na wolnej licencji to fakt, który ułatwia ko-
rzystanie i rozwój w pewnych środowiskach, ja zaś chciał-
bym  się  skupić  na  walorach  użytkowych  dla  przeciętnego 
Kowalskiego, który raczej sam nie zmodyfikuje kodu. Jest to 
przede wszystkim recenzja platformy Qtopia, więc funkcje 

Qtopia – przykład 

platformy linuksowej w 

urządzeniach mobilnych

Nie ma co ukrywać, że Linux przeżywa okres dynamicznego rozwoju. Wzrasta liczba użytkowników, 
coraz to więcej producentów sprzętu i oprogramowania implementuje go w swoich rozwiązaniach. 
Również w segmencie urządzeń przenośnych Linux zaczyna być traktowany poważnie. W artykule 
chciałbym zaprezentować platformę przeznaczoną na telefony komórkowe z wbudowanym Linuksem. 
Platforma ta ma pewne powiązania z KDE, a ponieważ w numerze również znalazła się recenzja 
najnowszego KDE, pomyślałem, że dodatkowe informacje z pewnością Wam nie zaszkodzą.

Przemysław Żarnecki

background image

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

20

maj 2008

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

21

www.lpmagazine.org

telefonu omówię na tyle tylko, na ile to będzie 
konieczne. Przykład jest dal mnie o tyle łatwy 
do omówienia, że sam całkiem niedawno sta-
łem się posiadaczem tego urządzenia.

Jak zdobyć Qtopię?

W  Polsce  najlepszym  pomysłem  jest  telefon 
Motorola A1200, co zresztą wspomniałem, być 
może jego następca, czyli A1600. W chwili pi-
sania artykułu nie można go było zdobyć, acz-
kolwiek  wspomnę  o  nim  na  pewno,  bowiem 
szykuje się prawdziwe cudo.

Kiedy  pisałem  te  słowa  A1200  można 

było  dostać  już  za  około  700  zł.  Tyle  wy-
nosił  koszt  nowego  urządzenia,  dostępne-
go jednak tylko w nielicznych sklepach, za-
zwyczaj  jednak  w  sieci,  zwłaszcza  na Alle-
gro. W tzw. oficjalnym obiegu, czyli u opera-
torów sieci komórkowych telefon jest niedo-
stępny. Zresztą na widok jednego z poprzed-
ników (czyli A1000) w salonie sieci XY za-
reagowano dosyć nerwowo pytaniem, a co to 
jest...? Urządzenia są na tyle nowe, że nawet 
domyślnym językiem jest chiński, co sprawi-
ło mi nie lada kłopot. Znalezienie menu z ję-
zykami nie było proste. Na szczęście po do-
słownie  parunastu  minutach  się  udało.  Jego 
położenie było w miarę standardowe. Trudno 
mi powiedzieć, jak się ma sprawa z realizacją 
ewentualnych reklamach, telefon sprzedawa-
ny jest z 24 miesięczną gwarancją realizowa-
ną u sprzedawcy. Wygląda solidnie i sprawu-
je się bezproblemowo, więc może nie będzie 
takiej konieczności.

O zaletach samego telefonu nie będę się 

rozpisywał, bo nie o tym mam pisać. Wspo-
mnę tylko dla zasady. Jego osiągi nie są im-
ponujące jak na dzisiejsze czasy, przynajm-
niej  tak  się  wydaje. Aparat  2MPx,  brak  wi-
fi  są  pewnym  mankamentem.  Nie  jest  nim 
natomiast  rewelacyjny  wręcz  ekran  dotyko-
wy, radio (chociaż bez RDS), odtwarzacz vi-
deo (można doinstalować Mplayera!!!) oraz 
MP3. Kolejne możliwości wiążą się również 
z samym oprogramowaniem. Takie elementy 
jak  przeglądarka  plików  Office,  poczta  ma-
il, przeglądarka www to tylko niewielki wy-
cinek możliwości. Stąd nazwa smartfon, lub 
palmofon.

Telefon nie jest przy tym specjalnie duży, 

posiada nowoczesny kształt oraz przezroczystą 
klapkę! Najprostsze z możliwych rozwiązań, a 
nikt chyba nie wpadł na nie wcześniej. Zamiast 
bawić się w jakieś dwa ekrany mamy jeden, zaś 
klapka go po prostu nie zasłania.Genialne.

Przy jego możliwościach ważny jest roz-

miar. Poprzednik (niestety bez Linuksa) miał 
o wiele większy ekran, ale sam był sporych 
rozmiarów,  czym  wzbudzał  często  śmiech 

u  przypadkowych  widzów,  zwłaszcza  płci 
pięknej. Na szczęście śmiechy szybko milkły 
kiedy telefon prezentował swoje możliwości. 
Powiedzmy, że ludzie w przedziale pociągu 
mają w pierwszej kolejności minę mówiąca, 
cóż to za kobyła. W następnej chwili wszyscy 
z szeroko otwartymi ustami oglądają ze mną 
film. W przypadku A1200 nie ma takich spoj-
rzeń, od razu bywają wręcz zazdrosne. Moż-
liwości ma zaś większe, aczkolwiek brakuje 
mu wbudowanego GPS (poprzednik i następ-
ca mają). Wystarczy jednak podłączyć odpo-
wiednie  urządzenie  przez  Bluetooth.  Mam 
nadzieję, że Was przekonałem. Przejdźmy do 
właściwego tematu.

Qtopia jako 

platforma linuksowa 

– krótki przegląd oprogramowania

Zacznę  od  bardzo  ważnej  rzeczy.  Mianowi-
cie od pytania, czy na komórkowego Linuk-
sa
  dostaniemy  oprogramowanie?  Oczywi-
ście, że tak i to w nadmiarze nawet. Na po-
ważnie,  pozycji  dedykowanych  bezpośred-
nio pod ten system jest trochę mniej niż pod 
Windows  Mobile  czy  Symbian.  Rozwiąza-
nia  linuksowe  są  stosunkowo  młode,  acz-
kolwiek  taki  Symbian  ma  korzenie  sięgają-
ce Uniksów/Linuksów. Generalnie użytkow-
nicy  konkurencyjnych  systemów  mają  jesz-
cze o wiele łatwiej, ale niekoniecznie i nie-
długo już, co udowodnię.

Po pierwsze, nawet jeżeli nie ma jakiegoś 

oprogramowania dedykowanego Linuksowi, 
to  jest  ogromna  rzesza  softu  napisanego  w 
Javie. Java jest obsługiwana w Linuksie. W 
związku z tym system operacyjny nie ma nic 
tutaj  do  rzeczy.  W  Javie  są  programy,  gry. 
Bardzo  często  są  to  wersje  odpowiadające 

popularnym  programom.  Można  zagrać  so-
bie w jakiegoś nowego Need for Speeda, czy 
skorzystać z Google Maps we współpracy z 
zewnętrznym nadajnikiem GPS. Z dostępno-
ścią i instalacją oprogramowania w Javie nie 
ma naprawdę większego problemu. Musimy 
zwrócić uwagę tylko na dwa aspekty. Jeden 
z  nich  to  legalność  oprogramowania.  Wie-
le  rzeczy  w  Javie  to  programy  komercyjne, 
których pirackie wersje są bardzo popularne. 
Trochę głupio korzystać z legalnego, darmo-
wego systemu operacyjnego i używać w nim 
pirackiego oprogramowania. Drugi aspekt to 
dostosowanie programu do ekranów dotyko-
wych. Sprzętu z takim rozwiązaniem jest już 
całkiem sporo, niemniej musimy zwrócić na 
to uwagę przy pobieraniu programu.

Poza Javą można znaleźć również opro-

gramowanie w pakietach. Osoby, które na co-
dzień korzystają z deb-ów, bądź rpm-ów bę-
dą czuły się jak ryba w wodzie. Qtopia oferu-
je obsługę pakietów z rozszerzeniem (m)pkg
W sieci pojawia się coraz większy ich zbiór, 
jest również sporo programów do ich tworze-
nia, więc nic nie stoi na przeszkodzie (może 
poza możliwościami telefonu, które małe nie 
są) aby spróbować samemu coś stworzyć. Do 
obsługi  pakietów  niezbędny  jest  menedżer. 
Istnieje spory wybór.

Ponadto w Qtopii można uruchamiać pli-

ki  wykonywalne  z  rozszerzeniem  lin  lub  sh
Normalnie jak w komputerze. Większość me-
nedżerów  pakietów
  obsługuje  pliki  wykony-
walne.  Są  również  aplikacje,  które  odpowia-
dają tylko za to.

Być może minusem jest fakt, że te przydat-

ne aplikacje trzeba samemu instalować. Weźcie 
pod uwagę jednak, że telefon takiej klasy jest 
przeznaczony dla różnych użytkowników. Nie 
każdy  koniecznie  musi  instalować  nowe,  za-
awansowane rzeczy. Dla przeciętnego Kowal-

Rysunek 1. 

Jeden ze starszych pulpitów Qtopia

Rysunek 2. 

Prosty odtwarzacz filmów

background image

22

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

maj 2008

23

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

www.lpmagazine.org

skiego  oprogramowanie,  które  znajduje  się  w 
telefonie  jest  co  najmniej  wystarczające.  Cóż 
takiego występuje w domyślnej instalacji?

Dla  osób  intensywnie  korzystających  z 

poczty na pewno przydatny będzie klient pocz-
towy, który bez problemu odczyta i wyśle każ-
dą wiadomość, także tę z załącznikami. Klienta 
poczty konfiguruje się prosto i naprawdę przy-
jemnie. Skoro jestem przy kliencie pocztowym 
i  zastosowaniach  sieciowych,  to  warto  wspo-
mnieć  również  o  przeglądarce  internetowej. 
Nie spełni może ona wymagań każdego inter-
nauty, jednakże jest przydatna przy podstawo-
wych zastosowaniach. Jeżeli pionowe ustawie-
nie ekranu komuś nie podpasuje, to może wów-
czas  obrócić  ekran  poziomo,  co  znacznie  po-
prawi komfort pracy. Wielu koneserów gorąco 
poleca  zainstalowanie  nieco  bardziej  zaawan-
sowanej  przeglądarki.  Jeżeli  domyślna  Ci  nie 
wystarczy, to z pewnością warto zainstalować 
oprogramowanie  zewnętrzne.  Moim  skrom-
nym zdaniem najlepszą możliwością jest sko-
rzystanie z komórkowej wersji popularnej prze-
glądarki Opera. Może się mylę, jednakże jest to 
wg mnie najlepsza przeglądarka internetowa na 
telefony komórkowe. Jej autorzy dbają o obsłu-
gę wielu urządzeń. Instalator w Javie sprawia, 
że ich wysiłek nie poszedł na marne.

Narzędziem,  o  którym  z  całą  pewnością 

warto wspomnieć jest Viewer, czyli przeglądar-
ka  dokumentów  w  wielu  popularnych  forma-
tach. Za jej pomocą podglądniecie dokumenty 
utworzone w MS Office, w PDF oraz paru in-
nych popularnych formatach (rtftxt itp.). Nie-
stety przeglądarka plików w posiadanej przeze 
mnie wersji nie obsługiwała kompletnie otwar-
tych formatów. Z tego co wiem, niewiele zmie-
niło się w tej materii. Jeżeli chcesz odczytać pli-
ki stworzone w OpenOffice, to musisz zaopa-
trzyć się w jakąś mobilną wersję tego progra-
mu. Niby nie jest to większy problem, ale za-
stanawiające jest, że platforma oparta na Wol-
nym Oprogramowaniu nie odczytuje otwartych 
standardów w domyślnej wersji.

Funkcje multimedialne uzależnione są w 

dużej mierze od posiadanego sprzętu. Obsłu-
ga aparatu z możliwościami nagrywania fil-

mów  jest  w  zasadzie  standardem.  Te  funk-
cje  wspierają  takie  elementy  jak  np.  Pho-
to  Editor,  który  posiada  niemałe  możliwo-
ści  obróbki  obrazu.  Swoją  drogą,  jest  rów-
nież całkiem przyjaznym narzędziem do ry-
sowania.  Swoimi  możliwościami  przypomi-
na  nieco  Windowsowego  Painta  uzupełnio-
nego  o  kilka  filtrów  związanych  z  obróbką 
zdjęć. Można więc nawet rzec, że jest o wie-
le bardziej funkcjonalny. Jako anegdotę mo-
gę podać fakt, że kilka razy to narzędzie ra-
towało mnie przed zbytnim zajmowaniem się 
niesfornym dzieckiem. 

Wśród narzędzi multimedialnych znajduje 

się również najczęściej Real Player, który mo-
że nie jest zbyt rozbudowanym narzędziem, ale 
radzi sobie całkiem nieźle z wieloma formata-
mi plików multimedialnych. Osoby, które mają 
inne przyzwyczajenia ze stacjonarnego Linuk-
sa, mogą skorzystać z mobilnej wersji Mplay-
era, która nosi miano zmplayer. 

Na platformie funkcjonują także inne, rów-

nie  przydatne  aplikacje.  Do  standardu  należy 
kalendarz/terminarz,  alarm,  kalkulator.  W  za-
leżności od telefonu pojawiają się różne mniej 
lub  bardziej  przydatne  gadżety,  takie  jak  np. 
czytnik wizytówek. Jeżeli jest aparat obsługu-
jący tryb makro, wówczas nowy kontakt może 
być dodany bezpośrednio z poziomu wizytów-
ki. Mechanizmy OCR działają nie najgorzej.

Qtopia jako platforma linuksowa 

– zarządzanie systemem

Qtopia jest platformą i zarazem systemem ope-
racyjnym. Nawet zwykły Kowalski szybko do-

ceni  ten  fakt,  zwłaszcza,  że  analogicznie  do 
swojego  starszego  i  większego  brata,  komór-
kowy  Linux
  jest  również  odporny  na  różnego 
rodzaju  zagrożenia,  które  są  coraz  powszech-
niejsze w urządzeniach mobilnych (chociażby 
z racji rozpowszechnienia komórkowych syste-
mów operacyjnych).

Wspomniałem  o  tym,  że  można  normal-

nie instalować i kasować programy. Jeżeli mo-
wa  jest  o  pakietach,  to  za  ten  fakt  odpowia-
da  osobno  zainstalowany  menedżer  pakietów. 
Odinstalowanie  programów  napisanych  w  Ja-
vie odbywa się z poziomu oryginalnego opro-
gramowania.

Na licznych screenach możecie zauważyć, 

że na Qtopię składa się pulpit i ikony. Na pul-
picie znajdują się różne informacje (w zależno-
ści od ustawień, a więc naszych preferencji). W 
moim  przypadku  były  to  cztery  ikony.  Jedna 
prowadziła  do  klawiatury  na  ekranie  dotyko-
wym, jedna do menu z wiadomościami (zarów-
no  maile,  wiadomości  sms/mms),  nie  zabra-
kło książki teleadresowej. Ważną funkcję peł-
niła czwarta ikona, która prowadziła do pulpi-
tu
 z aplikacjami i ustawieniami. Ta część warta 
jest większej uwagi.

Z prawej strony na dole masz coś w stylu 

menu z programami, które w telefonie komór-
kowym  zawiera  kilka  ważnych  opcji.  Wspo-
mniałem  już  o  kasowaniu  aplikacji  napisa-
nych  w  Javie  (jest  też  skrót  do  przeglądarki, 
przez  który  można  instalować  oprogramowa-
nie). Przydatnym narzędziem jest Task Mana-
ger
.  W  kilku  przypadkach  byłem  świadkiem, 
jak różne osoby narzekały na prędkość działa-
nia telefonu. Niezależnie od systemu taka opcja 
się przydaje, bowiem użytkownik ma to do sie-
bie,  że  włącza  multum  programów,  a  później 
dziwi się, że coś mu sprzęt wolno działa. O wy-
łączeniu ich często zapomina. Zresztą wystar-
czy rzucić okiem na status pamięci, aby zdia-
gnozować problemowy program. Podobnie jak 
w komputerach stacjonarnych można wyłączyć 
zbędne  usługi.  Jest  to  nawet  ważniejsze,  bo-
wiem telefon pracuje w zasadzie non stop i nie 
ma większych szans na to, że w czasie restar-
tu zbędne programy się wyłączą. Swoją drogą 
warto dbać o funkcjonowanie urządzenia, któ-
re jest tak eksploatowane. W tym samym me-
nu znajduje się jeszcze kilka opcji związanych 
z porządkowaniem listy programów. Tuż obok 
meny znajduje się lista z kategoriami progra-
mów (przykładowy podział to Biuro, Gry, Mul-
timedia).

Z  punktu  widzenia  zarządzania  urządze-

niem mobilnym warto zainteresować się ikona-
mi znajdującymi się w kategorii Extra. Najważ-
niejszy jest panel sterowania, czyli setup. Znaj-
dziemy w nim wiele ważnych (ale nie zawsze 

Rysunek 3. 

Prosta forma zegara

Rysunek 4. 

Menu z ustawieniami

Rysunek 5. 

Menu w oryginale

background image

22

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

maj 2008

23

Rozwiązania

Qtopia – przykład platformy linuksowej w urządzeniach mobilnych

www.lpmagazine.org

wszystkie) opcje związanych z ogólnym dzia-
łaniem  telefonu,  ale  nie  tylko.  Można  w  nim 
zmienić tapetę, ale również zarządzać połącze-
niem z komputerem za pomocą USB bądź Blu-
etooth, ustawić język, schemat graficzny, skali-
brować ekran, czy ustanowić połączenie z In-
ternetem.  Wiele  zaawansowanych  opcji  znaj-
duje się jednak poza panelem sterowania.

Szczegółowe  ustawienia  połączeń,  wia-

domości znajdują się w odpowiadających im 
częściach menu. Zazwyczaj trzeba w tym ce-
lu skorzystać z ikony menu w prawym dolnym 
rogu, analogicznie jak w przypadku omówio-
nego wcześniej menu z aplikacjami. Jeżeli do-
kładnie przyjrzycie się różnym opcjom, zwró-
cicie na pewno uwagę na ich mnogość. Cza-
sem niestety przeszkadza to, że nie są w jed-
nym miejscu. Na upartego da się wszędzie i 
zawsze dojść, aczkolwiek niektóre osoby mo-
gą mieć mniejsze lub większe problemy z od-
nalezieniem  się.  Nie  tak  łatwo  odnaleźć  np. 
ustawienia  związane  z  Bluetooth,  zwłaszcza 
jeżeli skasuje się oryginalne skróty. Niemniej 
po początkowym okresie dezorientacji można 
dostrzec logikę w ustawieniu poszczególnych 
opcji i uznać platformę za przyjazną.

Qtopia – walory estetyczne

Skoro platformę można traktować w zasadzie 
jako  system  operacyjny,  również  jej  wygląd 
jest co najmniej konfigurowalny. W telefonach 
zainstalowane jest przynajmniej kilka, w sieci 
można znaleźć dziesiątki, a nawet setki i tysiące 
schematów graficznych. Zmiany mogą być na-
prawdę spore. Telefon, włącznie z interfejsem 
może  wyglądać  nawet  jak  Windows,  czy  do-
wolny pulpit dystrybucji linuksowej.

Generalnie nawet domyślne schematy plat-

formy są przyjazne dla oka i powinny zadowo-

lić nawet największych malkontentów. W razie 
czego nic nie stoi na przeszkodzie, aby samemu 
coś zaprojektować i wgrać na telefon, zwłasz-
cza w pełni otwartej wersji platformy.

Qtopia – czy warto

Zastanówmy  się,  czy  warto  jest  kupować 
urządzenie,  w  którym  znajdziemy  Qtopię. 
Od  strony  funkcjonalnej  jak  najbardziej. To 
stwierdzenie  adresuję  przede  wszystkich  do 
osób, które nigdy nie miały do czynienia z te-
lefonami wyposażonymi w system operacyj-
ny. Taki telefon może stanowić duże wspar-
cie  w  codziennych  czynnościach  –  poczta, 
zaawansowany  organizer,  możliwość  zain-
stalowania  dodatkowych,  własnych  aplika-
cji z tego zakresu.

Takie urządzenia sprawdzają się znakomi-

cie jako multimedialne centra rozrywki. MP3, 
radio,  wszelkie  formaty  muzyki  cyfrowej  w 
XXI wieku są standardem. Jeżeli jakiś format 
nie jest obsługiwany przez domyślne aplikacje, 
instaluje  się  następne.  Nie  zawsze  wystarczy 
obsługa Javy, często konieczny jest konkretny 
system operacyjny.

Stosunkowo  dużo  aplikacji  jest  natywnie 

tworzonych  pod  różne  wersje  Symbiana,  czy 
Windows  Mobile.  Pod  Linuksa  tych  aplikacji 
jest jeszcze mało, jednakże zbiór stale się po-
większa. Poza tym, jeżeli posiadacie stosowne 
umiejętności, nic nie stoi na przeszkodzie, aby 
po prostu napisać coś swojego.

Środowisko  przypomina  swoim  wyglą-

dem  i  zachowaniem  (takie  zdanie  nasuwa 
się  po  dłuższym  użytkowaniu)  desktopowe 
KDE. Nie jest to przecież całkowicie bezza-
sadne stwierdzenie, ponieważ korzysta prze-
cież  z  tych  samych  bibliotek  co  KDE.  Siłą 

rzeczy jest w stosunku do niego uproszczo-
ne,  co  wynika  przecież  z  ograniczeń,  które 
posiadają telefony komórkowe. Aczkolwiek 
procesory  o  mocy  300  Mhz  i  więcej  nasu-
wają mi myśl, że nie są to aż takie wielkie 
ograniczenia.

Tej  klasy  urządzenie  nie  jest  jednak 

dla  wszystkich  użytkowników.  Jeżeli  tele-
fon spełnia tylko dwie funkcje, czyli służy 
do  rozmowy  i  ewentualnie  jako  budzik,  to 
przecież  nie  ma  większego  sensu  kupować 
tak zaawansowanego urządzenia. Tyczy się 
to również konkurencyjnych systemów. Je-
żeli jednak uznajemy, że życie toczy się ciut 
za szybko i dobrze mieć przy sobie porząd-
ny organizer, zechcemy skorzystać przy tym 
z poczty elektronicznej, posłuchać muzyki, 
a  może  nawet  oglądnąć  film,  to  wówczas 
można nieco zmodyfikować zdanie. Dodaj-
my  do  tego,  że  do  telefonu  komórkowego 
podłączymy  osobne  urządzenie  na  Blueto-
oth,  rozszerzając  jego  możliwości.  Przy-
kład? System GPS. W niedrogi sposób nasz 
telefon  może  stać  się  również  przewodni-
kiem w codziennych, często pozbawionych 
ładu podróżach.

Na  sam  koniec  wrócę  jeszcze  do  urzą-

dzenia, którym posiłkowałem się przy pisa-
niu tekstu. Motorola A1200 nie jest telefo-
nem idealnym, jego twórcy zapomnieli o co 
najmniej kilku przydatnych w urządzeniach 
tej klasy elementach. Nie znajdziemy w nim 
Wifi,  ani  Edge.  Jest  to  spora  wada,  która 
ma zostać nadrobiona w jego następcy. Mi-
mo to, ze względu na stosunkowo atrakcyj-
ną cenę, bezawaryjną pracę i solidne wyko-
nanie, polecam. Do pełni szczęścia brakuje 
jeszcze tylko obsługi języka polskiego. Po-
siłkować się należy angielskim, lub jak kto 
woli chińskim (swoją drogą znalezienie jak 
zmienić język zajęło mi trochę czasu – alfa-
bet chiński jakoś nie utkwił mi w pamięci, 
na szczęście zmiana języka nie była ukryta 
zbyt głęboko w opcjach).

Reasumując,  polecam  –  jak  mniemam 

korzystanie  z  tego  typu  urządzenia  może 
sprawić naprawdę dużą przyjemność, o wa-
lorach praktycznych już nawet nie wspomnę. 
Zapraszam do korzystania. 

Rysunek 6. 

Bazy danych fotografii

Rysunek 7. 

Program do planowania trasy lotu

Autor  jest  dziennikarzem,  doktorantem. 
Często  bierze  udział  w  planowaniu  i  pro-
wadzeniu projektów, które wykorzystuje na 
planie filmowym.
Kontakt z autorem: p.zarnecki@plusnet.pl

O autorze

background image

rozwiązania

Usługi Google cz. 1

24

maj 2008

rozwiązania

Usługi Google cz. 1

25

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

J

ej  początki  sięgają  pierwszej  połowy  roku  1998. 
Wtedy  właśnie  założyciele  Google  -  Larry  Page  i 
Sergey  Brin  opracowali  nowatorski  algorytm  ana-
lizowania  zindeksowanych  stron  internetowych. 

Opierał się on w dużej mierze na analizie odnośników pro-
wadzących do konkretnych dokumentów, a nie na częstotli-
wości występowania szukanego fragmentu tekstu. Algorytm 
ten stał się podstawą dla tworzonej przez nich wyszukiwar-
ki, która, choć początkowo miała być jedynie ich wspólnym 
projektem studenckim, szybko ukazała drzemiący w algoryt-
mie potencjał. Niedługo później, bo na początku września te-
go samego roku, oficjalnie powstała firma Google Inc., ma-
jąca swą siedzibę w Menlo Park w Kalifornii. Od tej chwi-
li rozpoczął się dynamiczny rozwój firmy napędzany głów-
nie dzięki rosnącej popularności wyszukiwarki oraz zyskiem 
z reklam tekstowych. 

Gmail

1 kwietnia 2004 roku światu został zaprezentowany Gmail. Co 
to jest, chyba nie muszę wyjaśniać nikomu. Ta usługa zrewo-
lucjonizowała sposób w jaki postrzegamy darmową skrzynkę 
pocztową między innymi dzięki braku wyskakujących okie-

nek,  braku  przychodzących  reklam,  ogromnej  pojemności 
oraz prostemu interfejsowi połączonemu z wyszukiwarką ma-
ili. Rzecz jasna nie są to jedyne plusy, a użytkownicy Linuksa 
mają do dyspozycji całkiem sporą liczbę dodatkowych aplika-
cji czy skryptów uprzyjemniających codzienne mailowanie.

Usługi Google cz. 1

Coraz więcej osób używa aplikacji webowych tej firmy. Znaczna część z nas ma na jej serwerach 
skrzynkę mailową. Prawie wszyscy używają na co dzień ich wyszukiwarki. O czym mówię? Rzecz jasna 
- o firmie Google.

Łukasz Olender

•  [1] http://tinyurl.com/2v6y9a
•  [2] http://bronikowski.com/13/#footnote_0_13
•  [3]  https://addons.mozilla.org/en-US/firefox/addon/

6076

•  [4] http://www.getgspace.com/
•  [5] http://www.blogger.com
•  [6] http://dropline.net/drivel/
•  [7] http://blogtk.sourceforge.net/
•  [8] http://www.scribefire.com
•  [9] http://www.google.com/talk/
•  [10] http://minio.komunikatory.pl/tuty/gg2jab/
•  [11] http://desktop.google.com/linux/

W sieci

background image

rozwiązania

Usługi Google cz. 1

24

maj 2008

rozwiązania

Usługi Google cz. 1

25

www.lpmagazine.org

Gdy dostaniesz maila

Pierwszą z trzech grup, na które podzieliłem pro-
gramy testowane w tym punkcie są niewielkie 
aplikacje do powiadamiania o nowych mailach. 
Generalnie  wszystkie  są  proste  w  obsłudze  i 
spełniają tę samą funkcję - powiadamiania użyt-
kownika  na  bieżąco  o  przychodzących  wiado-
mościach. Różnią się formą przekazu, poczyna-
jąc od najprostszych, takich jak skrypt do Con-
ky a kończąc na programach typu CheckGma-
il, które oprócz informacji o nowym mailu wy-
świetlają również jego temat, nadawcę i począ-
tek treści. Ze swojej strony mogę polecić wła-
śnie CheckGmail, który wydaje się być progra-
mem najbardziej dopracowanym ze wszystkich 
wymienionych w tabeli. Jego, sądząc po nazwie, 
odpowiednik  dla  KDE  KCheckGmail  niestety 
nie jest już taki dobry. Osoby ceniące sobie mini-
malizm z pewnością będą zadowolone ze skryp-
tu gmail.py, który może być wykorzystany wraz 
z programem Conky czy w samej konsoli.

Drugą  grupą  są  programy  pocztowe.  Na 

chwilę  obecną  najpopularniejsze  z  nich,  takie 
jak  Kmail, Thunderbird,  Evolution  czy  konso-
lowy Mutt (patrz link [1] oraz [2]) pozwalają na 
sprawne  korzystanie  z  poczty  Google.  Jednak 
aby było to możliwe, niezbędne jest ustawienie 
kilku  specyficznych  dla  Gmaila  opcji.  Instruk-
taż krok po kroku jak to zrobić na przykładzie 
Thunderbirda znajduje się w podpunkcie Gmail 
i Thunderbird. W pozostałych programach mo-
żemy zrobić to podobnie - nazwy odpowiednich 
opcji jak i ich położenie niewiele się różnią. 

Dodatki

Ostatnią grupą są programy, które nie zmieści-
ły się w powyższych kategoriach. Zaliczyć do 
niej można plugin do Firefoksa o nazwie Bet-
ter Gmail [3]. Jest to zbiór najpopularniejszych 
skryptów  Greasemonkey  dodających  szereg 
nowych  funkcji  do  podstawowego  interfejsu 
Gmaila. Z ciekawszych można wyróżnić m.in.

•  wyświetlanie  ikonek  przy  tematach  maili 

symbolizujących rodzaj załączników;

•  wymuszanie bezpiecznego połączenia;
•  wybór  nowych,  graficznych  tematów 

zmieniających wygląd interfejsu;

•  wyświetlanie informacji o nadawcy po na-

jechaniu kursorem na temat maila.

Better Gmail jest rozwijany w dwóch gałęziach 
nazwanych odpowiednio Better Gmail oraz Bet-
ter Gmail 2. Pierwsza dotyczy starej wersji inter-
fejsu oraz działa bezproblemowo z polską wer-
sją językową Gmaila. Druga działa tylko z no-
wą (obecną od końca października 2007 w an-
gielskim  Gmailu)  wersją  interfejsu.  Które  roz-
wiązanie polecam? Zdecydowanie Better Gmail 

2 i Gmail po angielsku. Program ten zawiera sze-
reg nowych skryptów oraz jest szybciej rozwija-
ny. Przełączenie się polecam nie tylko ze wzglę-
du  na  ten  plugin  -  angielski  (US)  interfejs  jest 
pierwszym, do którego Google wprowadza nowe 
zmiany. Innymi słowy każda nowa funkcja doda-
na do Gmaila najpierw pojawia się w tej wersji 
językowej a dopiero po czasie w następnych.

Drugim przydatnym pluginem do Firefok-

sa jest Gspace [4]. Pozwala on w prosty sposób 
wykorzystać  ogromną  pojemność  Gmaila  do 
przechowywania plików. Jest to doskonała al-
ternatywa dla osób, które wciąż by przechować 
jakiś plik wysyłają maila z nim do samych sie-
bie. Z racji, że Gmail na chwilę obecną oferu-
je ponad 6,7GB miejsca, Gspace może z powo-
dzeniem być także alternatywą dla usług typu 

dysk internetowy. Problemem jest jednak ogra-
niczenie wielkości wysyłanych plików do war-
tości nieco mniejszej niż maksymalna wielkość 
załącznika (20MB), co powoduje, że w przy-
padku większych plików będziemy musieli po-
dzielić je na części (np. za pomocą kArchivera). 
No cóż - nie ma róży bez kolców. Następnym 
problemem jest to, że w rzeczywistości każdy 
plik wysłany na serwer przy użyciu Gspace tak 
naprawdę jest... mailem z załącznikiem. Łatwo 
policzyć, że dzieląc i wysyłając plik o rozmia-
rze 200MB w naszej skrzynce odbiorczej poja-
wi się aż 11 nowych wiadomości. Wprowadza 
to dość duży zamęt, ale można sobie z tym po-
radzić przygotowując specjalny filtr, który każ-
dą  wiadomość  z  Gspace  automatycznie  prze-
niesie do archiwum. Jak to zrobić? 

Rysunek 1. 

Gmail Better z tematem Grays and Blues

Rysunek 2. 

Desktop i Opera

background image

26

rozwiązania

Usługi Google cz. 1

maj 2008

27

rozwiązania

Usługi Google cz. 1

www.lpmagazine.org

•  Po zalogowaniu się do Gmaila klikamy na 

odnośnik podpisany jako Nowy filtr.

•  W polach Od i Do wpisujemy nasz pełen 

adres mailowy oraz znaki 

d$

 w polu ozna-

czonym  jako  Temat.  Następnie  klikamy 
przycisk Następny krok.

•  Po załadowaniu się strony, zaznaczamy po-

le  Pomiń  folder  Odebrane  (Archiwizuj)
Opcjonalnie  możemy  również  dodać  od-
powiednią etykietę dla wszystkich mailów 
z Gspace. 

•  Ostatnim krokiem jest kliknięcie w przycisk 

Nowy filtr. Od tej chwili maile z Gspace nie 
będą  pokazywane  w  skrzynce  odbiorczej. 
Zastosowanie  filtru  powoduje  również,  że 
w momentach wysyłania plików, programy 
powiadamiające o mailach nie będą sygna-
lizowały odebrania nowych wiadomości.

Gmail i Thunderbird

Korzystając z Thunderbirda pod Windows, mo-
żemy zauważyć, że posiada on opcję automa-
tycznego konfigurowania Gmaila. Niestety nie 
występują one w wersji wydanej pod Linuksa 
(jak również w wolnym odpowiedniku Icedo-
ve), co oznacza że będziemy się musieli trochę 
napracować, aby Thunderbird mógł odbierać i 
wysyłać maile. Na szczęście nie jest to trudne, 
a zdobyta wiedza pozwoli nam w podobny spo-
sób konfigurować praktycznie wszystkie klien-
ty pocztowe pod kątem Gmaila.

•  Na samym początku logujemy się do inter-

fejsu Gmaila oraz przechodzimy w Usta-
wienia 
a następnie na zakładkę Przekazy-
wanie  i  POP/IMAP.
  Zaznaczamy  Włącz 
POP  dla  wszystkich  wiadomości  
bądź 
Uaktywnij POP tylko dla poczty otrzyma-
nej od tego momentu 
oraz decydujemy, co 
będzie się działo z wiadomościami pobra-
nymi przy użyciu programów.

•  Otwieramy  Thunderbirda  i  z  menu  Edy-

cja wybieramy Konfiguracja kont. W no-
wo powstałym oknie klikamy na przycisk 
Nowe Konto.

•  Otworzy  nam  się  kreator  tworzenia  no-

wego  konta.  Kroki  1,  2  oraz  4  są  pro-
ste  do  przejścia, pola są  dobrze  opisane. 
Trzecie  uzupełniamy  zgodnie  z  Rysun-
kiem 3. W ostatnim, czwartym po upew-
nieniu się, że wpisane przez nas informa-
cje są poprawne rysunek 4. (analogicznie 
do Rysunku klikamy na Zakończ. 

•  W oknie Konfiguracji kont (które powin-

no  być  cały  czas  obecne)  z  listy  po  le-
wej  wybieramy  Konfiguracja  serwera  i 

wszystkie  pola  uzupełniamy  odpowied-
nio do rysunku 5.

•  Z tej samej listy wybieramy Serwer pocz-

ty wychodzącej (SMTP). Klikamy na przy-
cisk  Edytuj.  Nowe  okno  uzupełniamy 
zgodnie z rys. 6.

Desktop

Dnia  14  września  2004  roku  światło  dzien-
ne ujrzała pierwsza wersja programu Google 

Tabela 1. 

Spis aplikacji powiadamiających o nowych mailach

Nazwa

Rodzaj

Środowisko działania Strona www

CheckGmail

Program Tacka systemowa 

(Gnome)

http://checkgmail.sourceforge.net/

Gmail Notifier

Plugin

Firefox

https://addons.mozilla.org/en-US/firefox/addon/173

Gmail Screenlet Plugin

Screenlets

http://gnome-look.org/content/
show.php?content=65455

Gmail.py

Skrypt

Conky/Konsola

http://ubuntuforums.org/
showthread.php?t=631157

KCheckGmail

Program Tacka systemowa (KDE) http://kcheckgmail.sourceforge.net/

Tabela 2. 

Spis popularnych klientów Jabbera działających z Google Talk

Nazwa

Obsługa MUC

OpenSSL/PGP/
Proxy

Obsługa Jingle

Przeglądarka usług (in-
stalacja transportów)

2

Dodatkowe protokoły

Strona www

Gajim

Jest

Tak/Tak/Tak

Eksperymentalna Częściowa

3

Brak

gajim.org

Jabbin

Jest

Tak/Tak/Tak

Jest

Jest

Brak

www.jabbin.com

Kopete

Częściowa

1

Tak/Tak/Nie

Brak

Brak

m.in. AIM, ICQ, MSN, IRC, Gadu-Gadu

kopete.kde.org

Pidgin

Jest

Tak/Tak/Tak

Brak

Brak

m.in. ICQ, IRC, MSN, AOL, Gadu-Gadu

www.pidgin.im

Psi

Jest

Tak/Tak/Tak

Brak

Jest

Brak

psi-im.org

1

 Według informacji producenta.

2

 Brak opcji instalowania transportów nie oznacza niemożności korzystania z nich na danym kliencie. Jeżeli zależy nam na jakimś transporcie, a do gustu 

przypadł nam na przykład Pidgin, procesu rejestracji możemy dokonać z poziomu innego klienta, np. Psi.

3

 Występowały problemy z rejestracją niektórych transportów.

Rysunek 3 . 

Rysunek 4. 

Rysunek 5. 

Rysunek 6. 

background image

26

rozwiązania

Usługi Google cz. 1

maj 2008

27

rozwiązania

Usługi Google cz. 1

www.lpmagazine.org

Desktop. W założeniu jest to program, który 
pozwala nam w prosty sposób przeszukać za-
wartość  komputera.  Z  czasem  zaczęto  doda-
wać  nowe  funkcje,  a  obecnie  w  najszybciej 
rozwijanej wersji pod Windows Desktop ofe-
ruje oprócz szukania między innymi także si-
debar  wyświetlający  zwykle  po  prawej  stro-
nie ekranu różne informacje. Długo przyszło 
użytkownikom nie korzystającym z Windows 
czekać  na  wydanie  programu  pod  ich  syste-
my - Desktop dla Mac OS X został wydany w 
kwietniu 2007 roku. Wersja pod Linuksa zo-
stała udostępniona dwa miesiące później, nie-
stety,  bez  wspomnianego  sidebara.  Podobnie 
jak windowsowy pierwowzór jest ona narzę-
dziem  indeksującym  zasoby  lokalnych  sys-
temów  plików  i  pozwalającym  na  łatwe  ich 
przeszukiwanie.  Co  ważne,  program  ten  nie 
szuka  tylko  w  nazwach  ale  również  m.in.  w 
samych plikach tekstowych, dokumentach Of-
fice  oraz  OpenOffice,  plikach  PDF,  historii 
odwiedzanych stron www, a także w mailach 
(Gmail oraz Thunderbird) czy archiwach zip. 
Jego zasada działania opiera się na nieustan-
nym indeksowaniu naszych plików i tworze-
niu  bazy  danych  z  wszelkimi  informacjami, 
które mogą być podczas szukania przydatne. 
Dzięki temu sam proces szukania jest niepo-
równywalnie szybszy niż standardowe wyszu-
kiwania, chociażby programem find.

Instalacja i obsługa

Google  Desktop  możemy  pobrać  ze  strony 
[11]. Instalacja programu jest prosta, Desktop 
rozprowadzany jest w formie paczek dla róż-
nych dystrybucji. Domyślnie instaluje się on 
w  katalogu  /opt/google/desktop,  a  wywołać 
możemy go poleceniem /opt/google/desktop/
bin/gdlinux
. Obsługa Desktop odbywa się za 
pomocą trzech elementów - ikonki w zasob-
niku systemowym wraz z podręcznym menu, 
okna Quick Search Box oraz właściwego in-
terfejsu  dostępnego  w  przeglądarce  Firefox. 
Przypomina  on  do  złudzenia  wyszukiwarkę 
Google, co z pewnością pomaga nowym użyt-
kownikom odnaleźć się w programie, ale taki 
interfejs zamknięty w przeglądarce na dłuższą 
metę jest niezbyt praktyczny z dwóch powo-
dów. Po pierwsze: Desktop domyślnie współ-
pracuje z Firefoksem i tylko z nim. Jego wol-
ny klon Iceweasel jest obsługiwany, ale żad-
na  inna  przeglądarka  już  nie  (przynajmniej 
bez stosowania żadnych sztuczek - patrz ram-
ka 3). Po drugie: program dziwnie się zacho-
wuje, gdy klikniemy na niektóre wyniki wy-
szukiwania - w przypadku folderów wyświe-
tla on stronę identyczną, jaka towarzyszy nam 
przy przeglądaniu zasobów FTP, a w przypad-
ku plików - okienko Firefoksa służące do po-

bierania  ich.  Teoretycznie  można  wybrać  w 
nim  aplikację,  którą  otworzymy  dany  plik 
oraz  zaznaczyć  opcję  Zapamiętaj  tę  decy-
zje dla wszystkich plików tego typu
, ale takie 
rozwiązanie może nie być wygodne podczas 
przeglądania stron www. Z wad należy jesz-

cze  wymienić  rozmiar  katalogu  ~/.google/
desktop
, który zawiera między innymi indeks 
wyszukanych  plików.  W  przypadku  więk-
szych  indeksowanych  dysków  może  zajmo-
wać  on  nawet  kilkaset  megabajtów!  Na  sa-
mych minusach na szczęście się nie kończy, 

O ile rozszerzenia Better Gmail oraz same skrypty Greasemonkey cieszą się pozytywną 
opinią Google i wsparciem ze strony firmy, tak narzędzia typu Gspace, Gmail Drive czy 
GmailFS leżą na granicy legalności. I choć stanowisko Google w tej sprawie nie jest do 
końca znane, w Internecie krążą pogłoski o tym, że konta używane wraz z tego typu pro-
gramami mogą być blokowane. W rzeczywistości chodzi o blokadę 24. godzinną, która mo-
że wystąpić po przekroczeniu dziennego określonego transferu, o czym zresztą wspomina-
ją sami autorzy Gspace na stronie pluginu.

Gspace – legalność

Przygotowując tę część artykułu miałem w planach opisanie programu GmailFS, który po-
zwala na montowanie zasobów Gmail tak, jakby był to lokalny system plików. Niestety, po-
mimo szczerych chęci najzwyczajniej nie udało się go uruchomić na trzech testowych kom-
puterach (Debian, Ubuntu oraz Mandriva) pomimo, że wszystkie zależności były spełnione. 
No cóż - pozostaje nam czekać na nową wersje, która być może będzie prawidłowo dzia-
łać z wszystkimi nowymi dystrybucjami.

GmailFS?

Dla  wielu  osób  sporym  mankamentem  jest  to,  że  Desktop  potrafi  współpracować  jedy-
nie z Firefoksem. Okazuje się jednak, że przy odrobinie chęci można zmusić go do dzia-
łania także z innymi przeglądarkami. Testowane Opera, Konqueror, Galeon oraz Epipha-
ny nie sprawiły większych problemów. Minusem jest to, że Desktop nie integruje wyszuki-
warki Google z samym sobą na wymienionych browserach. Również wywoływanie progra-
mu działa różnie - Opera wyświetla wyszukiwanie zastępując aktualną stronę, Konqueror i 
Epiphany w nowym oknie a Galeon w nowej zakładce (tak jak w Firefoksie). Ale co ważne, 
Konqueror jako, że jest jednocześnie menadżerem plików zdawał się być bardziej wygod-
ny w niektórych działaniach niż sam Firefox! Pytanie brzmi więc: jak sprawić, by Desktop 
otwierał się w innych przeglądarkach? Musimy jedynie usunąć z katalogu /usr/bin plik fire-
fox
 (bądź jeśli nie zadziała - iceweasel), a w jego miejsce wstawić dowiązanie symboliczne 
do wybranej przeglądarki. Dla Opery wyglądać to będzie mniej więcej tak:

# cd /usr/bin

# mv iceweasel iceweasel.backup

# ln -s opera iceweasel

Inne przeglądarki

Możliwość pisania z użytkownikami sieci Gadu-Gadu poprzez Jabbera wydaje się być zna-
komitą alternatywą dla aplikacji typu Kadu. Należy wspomnieć jednak o istnieniu licznych 
wad,  z  których  chyba  najbardziej  doskwierają  brak  możliwości  prowadzenia  konferencji 
oraz przesyłania obrazów i plików. Również same transporty stanowią problem - ich awa-
ryjność jest duża, co w połączeniu z dość częstymi problemami z samych serwerów Ga-
du-Gadu może skutecznie utrudniać komunikację z użytkownikami tej sieci.

Transport Gadu-Gadu – wady

background image

28

rozwiązania

Usługi Google cz. 1

maj 2008

29

rozwiązania

Usługi Google cz. 1

www.lpmagazine.org

a program posiada ogromną zaletę, która jest 
w stanie pozwolić przymknąć oko na niektóre 
bolączki. Jest nią sam proces wyszukiwania, 
który trwa w najgorszym wypadku tylko kil-

ka sekund. Po tym czasie w przeglądarce uka-
zuje  się  przejrzysta  lista  wszystkich  znalezio-
nych rzeczy wraz z podziałem na typy plików. 
Następnym plusem jest to, że podczas normalnej 

biurowej pracy nie sposób zauważyć spowolnie-
nia komputera indeksowaniem plików. Co praw-
da trwa ono dość długo (statystycznie niecałe pół 
godziny na każdy gigabajt danych) powodując, 
że  najnowszych  plików  w  wynikach  wyszuki-
wania  po  prostu  nie  znajdziemy.  Na  szczęście 
zwykle szuka się dużo starszych plików. Zdarza-
ją się jednak wyjątki, więc musimy o tym pamię-
tać. Kolejną zaletą jest istnienie okna Quick Se-
arch Box
, o którym wspomniałem na początku. 
Z jego pomocą możemy szybko wyszukać inte-
resujące nas dane bez otwierania okna przeglą-
darki. Quick Search Box wywołujemy wciskając 
obydwa klawisze [ctrl].

Czy warto?

Myślę, że pomimo istnienia wielu innych tego 
typu  programów  (chociażby  świetny  Beagle), 
warto  dać  dziełu  Google  szanse.  Wyszukiwa-
nie rzeczywiście dokonuje się w tempie ekspre-
sowym, a Quick Search Box może być strzałem 
w dziesiątkę dla osób, które często zapominają o 
położeniach swoich plików. Jeżeli jednak, drogi 
Czytelniku,  posiadasz  obecnie  skonfigurowany 
program do odnajdywania zagubionych plików 
z którego jesteś w pełni zadowolony i nie masz 
czasu na eksperymentowanie, pozostań przy nim 
- Google Desktop nie stanowi żadnej rewolucji 
w dziedzinie wyszukiwania pod Linuksem.

Blogger

Następną  przetestowaną  pod  kątem  integra-
cji z linuksowym pulpitem usługą Google jest 
Blogger [5]. Jest to popularny serwis blogowy 
oferujący  1GB  pojemności  dyskowej.  Został 
on stworzony w roku 1999 przez firmę Pyra 
Labs, a następnie w roku 2003 wraz z nią zo-
stał przejęty przez Google. Oficjalnie nie ist-
nieje żaden program pozwalający na korzysta-
nie z niego inaczej, niż poprzez łączenie się ze 
stroną internetową. W sieci natomiast znajdu-
je  się  sporo  linuksowych  programów,  umoż-
liwiających nam pisanie wiadomości na blo-
ga  bez  włączania  przeglądarki.  Jak  wygląda 
ich współpraca z Bloggerem? Okazuje się, że 
wbrew pozorom wygląda różnie. Wszystkie z 
testowanych  programów  mają  odpowiednie 
opcje, które jednoznacznie wskazują na to, że 
jest on wspierany, jednak w praktyce nie wy-
gląda to tak różowo.

Blogowanie na pół gwizdka

Na pierwszy ogień poszły trzy popularne, two-
rzone  przy  użyciu  bibliotek  GTK  programy 
–  Drivel  [6],  BloGTK  [7]  oraz  aplet  Gnome-
Blog. Wspierają one masę różnorodnych syste-
mów  blogowych,  m.  in.  omawianego  Blogge-
ra. W przypadku Drivela możemy wybrać go z 
listy,  wpisać  nazwę  użytkownika,  hasło  i  cze-

Pomimo tego, że Desktop wyświetla swoje wyniki także, gdy korzystamy z wyszukiwarki 
Google (Rysunek 3.) oraz (po odblokowaniu opcji Advanced Features) wysyła informacje z 
naszego komputera wprost do twórców, to według ich zapewnień możemy spać spokojnie. 
Jakiekolwiek prywatne dane nie powinny opuścić naszego komputera. 

Desktop a prywatność użytkownika

Choć teoretycznie dodawanie tytułów z wykorzystaniem Drivela, BloGTK czy Gnome-Blog 
jest nie do wykonania, możemy posłużyć się poniższą wskazówką, by uzyskać coś, co wy-
glądać będzie identycznie. Aby to zrobić, musimy po prostu podglądnąć źródło naszego 
bloga i wyłuskać z niego znaczniki, pomiędzy którymi znajduje się nasz tytuł. Na większo-
ści szablonów jest to znacznik 

<h3 class="post-title">

 na początku oraz 

</h3>

 na koń-

cu tytułu. W oknie edycji posta należy teraz takimi znacznikami objąć żądany tekst. Pamię-
tajmy jednak, że tak sformatowany tekst nie stanie się samoistnie takim tytułem, jaki może-
my stworzyć za pomocą interfejsu Bloggera czy pluginu Scribe Fire. 

Sposób na tytuły?

O ile sam proces rejestracji tej usługi nie powinien sprawiać kłopotów komuś, kto na co 
dzień korzysta z Jabbera, o tyle pozostałe osoby mogą mieć problemy, szczególnie jeśli 
chodzi o importowanie kontaktów. Nie zawsze działa ono tak, jak powinno, jednak w sie-
ci istnieje kilka artykułów na ten temat opisujących krok po kroku przebieg rejestracji tego 
transportu. Ze swojej strony mogę polecić pracę Mirosława Zalewskiego znajdującą się na 
stronie [10]. 

Jak korzystać z transportu Gadu-Gadu?

Rysunek 7. 

Integracja ze stroną Google

background image

28

rozwiązania

Usługi Google cz. 1

maj 2008

29

rozwiązania

Usługi Google cz. 1

www.lpmagazine.org

kać na połączenie, które nigdy nie nastąpi. Pro-
blemem jest błędny adres serwera, który należy 
zmienić  na:  http://www.blogger.com/api/RPC2
Jako typ bloga, należy wybrać Blogger 1.0. Na-
leży  też  pamiętać,  że  nazwa  użytkownika  ma 
formę login@gmail.com. Po wprowadzeniu po-
wyższych ustawień możemy się połączyć i roz-
począć  pisanie  postów.  Podobnie  sytuacja  wy-
gląda w BloGTK - w oknie Account and Set-
tings  należy  wprowadzić  (oprócz  nazwy  użyt-
kownika i hasła) taki właśnie adres serwera. W 
przypadku Gnome Blog nie mamy możliwości 
jego zmiany, ale ten, który został wprowadzony 
przez twórców jest prawidłowy. Niestety, korzy-
stając z tych trzech programów nie będziemy w 
stanie nadawać tytułu naszym postom. Ta sytu-
acja spowodowana jest tym, że od pewnego cza-
su  Blogger  oferuje  nowy  interfejs  połączeń,  z 
wykorzystaniem  standardu Atom.  Wraz  z  nim 
pojawiły się problemy w funkcjonowaniu jego 
starszej wersji opartej na XML-RPC, którą wy-
korzystują  opisywane  programy.  I  choć  Drivel 
pozwala wybrać typ bloga Atom/Blogger 2.0, to 
niestety na chwilę obecną on po prostu nie dzia-
ła.  Na  szczęście  istnieje  alternatywa  -  jest  nią 
Scribe Fire, plugin do Firefoksa.

Scribe Fire z odsieczą

Program oferuje pełne wsparcie interfejsu Atom, 
a wraz z nim pełne wsparcie Bloggera. Funkcje 
niedostępne w poprzednio omawianych progra-
mach takie jak na przykład zapisywanie postów 
jako szkic, edycja tagów, czy tworzenie notatek 
są tutaj na porządku dziennym. Proces konfigu-
racji jest całkowicie automatyczny, zrealizowa-
ny w formie kreatora. Jedyne, co musimy znać, 
to login (z końcówką @gmail.com), hasło oraz 
adres bloga. Sam interfejs programu, choć bar-
dziej rozbudowany, jest intuicyjny. Cieszy moż-
liwość pracy w trybie WYSIWYG oraz w trybie 
edycji  źródła  HTML  i  tzn.  Live  Preview,  czy-
li podgląd ostatecznego wyglądu posta. Jedyną 
niedogodnością programu, na którą się napotka-
łem podczas testowania go jest to, że program 
do każdego nowo napisanego posta dodaje tekst 
Powered by Scribe Fire, co nie każdemu może 
się podobać. Również fakt, że jest to jedynie plu-
gin do Firefoksa może nieco denerwować - wy-
chodzi na to, że tak, czy inaczej musimy prze-
glądarkę  uruchomić.  Jednak  mając  do  wyboru 
Scribe Fire oraz standardowy interfejs Blogge-
ra, z czystym sumieniem polecam pierwsze roz-
wiązanie. Jest ono bardziej wygodne i na dłuższą 
metę szybsze, o czym z pewnością się przekona-
my ściągając program ze strony [8].

Google Talk

Google Talk jest tekstowym komunikatorem 
internetowym wraz z obsługą VoIP (poprzez 

Jingle).  Jego  powstanie  datujemy  na  sier-
pień 2005 roku. Od samego początku był on 
oparty na protokole Jabber/XMPP, a przeło-
mową datą w procesie jego ewolucji był 18 
stycznia 2006 roku, w którym Google otwo-
rzyło  się  na  resztę  serwerów  Jabbera.  Sam 
Talk występuje w czterech wersjach - osob-
nej, zintegrowanej z Gmailem, zintegrowa-
nej  z  stroną  iGoogle  oraz  w  wersji  flasho-
wej, dostępnej pod adresem [9] po kliknię-
ciu w link Launch Google Talk Gadget. W 
przypadku trzech ostatnich problemu z ko-
rzystaniem z nich pod Linuksem nie ma, ale 
nie każdy ma ochotę załączać przeglądarkę, 

by komunikować się ze znajomymi. Nieste-
ty, Google jak do tej pory nie wydało Talk 
na  systemy  inne  niż  Windows.  Jednak  nie 
jest to problem, bo jak wspomniałem, usłu-
ga ta opiera się na protokole Jabber/XMPP. 
Co za tym idzie, pozwala na łączenie się ze 
sobą  prawie  wszystkim  klientom  Jabbera. 
Wykaz najpopularniejszych za pomocą któ-
rych możemy korzystać z Talka znajduje się 
w tabeli nr. 2. 

Talk i Psi

Samo skonfigurowanie dowolnego z tych pro-
gramów jest stosunkowo proste, jednak wyma-

Rysunek 8. 

Scribe Fire w akcji

Rysunek 9. 

Gadu-Gadu w Gmailu

background image

30

rozwiązania

Usługi Google cz. 1

maj 2008

ga zwrócenia uwagi na niektóre opcje. Są one 
we wszystkich programach opisane identycznie 
bądź bardzo podobnie. Do przedstawienia spo-
sobu konfiguracji wybrałem Psi w wersji 0.11, 
którego używam na co dzień.

•  Uruchamiając  po  raz  pierwszy  Psi,  wy-

świetli  się  zapytanie,  czy  chcemy  utwo-
rzyć  nowe  konto,  bądź  skorzystać  z  ist-
niejącego. Jako, że rejestrując się chociaż-
by  w  Gmailu  stajemy  się  automatycznie 
użytkownikami  Talka,  wybieramy  opcję 
użycia istniejącego konta. Naszym oczom 
ukaże  się  okno  z  ustawieniami.  Może-
my  wywołać  je  także  klikając  z  główne-
go  okna  programu. W  tym  celu  wybiera-
my menu Ogólne, a z niego opcje Konfi-
guracja  Kon
t.  W  nowym  oknie  klikamy 
na Add, a po wpisaniu preferowanej przez 
nas nazwy konta, jeszcze raz na Add.

•  Po otwarciu się okna Account Properties

przechodzimy  do  zakładki  Account.  W 
polu  Jabber  ID  wpisujemy  naszą  nazwę 
użytkownika  (wraz  z  końcówką  @gma-
il.com
),  w  polu  Password  -  hasło.  Wedle 
potrzeb możemy zaznaczyć pozostałe, do-
stępne  w  tej  karcie  opcje.  Przechodzimy 
do zakładki Connection.

•  Tę  zakładkę  uzupełniamy  zgodnie  z  Ry-

sunkiem  6.  Jeżeli  podczas  ustawiania 
opcji Encrypt connections pojawi się nam 
komunikat  o  braku  odpowiedniej  wtycz-
ki, musimy ją zainstalować. Znajduje się 
ona  w  repozytoriach  dystrybucji,  a  po-
winniśmy  jej  szukać  pod  takimi  nazwa-
mi: libqca-tlsqca-tlslibqca-sslqca-ssl
W  Debianie  odnoszą  się  do  niej  pakiety 
libqca2-plugin-ossl oraz qca-tls (obydwa 
należy zainstalować).

Powyższy sposób konfiguracji może wyglądać 
nieco inaczej w starszych wersjach Psi oraz w 

innych klientach. Na szczęście we wszystkich 
tych wymienionych w tabeli jest to stosunko-
wo proste do zrobienia w oparciu o powyższy 
mini poradnik.

Transporty

Jak wspomniałem, w styczniu 2006 roku Go-
ogle wprowadziło możliwość połączeń z in-
nymi serwerami Jabbera. Oprócz komunika-
cji z innymi użytkownikami tej sieci pozwala 
to  na  stosowanie  popularnych  jabberowych 
transportów. Dla niewtajemniczonych, trans-
port jest usługą działającą po stronie serwe-
ra  i  oferującą  funkcje,  które  nie  zostały  za-
implementowane  w  standardowym  proto-
kole  Jabber/XMPP.  Zwykle  transporty  da-
ją  ich  użytkownikom  możliwość  połączeń 
z  użytkownikami  innych  sieci  (Gadu-Gadu, 
Tlen,  IRC,  ICQ  to  tylko  przykłady),  jednak 
ich funkcje są ograniczone jedynie wyobraź-
nią  twórców.  Rzeczą,  którą  warto  zauwa-
żyć jest to, że większość (jeśli nie wszyst-
kie) transportów znakomicie działa w we-
bowych wersjach Talka. Niewielkim nakła-
dem pracy możemy zatem stworzyć coś w 
rodzaju  Gadu-Gadu  zamkniętego  w  inter-
fejsie Gmaila! Jest to znakomite rozwiąza-
nie  dla  osób  często  korzystających  z  róż-
nych  komputerów,  bądź  mających  po  pro-
stu  zablokowane  połączenia  z  serwerami 
tej usługi na komputerze, na którym obec-
nie pracują. Innym interesującym transpor-
tem jest transport sms. Jest wiele jego ty-
pów,  a  sam  osobiście  korzystam  z  wer-
sji  przystosowanej  do  darmowej  skrzynki 
Orange Mbox. Pozwala on na wysyłanie 30 
smsów wprost z klienta Jabbera, tak jakby-
śmy pisali do danej osoby z naszego telefo-
nu komórkowego.

Aby rozpocząć korzystanie z dowolne-

go transportu, należy w oknie głównym Psi 
z menu Ogólne wybrać przeglądarkę usług. 
W polu Adres należy wpisać adres serwera, 
który oferuje transporty. Duży wybór róż-
norodnych  usług  ma  chrome.pl.  Po  dwu-
krotnym  kliknięciu  w  wybrany  transport 
przejdziemy  do  jego  konfiguracji,  która 
może wyglądać różnie - zależy to od trans-
portu, który wybraliśmy. 

  Greasemonkey - rozszerzenie dla przeglądarki Firefox, który umożliwia instalowanie 

skryptów napisanych w języku Javascript dokonujących zmian w stronach WWW.

  Conky - niewielki program wyświetlający na pulpicie różne informacje (np. o wykorzy-

stanych zasobach sprzętowych). 

  Atom - standard kanałów informacyjnych służący do wysyłania i odbierania wiadomo-

ści z Internetu. Obecnie coraz bardziej popularny. Powstał, by zastąpić RSS.

  XML-RPC - protokół wymiany danych przesyłanych w formacie XML przy użyciu zdal-

nego wywoływania procedury (RPC). Do połączeń wykorzystuje protokół HTTP.

  WYSIWYG - What You See Is What You Get – tryb pracy programu, w którym mate-

riał po opublikowaniu/wydrukowaniu będzie wyglądał identycznie bądź bardzo podob-
nie jak w chwili, w której go edytujemy.

  VoIP - technologia umożliwiająca przesyłanie dźwięków mowy za pomocą proto-

kołu IP.

  Jingle - rozszerzenie protokołu Jabber/XMPP dodające do niego możliwość o możli-

wość rozmów głosowych oraz komunikacji video.

  MUC - Multi-User Chat - część protokołu Jabber/XMPP odpowiadająca za konferencje.

Trudne pojęcia

Rysunek 11. 

Psi – okno instalacji transportów

Rysunek 10. 

Psi – okno instalacji transportów

Autor  zajmuje  się  Linuksem  od  4  lat  roz-
powszechniając go w lokalnych szkołach. 
Hobby  to  wszystkie  aspekty  związane  z 
Debianem oraz gra na klarnecie.
Kontakt z autorem: lukiasz@gmail.com

O autorze

background image

Jeśli nie możesz odczytać 

zawartości płyty CD/DVD, 

a nie jest ona uszkodzona 

mechanicznie, sprawdź ją na 

co najmniej dwóch napędach CD/DVD

5/2008

background image

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

32

maj 2008

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

33

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

C

hwilami  stwierdzenie  przynależności  urzą-
dzenia  elektronicznego  do  jednej  z  dwóch 
wymienionych  wyżej  kategorii  sprawia  mi 
niejakie  problemy.  Są  bowiem  urządzenia, 

na  których  instalacja  jakiegokolwiek  systemu  jest  pra-
wie niewykonalna. Jednak Google i własna wytrwałość 
w  poszukiwaniach  przekonują  mnie,  że  jest  to  jedynie 
kwestia umiejętności i uporu w dążeniu do celu – zain-
stalowania  Linuksa  na  jakimś  urządzeniu.  Właśnie  ta-
ka grupę urządzeń stanowią komputery z wbudowanym 
systemem.

O czym w ogóle piszę...

Tradycyjnie rzecz ujmując urządzenia z systemem wbu-
dowanym  to  komputery  szczególnego  przeznaczenia, 
których  funkcje  najczęściej  ograniczają  się  do  jedne-
go lub kilku zadań. Nie wdając się dalej w dyskusję na 
tematy techniczne, za przykład typowego urządzenia z 
systemem  wbudowanym  podam  odtwarzacz  muzyki  w 
formacie mp3. Jednak urządzenia z tej kategorii otacza-
ją  nas  w  znacznie  szerszym  zakresie,  chociażby  w  po-
staci  telefonów  komórkowych  (których  OS-y  coraz  to 

częściej wyrastają z ram definicji systemów wbudowa-
nych), fotograficznych aparatów cyfrowych czy w koń-
cu komputerów typu PDA.

Większość z powyższych urządzeń posiada mniej lub 

bardziej rozbudowane systemy operacyjne opracowane z 
myślą o konkretnej architekturze i konkretnych zadaniach, 
co  odpowiada  przytoczonej  wcześniej  definicji  systemu 
wbudowanego. Jak w takim razie ma się do tego Linux? 
Otóż, choć wcale sobie z tego nie zdajemy sprawy, bardzo 
wiele urządzeń jako OS wykorzystuje odpowiednio zmo-
dyfikowanego Linuksa. Dobrym przykładem są co raz to 
bardziej popularne w Polsce multimedialne telefony firmy 
Motorola z linii Razr 2 czy też część specjalnych urządzeń 
firmy  Nokia.  Również  niektóre  urządzenia  sieciowe,  jak 
routery, access pointy, czy firewalle posiadają wbudowa-
nego Linuksa. Jak więc widać zakres urządzeń, na których 
może pracować Linux jest ogromny.

PDA

Specjalną kategorią urządzeń z systemem wbudowanym są 
komputery typu PDA (z ang. Personal Digital Assistant). W 
odróżnieniu od przeciętnych urządzeń z systemem wbudo-

Linux na urządzeniach 

z wbudowanym 

systemem

Wśród moich znajomych znany jestem jako „zapaleniec linuksiarz”. Zasadniczo nie obrażam się na 
to stwierdzenie, gdyż faktycznie jestem „linuksiarzem”, więc na stwierdzenie prawdy nie mogę się 
gniewać... Czym to się objawia? W moim wydaniu bycie „linuksiarzem” polega na dzieleniu świata 
urządzeń elektrycznych i elektronicznych na dwie kategorie – tych, na których da się zainstalować 
Linuksa i tych, na których nie da się zainstalować Linuksa. Z tego prostego podziału wynika, że 
każdy komputer, na którym „nie da się postawić pingwina” zalicza się do tej samej grupy urządzeń co 
elektryczna szczoteczka do zębów. Chyba więc jestem „linuksiarzem”...

Grzegorz Madajczak

background image

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

32

maj 2008

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

33

www.lpmagazine.org

wanym, posiadają one potencjalnie  nieogra-
niczoną wielofunkcyjność poprzez stosowanie 
rozszerzeń zarówno w zakresie oprogramowa-
nia,  jak  i  sprzętu.  Z  typowymi  urządzeniami 
wbudowanymi łączy je cecha mniej lub bar-
dziej wyspecjalizowanego systemu operacyj-
nego zapisanego w pamięci typu NAND flash. 
Jest  kilka  systemów  operacyjnych  stosowa-
nych w komputerach typu PDA:

•   Windows Mobile (następca Pocket PC),
•   Symbian OS (powstały w wyniku rozwoju 

Psion, a później EPOC),

•   PalmOS (system opracowany dla produk-

tów firmy Palm),

•   Linux Embedded.

Oczywiście  fakt,  że  na  danym  urządze-
niu znajduje się system inny, niż Linux nie 

oznacza,  że  właśnie  Linux  nie  można  tam 
zainstalować. Należy spodziewać się jedy-
nie mniejszego lub większego kłopotu. Na-
tężenie problemów z tym związanych prze-
kłada  się  na  popularność  danego  urządze-
nia. Im konkretne PDA jest bardziej popu-
larne, tym większa jest szansa, że znajdzie 
się grono użytkowników, którzy zechcą wi-
dzieć na tym urządzeniu Linuksa, co oczy-
wiście  zmniejsza  liczbę  spodziewanych 
kłopotów.  Z  tego  też  względu  PDA  marki 
iPAQ  stanowią  najlepszą  bazę  do  posiada-
nia PDA działającego pod kontrolą Linuk-
sa. Dobrym przykładem jest niemalże kul-
towy HP iPAQ hx4700 (Rysunek 1), który 
może działać całkowicie pod kontrolą spe-
cjalnie  przygotowanej  dystrybucji  Linuksa 
– Familiar.

Jak uruchomić 

Linuksa na HP iPAQ hx4700

HP hx4700 jest jednym z PDA oryginalnie 
pracującym  pod  kontrolą  Microsoft  Win-
dows  Mobile  2003  Second  Edition,  które-
go  sprzęt  doczekał  się  całkowitego  wspar-
cia w systemie Linux. Oprócz dedykowanej 
dystrybucji  Familiar  powstały  różne  porty 
innych  dystrybucji,  w  tym  mojego  ulubio-
nego Gentoo.

Familiar  to  projekt,  którego  założeniem 

jest zbudowanie otwartego, opartego na Linuk-
sie, systemu operacyjnego przeznaczonego dla 
urządzeń typu PDA. Familiar, w zależności od 
wersji oraz konkretnego urządzenia, zbudowa-
ny jest na podstawie jądra z serii 2.4.x lub 2.6.x, 
a za interfejs użytkownika służy mu środowi-
sko Opie lub GPE.

Opie  (Open  Palmtop  Integrated  Envi-

ronment)  to  środowisko  graficznego  inter-
fejsu  użytkownika  będące  wolnym  portem 
środowiska Qtopia firmy Trolltech (znanej 
z  bibliotek  QT  wykorzystywanych  między 
innymi w KDE). Drugie środowisko – GPE 
(GNU  Palmtop  Environment)  w  przeci-

wieństwie do poprzedniego, korzystającego 
z grafiki bufora ramki (framebuffer) stosuje 
odpowiednio zmodyfikowany serwer X-ów 
oraz biblioteki GTK+, co potencjalnie daje 
duże możliwości rozwoju tego GUI. Porów-
nywanie  obu  środowisk  jest  bardzo  trudne 
ze  względu  na  szaloną  różnicę  pomiędzy 
obydwoma. To tak, jakby wywoływać dys-
kusję nad wyższością GNOME nad KDE i 
vice versa – spór bez końca...

Przed rozpoczęciem instalacji Familiar na 

hx4700  należy  dokonać  archiwizacji  wszyst-
kich  danych,  które  w  trakcie  procesu  instala-
cji nowego systemu zostaną bezpowrotnie stra-
cone. Należy również zapoznać się dokładnie z 
instrukcją postępowania, najlepiej z kilku źró-
deł. Generalnie proces ten należy do czynności 
średniozaawansowanych. Do jego przeprowa-
dzenia potrzebujemy:

•   kartę  pamięci  CompactFlash  o  rozmiarze 

min. 32 MB,

•   kartę  pamięci  Secure  Digital  o  rozmiarze 

min.  256  MB,  max.  1  GB  (uwaga  –  nie 
działaja nowe karty SDHC),

•   kabel do synchronizacji danych z kompu-

terem.

Następnie  pobieramy  ze  strony  http:
//ftp.handhelds.org/distributions/familiar/
releases/v0.8.4-rc3/feed/
  pakiet  z  dystry-
bucją  przeznaczony  dla  naszego  urządze-
nia  oraz  dla  jednego  wybranego  z  trzech 
środowisk  (boostrap  –  tylko  konsola, 
Opie  lub  GPE)  oraz  bootloader  ze  strony 
http://sdgsystems.com/pub/ipaq/hx4700/
starterkit/

Pierwszą  czynnością  jest  archiwizacja 

obecnej zawartości ROMu. W tym celu uru-
chamiamy powłokę bootloadera HTC (orygi-
nalnego bootloadera hx4700) poprzez jedno-
czesne wciśnięcie przycisków ContactsiTask 
oraz reset (przy użyciu rysika). Po pojawieniu 
się na ekranie znaku zachęty konsoli, podłą-
czamy urządzenie do portu USB w kompute-
rze, co spowoduje wyświetlenie się w górnej 
części ekranu iPAQa napisu USB zamiast Se-
rial. Jednocześnie w logach systemowych PC 

Listing 1. 

Logi po wykonaniu backupu ROM iPAQ hx4700

USB

>

 

d2s

SD

:

Waiting

 

for

 

card

 

insert

.........

CMD3

 

for

 

SD

it

'

s

 

OK

ready

 

to

 

get

 

RCA

 

from

 

response

.

SD

:

Detected

 

one

 

card

SD

:

ready

 

for

 

transfer

 

OK

Total

 

card

 

size

=

3

D680000e

=

0

SDCARDD2S

+

,

cStoragePlatformType

=

FF

*************************************************************************

**

Store

 

image

 

to

 

SD

/

MMC

 

card

 

successful

.

USB

>

Listing 2. 

Nieco zmieniony kod pliku konfiguracyj-

nego dla instalacji Linuksa na Palm Tungsten TX

#!/bin/sh

SWAP

=

linux

/

swapfs

ROOT

=

linux

/

rootfs

.

ext2

MODULES

=

linux

/

modules

.

squash

HOMEDIR

=

linux

/

home

.

ext2

MODPROBE

=

"palm_battery palmlcd_

border corgi_bl hci-uart"

Rysunek 1. 

HP iPAQ hx4700 – najlepiej wspiera-

ny PDA

background image

34

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

35

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

www.lpmagazine.org

powinniśmy  zobaczyć  pojawienie  się  nowe-
go urządzenia /dev/ttyUSB0. Dalsze postępo-
wanie  wymaga  uruchomienia  na  PC  progra-
mu minicom, służącego do komunikacji przez 
port  seryjny. W  sprawie  szczegółów  związa-
nych z instalacją i konfiguracją programu od-
syłam do dokumentacji systemowej. Po pod-
łączeniu  PDA  przez  USB  do  komputera  PC, 
uruchamiamy  program  minicom,  a  następnie 
po znaku zachęty USB> wpisujemy polecenie 
d2s uruchamiające proces archiwizacji ROM 
na karcie SD. Tak przygotowana karta posłu-
ży  nam  do  ewentualnego  odzyskania  Win-
dows Mobile, jeśli niesłusznie przyszłoby kie-
dyś nam to do głowy... Efektem działania tego 
polecenia będzie pojawianie się komunikatów 
jak na Listingu 1.

Następnym  krokiem  jest  wgranie 

uprzednio  pobranego  bootloadera  na  kartę 
SD  (inną  niż  ta  z  backupem  ROMu).  Do-
konujemy tego poprzez wgranie za pośred-
nikiem  czytnika  kart  SD  z  użyciem  pole-
cenia:

# dd if=bootldr.rom of=/dev/sda

Jeśli podłączona do systemu karta SD zgła-
sza  się  inaczej,  np.  jako  urządzenie  /dev/
sdb
,  odpowiednio  modyfikujemy  powyż-
sze polecenie. Kartę z wgranym bootloade-
rem wkładamy do slotu w naszym hx4700 i 
ponownie  uruchamiamy  konsolę  bootlode-
ra.  Następnie  wykonujemy  czynności  wy-
magane  w  trakcie  procesu  instalacji,  które 
w sumie sprowadzają się do kilkukrotnego 
zatwierdzania domyślnych opcji. 

Nadszedł  wreszcie  czas  na  właściwą  in-

stalację  systemu. W  tym  celu  na  miejsce  sta-
rego ROMu wgramy nową wersję, zawierającą 
dystrybucję Familiar. Uprzedzam, że nieodpo-
wiednie działania w trakcie tego procesu mogą 
wyrządzić wiele, wiele szkód. Przede wszyst-
kim musimy upewnić się, że karta CF, na którą 
wgramy plik dystrybucji, sformatowana jest ja-
ko FAT16. Najłatwiej dokonać tego formatując 
ją zawczasu z zastosowaniem naszego hx4700 
(jeszcze pod kontrolą Windowsa) lub stosując 
aparat cyfrowy obsługujący karty CF. W osta-
teczności możemy sformatować ją w systemie 
Linux stosując polecenie:

# mkfs.vfat /dev/sda1

W  powyższym  poleceniu  stosujemy  oczywi-
ście  odpowiednie  urządzenie  blokowe,  odpo-
wiadające podłączonej do systemu karcie CF. 
Następnie  kopiujemy  pliki  zawierające  jądro 
systemowe oraz obraz systemu jednej z wybra-
nych wersji. Resetujemy urządzenie, ponownie 
uruchamiamy konsolę bootloadera wciskając i 
trzymając przyciski Contacts oraz Inbox wraz z 
wciśnięciem reset. Pojawi się wtedy logo SDG 
Systems  oraz  komunikat  Scanning  for  ima-
ges...
. W  dalszej  kolejności  poproszeni  zosta-
niemy o wybranie pliku kontrolnego oraz dalej 
pliku z jądrem systemowym i plikiem obrazu 
systemu (root). PO chwili oczekiwania wgrany 
zostanie  obraz  jądra  systemowego  oraz  obraz 
głównego systemu. Zajmie to z pewnością kil-
ka minut... Po zakończeniu tego procesu i zre-
setowaniu PDA będziemy mogli cieszyć się Li-
nuksem na naszym hx4700.

Trzeba przyznać, że dystrybucja Fami-

liar na PDA HP iPAQ hx4700 działa rewe-
lacyjnie.  Nie  można  nic  zarzucić  zarów-
no  stabilności,  jak  i  szybkości  pracy  urzą-
dzenia. Dodatkowo znaczna liczba dostęp-
nych  pakietów  oraz  możliwość  samodziel-
nej ich kompilacji (przy zastosowaniu me-
chanizmu kompilacji skrośnej), sprawia, że 
na  pewno  będziemy  zadowoleni  z  nowe-
go  systemu.  Jedynym  problemem  jest  to, 
że  urządzenie  to  już  dawno  zostało  wyco-
fane  ze  sprzedaży,  a  ze  względu  na  wyso-
ką jakość i duże zainteresowanie, model ten 
trudno jest zdobyć.

Linux na 

urządzeniach Palm – czy warto?

Palm to dzisiejszych czasach synonim okre-
ślenia handheld PC, czy też palmotop, pod 
którym rozumiemy małe komputery trzyma-
ne w dłoni – tak popularne w ostatnich cza-
sach. W rzeczywistości nazwa Palm jest za-
strzeżonym  znakiem  towarowym,  należą-
cym  do  amerykańskiej  firmy  Palm  –  pro-
ducenta  bardzo  dobrych  palmtopów  z  linii 
Tungsten oraz znanych powszechnie pierw-
szych smartfonów – Treo. cechą charaktery-
styczną wszystkich tych urządzeń jest spe-
cyficzny  system  operacyjny  PalmOS,  któ-
rego  znaczenie  ostatnimi  czasy  podupadło, 
podobnie  jak  i  znaczenie  urządzeń  firmy 
Palm. Wszystko to stało się za sprawa pew-
nych nietrafnych posunięć firmy, które spra-
wiły, że Palmy stały się mniej konkurencyj-
ne w stosunku do prężnie rozwijającego się 
rynku PDA z Windows Mobile na pokładzie. 
Dodatkowo firma Palm poniosła straty zwią-
zane z nieudanym startem urządzenia Palm 
Foleo – zwiastuna mini-laptopów, z tym że 
z systemem Palm na pokładzie... Myślę, że 
w znacznym stopniu niepowodzenia Palma 
wynikają  z  zamkniętej  architektury  syste-
mu. Uwolnienie kodu PalmOS spowodowa-
łoby stworzenie samonakręcającego się śro-
dowiska  deweloperów  rozwijających  sys-
tem. Stało się jednak inaczej...

Rysunek 2. 

Palmtop Tungsten TX

Rysunek 3. 

Palmtop Tungsten TX z uruchomionym 

Linuxem – środowisko Opie

Rysunek 4. 

Sharp Zaurus SL-C100 z dystrybucją 

pdaXii13

background image

34

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

35

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

www.lpmagazine.org

Poza  smartfonami  Treo,  obecnie  w 

sprzedaży  są  dwa  handheld  PC  –  słabiut-
ki z22, oraz mocne maszyny Tungsten TX 
oraz LifeDrive (Palm z dyskiem MicroDri-
ve) – będące zwięczeniem umierającej linii 
Palmów z serii Tungsten (Rysunek 2). Dla-
czego piszę, że są to ostatni przedstawicie-
le gatunku? Model LifeDrive ma już kilka 
lat i nie zanosi się, aby coś w nim miało się 
zmienić,  a  w  porównaniu  do  TX  niewiele 
się zmienił. Z oferty widać, że firma Palm 
wycofuje się z tej branży walcząc o pozycję 
w branży smartfonów. 

Istnieje  kilka  niezależnych  projektów 

oferujących możliwość instalacji Linuksa na 
palmach. Najlepiej, co nie oznacza, że inten-
sywnie, rozwijają się dwa – instalacji Linuk-
sa na palmie Tungsten E (urządzenie niedo-
stępne w sprzedaży) oraz na palmie Tungsten 
TX  oraz  Palm  LiveDrive.  Obecnie  obydwa 
urządzenia nie są tak dobrze wspierane, jak 
opisywany  powyżej  iPAQ  hx4700.  Dotych-
czas nie udało się uruchomić wbudowanego 
WiFi, obsługa USB kuleje, a całość działa na 
podstawie obrazu systemu umieszczonego na 
karcie SD. Brak jest również wsparcia dla pa-
mięci NAND Palma. Pocieszające jest jednak 
to, że główny deweloper projektu – miska in-
tensywnie pracuje nad rozwojem dystrybucji. 
Są już pierwsze informacje o możliwym ste-
rowniku  dla  WiFi  oraz  sterownikach  obsłu-
gujących dysk NAND.

Instalacja  Linuksa  na  Tungstenie  TX  jest 

zdecydowanie prostsza, niż w przypadku opi-
sywanego  wcześniej  iPAQa.  Ze  strony  http:
//atrey.karlin.mff.cuni.cz/~miska/
  pobieramy 
pliki:

•   Palm TX kernel package (tx-kernel.tgz 

lub tx-hires-kernel.tgz),

•   Opie  root  in  ext2  (opie-rootfs-20071001-

ext2.tgz),

•   Misc  package  –  swap  and  separate  home 

partition (misc.tgz).

W  większości  przypadków  domyślna  kon-
figuracja  zapisana  w  pliku  linux.boot.cfg 
jest  wystarczająca.  Ja  jednak  zmieniłem 
ją  trochę,  aby  całość  była  bardziej  czytel-
na. Przede wszystkich zrobiłem trochę po-
rządków w nazwach plików: zmieniłem na-
zwę pliku z obrazem sytemu plików na ro-
otfs.ext2
,  nazwę  pliku  swap  na  swapfs.  Po 
porządkach i wprowadzeniu zmian do pliku 
linux.boot.cfg wyglądał on jak na Listingu 
2.  Plik  ten  powinien  znaleźć  się  na  karcie 
SD. Wszystkie wyżej opisywane pliki znaj-
dują  się  w  płycie  dołączonej  do  czasopi-
sma, w folderze LinuxEmbedded, w postaci 
archiwum  (PalmLinux.tar.bz2),  które  nale-
ży rozpakować na pustej karcie SD.

Po  włożeniu  karty  do  Palma  należy 

uruchomić  program  cocoboot.  Zatwierdza-
my  domyślne  opcje  RAM-dysku,  po  czym 
Linux  bootuje.  Należy  uzbroić  się  w  cier-
pliwość, gdyż proces ten trwa kilka chwil. 
Po uruchomieniu się środowiska graficzne-
go  należy  dokonać  kalibracji  ekranu  doty-
kowego. Na tym kończy się proces urucha-
miania systemu (Rysunek 3).

Tak  przygotowana  dystrybucja  pracu-

je w pamięci Palma, korzystając z systemu 
plików zapisanego na karcie SD. Jak wcze-
śniej  napisałem,  nie  ma  możliwości  mo-
dyfikacji  zawartości  pamięci  NAND  Pal-
ma, więc zgromadzonym tam danym teore-
tycznie nic nie powinno się stać, lecz róż-
nie  to  bywa.  Palmtop  pod  kontrolą  Linuk-
sa pracuje stabilnie i wydajnie. Liczne pro-
gramy wchodzące w skład środowiska Opie 
oraz możliwość rozbudowy o nowe progra-
my  sprawia,  że  jest  to  dobra  propozycja 
dla  osób  które  chcą  mieć  wszędzie  Linuk-
sa – od zegarka do samochodu. Jednak brak 
obsługi WiFi oraz konieczność pracy na ob-
razie z kart SD sprawia, że Linux na Tung-
stenie TX nie nadaje się do codziennych za-
stosowań. Myślę jednak, że intensywne pra-
ce trwające w ramach projektu Hack&Dev 
spowodują, że w niedługim czasie Palm TX 
i  Palm  LiveDrive  będą  kolejnymi  w  pełni 

obsługiwanymi przez Linuksa palmtopami. 
Ja poczekam z przesiadką z PalmOS na Li-
nuksa w momencie, gdy będzie można ory-
ginalny system zastąpić Linuksem. 

Nie wszystko złoto, 

co się świeci – Sharp Zaurus

Dwa poprzednie rozwiązania zakładały in-
stalowanie  specjalnej  dystrybucji  Linuksa 
na  PDA,  które  pierwotnie  pracowały  pod 
kontrolą innego systemu operacyjnego. Pi-
sząc  o  Linuksie,  jako  systemie  wbudowa-
nym, nie sposób jest nie wspomnieć o pro-
dukcie firmy Sharp – Sharp Zaurus. Jest to 
szczególnego  rodzaju  PDA,  produkowany 
przez japońską firmę Sharp, pracujący pod 
kontrolą  specjalnie  przygotowanej  dystry-
bucji  Linuksa.  Środowiskiem  graficznym 
użytkownika  w  tym  systemie  była  Qtopia 
autorstwa  firmy  Trolltech.  Jednak  znacz-
na popularność Zaurusów w latach 90-tych 
przyczyniła  się  do  powstania  alternatyw-
nych rozwiązań – systemów operacyjnych: 
OpenZaurus, Sharp Cacko ROM, Ångström 
pdaXrom i wiele, wiele innych. Rozwój Za-
urusów  trwał  kilkanaście  lat,  lecz  obecnie 
firma Sharp całkowicie wycofała się z pro-
dukcji tych urządzeń. W Polsce Zaurusy są 
prawie niedostępne. Pojedyncze sztuki uda-
je się upolować na Ebay lub Amazon, lecz 
w wielu przypadkach są to starsze modele. 
Również cena Zaurusów jest dość wysoka, 
gdyż po przeliczeniu na złotówki sięga na-
wet kwot powyżej dwóch tysięcy.

Sharp  Zaurus  występuje  zasadniczo  w 

dwóch postaciach – z serii SL, w postaci kla-
sycznego  palma  oraz  SL-C  –  w  postaci  mi-
niaturowego  laptopa  –  ze  składaną  klawiatu-
rą  (C  od  clamshell).  Najlepszy  z  Zaurusów 
– SL-C3200 wyposażony jest w procesor Intel 
XScale PXA270 416MHz, wyświetlacz o roz-
dzielczości 640x480, 128 MB pamięci ROM, 
64 MB pamięci SDRAM oraz 6 GB dysk typu 
MicroDrive. Jeśli powyższą konfigurację uzu-
pełnimy o klawiaturę qwerty, sloty kart SD oraz 
CF,  uzyskujemy  całkiem  przyzwoity  sprzęt... 

Architektura ARM (Advanced RISC Machine, pierwotnie Acorn RISC Machine) to 32-bito-
wa architekura procesorów typu RISC. Różne wersje procesorów ARM są szeroko stoso-
wane w systemach wbudowanych i systemach o niskim poborze mocy, ze względu na ich 
energooszczędną architekturę. Obecnie najczęściej stosuje się procesory dwóch produ-
centów: DEC – StrongARM oraz Intel – XScale, który jest następcą StrongARM. Obydwa 
procesory cechuje bardzo niskie zużycie energii elektrycznej, np. StrongARM 233 MHz zu-
żywa zaledwie 1 W. Urządzenie pracujące pod kontrolą Windowsa Mobile częściej jed-
nak korzystają z procesorów w architekturze MIPS (Microprocessor without Interlocked Pi-
ped Stages
).

Architektura ARM i MIPS

Rysunek 5. 

Instalacja systemu na Zaurusie – etap 1: 

program narzędziowy

background image

36

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

37

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

www.lpmagazine.org

Dlaczego  więc  pomimo  znacznego  wsparcia 
ze  strony  środowiska  oraz  firmy  Sharp,  urzą-
dzenie to nie zrobiło światowej kariery? Trud-
no powiedzieć... Z pewnością przyczyniły się 
do  tego  pewne  niedociągnięcia  konstrukcyj-
ne, jak np. brak wbudowanych modułów WiFi 
czy Bluetooth. Oczywiście można rozbudować 
Zaurusa poprzez dodawanie mu peryferiów na 
karcie CF, czy poprzez podłączenie peryferiów 
na USB (Zaurusy SL-C1000 i nowsze posiada-
ją port micro-USB pracujący w trybie host oraz 

slave). Jednak nie każdy ma ochotę za każdym 
razem przekładać karty, gdy chce korzystać z 
WiFi,  czy  bluetooth.  Dla  mnie  Sharp  Zaurus 
to boczna, nieco błądząca linia ewolucji PDA 
z Linuksem na pokładzie. Jako Linuksiarz cie-
szę się z posiadania Zaurusa, lecz zdecydowa-
nie wygodniej pracuje mi się na Tungstenie TX 
z PalmOS. Jakie są tego przyczyny?

Przede  wszystkim  PalmOS  jest  nieco 

szybszy, niż Linux na Zaurusie. Wadą Zauru-
sów,  zwłaszcza  modeli  typu  Clamshell  jest 

ich waga (dwukrotnie większa w porównaniu 
do  Palma)  –  nie  są  to  więc  komputery  kie-
szonkowe. Kolejną wadą jest brak pełnej po-
lonizacji systemu – Linuksa w Zaurusie. Dla 
Palma  dostępne  są  komercyjne  polonizacje. 
które rozwiązują ten problem w sposób ide-
alny. Ponadto wybór oprogramowania, który 
wydawałby się pod Linuksem przeogromny, 
w  rzeczywistości  w  przypadku  Zaurusa  jest 
nieco ograniczony. Widoczne są też znaczą-
ce różnice pomiędzy poszczególnymi dystry-

Tabela 1. 

Porównanie najbardziej popularnych dystrybucji Linuksa dla platformy Sharp Zaurus

Dystrybu-
cja

Ją-
dro

Bootlo-
ader

GUI

Oprogramowanie

Znane błędy

Zalety

Adres www

Sharp 
ROM

Sharp 
NAND

Qtopia

Różne w zależności od mode-
lu, lecz zawsze PIM, pakiet biu-
rowy: wczesna wersja Hankom 
Word/Sheet, web: NetFront 3.1, 
Opera.

W niektórych modelach brak 
możliwości obsługi kart SD o 
rozmiarze większym niż 1GB. 
Brak mechanizmu USB Sto-
rage.

Szybkość, intu-
icyjność, bez-
problemowe i 
stabilne dzia-
łanie.

Cacko 
ROM  

Sharp 
NAND

Qtopia

W zależności, czy wersja Lite, 
czy Full, lecz zawsze wszystko 
to, co Sharp ROM oraz dodatko-
wo MPlayer z GUI Kinoma2.
Dzięki pakietowi X/Qt wszystkie 
programy dla Xfree.

Brak możliwości obsługi kart 
SD o rozmiarze większym niż 
1GB. Istnieje łatka rozwiązu-
jąca problem. Brak Xfree, ni-
ska stabilność i szybkość apli-
kacji uruchamianych przez 
X/qt. Brak mechanizmu USB 
Storage.

Zalety Shar-
pROM oraz do-
datkowo więk-
sze możliwości 
dzięki licznym 
poprawkom. 

Do niedawna www.cac-
ko.biz lecz ostatnio nie 
działa. Ostatnie wer-
sje dystrybucji dostęp-
ne pod adresem http:
//sharpromfeed.home.li-
nuxtogo.org/download/
cacko/rom1.23/

pdaXrom / 
pdaXii13

Sharp 
NAND

Xfree

Bogaty wybór oprogramowania  
dostępnego dla serwera X-ów 

W niektórych modelach proble-
my z zasypianiem i budzeniem 
się urządzenia. Często niesta-
bilna praca, brak możliwości 
budzenia się na żądanie opro-
gramowania (błędy APM). 

Bardzo dobre 
wsparcie środo-
wiska.
Liczne poprawki 
w pdaXii13.

http://
www.pdaxrom.org/

pdaXrom 
NG

2.6.x uboot

Xfree

Bogaty wybór oprogramowania  
dostępnego dla serwera X-ów 

Słaba jakość dźwięku, niesta-
bilna praca, brak mechanizmu 
USB Storage. Dystrybucja w 
fazie rozwojowej, problemy z 
instalacją bootloadera uboot.

Szybka, wy-
dajna i nowo-
czesna. Do-
bre wsparcie 
dla peryferiów 
dzięki kernelo-
wi 2.6.x

http://
www.pdaxrom.org/

OpenZau-
rus

2.4.x
lub 
2.6.x

Sharp 
NAND

Opie lub
GPE

Bogaty wybór oprogramowania  
dostępnego dla serwera X-ów 

Przestarzała dystrybucja, jej 
następcą jest Ångström

Pierwsza wolna 
alternatywa dla 
SharpROM.

http://
www.openzaurus.org/
wordpress/

Ångström

2.6.x Sharp 

NAND

Opie lub 
GPE

Bogaty wybór oprogramowania  
dostępnego dla serwera X-ów 

Praktycznie zerowe wsparcie 
środowiska, czasami przera-
dzające się w niechęć. Proble-
my z instalacją oprogramowa-
nia. Brak dokumentacji

Nowoczesna 
wszechstron-
na dystrybucja 
– baza dla in-
nych.

http://www.angstrom-di-
stribution.org/

Debian/
Zaurus

2.6.x uboot

Xfree

Bogaty wybór oprogramowania  
dostępnego dla serwera X-ów 

Znaczne wymagania, dzia-
ła tylko modelach z MicroDri-
ve lub na karcie SD/CF – min. 
1 GB.

Bardzo dobre 
wsparcie środo-
wiska. Liczne 
odmiany. Stabil-
na praca.

http://www.oesf.org/
index.php?title=Debian/
Zaurus

OpenBSD/
Zaurus

2.6.x Sahrp 

NAND

Xfree

Bogaty wybór oprogramowania  
dostępnego dla serwera X-ów 

Przeznaczona 
tylko dla modeli 
z MicroDrive.

http://www.openbsd.org/
zaurus.html

background image

36

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

37

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

www.lpmagazine.org

bucjami. Jedne z nich są w pewnych wzglę-
dach lepiej dopracowane, inne nieco gorzej. 
Nie ma dystrybucji z wszechmiar idealnej... 
Nie twierdzę, że PalmOS jest idealny, lecz z 
pewnością bardziej dopracowany.

Wydaje mi się jednak, że głównym pro-

blemem Zaurusa jest to, że nie wiadomo w 
sumie co to jest. Sharp odżegnywał się od 
nazwy  PDA,  określając  Zaurusy  mianem 
Personal  Mobile  Tool.  Zgadzam  się  w  zu-
pełności  z  takim  podejściem,  gdyż  Zaurus 
ze swoimi możliwościami wykracza daleko 
poza ramy zwykłego PDA, nie dorównując 
jednak nawet w najmniejszym stopniu dzi-
siejszym laptopom czy mini-laptopom. Dla-
tego  też  uważam  Zaurus  nie  zdobył  takiej 
popularności, jak iPAQ, czy inne klasyczne 
PDA, gdyż trudno było określić grupę doce-
lową, do której to urządzenie było adreso-
wane.  Mimo  wspomnianych  powyżej  wad 
warto zapoznać się z Zaurusem.

Osiołkowi w żłoby dano, 

w jednym owies, w drugim siano...

Wybierając  i  testując  dystrybucje  Linuksa 
pod  Sharpa  Zaurusa  tak  mniej  więcej  się 
czułem – jak ten osiołek. I to pachnie i to 
nęci...
 Moim problemem było to, że każda 
z  dystrybucji  zachowywała  się  nieco  ina-
czej,  miała  inne  właściwości,  inne  możli-
wości,  lecz  także  i  inne  wady. W  związku 
z tym trudno się na cokolwiek zdecydować. 
Mnie  osobiście  najbardziej  do  gustu  przy-
padły dwie dystrybucje: Cacko ROM, która 
to ostatnio zapadła się pod ziemię (zniknę-
ła witryna internetowa projektu) oraz pda-
Xrom,  a  szczególności  jej  połatana  wersja 
pdaXii13,  o  której  więcej  napiszę  w  dal-
szej  części  artykułu.  Więcej  informacji  o 
dostępnych  najbardziej  popularnych  dys-
trybucjach Linuksa przeznaczonych dla Za-
urusa  można  znaleźć  w  Tabeli  1.  Zawiera 
ona porównanie ośmiu najbardziej popular-
nych dystrybucji.

Flash i masz

Kupując Zaurusa nie jesteśmy skazani na dys-
trybucję  dostarczona  przez  producenta.  Musi-
my jednak zdać sobie sprawę z tego, że instala-
cja Linuksa na Zaurusie polega na flashowaniu 
pamięci typu NAND. Procedura ta nie jest spe-
cjalnie skomplikowana – nawet słabo zaawan-
sowany  użytkownik  jest  w  stanie  przeprowa-
dzić ją samodzielnie. Proces ten opiszę na przy-
kładzie instalacji dystrybucji pdaXii13 na mo-
delu SL-C1000. Na płycie dołączonej do cza-
sopisma znajduje się w archiwum pdaXii13po-
prawione.tar.bz2
,  zawierającą  nieco  zmodyfi-
kowana przeze mnie dystrybucję pdaXii13.

Pierwszą czynnością przed instalacją no-

wego Linuksa na Zaurusie jest jego zreseto-
wanie.  Przycisk  reset  znajduje  się  w  zagłę-
bieniu pod przykrywką baterii. Archiwum z 
płyty należy rozpakować na kartę SD lub CF, 
przy czym ta pierwsza nie może mieć więk-
szej pojemności niż 1 GB. Archiwum zawiera 
trzy pliki – narzędziowy updater.sh, obraz ją-
dra systemowego zImage.bin oraz obraz sys-
temu – initrd.bin. Wszystkie trzy są koniecz-
ne do przeprowadzenia procesu instalacji no-
wej dystrybucji. Po włożeniu karty SD/CF do 
sloty w Zaurusie uruchamiamy urządzenie w 
trybie narzędziowym, przez wspólne przyci-
śnięcie przycisków On/Off (z przodu obudo-
wy)  oraz  OK  z  klawiatury. Ważne  jest,  aby 
dokonać tego na zasilaniu bateryjnym – bez 
podłączenia do zasilacza sieciowego, który w 
późniejszym etapie jest niezbędny. Po starcie 
zobaczymy obraz jak na Rysunku 5. Krzacz-
ki widoczne na ekranie to nie błąd systemu 
powodujący  nieprawidłowe  wyświetlanie 
czcionek, lecz menu w języku japońskim. Na 
tym etapie należy koniecznie podłączyć ka-
bel  zasilający.  Brak  zewnętrznego  zasilania 
spowoduje, niemożność dalszego przeprowa-
dzenia procesu instalacji systemu.

Nie wdając się w szczegóły, wybieramy 

pozycję 4, odpowiadającą za nadpisanie sys-
temu obecnego w pamięci NAND. Spowodu-
je to otwarcie okna, jak na Rysunku 6. W za-
leżności od tego, czy pliki instalacyjne umie-
ściliśmy na karcie SD, czy na karcie CF, wy-
bieramy pozycję 1 lub 2. Pozycja 3 odpowia-
da poleceniu anuluj. Kolejny ekran, przedsta-
wiony na Rysunku 7, zawiera zapytanie, czy 
na pewno chcemy dokonać modyfikacji sys-
temu.  Wybieramy  oczywiście  przycisk  z  li-
terą  Y.  Po  chwili  system  ponownie  wystar-
tuje,  uruchamiając  program  pdaXii13  in-
staller
,  napisany  z  wykorzystaniem  biblio-
tek ncurses. Instalator składa się z menu za-
wierającego 7 pozycji. W trakcie opisywane-
go procesu instalacji na SL-C1000 ważne na-
rzędzia kryją się pod pozycją 2: NAND Flash 
Utils
. Po wybraniu pozycji 2 z menu główne-
go zobaczymy podmenu zawierające 4 kolej-
ne elementy:

•   Resize  root  partition  –  pozwalającą  na 

zmianę rozmiaru partycji głównej w obra-
zie systemowym;

•   Format user partition – formatującą party-

cję użytkownika;

•   Fix  loader  64MB  limit  –  instalująca  po-

prawkę do NAND, która pozwala na roz-
szerzenie  partycji  root  poza  limit  64  MB 
nałożony przez oryginalne oprogramowa-
nie Sharp.

•   Back  to  main  menu  –  powrót  do  menu 

głównego.

Pierwszą  czynnością,  jaką  musimy  zrobić 
przed  właściwym  procesem  instalacji,  jest 
nałożenie łatki z pozycji 3 menu. Po wyko-
naniu tej czynności niezbędne okaże się po-
nowne uruchomienie programu narzędziowe-
go NAND i instalatora wg schematu opisane-
go powyżej. Dalej wybieramy pozycję Resize 
root partition
, a w oknie dialogowym wpisu-
jemy nowy rozmiar partycji root. Maksymal-
nie może to być 121 MB (dla SL-C1000), a 
zalecane jest 58 MB. Ja jednak proponuję ca-
łą dostępną pamięć sformatować jako party-
cję root, co pozwoli nam efektywniej zarzą-
dzać tą niewielką pojemnością na instalację 
programów. Pliki użytkownika zawsze moż-
na zapisać na karcie SD lub CF zamiast mar-
nować cenne megabajty wewnętrznej pamię-
ci Zaurusa. Po rozszerzeniu partycji zostanie 
sformatowana partycja użytkownika (jeśli ta-
kowa istnieje), a następnie Zaurus  uruchomi 
się  ponownie. Aby  zainstalować  nowy  sys-
tem  kolejny  raz  uruchamiamy  program  na-
rzędziowy NAND oraz instalator, tym razem 
wybierając pozycję 3.: Install new ROM. Pro-
ces flashowania pamięci zajmie od kilku do 
kilkunastu minut, w zależności od wersji in-
stalowanego  systemu.  Im  większy  jest  plik 
obrazu  systemu,  tym  dłużej  to  trwa.  Po  za-
kończeniu procesu należy ponownie urucho-
mić Zaurusa, np. przez wybranie pozycji re-
boot
  z  menu  głównego  instalatora.  Kolejny 
restart  urządzenia  nastąpi  tym  razem  z  no-
wym systemem.

Rysunek 7. 

Instalacja systemu na Zaurusie – etap 3: 

potwierdzenie

Rysunek 6. 

Instalacja systemu na Zaurusie – etap 2: 

wybór źródła instalacji

background image

38

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

39

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

www.lpmagazine.org

A może coś nowszego?

Jak wynika z Tabeli 1, dystrybucja pdaXii13 
choć  ma  wiele  zalet,  posiada  także  i  wady. 
Z  pewnością  jedną  z  nich  jest  to,  że  wyko-
rzystuje jądro z nierozwijanej już linii 2.4.x. 
Wady tej pozbawiona jest deweloperska wer-
sja  systemu  pdaXrom  opatrzona  numerami 
od  1.1.0beta4  do  1.1.0r198.  Jednak  jak  za-
znaczyłem na samym początku, jest to wer-
sja  dystrybucji  ciągle  będąca  w  fazie  roz-
wojowej. W związku z tym należy spodzie-
wać się błędów i pewnych braków. Jednym 
z nich jest fatalna jakość dźwięku oferowana 
przez sterownik zawarty w jądrze użytym w 
dystrybucji.  W r198 nie działa również tryb 
storage mode dzięki któremu Zaurus zacho-
wuje się jak czytnik kart CD/CF. Pomimo to 
warto zainteresować się tą wersją dystrybu-
cji, gdyż określa ona kierunek, w jakim po-
dąża pdaXrom.

Opisywana  wersja  r198  cechuje  się 

między innymi nowym bootloaderem – U-
boot,  zastępującym  dotychczasowy  ofe-
rowany  przez  oryginalny  NAND.  Umoż-
liwia  on  między  innymi  start  systemu  nie 
tylko  z  pamięci  NAND,  lecz  także  z  me-
diów zewnętrznych, np. karty SD, czy CF, 
co  wcześniej  było  niemożliwe.  Bootloader 
U-boot wykorzystywany jest również przez 
część  dystrybucji  Debiana  instalowanych 
na karcie SD/CF. Choćby dlatego warto za-
interesować się tym bootloaderem. Ostrze-
gam jednak, że jego instalacja nie należy do 
najprostszych,  a  błąd  może  zakończyć  się 
trwałym  uszkodzeniem  urządzenia.  Dlate-
go  zanim  zabierzemy  się  do  instalacji  no-
wego  bootloadera,  należy  starannie,  kilku-
krotnie przeczytać zawarty poniżej opis te-
go procesu.

Jak (nie)zatopić U-BOOTa

U-boot to bootloader dostarczany w ramach 
projektu  pdaXrom,  który  w  przyszłości  ma 

zastąpić oryginalne oprogramowanie Zauru-
sa.  Jego  instalacja  wymaga  wcześniejsze-
go  wyczyszczenia  pamięci  NAND  a  dopie-
ro  później  właściwej  instalacji  oprogramo-
wania. Nieprzestrzeganie tej kolejności spo-
woduje poważny i trudny do usunięcia błąd 
systemu plików pamięci NAND.

Przed  przystąpieniem  do  jakichkolwiek 

prac  należy  przede  wszystkim  zachować 
wszystkie  krytyczne  dla  nas  dane  zapisane 
w Zaurusie, gdyż ulegną one nieodwracalne-
mu usunięciu. Należy również stworzyć bac-
kup własnego NAND, tak aby w razie niepo-
wodzenia mieć możliwość przywrócenia sys-
temu. W tym celu wyjmujemy baterię z Za-
urusa, przytrzymujemy na klawiaturze przy-
cisk  D  oraz  M,  a  następnie  podłączamy  za-
silacz.  Takie  postępowanie  uruchomi  menu 
serwisowe Zaurusa – coś w rodzaju progra-
mu konfiguracyjnego BIOS komputera klasy 
PC. Korzystając z klawiszy kursorów prawo 
/ lewo przechodzimy do trzeciego ekranu me-
nu, a następnie korzystając z klawiszy góra / 
dół wybieramy pozycję BACKUP RESTORE 
MENU
. Backup NAND w przypadku C1000 
będzie miał wielkość około 130 MB i zapi-
sać  można  go  na  karcie  SD  lub  CF.  Jednak 
doświadczenie oraz informacje znalezione na 
forach internetowych, wskazują, że dość czę-
sto  proces  ten  wykonywany  z  użyciem  kar-
ty SD nie udaje się – zdecydowanie pewniej-
sze są karty CF. Tak więc do slotu w szczy-
cie urządzenia należy włożyć kartę SD o po-
jemności  min.  256  MB,  a  następnie  z  wy-
świetlanego  menu  wybrać  pozycję  NAND 
Flash Back Up
. W ten sposób obraz NAND 
zostanie  zapisany  w  pliku  o  nazwie  SYST-
C1000.DBK. Plik ten może zostać wykorzy-
stany do przywrócenia systemu.

Gdy  już  wykonamy  kopię  zapasową 

NAND Flash możemy przystąpić do instala-
cji nowego bootloadera. W tym celu na trze-
ciej  karcie  menu  serwisowego  znajdujemy 

pozycję EXTRA MENU, a z podmenu wybie-
ramy NAND Flash Erase. Spowoduje to cał-
kowite wyczyszczenie pamięci NAND. Pod-
kreślam,  że  czynność  ta  jest  konieczna  dla 
prawidłowego  przebiegu  instalacji  nowego 
bootloadera.  Następnie  npobieramy  z  inter-
netu wersję bootloadera odpowiadającą wer-
sji instalowanego systemu (np. U-boot r198 
dla  pdaXrom  r198),  pliki  u-boot.bin,  upda-
ter.pro
updater.shemergenc.img oraz auto-
boot.sh
 rozpakowujemy z archiwum na kartę 
SD lub CF, którą umieszczamy w Zaurusie. 
Należy pamiętać, aby była to jedna z dwóch 
kart, nigdy dwie naraz, gdyż może spowodo-
wać  to  błąd  instalacji  bootloadera  U-boot. 
Następnie  trzymając  przyciski  C+D  podłą-
czamy kabel zasilający (przy wyjętej baterii), 
co  uruchomi  proces  instalacji  nowego  bo-
otloadera. Objawiać będzie się to zapaleniem 
się zielonej diody Zaurusa na czas około 20 
sek., a następnie jej zgaszeniem, co oznacza 
pomyślne zakończenie. Miganie żółtej diody 
oznacza, że proces instalacji U-boot nie po-
wiódł się. W tym celu, dla większej pewno-
ści, że nic się nie sanie, najlepiej jest ponow-
nie wyczyścić NAND (wg. opisu powyżej) a 
następnie  ponownie  podejść  do  procesu  in-
stalacji  U-boota.  Mimo,  że  powyższy  pro-
ces wydaje się być banalny, to często z nie-
wiadomych  przyczyn  coś  się  dzieje  i  insta-
lacja  bootloadera  nie  udaje  się.  Najczęstszą 
przyczyną niepowodzenia jest sam użytkow-
nik, a dokładniej rzecz ujmując – jego zbyt-
ni pośpiech, nie czytanie manuali. Tak też się 
ze mną stało, gdy po raz pierwszy instalowa-
łem  bootloadera  U-boot.  Nie  wyczyściwszy 
uprzednio NAND nadpisałem stare oprogra-
mowanie nowym, co spowodowało błąd lo-
giczny systemu plików NAND Flash. Bardzo 
długo trwało zanim znalazłem odpowiedź, co 
mam w tej sytuacji zrobić. Nie było bowiem 
możliwe odzyskanie NAND dzięki zapisane-
mu obrazowi. Pomogło dopiero sformatowa-

•   http://wservices.ch/~lucas/hx4700/ - opis instalacji Familiar na HP iPAQ hx4700
•   http://www.handhelds.org/moin/moin.cgi/HpIpaqHx4700HowtoInstallLinux – szczegółowy opis instalacji Familiar na HP iPAQ hx4700
•   http://familiar.handhelds.org/ - strona domowa dystrybucji Familiar
•   http://hackndev.com/ - portal poświęcony instalacji Linuksa na urządzeniach Palm
•   http://miska-hnd.blogspot.com/ - blog dewelopera rozwijającego dystrybucję Linuksa na Palm TX oraz Palm LiveDrive
•   http://www.pdaxrom.org/ - witryna dystrybucji pdaXrom
•   http://zaurus.daemons.gr/menaie/ - strona domowa głównego dewelopera dystrybucji pdaXrom, twórcy pdaXii13
•   http://zaurus.daemons.gr/menaie/mirror/jumbo/pdaxqtrom.html – strona poświęcona projektowi X/Qt
•   http://trolltech.com/products/qtopia/greenphone – strona projektu Qtopia Greenphone – środowiska Qt/Embedded przeznaczonego 

dla telefonów

•   http://alp.access-company.com/ - strona projekty Access Linux Platform

W Sieci

background image

38

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

39

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

www.lpmagazine.org

nie pamięci flash i przywrócenie systemu pli-
ków pamięci Flash dzięki narzędziom zawar-
tym w menu serwisowym.

Zakładam jednak, że każdy czytelnik te-

go  artykułu,  zgodnie  z  moją  radą  trzy  razy 
przeczytał  tekst  opisujący  kolejne  czynno-
ści instalacji, zanim zabrał się do pracy. Za-
kładam więc, że proces instalacji bootloadera 
powiódł się. Należy więc teraz na kartę SD / 
CF rozpakować pliki dystrybucji pdaXrom w 
wersji  1.1.0r198  (lub  innej  wybranej,  zgod-
nej  z  wersją  bootloadera):  autoboot.sh.  ro-
otfs.img
 oraz kernel.img. Następnie przytrzy-
mując przycisk OK podłączamy Zaurusa do 
prądu  lub  wkładamy  baterię.  Po  ok.  20  sek 
puszczamy przycisk OK, co spowoduje uru-
chomienie  systemu  awaryjnego  oraz  proce-
su  instalacji  nowego  systemu  na  podstawie 
informacji  zapisanych  w  pliku  autoboot.sh
Proces  ten  zakończy  się  restartem  systemu. 
Ponowne uruchomienie Zaurusa odbędzie się 
już z nowym systemem.

Jak  widać  z  powyższego  opisu  instalacja 

deweloperskiej  wersji  dystrybucji  pdaXrom 
nie dość, że jest pracochłonna, to naszpikowa-
na problemami jak przylądek Horn skałami, na 
których  łatwo  zatopić  naszego  Zaurusa.  Czy 
więc warto się interesować tą wersją? Myślę, 
że tak, gdyż, jak wcześniej napisałem, wyzna-
cza ona kierunek rozwoju tej dystrybucji. Po-
nadto sprawnie zainstalowany U-boot pozwo-
li  nam  wypłynąć  na  szerokie  wody  dystrybu-
cji Debian, uruchamianej w przypadku C1000 
z  karty  SD  /  CF,  co  jest  możliwe  tylko  dzię-
ki U-boot.

Jeśli  pdaXrom  r198  znudziłby  się  nam, 

lub  też  z  jakichkolwiek  innych  przyczyn 
chcielibyśmy  powrócić  do  pierwotnego 
oryginalnego  bootloadera,  należy  najpierw 
usunąć  z  pamięci  NAND  oprogramowanie 
U-boot,  a  dopiero  później  odzyskać  z  za-
wartość NAND z zapisanego obrazu. Odzy-
skiwanie przebiega podobnie do czyszczenia 
NAND.  Również  i  tym  razem  musimy  uru-
chomić urządzenie w trybie diagnostycznym, 
po czym przechodzimy do trzeciego ekranu, 
gdzie  wybieramy  pozycję  NAND  Restore. 
Oprogramowanie szuka obrazu NAND – naj-
pierw na karcie CF, a później na SD, po czym 
odzyskuje dane. Doświadczenie moje poka-
zuje,  że  dość  często  z  niewiadomych  przy-
czyn nie udaje się odzyskać NAND z obra-
zu zapisanego na karcie SD. Jeśli zdarzyło-
by się, że nie zapisaliśmy wcześniej obrazu 
NAND lub zapisany przez nas backup okazał 
się uszkodzony, zawsze możemy sięgnąć po 
backupy sporządzone przez innych użytkow-
ników  Zaurusa,  np.  ze  strony  firmy Trisoft: 
http://www.trisoft.de/ (dział downloads).

Całkiem ładne cacko

Cały  czas  twierdzę,  że  rosyjscy  programi-
ści  należą  do  elity  informatycznej.  Istnie-
je  na  to  wiele  dowodów,  jak  choćby  dys-
trybucja  Linuksa  o  nazwie  Cacko,  przezna-
czona  dla  wszystkich  modeli  Zaurusa.  Jak 
wcześniej  napisałem  dystrybucja  ta  cechu-
je się tym, że jest znacznie poprawioną wer-
sją oryginalnego ROMu dostarczanego przez 
Sharp. Zachowuje z nim pełną zgodność, do-
starczając  jednocześnie  wiele  dodatkowych 
elementów. Cacko zapewnia nam pełną funk-
cjonalność Zaurusa, stabilność pracy i szyb-
kość działania. Niestety wybór dodatkowego 
oprogramowania dla tej dystrybucji jest moc-
no ograniczony. Dzieje się tak za sprawą mię-
dzy innymi środowiska Qtopia, które podob-
nie, jak i Sharp ROM jest odpowiedzialne za 
GUI. Problem ten jednak można ominąć sto-
sując pakiet X/Qt.

Pakiet  X/Qt  to  paczka  *.ipk  do  instala-

cji  lub  w  najnowszej  wersji  obraz  w  forma-
cie  cramfs  lub  squashfs  do  zamontowania 
(XQtrom),  zawierający  wszystkie  biblioteki 
potrzebne  do  uruchomienia  programów  wy-
magających  serwera  Xfree.  Zasada  działania 
X/Qt jest prosta: w działającym systemie uru-
chomiona  zostaje  sesja  chroot  z  działającym 
serwerem  X-ów  oraz  oszczędnym  menadże-
rem okien Fluxbox. Przy użyciu X/Qt może-
my uruchomić prawie wszystkie programy z 
pdaXrom. Wadą  tego  rozwiązania  jest  to,  że 
programy  uruchamiane  przy  pomocy  X/Qt 
działają dużo, dużo wolniej niż w natywnym 
środowisku Xfree, czy samo Cacko. Dla przy-
kładu,  samo  uruchomienie  się  X/Qt  zajmuje 
około  2-3  min.,  a  uruchomienie edytora tek-
stu  Abiword  –  kolejne  2-3  minuty.  Urucho-
mienie  tego  samego  programu  w  pdaXii13 
zajmuje mniej niż 1 minutę... Sytuacje nieco 
poprawia dodanie pliku pamięci swap w Cac-
ko (min. 64 MB zgodnie z zaleceniami autora 
lecz ja sugeruję maksymalne dostępne w Cac-
ko  128  MB).  Nie  spodziewajmy  się  jednak 
zbyt wiele... Instalacja X/Qt jest nadzwyczaj 
prosta.  Ze  strony  projektu  (patrz  W  Sieci  na 

końcu artykułu) lub z płyty dołączonej do cza-
sopisma należy skopiować na kartę SD lub CF 
wybrane obrazy. Minimum musi to być pda-
XQtrom-base. Obraz zawierający aplikacje to 
pdaXQtrom-apps. Wszystkie lub wybrane ob-
razy kopiujemy w jedno miejsce, np. do jedne-
go folderu, a następnie z tej samej lokalizacji 
uruchamiamy  skrypt  pdaXQtrom-install.sh
Skrypt ten montuje obrazy, kopiuje i podlin-
kowuje  odpowiednie  biblioteki  do  naszego 
systemu. Aby nie musieć za każdym urucho-
mieniem  systemu  ponownie  ręcznie  monto-
wać  obrazów,  warto  jest  zainstalować  pakiet 
automonter-lite, który zrobi to za nas. Progra-
my zawarte w zainstalowanych obrazach zo-
staną zgromadzone w postaci osobnej zakład-
ki X/Qt. Możne je uruchomić poprzez kliknię-
cie  ikony  na  pulpicie,  wybranie  odpowied-
niej pozycji z menu lub uruchamiając z kon-
soli w postaci:

# xlauncher nazwa_aplikacji

Jeśli  coś  idzie  niezgodnie  z  naszymi  oczeki-
waniami, możemy uruchomić program w try-
bie debugowania:

# xlauncher -debug nazwa_aplikacji

W X/Qt została wbudowana również funkcja 
umożliwiająca  uruchamianie  aplikacji  bez 
wymagającej X-ów konieczności uruchamia-
nia całej sesji serwera Xfree.

# xlauncher -embed nazwa_aplikacji 

Ostrzegam jednak, że aplikacje uruchamiane w 
tym trybie, jeśli dadzą się w ogóle uruchomić, 
to i tak pracują mniej stabilnie, niż wywołane w 
sesji Xfree. Wydawałoby się, ze Cacko z X/Qt 
jest niemalże idealnym rozwiązaniem- stabil-
ne  i  dopracowane  środowisko  Qtopia  połą-
czone z bogactwem oprogramowania Xfree. 
Jest to jednak tylko złudzenie. Czekanie pięć 
minut na uruchomienie się aplikacji w X/Qt 
zdecydowanie  przekracza  moją  wytrzyma-

Większość urządzeń z wbudowany systemem stosuje pamięć typu flashs do przechowy-
wania danych. Dość często spotyka się sytuację braku rozdzielnej pamięci RAM i ROM. 
Z tego też względu na potrzeby systemów wbudowanych powstały specjalne systemy pli-
ków. Najczęściej używany jest JFFS2 (The Journalling Flash File System, version 2). Jego 
ograniczeniem jest maksymalny rozmiar do 128 MB. Innym systemem plików jest CramFS 
– skompresowany system plików tylko do odczytu, którego maksymalny rozmiar wyno-
si 256 MB. Lepszy stopień kompresji w porównaniu do dwóch porzednich oferuje system 
SquashFS – kolejnys system plików tylko do odczytu. Specjalnie dla pamięci typu NAND 
opracowano YAFFS2 (Yet Another Flash File System).

Systemy plików w Linux embedded

background image

40

Rozwiązania

Linux na urządzeniach z wbudowanym systemem

maj 2008

łość  psychiczną.  Natomiast  brak  nowocze-
snych programów dla Qtopii odstręcza mnie 
od Cacko, a nie ma nadziei na pojawienie się 
nowszej wersji dystrybucji, czy też nowszych 
programów,  ze  względu  na  brak  zaintereso-
wania głównego dewelopera Cacko dalszym 
rozwojem projektu. Poniekąd jest to związa-
ne z faktem małej wszechstronności dystry-
bucji – przeznaczona była ona na sprzęt który 
powoli odchodzi w zapomnienie. Dowodem 
na to jest prężnie rozwijająca się dystrybucja 
Ångström, która wspiera kilkanaście różnych 
platform.  Ta  dystrybucja  obecnie  uważana 
jest  za  przyszłość  OpenSource'owej  dystry-
bucji Linuksa wbudowanego.

Nokia & Linux

Nokia w 2005 roku wypuściła na rynek wtedy 
dość kontrowersyjny produkt – Nokia 770 In-
ternet Tablet. Wydawało się dość kontrower-
syjnym  podejściem  stworzenie  urządzenia, 
którego jedynym zadaniem miało być przeglą-
danie stron internetowych. Jednak Nokia po-
czyniła mądry krok, umieszczając we wnętrzu 
tego urządzenia odpowiednio zmodyfikowaną 
dystrybucję Linuksa. To zaś, jak można było 
spodziewać  się,  skończyło  się  stworzeniem 
wielu  alternatywnych  rozwiązań,  dystrybucji 
Linuksa przeznaczonych specjalnie dla Nokia 
770. Opracowano również liczne łatki, które 
rozszerzały możliwości oryginalnego systemu 
o funkcje, których istnienia deweloperom No-
kii nawet się nie śniło.

Tablet Nokia 770 jest kolejnym przykła-

dem na to, że nie nawet niezbyt trafiony pro-
dukt, bardzo nietypowy sprzęt dzięki Linuk-
sowi  znajdzie  grupę  zwolenników,  którzy 
zrobią  z  tym  produktem  coś  zupełnie  nie-
oczekiwanego.

Android – Google

jak drugi Microsoft?

Dotychczas opisywałem rozwiązania Linuksa 
wbudowanego,  przeznaczonego  na  konkret-
ne  platformy,  konkretne  modele  urządzeń.  Z 
jednej strony jest to dobre rozwiązanie, gdyż 
pozwala  optymalizować  software  pod  kątem 
konkretnego urządzenia, co daje lepsze efek-
ty, niż budowanie wszechstronnej dystrybucji. 
Jednak, jak pokazuje życie, a zwłaszcza żywot 
elektroniki, takie rozwiązanie ma krótkie no-
gi – wcześniej, czy później wywraca się (patrz 
przykład Cacko i   Ångström).

Google  Inc.  to  firma,  która  rocznie  no-

tuje  zyski  sięgające  trzech  miliardów  dola-
rów  nie  tylko  dzięki  powszechnie  używanej 
wyszukiwarce  internetowej,  lecz  także  dzię-
ki  wielu  innym  usługom  dodatkowym.  Go-
ogle Inc. już od dłuższego czasu przejawia za-

pędy mocno zbliżone do tego co czyni Micro-
soft, chcąc znaleźć się w coraz to nowych re-
gionach rynku, dotychczas mu obcych. Mimo, 
że na co dzień używam wyszukiwarki Google 
wraz z całą masą dodatków i jestem z niej za-
dowolony, to ta ekspansja zaczyna mnie lekko 
niepokoić. Pierwsze wzmianki o nowym tele-
fonie GooglePhone, które niczym różowe za-
jące rozpierzchły się po internecie, okazały się 
jedynie  pogłosem  plotki  prawdziwych  zamie-
rzeń potentata branży internetowej.  Niedawno 
Google  ogłosiło  zaistnienie  nowego  projektu 
– Android – otwartej, opartej na Linuksie, plat-
formy przeznaczonej na urządzenia typu smart-
phone. Celem projektu było stworzenie takiego 
systemu, aby zwolnic programistów z myślenia 
o  sterownikach,  kompatybilności  ze  sprzętem 
itp., tak aby mogli skupić się na tworzeniu apli-
kacji z użyciem API dostarczonego przez plat-
formę. API dostarcza narzędzi do łatwego i zin-
tegrowanego posługiwania się wszystkimi nor-
malnymi elementami smartphonu, czyli książki 
telefonicznej, usługi telefonowania, wbudowa-
nej kamery, czy też dostępu do internetu za po-
średnictwej smartphonu.

Aby  zachęcić  niezależnych  programi-

stów  do  pracy  –  stworzyć  społeczność  wo-
kół  projektu  -    Google  poczynił  dwa  kroki. 
Przede  wszystkim  wszystkie  elementy  pro-
jektu  – API,  emulator  i  kod  dostępne  są  na 
podstawie licencji OpenSource'owych – GPL 
i  LGPL.  Po  drugie  ogłosił  konkurs  na  naj-
lepszą aplikację napisaną dla platformy An-
droid.  Bardzo  mądre  posunięcie...  Jaki  jest 
stan platformy Android? Prace mają się cał-
kiem  dobrze.  W  internecie  dostępne  są  bo-
wiem pierwsze doniesienia na temat działają-
cych implementacji tego systemu na działa-
jące telefony. Myślę, że już w niedługim cza-
sie będzie można spodziewać się pierwszych 
komercyjnych  produktów  z  tym  systemem. 
Mam  nadzieję,  że  dzięki  otwartej  polityce 
Google  nie  stara  się  monopolizować  rynku 
IT, wciskając się we wszystkie zakamarki nie 
zajęte przez Microsoft. Już teraz niektóre po-
sunięcia  Google  bywają  niepokojące,  więc 
będziemy je obserwowali z uwagą.

Nie tylko Google

Aby być uczciwym, należy dodać, że nie tyl-
ko Google interesuje się Linuksem jako plat-
formą  dla  urządzeń  mobilnych.  Od  dawna 
na  tym  polu  działa  wspominana  wielokrot-
nie,  także  w  tym  artykule,  firma  Trolltech 
ze  swym  produktem  Qt/Embedded.  To  śro-
dowisko  graficzne  wykorzystuje  między  in-
nymi Motorola już od 2003 roku, począwszy 
od  modelu A760,  zawierającego  odpowied-
nio przygotowane środowisko Linux wraz z 

maszyną Java. Od tego czasu upłynęło wie-
le wody, a Motorola nadal świetnie się trzy-
ma, cały czas stosując Linuksa w swych te-
lefonach  multimedialnych.  Trolltech  dostar-
cza  bowiem  już  od  dłuższego  czasu  środo-
wisko programistyczne Qtopia Greesuite po-
zwalające  na  tworzenie  wydajnych  aplika-
cji  na  telefony  działające  pod  kontrolą  Li-
nuksa  z  interfejsem  graficznym  opartym  na 
Qt/Embedded.

Również firma Access, właściciel praw do 

systemu PalmOS, wydała, bez większego roz-
głosu,  platformę  programistyczną  do  tworze-
nia aplikacji pod system Access Linux Platform 
– przeznaczony dla urządzeń mobilnych. 

Czas już kończyć

Jak  widać,  Linuksem  jako  systemem  wbu-
dowanym interesują się nie tylko pryszczaci 
nastolatkowie
, jak zwykli nazywać window-
so-zależni programistów działających w stre-
fie wpływów Open Source. Linux już od wie-
lu lat stanowi doskonałą alternatywę wobec 
zamkniętych  rozwiązań,  ograniczonych  tyl-
ko do jednej firmy. Jakie są tego przyczyny? 
Przede wszystkim zastosowanie Linuksa ob-
niża koszty licencjonowania systemu, dzięki 
czemu nadwyżki finansowe można przezna-
czyć na stworzenie lepszego software'u towa-
rzyszącemu systemowi, czy lepszego sprzę-
tu. To zaś zawsze przekłada się na dodatkowe 
zyski.  Kolejnym  argumentem  jest  wszech-
stronność Linuksa. Z niewielką pomocą moż-
na go upchnąć wszędzie. Jedynym ogranicze-
niem jest wsparcie producenta sprzętu i moż-
liwości programisty. Pewnie nie ostatnim ar-
gumentem  jest  także  możliwość  stworzenia 
środowiska wokół projektu OpenSource, któ-
re będzie dalej rozwijało system oraz za dar-
mo  (lub  prawie  za  darmo)  tworzyło  nowe 
aplikacje, portowało system na co raz to no-
we urządzenia. Wszystko to sprawia, że Li-
nux jest już teraz teraźniejszością wielu urzą-
dzeń z systemem wbudowanym. 

Starożytny  uczony  powiedział:  Dajcie 

mi punkt podporu, a poruszę Ziemię, ja tra-
westując te słowa powiem: Dajcie mi czas, a 
upchnę Linuksa wszędzie... 

Autor artykułu, z wykształcenia lekarz we-
terynarii, mikrobiolog, pasjonuje się Linuk-
sem od ponad 5 lat. Jego ulubione dystry-
bucje to Gentoo i Slackware.
Kontakt  z  autorem:  madajczak@gma-
il.com

O autorze

background image

Klub PRO

ZETO Bydgoszcz SA

Oferujemy  pakiety  systemowe  wspomagają-

ce  zarządzanie  dowolnym  obiektem  gospo-

darczym, oprogramowanie narzędziowe i apli-

kacyjne, przetwarzanie danych w technice te-

ledostępu, projektowanie i wykonawstwo sieci 

komputerowych, dostawę oraz serwis sprzętu 

komputerowego i oprogramowania, konsulting 

i ekspertyzy.

http://www.zeto.bydgoszcz.pl

ALAN SYSTEMS SP. Z O.O. 

Jesteśmy  dynamicznie  rozwijającą  się  firmą 

informatyczną,  posiadającą  swoje  oddziały 

w  Katowicach  i  Rybniku.  Tworzymy  zaawan-

sowane  aplikacje  biznesowe  dla    koncernów 

w  Polsce  i  za  granicą.  Specjalizujemy  się  w 

tworzeniu  rozbudowanych  systemów  realizu-

jących  wymagania  Klienta  z  wykorzystaniem 

platform .NET i JAVA.

info@alan-systems.com 

RedHat, Novell, Ubuntu

U  nas  nauczysz  się  stosować  Linuksa  w  ska-

li Enterprise. Zdobędziesz uznawane na całym 

świecie certyfikaty RedHat, Novell poświadcza-

jące  Twoje  umiejętności.  Jesteśmy  jedynym  w 

Polsce,  certyfikowanym  dostawcą  autoryzowa-

nych szkoleń Ubuntu. Szkolenia dla specjalistów 

IT prowadzimy w siedmiu ośrodkach w kraju.

http://www.altkom.pl

BIURO-SERWIS 

Oferujemy  kontrakty  w  zakresie  dostarczania 

wysokiej  jakości  kopii  i  wydruków  na  nowych 

urządzeniach czarno-białych i kolorowych, audy-

ty i redukcję kosztów. Zapewniamy rozwiązania 

softwerowe, sprzedaż kopiarek, drukarek, nisz-

czarek  dokumentów,  systemów  interaktywnych 

i innych urządzeń biurowych. 

http://www.biuro-serwis.lublin.pl

COMPUSERV POLSKA

Serwis, outsourcing, sprzedaż urządzeń tech-

niki  komputerowej.  Autoryzowany  serwis  ter-

minali WYSE. Systemy IBM POS, N-Compu-

ting, Multi-User Computing, WYSE Terminals. 

Microsoft partner, systemy LINUX Serwis dru-

karek KYOCERA, HP, EPSON, skanerów ko-

dów kreskowych SYMBOL, DataLogic, monito-

rów CRT, LCD

http://www.compuserv.pl

CPU-Service A. i Z. 

Maryniak spółka jawna

Warszawska spółka, posiadająca również od-

działy w Berlinie i Lwowie dostarcza korpora-

cyjny sprzęt komputerowy firm: IBM, EMC, Hi-

tachi do profesjonalnego zastosowania tj. ser-

wery klasy „mainframe”, pamięci masowe typu 

„Enterprise”, wysokonakładowe systemy dru-

kujące, terminale i urządzenia sieciowe.

http://www.cpuservice.pl

background image

Praktyka

Wprowadzenie do architektury D-Busa

42

maj 2008

Praktyka

Wprowadzenie do architektury D-Busa

43

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

D

-Bus jest uniwersalnym mechanizmem komu-
nikacji międzyprocesowej (IPC). Wspiera on 
przesyłanie informacji zarówno bezpośrednio 
pomiędzy pojedynczymi aplikacjami jak i po-

przez specjalny proces - demon. Transmisja jest asymetrycz-
na (w przeciwieństwie np. do TCP gdzie po nawiązaniu po-
łączenia mamy symetrię). Dane są przesyłane w postaci ko-
munikatów, a nie ciągłego strumienia danych. D-Bus był za-
projektowany przede wszystkim do komunikacji w ramach 
pojedynczego systemu. Możliwe jest jednak jego rozszerze-
nie w przyszłości.

W praktyce aplikacje z reguły wykorzystują pośrednic-

two demona, zatem takie założenie przyjmiemy w tym arty-
kule. Demon D-Bus tworzy rodzaj magistrali, poprzez któ-
rą przepływa informacja (ang. message bus daemon). Zwy-
kle istnieją dwie magistrale: systemowa i sesyjna. Ta pierw-
sza jest uruchamiana przez skrypty startowe, służy do komu-
nikacji w systemie i pozwala uzyskać informację np. o podłą-
czeniu nowego urządzenia.

Magistrala  sesyjna  jest  uruchamiana  podczas  logowa-

nia  użytkownika  i  umożliwia  m.  in.  komunikację  pomię-
dzy desktopowymi aplikacjami chociaż oczywiście środowi-

sko graficzne nie jest do działania D-Busa potrzebne. Każdy 
użytkownik ma zatem do dyspozycji własną magistralę.

Konfigurację  systemu  D-Bus  znajdziemy  w  katalogu 

/etc/dbus-1/, pliki konfiguracyjne są dokumentami XML. In-
formacja na temat automatycznie uruchamianych usług (bę-
dzie o tym mowa w dalszej części artykułu) znajduje się w 
plikach z rozszerzeniem .service w katalogu /usr/share/dbus-
1/services/
.  Aby  komunikować  się  poprzez  D-Busa  musi-
my znać adres magistrali. Systemowa jest zwykle dostępna 
w ustalonym miejscu określonym w pliku konfiguracyjnym 
(element  <listen>),  np.:  unix:path=/var/run/dbus/system_
bus_socket
. Jak widać jest to ścieżka do uniksowego gniaz-
da. D-Bus jest realizowany w oparciu o gniazda uniksowe, 
może też korzystać z TCP/IP.

W  przypadku  magistrali  sesyjnej  adres  jest  generowany 

dynamicznie i powinien być dostępny poprzez zmienną 

DBUS_

SESSION_BUS_ADDRESS

. Dzięki temu aplikacje wiedzą jak się 

komunikować z magistralą. Zwróćmy uwagę na fakt, że jeże-
li adres zawiera słowo abstract zamiast path to taki socket jest 
trzymany w pamięci, nie odnajdziemy go w systemie plików. 
Wspomniana zmienna powinna być ustawiana przez menadże-
ra logowania po uruchomieniu demona magistrali. Jeżeli jed-

D-Bus w praktyce

Celem niniejszego artykułu jest przedstawienie podstaw funkcjonowania systemu D-Bus i możliwości 
jego wykorzystania. Zaczniemy od wprowadzenia podstawowych pojęć i idei związanych z D-Busem, a 
następnie, na przykładach, pokażemy jak ten system funkcjonuje w praktyce.

Zbigniew Kozak

background image

Praktyka

Wprowadzenie do architektury D-Busa

42

maj 2008

Praktyka

Wprowadzenie do architektury D-Busa

43

www.lpmagazine.org

nak sami uruchamiamy system D-Bus, powinni-
śmy zadbać o jej odpowiednie zdefiniowanie. Jak 
to zrobić, pokażemy na zakończenie artykułu.

Chcąc  skorzystać  z  konkretnej  usługi,  któ-

ra  jest  już  dostępna  poprzez  magistralę,  musi-
my znać jej adres. Każdemu połączeniu aplikacji 
z magistralą demon przydziela unikalną nazwę w 
postaci:  :ciąg_cyfr.ciąg_cyfr  (np.  :1.17,  proszę 
zwrócić uwagę na dwukropek na początku na-
zwy). Same cyfry są tu nieistotne, ważne jest to, 
że taki identyfikator jest unikalny, nie jest ponow-
nie wykorzystywany przez cały czas życia demo-
na i służy do trasowania wiadomości. Aplikacja 
może również zająć dodatkową nazwę (ang. bus 
name
) w postaci odwróconej nazwy domeny in-
ternetowej (podobnie jak w przypadku nazw pa-
kietów w Javie), poprzez którą będzie łatwo adre-
sowalna i rozpoznawalna, np.: com.moja.dome-
na.SuperProgram
. Są dwa podstawowe rodzaje 
komunikatów przesyłane po magistrali: wywo-
łania metod (i odpowiedzi na nie) oraz sygna-
ły. W tym pierwszym przypadku mamy aplika-
cję świadczącą jakąś usługę i klienta. Klient przy 
adresowaniu zwykle posługuje się wspomnianą 
wcześniej, dobrze znaną nazwą. Co ciekawe, je-
żeli aplikacja nie jest jeszcze uruchomiona to bę-
dzie automatycznie wystartowana przez demo-
na, o ile została odpowiednio skonfigurowana. 
Oprócz  nazwy  powinniśmy  sprecyzować  jesz-
cze na rzecz jakiego obiektu dana operacja ma 
być  wykonywana.  Określamy  to  podając  tzw. 
nazwę  ścieżkową  (ang.  path  name)  –  podob-
nie jak w systemie plików, nazwy są rozdzielo-
ne ukośnikiem. Aplikacja może udostępniać (dla 
danego połączenia) różne zestawy metod. Wy-
boru zestawu dokonujemy podając interfejs. Wi-
dać tutaj wyraźną analogię z programowaniem 
obiektowym, a gdy przejdziemy do przykładów 
w Pythonie będzie to jeszcze bardziej oczywiste. 
W przypadku udanego wywołania metody do-
staniemy wiadomość z wynikiem, w przypadku 
błędu – odpowiedni komunikat.

Programując  D-Busa  w  języku  wysokie-

go  poziomu  po  stronie  wywołującego  mamy 
do czynienia z tzw. obiektem pośredniczącym 
(ang. proxy object). Jest to (w naszym przypad-
ku) obiekt w Pythonie, poprzez który wywołu-
jemy metody zdalnego obiektu.

Drugi  typ  komunikacji  to  przesyłanie  sy-

gnałów. W tym przypadku transmisja jest jed-
nokierunkowa: aplikacja przesyła wiadomość, 
a demon przekazuje ją do tych odbiorców, któ-
rzy  wyrazili  chęć  jej  odbioru,  nie  ma  żadnej 
zwrotnej informacji.

D-Bus jest przenośnym systemem, dostęp-

nym standardowo nie tylko we wszystkich po-
pularnych  dystrybucjach  Linuksa,  ale  również 
w systemach BSD. Wykorzystywany do komu-
nikacji w środowisku GNOME, jest też dostęp-

ny w KDE 4. Coraz więcej aplikacji udostępnia 
D-Busowy  interfejs (HAL, gnome-volume-ma-
nager,  Gajim,  NetworkManager,  Rhythmbox  i 
wiele innych). Istnieje również port D-Busa dla 
Windows.

D-Bus z poziomu wiersza poleceń

Zostawmy  teraz  rozważania  teoretyczne  i 
przetestujmy  działanie  D-Busa  w  naszym 
systemie.  Powinniśmy  mieć  zainstalowany 
D-Bus  w  wersji  co  najmniej  1.0.  Przykłady 

Tabela 1. 

Oznaczenia typów używane przez dbus-send

Nazwa

Oznaczenie

Opis

BYTE

byte

Całkowity, bez znaku, 8-bitowy, np. byte:5

BOOLEAN

boolean

Typ logiczny, false – fałsz, true – prawda, np. boolean:true

INT16

int16

Całkowity, ze znakiem,16-bitowy, np. int16:24

UINT16

uint16

Całkowity, bez znaku,16-bitowy

INT32

int32

Całkowity, ze znakiem, 32-bitowy

UINT32

uint32

Całkowity, bez znaku, 32-bitowy

INT64

int64

Całkowity, ze znakiem, 64-bitowy

UINT64

uint64

Całkowity, bez znaku, 64-bitowy

DOUBLE

double

Zmiennopozycyjny, podwójna precyzja (IEEE 754 double), np. do-
uble:1.6

STRING

string

Napis, np. string:"zielona 20", typ string jest domyślny więc moż-
na pisać po prostu  :'zielona 20', apostrofy są potrzebne jedynie dla 
ochrony przed powłoką (obecność spacji)

OBJECT_PATH

objpath

Nazwa obiektu (nazwa ścieżkowa), np. objpath:'/org/my/object'

ARRAY

array 

Tablica, np. array:uint32:20,30 – tablica liczb typu uint32, w tym 
przypadku dwuelementowa (elementy rozdzielamy przecinkiem)

VARIANT

variant

Typ wariantowy, np. variant:string

Tablica zawiera-
jąca DICT_EN-
TRY

dict

Słownik jest tablicą par klucz-wartość, np. dict:string:int32:
k1,20,k2,30 – słownik dwuelementowy, którego kluczami są stringi 
(k1 oraz k2), a wartościami – liczby (odpowiednio 20 oraz 30)

Rysunek 1. 

Wynik wypisania wszystkich nazw znanych demonowi magistrali

Rysunek 2. 

Efekt wywołania metody Introspect

background image

44

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

45

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

będą podane w języku Python (wersja co naj-
mniej 2.4), będzie potrzebny również pakiet 
zawierający  binding  dla  Pythona  (dbus-py-
thon), wersja co najmniej 0.80. Poszczególne 
paczki mogą mieć nieco inne nazwy w róż-
nych  dystrybucjach  (systemach).  Przydat-
ne będą też graficzne programy pozwalające 
łatwo  przeglądać  dostępne  metody  i  sygna-
ły dla poszczególnych aplikacji np. dbus-vie-
wer lub dbus-Inspector.

Przykłady  z  niniejszego  artykułu  by-

ły  testowane  w  systemach  OpenSUSE  10.2 
oraz  Debian  4.0.  Pewien  problem  pojawił 
się w Debianie. Standardowo dostępna wer-
sja  dbus-python  to  0.71  (zamieszczony  kod 
nie  będzie  działać  ze  względu  na  zmianę 
api).  Użytkownicy  wersji  testing  i  unstable 
nie  będą  mieć  takich  problemów.  Najprost-
szym rozwiązaniem w moim przypadku oka-

zało się ręczne rozpakowanie pakietu z dys-
trybucji testing i poinformowanie o tym in-
terpretera  Pythona.  Powrócimy  do  tego  za-
gadnienia później.

Zacznijmy  eksperymenty  od  prostych 

poleceń  konsolowych:  dbus-monitor  i  dbus-
send
. Ten  ostatni  program  pozwoli  nam  wy-
syłać  sygnały  i  wywoływać  metody.  Nato-
miast dbus-monitor posłuży do obserwacji co 
się  dzieje  na  magistrali.  Uruchamiamy  go  w 
osobnym okienku terminala. W wierszu pole-
ceń można dość precyzyjnie określić jakie wa-
runki mają spełniać odbierane informacje. Nie 
będziemy jednak z tych dodatkowych możli-
wości  korzystać.  Po  prostu,  w  zależności  od 
tego, o którą magistralę nam chodzi, wydaje-
my polecenie:

dbus-monitor --session

lub

dbus-monitor --system

i obserwujemy wszystko co nam przesyła de-
mon.  Uwagi:  jeżeli  dbus-monitor  nie  daje  się 
przerwać przy pomocy ctrl-c, można użyć ctrl-
4. Powróćmy teraz do dbus-send. Typowe jego 
użycie dla wywołania zdalnej metody wygląda 
następująco 

(Listng 11.).

Na początek przyjrzyjmy się temu, co udo-

stępnia sam demon D-Busa. Jako przykład roz-
ważmy usługę org.freedesktop.DBus (wielkość 
liter  jest  znacząca).  Jest  ona  wykorzystywa-
na  przez  aplikacje  do  zarejestrowania  nazwy 
i  innych  działań  administracyjnych.  Udostęp-
nia interfejs org.freedesktop.DBus. Wywołanie 
jednej z metod (Listing 12.)

Powyższe  polecenie  wypisze  listę 

wszystkich  nazw  zarejestrowanych  na  ma-
gistrali sesyjnej. Przeanalizujmy poszczegól-
ne argumenty:

•  --dest

 – określa nazwę usługi,

•  --type

=method_call – dla wywołania me-

tody, signal gdy chcemy wysłać sygnał,

•  --print-replay

  –  oczekujemy  na  odpo-

wiedź (bez tego parametru nie zobaczymy 
wyniku),

• 

/  -  zwykle  podajemy  ścieżkę  do  konkret-
nego  obiektu,  akurat  dla  usługi  org.fre-
edesktop.DBus
  nie  jest  to  potrzebne,  ale 
dbus-send  wymaga  podania  tego  para-
metru, więc coś tu wstawiamy (wszystkie 
ścieżki muszą zaczynać się od ukośnika),

•  org.freedesktop.DBus.ListNames 

–  nazwa  interfejsu  i  nazwa  metody  (po 
ostatniej kropce), po tym elemencie mogą 
występować parametry wywołania metody 
(w naszym przypadku ich nie ma).

Na Rysunku 1. widzimy wynik wykonania na-
szego polecenia, ale dla magistrali systemowej. 
Wypisana została tablica nazw znanych demo-
nowi, zarówno tych unikalnych, automatycznie 
przydzielanych (z dwukropkiem na początku) 
jak  i  tych  w  postaci  odwróconych  domen  in-
ternetowych.

Wiedząc  jakie  usługi  są  dostępne,  mo-

żemy je odpytać na okoliczność udostępnia-
nych  obiektów,  interfejsów,  metod  i  sygna-
łów.  Wszystko  to  można  wykonać  przy  po-
mocy  dbus-send  korzystając  ze  specjalnego 
interfejsu  org.freedesktop.DBus.Introspecta-
ble
 (o ile, oczywiście, dana aplikacja go im-
plementuje).

W dalszych przykładach będziemy wyko-

rzystywać aplikację Rhythmbox. Posłuży ona 
do pokazania sposobów komunikacji z wyko-

Rysunek 3. 

Rezultat Introspect oglądany w przeglądarce

background image

44

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

45

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

rzystaniem D-Busa. W praktyce każdy może 
sobie wybrać dowolny program z obsługą te-
go systemu i „porozmawiać” z nim wzorując 
się na zamieszczonych przykładach. Spróbuj-
my dowiedzieć się co Rhythmbox udostępnia 
poprzez  magistralę. W  tym  celu  musimy  go 
uruchomić. Poza dobrze wszystkim znanymi 
sposobami,  możemy  to  uczynić  korzystając 
z  aktywacji  D-Busa  (ang.  D-Bus  activation
czyli  wykorzystamy  możliwość  uruchomie-
nia  danej  aplikacji  przez  demona  (jeżeli  ist-
nieje plik /usr/share/dbus-1/services/org.gno-
me.Rhythmbox.service
) (Listing 13.)

Zwróćmy  uwagę  na  nową  rzecz  jaka  się 

pojawia  w  tym  poleceniu  –  parametry.  Każ-
dy  z  nich  jest  poprzedzony  nazwą  typu  (patrz 
Tabela 1). Oczywiście string oznacza napis (w 
tym przypadku nazwę usługi), w razie potrzeby 
można go ująć w cudzysłowy lub apostrofy dla 
ochrony  przed  powłoką  (np.  gdy  zawiera  spa-
cje: string:'big secret'). Natomiast uint32 to licz-
ba całkowita, 32-bitowa, bez znaku. Wartość te-
go ostatniego parametru nie jest w tym przypad-
ku istotna. Warto za to popatrzeć na wyświetlo-
ny wynik: 1 – oznacza, że aplikacja została uru-
chomiona, a 2 – że usługa już była dostępna. Al-

ternatywnie, moglibyśmy wywołać jakąś meto-
dę samego Rhythmbox-a i też byłby on automa-
tycznie wystartowany, w szczególności możemy 
zapytać o to co jest udostępniane przez ten pro-
gram, bo tego jeszcze nie wiemy. Korzystamy 
ze  wspomnianego  wcześniej  interfejsu  org.fre-
edesktop.DBus.Introspectable 
(Listing 14.) wy-
nik polecenia przedstawia rys. 2. Jak widać, jest 
to dokument XML, który zawiera listę obiektów 
związanych z naszą usługą. Wiemy już o co py-
tać dalej, np. o  /org/gnome/Rhythmbox/Player
Tak naprawdę nieco tutaj „oszukiwaliśmy” idąc 
na skróty. Powinniśmy najpierw zapytać o ścież-

Listing 1. 

Przykładowe instrukcje języka Python

#!/usr/bin/env python
# Po znaku # jest komentarz do końca linii
# Możemy używać Pythona jako kalkulatora
print 2+2*2

# lista trójelementowa, może zawierać różne typy, jest 
modyfikowalna
lista = [ 2, 10, "info"]

# dodanie elementu na koniec listy
# apostrofy mają to samo znaczenie co cudzysłowy

lista

.

append

(

'

cos

'

)

# listę indeksujemy jak tablicę w C – elementy są 
numerowane od zera

print

 

lista

[

2

]

  # 

"info"

# krotka (ang. tuple) trójelementowa, podobna do listy 
ale niemodyfikowalna
# zawarta wewnątrz nawiasów okrągłych

kr

 

=

 

(

 

2

, '

dane

', 

[

 

5

3

]

 

)

# pętla for iteruje po listach, krotkach itp.

for

 

elem

 

in

 

lista

:

    

print

 

elem

,  

# przecinek na końcu - drukowanie 

wszystkich elementów w jednej linii
print  # wypisuje znak nowej linii

# podobnie jak w C jest pętla while i instrukcja if
# zwróćmy uwagę na dwukropki i wcięcia
i = 10

while

 

i

 

>

 

0

:

    

if

 

i

 

%

 

2

 

==

 

0

:

  # i jest parzyste

        

print

 

i

    

i

 

-=

 

2

# przykład definicji funkcji (potęgowanie 
całkowitoliczbowe),
# nie chodzi o optymalizację potęgowania (jest 
odpowiednia funkcja w Pythonie),
# ale o pokazanie przykładowego kodu
def power(a, m):

    

"""

    Taki komentarz (napis zawarty pomidzy par 

potrójnych cudzysłowów lub apostrofów)

    zawiera opis danej funkcji lub klasy.

    """

    

# możemy sprawdzić typ w czasie wykonania

    # '\' to znak kontynuacji wiersza, wewnątrz pary 
nawiasów niepotrzebny

    

if

 

not

 

isinstance

(

m

int

)

 

or

 \

            

not

 

(

 

isinstance

(

a

int

)

 

or

                

isinstance

(

a

long

)

 

or

                

isinstance

(

a

float

)

 

or

                

isinstance

(

a

complex

)

 

):

 

# zgłaszamy wyjątek, nieobsłużony kończy 

program

        

raise

 

TypeError

    

if

 

m

 

>

 

0

:

        

w

 

=

 

a

        

for

 

i

 

in

 

range

(

1

m

):

  # 

1

2

, ..., 

m

-

1

            

w

 

*=

 

a

    

elif

 

m

 

<

 

0

:

  # 

else

 

if

 

znane

 

z

 

j

zyka

 

C

        

if

 

a

 

!=

 

0

:

            

w

 

=

 

power

(

1.0

/

a

-

m

)

  # rekurencja

        

else

:

            # na razie korzystamy ze standardowych 
nazw wyjątków

            

raise

 

ZeroDivisionError

    

elif

 

a

 

!=

0

:

        

if

 

isinstance

(

a

complex

):

            

w

 

=

 

1

+

0

j

  

# liczba zespolona

        

else

:

            

w

 

=

 

1.0

    

else

:

        

raise

 

ArithmeticError

    

return

 

w

# przykłady wywołania funkcji

print

 

power

(

2.5

2

)

# można podać nazwy argumentów, wtedy kolejność jest 
nieistotna

print

 

power

(

a

=-

1.3

m

=

0

)

       

background image

46

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

47

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

kę /, w odpowiedzi można byłoby zobaczyć na-
stępny element: /org. Po jego odpytaniu kolej-
ny:  /org/gnome,  itd. W  praktyce  często  począ-
tek ścieżki jest taki jak nazwa usługi (tyle, że z 
ukośnikami zamiast kropkami) i z tego skorzy-
staliśmy.  Rezultat  następnego  polecenia  najle-
piej przekierować do pliku i potem obejrzeć np. 
w przeglądarce (Rys. 3), (Listing 15.) z tym, że 
należy z wyniku usunąć dodatkowe komunikaty 
czyli sam początek do pierwszego cudzysłowu 
(włącznie) i cudzysłów z końca pliku – te czę-
ści nie należą do właściwego XML-a. Teraz wi-
dzimy udostępniane interfejsy, metody i ich pa-
rametry, i w zasadzie można się domyślić co one 
robią. Analizujemy interfejs org.gnome.Rhythm-
box.Player
. Przykładowe metody:

•  setVolume

, jeden parametr wejściowy ty-

pu d (liczba zmiennopozycyjna – double), 
domyślamy się, że ta metoda ustawia gło-
śność, a parametr ma zakres 0.0 – 1.0;

•  getElapsed

,  bez  parametrów  wejścio-

wych, jeden wyjściowy typu u (liczba cał-
kowita  32-bitowa,  bez  znaku),  ile  sekund 
utworu zostało już odtworzone;

•  next

,  brak  parametrów,  przejście  do  od-

twarzania następnego utworu i tak dalej.

Symbole  różnych  typów  są  jednoznakowe 
(ewentualnie  występują  ich  kombinacje  dla 
typów złożonych), patrz tab. 2.

Przykładowo,  poziom  głośności  możemy 

ustawić na 50% wartości maksymalnej nastę-

pująco(Listing 16.) Warto poeksperymentować 
z wywoływaniem innych metod. Widać, że sys-
tem D-Bus pozwala sterować daną aplikacją z 
poziomu dowolnej innej (w ramach możliwości 
dostępnych interfejsów).

D-Bus interaktywnie

Pewnie  już  wszyscy  są  zmęczeni  wpisywa-
niem poleceń i ręcznym badaniem usług. Sko-
ro  interfejs  org.freedesktop.DBus.Introspec-
table  może  być  wykorzystany  do  odpytywa-
nia D-Busa to można stworzyć aplikacje, któ-
re  pozwolą  wygodnie,  z  poziomu  GUI,  z  tej 
możliwości  korzystać.  Niestety,  nie  wszyst-
kie  usługi  wymagany  interfejs  rzeczywiście 
implementują.

Na  początek  przyjrzyjmy  się  programo-

wi  dbus-inspector. Adres  jego  strony  domo-
wej jest podany na końcu artykułu wraz z lin-
kami do innych zasobów związanych z mate-
riałem  prezentowanym  w  tym  artykule.  Na-
rzędzie to jest bardzo proste w instalacji i uży-
waniu. Wymaga zainstalowanego interpretera 
Pythona (co najmniej 2.4) i python-dbus oraz 
python-gtk2  (pyGTK)  i  python-glade2.  Wy-
starczy  dbus-inspectora  ściągnąć  i  rozpako-
wać.  Nie  trzeba  nawet  instalować!  Proponu-
ję  umieścić  tę  aplikację  w  dowolnie  wybra-
nym  katalogu,  a  następnie  utworzyć  pomoc-
niczy  skrypt  (nazwany  np.  dbus-inspector
tam gdzie będzie dostępny do wykonania (np. 
/usr/local/bin lub ~/bin):(Listing 17.)

Oczywiście nie należy zapominać o odpo-

wiednich prawach dostępu, np.:h

chmod a+x /usr/local/bin/dbus-

inspector

Teraz  w  wygodny  sposób  możemy  przeglą-
dać  to  co  jest  udostępniane  przez  Rhythm-
box-a (Rysunek 4). W lewym górnym okienku 
mamy listę usług (ang. bus names), jako ciąg 
podkatalogów jest widoczna ścieżka do obiek-
tu i na samym końcu lista interfejsów, symbo-
lizują to też odpowiednie ikony. Po prawej u 
góry widzimy listę metod dla danego interfej-
su a na dole argumenty wejściowe i wyjścio-
we wybranej metody. Na razie dbus-inspector 
nie umożliwia wywoływania metod i wysyła-
nia sygnałów, ale taka funkcjonalność jest w 
planach.

Drugim  narzędziem  o  którym  chciał-

bym  wspomnieć  jest  dbus-viewer  (rys.  5), 
został napisany z wykorzystaniem bibliote-
ki qt. Oprócz przeglądania, umożliwia wy-
woływanie  metod  i  wysyłanie  sygnałów  a 
także obserwację co się dzieje na magistra-
li.  Zdarzało  mi  się  jednak,  że  program  się 
zawieszał.

Rysunek 4. 

dbus-inspector

Rysunek 5. 

dbus-viewer

background image

46

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

47

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

Programowanie D-Busa

D-Bus może być oprogramowany w różnych 
językach  np.  C,  C++,  Pythonie,  Javie,  Per-
lu, Ruby. Dobrym wyborem, w szczególno-
ści dla początkującego użytkownika, jest Py-
thon.  To  dość  łatwy  do  opanowania  język 
skryptowy,  z  którego  interpreterem  można 
pracować  interaktywnie  korzystając  z  wbu-
dowanej pomocy. Programy są przejrzyste i 
praktycznie mogą być zrozumiałe nawet dla 
osoby, która nie zna tego języka.

Podsumowując:  jeżeli  ktoś  pragnie  po-

eksperymentować z programowaniem D-Bu-
sa  i  zna  Pythona,  może  od  razu  przystąpić 
do  pracy.  Pozostałe  osoby  są  w  stanie  dość 
szybko ten język opanować. Kto nie zamie-
rza uczyć się Pythona i tak będzie mógł po-
znać pewne idee, które może wykorzystać w 
innych  językach.  Żeby  przykłady  były  zro-
zumiałe,  zrobimy  w  tym  miejscu  króciutkie 
wprowadzenie do Pythona.

Programy umieszczamy w plikach teksto-

wych (typowo z rozszerzeniem .py). Możemy 
je uruchamiać wywołując interpreter:

python skrypt.py

lub uczynić plikami wykonywalnymi i umieścić 
w pierwszej linii skryptu standardowy tekst:

#!/usr/bin/env python

W  razie  potrzeby,  można  podać  konkretną 
wersję:

#!/usr/bin/env python2.4

Najbardziej  charakterystyczną  cechą  Pythona 
jest konieczność robienia wcięć – nie jest to tyl-
ko sprawa czytelności, ale wymaganie składni. 
Do tworzenia wcięć można użyć spacji lub ta-
bulacji,  w  danym  pliku  należy  korzystać  tyl-
ko z jednego z tych znaków. Zalecane są spa-
cje,  (np.  cztery  dla  zaznaczenia  jednego  po-
ziomu  wcięć).  Przytaczane  przykłady  można 
przetestować  interaktywnie  po  prostu  urucha-
miając interpreter Pythona lub wpisać do pli-
ku i wtedy wykonać. To ostatnie zalecamy dla 
nieco  dłuższych  przykładów  –  łatwiej  popra-
wiać  błędy.  Pomoc  otrzymamy  wpisując  hel-
p(nazwa). Funkcja dir podaje atrybuty danego 
obiektu: dir(nazwa). W tym języku nie ma de-
klaracji zmiennych, ale są oczywiście różne ty-
py danych. Przykładowe instrukcje są pokaza-
ne na listingu nr 1, a ich opis znajduje się w ko-
mentarzach.

Python  jest  językiem  w  pełni  obiekto-

wym. Każda klasa dziedziczy (pośrednio lub 
bezpośrednio) po klasie object (podobnie jak 

Listing 2. 

Funkcja x, y

#!/usr/bin/env python

class

 

Point

(

object

):

    # x, y mają wartości domyślne równe zero
    # pojedynczy znak podkreślenia na początku nazwy zmiennej
    # nie ma specjalnego znaczenia,
    # to kwestia indywidualnej konwencji nazewniczej

    

def

 

__init__

 

(

self

x

=

0

y

=

0

):

        

self

.

_x

 

=

 

x

        

self

.

_y

 

=

 

y

    

def

 

getX

(

self

):

        

return

 

self

.

_x

    

def

 

getY

(

self

):

        

return

 

self

.

_y

    

def

 

move

(

self

dx

dy

):

        

self

.

_x

 

+=

 

dx

        

self

.

_y

 

+=

 

dy

p

 

=

 

Point

(

2

)

  # 

p

.

_x

==

2

p

.

_y

==

0

p

.

move

(

1

7

)

  # 

p

.

_x

==

3

p

.

_y

==

7

Listing 3. 

Oczekiwanie na wywołanie metody

#!/usr/bin/env python

import

 

sys

import

 

dbus

import

 

dbus

.

service

import

 

gobject

from

 

dbus

.

mainloop

.

glib

 

import

 

DBusGMainLoop

DBusGMainLoop

(

set_as_default

=

True

)

class

 

Calc

(

dbus

.

service

.

Object

):

    

def

 

__init__

(

self

):

        # w przypadku magistrali systemowej używamy dbus.SystemBus()

        

dbus

.

service

.

Object

.

__init__

(

self

dbus

.

SessionBus

()

,

                '/

somedomain

/

my

/

calc

', 

dbus

.

service

.

BusName

(

'

somedomain

.

my

.

calc

'

))

  # 

"konfig"

        

self

.

_generVal

 

=

 

0

    @

dbus

.

service

.

method

(

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

', 

in_

signature

=

's', 

out_signature

=

's'

)

    

def

 

echo

(

self

x

):

        

return

 

x

    @

dbus

.

service

.

method

(

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

', 

in_

signature

=

'', 

out_signature

=

'i'

)

    

def

 

gener

(

self

):

        

self

.

_generVal

 

+=

 

1

        

return

 

self

.

_generVal

calc

 

=

 

Calc

()

loop

 

=

 

gobject

.

MainLoop

()

# w tej pętli oczekujemy na wywołania metod

loop

.

run

()

  #  

"oczekiwanie"

background image

48

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

49

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

w Javie). Można jeszcze spotkać sporo kodu, 
w którym klasa nie dziedziczy po niczym, ale 
jest  to  konstrukcja  przestarzała.  Jako  przy-
kład przedstawimy klasę opisującą punkt na 
płaszczyźnie (listing nr 2). __init__ jest kon-
struktorem, inicjuje obiekt. Nazwa self odno-
si się do instancji klasy, konkretnego obiektu, 
który  utworzyliśmy.  W  zasadzie  można  po-
wiedzieć, że jest to odpowiednik this z C++, 
ale jak widać self musi być jawnie używany 
przy  odwoływaniu  się  do  pól  obiektu.  Stąd 
wszystkie  metody  są  deklarowane  z  self  na 
liście  parametrów.  Oczywiście  przy  wywo-
łaniu nie występuje on jawnie. W tym przy-
kładzie  nie  sprawdzamy  typów  argumen-
tów. Jest to dodatkowa operacja, którą moż-
na  zrobić  w  czasie  wykonywania  programu 
(tak jak to uczyniliśmy to w pokazanej wcze-
śniej funkcji).

Po obejrzeniu kodu z listingu nr 2, oso-

ba przyzwyczajona do języka C++ może za-
pytać: a gdzie public, private? Jaki jest wła-
ściwie  domyślny  poziom  dostępu  do  pól  i 
jak  go  modyfikować? W  zasadzie  w  Pytho-
nie wszystko jest ogólnie dostępne. Taka jest 
filozofia  tego  języka.  Programiści  odwołu-
ją się do pól obiektu poprzez metody, bo tak 
powinno  się  robić,  a  nie  dlatego,  że  zosta-
li do tego zmuszeni. Jeżeli koniecznie chce-
my ukryć jakąś zmienną, powinniśmy nadać 
jej nazwę zaczynającą się od dwóch znaków 
podkreślenia. Ten sposób ukrywania też nie 
jest  doskonały,  ale  nie  będziemy  wnikać  w 
szczegóły.

Jeżeli  potrzebujemy  jakichś  dodatko-

wych pakietów, dołączamy je instrukcją im-
port (zwykle na początku pliku). Np.:

import sys

Kto  chce  poznać  zasady,  którymi  powinien 
się kierować programista niech wypróbuje:

import this

Jeżeli chcemy używać w kodzie języka pol-
skiego,  chociażby  w  komentarzach,  powin-
niśmy na początku (zaraz poniżej linii #!...) 
umieścić informację o kodowaniu, np:

# -*- coding: iso8859_2 -*-

lub

# -*- coding: utf_8 -*-

Jeżeli mamy jakieś moduły Pythona w nie-
standardowym miejscu, możemy na począt-
ku  pliku  do  wykonania  dodać  następują-
ce linie:

import sys

sys.path[0:0] = [ 'sciezka1', 

'sciezka2' ] # lista dodatkowych 

cieek

Pamiętajmy, że każdy katalog do importu po-
winien zawierać m. in. plik __init__.py (mo-
że być pusty). W taki sposób dodałem ręcznie 

Listing 4. 

Wywołanie metody echo

#!/usr/bin/env python

import

 

dbus

bus

 

=

 

dbus

.

SessionBus

()

 

 # dbus.SystemBus() w przypadku magistrali 

systemowej

calc

 

=

 

bus

.

get_object

(

'

somedomain

.

my

.

calc

',

                      '/

somedomain

/

my

/

calc

'

)

test_iface

 

=

 

dbus

.

Interface

(

calc

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

'

)

print

 

test_iface

.

echo

(

'

Hi

'

)

  # wywołanie metody echo

for

 

i

 

in

 

range

(

5

):

    

print

 

test_iface

.

gener

()

  # powinny sie pojawiać kolejne liczby

Tabela 2. 

Typy wykorzystywane w systemie D-Bus

Nazwa

Symbol Typ w Pythonie

Opis

BYTE

y

dbus.Byte, podklasa int

Całkowity, bez znaku, 8-bitowy

BOOLEAN

b

dbus.Boolean, podklasa int

Typ logiczny, 0  – fałsz, 1 – prawda

INT16

n

dbus.Int16, podklasa int

Całkowity, ze znakiem,16-bitowy

UINT16

q

dbus.UInt16, podklasa int

Całkowity, bez znaku,16-bitowy

INT32

i

dbus.Int32, podklasa int

Całkowity, ze znakiem, 32-bitowy

UINT32

u

dbus.UInt32, podklasa int lub long

Całkowity, bez znaku, 32-bitowy

INT64

x

dbus.Int64, podklasa int lub long

Całkowity, ze znakiem, 64-bitowy

UINT64

t

dbus.UInt64, podklasa int lub long

Całkowity, bez znaku, 64-bitowy

DOUBLE

d

dbus.Double, podklasa float

Zmiennopozycyjny, podwójna precyzja (IEEE 754 double)

STRING
s

dbus.String, podklasa unicode

Napis

dbus.UTF8String, podklasa str

OBJECT_PATH

o

dbus.ObjectPath, podklasa str

Nazwa obiektu (nazwa ścieżkowa)

SIGNATURE

g

dbus.Signature, podklasa str

D-Busowa sygnatura

ARRAY

a

dbus.Array , podtyp list (listy)

Tablica, np. au – tablica liczb typu 'u'

STRUCT

(  )

dbus.Struct, podtyp tuple (krotki)

Struktura, np. (uus) – rekord zawierający dwie liczby typu 'u' oraz string

VARIANT

v

wariant jest określony przez parametr va-
riant_level przy definiowaniu innych typów

Typ wariantowy

Tablica zawierająca 
DICT_ENTRY

a{ }

dbus.Dictionary, podtyp dict (słownika)

Słownik jest tablicą par klucz-wartość, np. a{s(yyi)} – słownik, którego kluczem 
jest string a wartości to struktury zawierające dwa bajty oraz liczbę (typu i)

background image

48

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

49

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

nowszy dbus-python do Debiana bez potrze-
by zmiany w istniejącej instalacji.

Udostępnianie własnych usług

Przygotujmy teraz prostą usługę testową, któ-
ra pozwoli zapoznać się nam z zasadami pro-
gramowania D-Busa. Wykorzystajmy fikcyjną 
nazwę somedomain.my.calc. Należy przyjąć, że 
my.somedomain to nazwa naszej domeny inter-
netowej (którą odwracamy przy tworzeniu na-
zwy usługi), a calc to stworzona przez nas apli-
kacja.  Wykonywać  ona  będzie  pewne  proste 
operacje na dostarczonych argumentach. Ścież-
ka do obiektu: /somedomain/my/calc (w zasa-
dzie  może  być  dowolna).  Interfejs  do  testów: 
somedomain.my.calc.test. I dwie metody: echo 
(zwraca przekazany argument) oraz gener (do-
starcza kolejną liczbę naturalną). Na listingu nr 
3 znajdziemy odpowiedni kod.

Aby korzystać z D-Busa w Pythonie mu-

simy włączyć potrzebne pakiety instrukcją im-
port. Nasza usługa będzie w pętli oczekiwać na 
zdarzenia (linia „oczekiwanie”). Cała obsługa 
znajduje się w klasie Calc (jej nazwa nie jest 
istotna)  dziedziczącej  po  dbus.service.Object
Musimy poinformować demona magistrali, że 
chcemy się podłączyć. Załatwia to jedna linijka 
w konstruktorze (linia „konfig”), która wywo-
łuje konstruktor klasy podstawowej.

Dla każdej metody, którą udostępniamy do 

wywoływania  poprzez  D-Busa  tworzymy  od-
powiednią  metodę  w  Pythonie.  Dość  charak-
terystyczne  są  linie  zaczynające  się  „małpką” 
(@).  Są  to  tzw.  dekoratory.  Powodują  mody-
fikację  działania  funkcji,  którą  ozdabiają.  Nie 
wnikając  w  szczegóły,  w  przypadku  D-Bu-
sa należy taką linią poprzedzić każdą metodę 
udostępnianą  poprzez  magistralę.  Parametry 
naszych  dekoratorów  (będące  napisami)  mają 
następujące znaczenie: dbus_interface – nazwa 
interfejsu, in_signature – typy parametrów wej-
ściowych (czyli po prostu przekazywanych ar-
gumentów), out_signature – typy parametrów 
wyjściowych.  Tabela  2  zawiera  spis  symboli 
używanych do oznaczania poszczególnych ty-
pów. Spójrzmy na przykłady. Zapis: 'siy' doty-
czy trzech argumentów (typu STRING, INT32, 
BYTE).  W  szczególności  oznacza  to,  że  na-
sza metoda musi mieć odpowiednią liczbę pa-
rametrów.

Bardziej złożony przykład: 

'asua(ib)a-

{s(yyb)}'

.  Tu  mamy  cztery  parametry: 

as

u

(ib)

a{s(yyb)}

. Objaśnijmy po kolei ich 

znaczenie:

•  as

 – tablica napisów (stringów),

•  u

 – liczba bez znaku (UINT32),

•  (ib)

  –  krotka  dwuelementowa  (INT32 

oraz BOOLEAN),

Listing 5a. 

Wysyłanie sygnału z własnej aplikacji

#!/usr/bin/env python

import

 

sys

import

 

time

import

 

dbus

import

 

dbus

.

service

import

 

gobject

from

 

dbus

.

mainloop

.

glib

 

import

 

DBusGMainLoop

DBusGMainLoop

(

set_as_default

=

True

)

class

 

Calc

(

dbus

.

service

.

Object

):

   

def

 

__init__

(

self

):

      

dbus

.

service

.

Object

.

__init__

(

self

dbus

.

SessionBus

()

,

         '/

somedomain

/

my

/

calc

', 

dbus

.

service

.

BusName

(

'

somedomain

.

my

.

calc

'

))

         

self

.

_generVal

 

=

 

0

      

# na tej liście gromadzimy informacje potrzebne do wygenerowania

      

# odpowiedzi na wywołanie metody

      

self

.

_jobs

 

=

 

[]

   @

dbus

.

service

.

method

(

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

', 

in_

signature

=

's', 

out_signature

=

's'

)

   

def

 

echo

(

self

x

):

     

 # jeżeli argument jest pusty, wywołujemy wyjątek,

      # który będzie przekazany po magistrali do wywołującego metodę

      

if

 

x

 

==

 ''

:

         

raise

 

Exception

(

"Argument can't be empty"

)

      

else

:

         

return

 

x

   

# przy asynchronicznej obsłudze wywołań mamy dwa dodatkowe parametry

   # (opisane w dekoratorze, w parametrze 'async_callbacks'),
   # są to funkcje do wywołania w razie sukcesu lub porażki

   @

dbus

.

service

.

method

(

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

', 

in_

signature

=

'', 

out_signature

=

'i', 

async_callbacks

=(

'

success

', '

failure

'

))

   

def

 

gener

(

self

success

failure

):

      

self

.

_generVal

 

+=

 

1

      

# dla każdej dziesiątki generujemy sygnał (patrz następna metoda)

      

if

 

self

.

_generVal

 

%

 

10

 

==

 

0

:

         

self

.

next_ten

(

self

.

_generVal

)

      

# zbieramy na liście informację o aktualnym czasie, generowanej wartości

      

# i funkcjach callback dla późniejszego wykorzystania

      

self

.

_jobs

.

append

((

time

.

time

()

self

.

_generVal

success

failure

))

   

# sygnał może mieć pustą treść (instrukcja pass)

   @

dbus

.

service

.

signal

(

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

', 

signature

=

'u'

)

   

def

 

next_ten

(

self

val

):

      

pass

   

# ta metoda jest wywoływana co sekundę i sprawdza, czy minęło dla danego 

wywołania

   

# ponad 5 sekund, wtedy wywołuje callback dla sukcesu (j[2])

   

# z argumentem j[1] czyli wygenerowaną wartością

   

def

 

compute

(

self

):

      

t

 

=

 

time

.

time

()

      

jobs

 

=

 

[]

      

for

 

j

 

in

 

self

.

_jobs

:

         

if

 

t

-

j

[

0

]

 

>

 

5

:

            

j

[

2

](

j

[

1

])

         

else

:

            

jobs

.

append

(

j

)

      

self

.

_jobs

 

=

 

jobs

      

# gdybyśmy zwrócili False, metoda nie byłaby ponownie wywoływana

background image

50

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

51

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

•  a{s(yyb)}

  –  słownik  indeksowany  napi-

sami (klucz to s), a wartości to krotki trój-
elementowe (BYTE, BYTE, BOOLEAN).

Jak  przetestować  naszą  usługę?  Najprościej 
użyć dbus-send:(Listing 18.)

Jednakże za każdym razem chcąc wywo-

łać  metodę  trzeba  byłoby  uruchamiać  naszą 
aplikację  ręcznie.  To  niewątpliwie  niewygod-
ne. Skonfigurujmy w takim razie automatycz-
ny  start.  W  tym  celu  musimy  utworzyć  plik 
/usr/share/dbus-1/services/somedomain.my.cal
c.service
 z następującą zawartością:

[D-BUS Service]

Name=somedomain.my.calc

Exec=/sciezka/do/naszego/pliku/calc.py

Teraz wspomniane wyżej polecenie dbus-send 
spowoduje,  w  razie  potrzeby,  automatyczne 
uruchomienie  usługi  i  po  pewnym  czasie  po-
winniśmy otrzymać wysłany komunikat z po-
wrotem (tak działa nasze echo). Podobnie mo-
żemy przetestować drugą metodę. Oczywiście 
ciekawiej będzie napisać własny program testo-
wy w Pythonie. Jest on raczej nieskomplikowa-
ny (listing nr 4).

Zauważmy, że w naszym przykładzie, za-

równo po stronie aplikacji usługowej jak i wy-
wołującej metodę mamy do czynienia z działa-
niem synchronicznym. Testowy program czeka 
na wyniki, które zwróci wywołanie. W rzeczy-
wistości D-Bus działa asynchronicznie: po ma-
gistrali  wędruje  żądanie  wywołania  metody  a 
później wraca wynik (lub informacja o błędzie). 
Programując w Pythonie możemy być tym fak-
tem zainteresowani. Czasami obsługa metody 
trwa długo, w tym czasie obie strony nie mogą 
się  niczym  innym  zajmować. Tymczasem  za-
miast czekać biernie na rezultat możemy robić 
coś pożytecznego. Podobnie po stronie progra-
mu obsługującego wywołanie: zamiast bloko-
wać dostęp, powinniśmy oczekiwać na kolej-
ne wywołania. Możemy zwolnić zarezerwowa-
ną nazwę i umożliwić demonowi automatyczne 
uruchomienie kolejnych wcieleń naszego pro-
gramu, ale efektywniej będzie obsługiwać wie-
le wywołań w jednym procesie. Oczywiście ta-
kie zmiany są przezroczyste dla drugiej strony, 
czyli niezależnie decydujemy o synchronicznej 
lub asynchronicznej obsłudze na poziomie Py-
thona po stronie klienta i po stronie programu 
usługowego.  Dokładniejszy  opis  możemy  zo-
baczyć na listingu nr 5 (udostępnianie usług) i 
nr 6 (klient do testowania).

W  ostatnim  przykładzie  warto  też  zwró-

cić uwagę na obsługę błędów (wyjątków), któ-
re  mogą  się  pojawić  zamiast  wyniku. W  dal-
szych rozważaniach, dla uproszczenia, nie bę-

Listing 5b. 

Wysyłanie sygnału z własnej aplikacji

      

return

 

True

calc

 

=

 

Calc

()

# wywołanie calc.compute co 1000ms (1s)

gobject

.

timeout_add

(

1000

calc

.

compute

)

loop

 

=

 

gobject

.

MainLoop

()

loop

.

run

()

Listing 6. 

Funkcja finish

#!/usr/bin/env python

import

 

sys

import

 

dbus

import

 

gobject

from

 

dbus

.

mainloop

.

glib

 

import

 

DBusGMainLoop

DBusGMainLoop

(

set_as_default

=

True

)

bus

 

=

 

dbus

.

SessionBus

()

calc

 

=

 

bus

.

get_object

(

'

somedomain

.

my

.

calc

',

                      '/

somedomain

/

my

/

calc

'

)

test_iface

 

=

 

dbus

.

Interface

(

calc

dbus_interface

=

'

somedomain

.

my

.

calc

.

test

'

)

def

 

reply_cb

(

answer

):

    

print

 

"Received: "

+

answer

    

print

;

 

print

def

 

error_cb

(

err

):

    

print

 

"Error: "

+

str

(

err

)

    

print

;

 

print

def

 

finish

():

    

#wyjście z pętli oczekiwania

    

loop

.

quit

()

    

return

 

False

# wykrywanie wyjątków, wywołanie synchroniczne

try

:

    

print

 '

Received

:

 '

+

test_iface

.

echo

(

'

Hi

'

)

    

print

;

 

print

    

print

 

test_iface

.

echo

(

''

)

    

print

;

 

print

except

 

Exception

e

:

    

print

 

e

    

print

;

 

print

# wywołanie asynchroniczne, przekazanie dwóch funkcji callback
# do obsługi sukcesu i błędu (wyjątku)

test_iface

.

echo

(

'

Hello

!

', 

reply_handler

=

reply_cb

error_handler

=

error_cb

)

test_iface

.

echo

(

'', 

reply_handler

=

reply_cb

error_handler

=

error_cb

)

# za dziesięć sekund uruchomi się funkcja finish
# i zakończy pętlę oczekiwania

gobject

.

timeout_add

(

10000

finish

)

loop

 

=

 

gobject

.

MainLoop

()

loop

.

run

()

background image

50

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

51

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

dziemy brać pod uwagę tego faktu. W rzeczy-
wistych  programach  należy  jednak  zawsze  o 
tym pamiętać.

Reagowanie na sygnały

D-Bus umożliwia również reakcję na określo-
ne  zdarzenia.  Używając  dbus-monitora  od-
kryjemy,  że  Rhythmbox  wysyła  sygnał  elap-
sedChanged po każdej sekundzie odtwarzania 
utworu i playingUriChanged po zmianie utwo-
ru na nowy. W przypadku sygnałów nie ma po-
działu na parametry wejściowe i wyjściowe, są 
tylko przesyłane wartości – do odbiorcy trafiają 
poprzez parametry funkcji wywoływanej przy 
nadejściu sygnału (ang. callback). Nie ma od-
powiedzi zwrotnej, co wynika z natury sygna-
łu.  Program,  który  sygnalizuje  odtwarzanie  i 
zmianę utworu w Rhythmbox został pokazany 
na Listingu 7. Tylko wyświetla on informacje, 
ale mógłby w zasadzie wykonać dowolną inną 
akcję.  Na  Listingu  5  (do  poprzedniego  punk-
tu)  mamy  przykład  wysyłania  sygnału  z  wła-
snej aplikacji.

Komunikacja 

z HAL-em poprzez D-Busa

Teraz rozważmy bardziej skomplikowaną sy-
tuację – komunikację z demonem HAL (Har-
dware  Abstraction  Layer),  który  utrzymu-
je aktualną informację na temat sprzętu i np. 
pozwala oprogramowaniu reagować na zmia-
ny  w  tym  zakresie.  Oczywiście  HAL  to  te-
mat na odrębny artykuł. Tutaj wykorzystamy 
go do zilustrowania możliwości komunikacji 
poprzez D-Busa. Jako przykład przeanalizuj-
my  możliwość  automatycznego  montowania 
urządzeń  typu  pendrive  lub  CD-ROM.  Zale-
ży nam na możliwości dostosowania tego pro-
cesu do naszych potrzeb, w szczególności do 
nieograniczania się tylko do graficznego śro-
dowiska  pracy.  Pamiętajmy,  że  chcąc  zarzą-
dzać poprzez HAL-a montowaniem urządzeń, 
nie powinniśmy umieszczać wpisów ich doty-
czących w /etc/fstab. No chyba, że zamierza-
my  je  montować  korzystając  bezpośrednio  z 
polecenia mount (przy odpowiedniej konfigu-
racji też jest to możliwe), a HAL-a wykorzy-
stywać tylko do otrzymywania informacji.

Rozmowę  z  HAL-em  prowadzimy  po-

przez  magistralę  systemową.  Warto  przej-
rzeć  sobie  to  co  on  udostępnia  korzysta-
jąc  z  dbus-inspectora  (Rysunek  6).  A  co 
się  dzieje  podczas  wkładania  CD  do  napę-
du lub podłączania innych, wymiennych no-
śników możemy zaobserwować przy pomo-
cy dbus-monitora (Rysunek 7). Sygnał, któ-
ry przechwycimy to DeviceAdded. Oczywi-
ście  może  się  on  pojawić  w  wyniku  doda-
nia różnych urządzeń, nie tylko montowal-

Rysunek 6. 

Demon HAL widoczny w dbus-inspectorze

Listing 7. 

Odtwarzanie i zmiana utworu w Rhythmbox

#!/usr/bin/env python

import

 

sys

import

 

dbus

import

 

gobject

from

 

dbus

.

mainloop

.

glib

 

import

 

DBusGMainLoop

DBusGMainLoop

(

set_as_default

=

True

)

# sygnał elapsedChanged dostarcza jedna wartość:
# czas jaki upłynął od początku utworu (w sekundach)
# i przekazuje do funkcji zwrotnej poprzez parametr

def

 

elapsedCallback

(

time

):

    

print

  '

Time

 

elapsed

:

', 

time

# sygnał playingUriChanged dostarcza jedna wartość:
# adres odtwarzanego utworu

def

 

playingChangedCallback

(

uri

):

    

print

 '

Next

 

tune

:

', 

uri

bus

 

=

 

dbus

.

SessionBus

()

# "podczepianie" się pod sygnał spełniający określone warunki
# handler_function - funkcja wywoływana w momencie odebrania sygnału
# pozostałe parametry muszą pasować do sygnału, aby był odebrany

bus

.

add_signal_receiver

(

handler_function

=

elapsedCallback

,

                

signal_name

=

'

elapsedChanged

',

                

dbus_interface

=

'

org

.

gnome

.

Rhythmbox

.

Player

',

                

path

=

'/

org

/

gnome

/

Rhythmbox

/

Player

'

)

bus

.

add_signal_receiver

(

handler_function

=

playingChangedCallback

,

                

signal_name

=

'

playingUriChanged

',

                

dbus_interface

=

'

org

.

gnome

.

Rhythmbox

.

Player

',

                

path

=

'/

org

/

gnome

/

Rhythmbox

/

Player

'

)

loop

 

=

 

gobject

.

MainLoop

()

loop

.

run

()

background image

52

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

53

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

nych. Musimy zatem sprawdzić z czym ma-
my do czynienia. Ogólna idea jest następu-
jąca: przechwytujemy sygnał  DeviceAdded

odpytujemy  HAL-a  o  podłączone  urządze-
nie  i  jeżeli  jest  to  coś  montowalnego,  wy-
wołujemy  metodę  Mount  podając  unikalną 

nazwę  w  katalogu  /media  (użyjemy  nazwy 
montowanego urządzenia). Odpowiedni kod 
jest na Listingu 8. Zwróćmy jeszcze uwagę 
na kilka szczegółów.

•   W  znanej  już  nam  metodzie  add_si-

gnal_receiver  użyliśmy  dodatkowe-
go  parametru:  named_service='org.fre-
edesktop.Hal'.  Nie  było  to  możliwe  dla 
Rhythmbox-a  ponieważ  mógł  on  jesz-
cze nie pracować w momencie startu na-
szej  aplikacji.  Tymczasem  demon  HAL 
jest z reguły uruchamiany przez skrypty 
startowe więc już działa gdy rozpoczyna 
pracę nasz program.

•   Metoda  GetAllProperties  dostarcza 

słownik  (dict,  ang.  dictionary),  używa-
my  go  jako  tzw.  tablicy  asocjacyjnej 
czyli  indeksowanej  nie  tylko  liczbami 
ale i innymi obiektami, np. napisami. Je-
żeli wyrażenie klucz in slownik ma war-
tość  True  to  możemy  bezpiecznie  użyć 
zapisu  „slownik[klucz]”,  nie  spowoduje 
to błędu (a dokładniej wyjątku).

•   Operator  „and”  jest  obliczany  tak  jak 

w C (operator &&) czyli np. w wyraże-
niu „a!=0 and b/a>10”, druga część (po 
and) nie jest obliczana jeżeli a ma war-
tość zero, co nas zabezpiecza przed dzie-
leniem przez zero. Pozostałe uwagi znaj-
dują się w komentarzach.

Teraz  wystarczy  nasz  program  uruchomić  i 
urządzenia  są  montowane  automatycznie  w 
podkatalogach  /media/. A  co  z  odmontowy-
waniem?  Możnaby  reagować  na  różne  zda-
rzenia  (np.  w  przypadku  CD  można  wykry-
wać naciśnięcie przycisku eject). Na deskto-
pie może się pojawiać ikonka (tak, jak to się 
dzieje w GNOME), i poprzez nią można by 
odmontować urządzenie.

Użyteczną własnością D-Busa jest możli-

wość wykrywania kiedy dany program rozpo-
czyna i kończy pracę poprzez obserwację sy-
gnałów  towarzyszących  rejestrowaniu  i  wy-
rejestrowywaniu nazw. Można zatem, po za-
montowaniu zasobu, uruchomić odpowiednią 
aplikację (menadżera plików) do jego przeglą-
dania. W momencie zamknięcia tego progra-
mu przez użytkownika urządzenie byłoby od-
montowywane.

A  co  z  trybem  tekstowym?  Możemy 

stworzyć  polecenie  odmontowujące,  które 
zwykły  użytkownik  wykorzysta  do  odmon-
towania. Jest jeszcze problem opcji z jakimi 
montowany jest system plików, w szczegól-
ności fakt, że właścicielem tego zasobu po-
winien być użytkownik, który go podłączył. 
Można się też zastanawiać nad czytelniejszy-

Listing 8. 

Metoda mount

#!/usr/bin/env python

import

 

sys

import

 

dbus

import

 

gobject

from

 

dbus

.

mainloop

.

glib

 

import

 

DBusGMainLoop

DBusGMainLoop

(

set_as_default

=

True

)

# ta funkcja otrzyma nazwę nowego urządzenia poprzez sygnał (parametr name)

def

 

newDevCallback

(

name

):

   

obj

 

=

 

bus

.

get_object

(

'

org

.

freedesktop

.

Hal

', 

name

)

   

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

org

.

freedesktop

.

Hal

.

Device

'

)

   

# pytamy o własności nowego urządzenia

   

properties

 

=

 

iface

.

GetAllProperties

()

   

method_names

 

=

 '

org

.

freedesktop

.

Hal

.

Device

.

Volume

.

method_names

'

   

# jeżeli jest dostępna wymieniona powyżej metoda to możemy sprawdzić

   

# możliwość użycia metody Mount

   

if

 

method_names

 

in

 

properties

 

and

 '

Mount

in

 

properties

[

method_names

]:

      

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

org

.

freedesktop

.

Hal

.

Devi

ce

.

Volume

'

)

      

# split dostarcza listę elementów rozdzielonych podanym napisem,

      

# a indeks (-1) oznacza ostatni element tej listy,

      

# metoda Mount powinna otrzymać następujące argumenty:

      

# punkt montowania (wewnątrz /media), typ systemu plików (może być 

pusty)

      

# i listę opcji

      

iface

.

Mount

(

name

.

split

(

'/'

)[-

1

]

""

[

""

])

bus

 

=

 

dbus

.

SystemBus

()

bus

.

add_signal_receiver

(

handler_function

=

newDevCallback

,

            

signal_name

=

'

DeviceAdded

',

            

dbus_interface

=

'

org

.

freedesktop

.

Hal

.

Manager

',

            

named_service

=

'

org

.

freedesktop

.

Hal

',

            

path

=

'/

org

/

freedesktop

/

Hal

/

Manager

'

)

loop

 

=

 

gobject

.

MainLoop

()

loop

.

run

()

Rysunek 7. 

Informacja pojawiająca się na magistrali podczas wkładania CD do napędu.

background image

52

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

53

Praktyka

Wprowadzenie do architektury D-Busa

www.lpmagazine.org

mi nazwami katalogów, tak aby łatwiej moż-
na  je  było  skojarzyć  z  urządzeniami.  Meto-
da GetAllProperties jest ogromnym źródłem 
informacji o urządzeniu (ścieżka do niego w 
systemie plików, typ systemu plików i wie-
le innych). Warto po prostu wyświetlić wy-
nik  jej  działania  i  zastanowić  się  jak  te  in-
formacje  wykorzystać.  Ostatnie  usprawnie-
nie, o którym warto pomyśleć to wyświetla-
nie okienka dialogowego dla wyboru opcji i 
ewentualnego programu do uruchomienia w 

momencie podłączania urządzenia. Tego ty-
pu  rozbudowę  pozostawiamy  czytelniko-
wi.  Oczywiście  tworzona  aplikacja  powin-
na być niezależna od wybranego menadżera 
okien. Tutaj spróbujemy zmodyfikować kod 
w nieco innym kierunku, przy okazji umiesz-
czając  w  jednym  programie  obsługę  dwóch 
magistral.

Nasza aplikacja montująca będzie udostęp-

niać metodę do odmontowania zasobów, którą 
to operację możemy wywołać z innego progra-

mu.  Program  montujący  powinien  działać  ra-
czej jako demon, ale w celach testowych uru-
chamiamy go na konsoli w pierwszym planie 
i obserwujemy ewentualne komunikaty o błę-
dach.  Listing  9  przedstawia  zmodyfikowany 
kod montujący, a listing 10 – aplikację do od-
montowywania.  Komunikują  się  one  poprzez 
D-Busa  (magistralę  sesyjną).  Po  uruchomie-
niu,  program  odmontowujący  wyświetla  listę 
zamontowanych zasobów i pozwala podjąć de-
cyzję użytkownikowi.

Listing 9. 

Zmodyfikowany kod montujący

   

# list - zwraca listę zamontowanych zasobów (as -- 

tablica stringow)

   @

dbus

.

service

.

method

(

dbus_interface

=

'

our

.

list

.

of

.

de

vices

', 

in_signature

=

'', 

out_signature

=

'

as

'

)

   

def

 

list

(

self

):

      

return

 

self

.

devices

   

# unmount - odmontowuje podany zasób

   @

dbus

.

service

.

method

(

dbus_interface

=

'

our

.

list

.

of

.

de

vices

', 

in_signature

=

's', 

out_signature

=

''

)

   

def

 

unmount

(

self

name

):

      

obj

 

=

 

bus

.

get_object

(

'

org

.

freedesktop

.

Hal

', 

name

)

      

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

org

.

freedesktop

.

Hal

.

Device

'

)

      

info

 

=

 

iface

.

GetAllProperties

()

      

method

 

=

 '

org

.

freedesktop

.

Hal

.

Device

.

Volume

.

meth

od_names

'

         

# testujemy obecność metody Unmout, chociaż 

skoro dało sie zamontować

         

# dane urządzenie to możliwość odmontowania 

też powinna być dostępna

      

if

 

method

 

in

 

info

 

and

 '

Unmount

in

 

info

[

method

]:

         

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

o

rg

.

freedesktop

.

Hal

.

Device

.

Volume

'

)

         # metoda Unmount powinna otrzyma nastpujce 

argumenty:

         # lista opcji

         

iface

.

Unmount

([

""

])

         

self

.

devices

.

remove

(

name

)

   

def

 

addDevice

(

self

name

):

      

self

.

devices

.

append

(

name

)

bus

 

=

 

dbus

.

SystemBus

()

bus

.

add_signal_receiver

(

handler_

function

=

newDevCallback

,

         

signal_name

=

'

DeviceAdded

',

         

dbus_interface

=

'

org

.

freedesktop

.

Hal

.

Manager

',

         

named_service

=

'

org

.

freedesktop

.

Hal

',

         

path

=

'/

org

/

freedesktop

/

Hal

/

Manager

'

)

devs

 

=

 

Devices

()

loop = gobject.MainLoop()

loop

.

run

()

#!/usr/bin/env python

import

 

sys

import

 

os

import

 

dbus

import

 

dbus

.

service

import

 

gobject

from

 

dbus

.

mainloop

.

glib

 

import

 

DBusGMainLoop

DBusGMainLoop

(

set_as_default

=

True

)

#pobranie id właściciela procesu, konwersja na string
userId = str(os.getuid())

def

 

newDevCallback

(

name

):

   

obj

 

=

 

bus

.

get_object

(

'

org

.

freedesktop

.

Hal

', 

name

)

   

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

org

.

fre

edesktop

.

Hal

.

Device

'

)

   

info

 

=

 

iface

.

GetAllProperties

()

   

method

 

=

 '

org

.

freedesktop

.

Hal

.

Device

.

Volume

.

method

_names

'

   

if

 

method

 

in

 

info

 

and

 '

Mount

in

 

info

[

method

]:

      

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

org

.

freedesktop

.

Hal

.

Device

.

Volume

'

)

      

# split dostarcza listę elemetów, a indeks (-1) 

oznacza ostatni element

      

# metoda Mount powinna otrzymać następujące 

argumenty:

      

# punkt montowania (wewnątrz /media), typ 

systemu plików, listę opcji

      

# właścicielem systemu plików będzie ten kto 

uruchomi aplikację

      

iface

.

Mount

(

name

.

split

(

'/'

)[-

1

]

""

[

"uid="

+

userId

])

      

# program trzyma listę zamontowanych urządzeń

      

devs

.

addDevice

(

name

)

class

 

Devices

(

dbus

.

service

.

Object

):

   

def

 

__init__

(

self

):

      

dbus

.

service

.

Object

.

__init__

(

self

dbus

.

SessionBus

()

,

         '/

devices

', 

dbus

.

service

.

BusName

(

'

our

.

list

.

of

.

devices

'

))

      

self

.

devices

 

=

 

[]

   

# na magistrali sesyjnej udostępnione są dwie metody:

background image

54

Praktyka

Wprowadzenie do architektury D-Busa

maj 2008

Listing 10. 

Aplikacja do odmontowywania urządzeń

#!/usr/bin/env python

import

 

sys

import

 

dbus

bus

 

=

 

dbus

.

SessionBus

()

obj

 

=

 

bus

.

get_object

(

'

our

.

list

.

of

.

devices

', '/

devices

'

)

iface

 

=

 

dbus

.

Interface

(

obj

dbus_interface

=

'

our

.

list

.

of

.

devices

'

)

# pytamy się o listę zamontowanych urządzeń

devices

 

=

 

iface

.

list

()

for

 

i

dev

 

in

 

enumerate

(

devices

):

    

print

 

str

(

i

)+

'

:

 '

+

dev

print

 

"Wybierz nr: "

,

answer

 

=

 

sys

.

stdin

.

readline

()

# powinniśmy sprawdzić czy użytkownik podał
# dopuszczalną odpowiedź, dla uproszczenia to pomijamy

iface

.

unmount

(

devices

[

int

(

answer

)])

Listing 11. 

Nieco uproszczona składnia uruchomienia programu dbus-send dla wywołania zdalnej metody

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

 

[--

system

 

|

 

--

session

]

 

--

dest

=

nazwa

-

us

ł

ugi

 

--

print

-

reply

 

--

type

=

method_call

 

sciezka

-

do

-

obiektu

 

interface

.

metoda

 

[

opcjonalne

-

argumenty

]

Listing 12. 

Wypisanie listy wszystkich nazw zarejestrowanych na magistrali sesyjnej

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

 

--

session

 

--

dest

=

org

.

freedesktop

.

DBus

 

--

type

=

method_call

 

--

print

-

reply

 / 

org

.

freedesktop

.

DBus

.

ListNames

Listing 13. 

Uruchomienie aplikacji z wykorzystaniem aktywacji D-Busa

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

 

--

session

 

--

dest

=

org

.

freedesktop

.

DBus

 

--

type

=

method_call

 

--

print

-

reply

 / 

org

.

freedesktop

.

DBus

.

StartServi

ceByName

 

string

:

org

.

gnome

.

Rhythmbox

 

uint32

:

0

Listing 14. 

Wykorzystanie interfejsu org.freedesktop.DBus.Introspectable do sprawdzenia udostępnianych przez Rhythmbox-a obiektów

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

 

--

session

 

--

dest

=

org

.

gnome

.

Rhythmbox

 

--

type

=

method_call

 

--

print

-

reply

 /

org

/

gnome

/

Rhythmbox

 

org

.

freedeskt

op

.

DBus

.

Introspectable

.

Introspect

Listing 15. 

Przekierowanie informacji o udostępnianych przez Rhythmbox-a interfejsach i metodach do pliku

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

 

--

session

 

--

dest

=

org

.

gnome

.

Rhythmbox

 

--

type

=

method_call

 

--

print

-

reply

 /

org

/

gnome

/

Rhythmbox

/

Player

 

org

.

fr

eedesktop

.

DBus

.

Introspectable

.

Introspect

 

>

 

rhythmbox_player

.

xml

Listing 16. 

Ustawienie poziomu głośności w programie Rhythmbox na 50% wartości maksymalnej

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

 

--

session

 

--

dest

=

org

.

gnome

.

Rhythmbox

 

--

type

=

method_call

 

--

print

-

reply

 /

org

/

gnome

/

Rhythmbox

/

Player

 

org

.

gn

ome

.

Rhythmbox

.

Player

.

setVolume

 

double

:

0.5

Listing 17. 

Przykładowy skrypt do uruchamiania programu dbus-inspector

#!/bin/sh

DBUS_INSPECTOR_DIR

=

sciezka_do_katalogu_z_dbus

-

inspectorem

DBUS_INSPECTOR

=

dbus

-

inspector

cd

 $

{

DBUS_INSPECTOR_DIR

}

./$

{

DBUS_INSPECTOR

}

Listing 18. 

Testowanie usługi z listingu 3 przy pomocy programu dbus-send

# poniżej znajduje się pojedynczy wiersz

dbus

-

send

   

--

session

 

--

dest

=

somedomain

.

my

.

calc

 

--

print

-

reply

 /

somedomain/my/calc somedomain.my.calc.test.echo 

string:’Nice to see you’

background image

www.lpmagazine.org

Przytoczony  kod  montujący  używa  opcji 

uid=...  czyli  określa,  kto  jest  właścicielem 
montowanego systemu plików. Nie dla wszyst-
kich systemów ma to sens, ale jest odpowied-
nie dla vfat (typowy dla pendrive) oraz iso9660 
(CD). Najlepiej byłoby jednak sprawdzić, jaki 
jest system plików na danym urządzeniu. Dwie 
uwagi na zakończenie tego punktu:

•   binding  dla  Pythona  definiuje  specjalne 

typy – odpowiedniki typów D-Busowych 
(tab. 2), jednak gdy introspekcja jest do-
stępna, konwersja jest automatyczna i nie 
musimy  sami  jej  przeprowadzać,  może-
my używać standardowych typów Pytho-
na  (chyba,  że  bardzo  nam  zależy  na  ja-
kimś konkretnym);

•   warto obejrzeć usługi, które udostępnia-

my przy pomocy chociażby dbus-inspec-
tora, przekonamy się, że Python zapew-

nił  nam  automatycznie  interfejs  org.fre-
edesktop.DBus.Introspectable
  co  jest 
dość wygodne.

Podsumowanie

Najlepszym sposobem na nauczenie się czego-
kolwiek jest po prostu rozpoczęcie pracy z da-
nym systemem. System D-Bus jest obecnie do-
myślnie instalowany w popularnych dystrybu-
cjach a demon systemowy – uruchamiany pod-
czas startu systemu. Jeżeli nasz menadżer logo-
wania  nie  uruchamia  magistrali  sesyjnej  gdy 
rozpoczynamy pracę z systemem (w szczegól-
ności w trybie tekstowym), możemy sami uru-
chamiać naszego demona. Wystarczy do odpo-
wiedniego  pliku,  czytanego  podczas  logowa-
nia, wstawić następującą linię:

eval $(dbus-launch --sh-syntax --exit-

with-session)

To  spowoduje  wystartowanie  procesu  dbus-
daemon  oraz  jego  zakończenie  podczas  wy-
logowywania.  Ustawia  to  też  automatycznie 
zmienną 

DBUS_SESSION_BUS_ADDRESS

.  Para-

metru 

--sh-syntax

  używamy  w  przypadku 

korzystania  z  powłoki  sh  (bash).  Można  też 
skorzystać  z  własnej,  niestandardowej  konfi-
guracji D-Busa:

eval $(dbus-launch --sh-syntax --

config-file=/sciezka/do/session.conf 

--exit-with-session)

Niestety  automatyczne  zamykanie  demona 
działa  jedynie  wtedy,  gdy  korzystamy  z  sys-
temu X window. W szczególności wtedy, gdy 
do zdalnego systemu dostajemy się przez ssh z 
włączonym X forwarding. W pozostałych przy-
padkach musimy zadbać o ręczne zabicie de-
mona (np. w .bash_logout). System D-Bus jest 
dość rozbudowany i część zagadnień w ogóle w 
artykule nie była poruszona. Np. konfiguracja, 
bezpieczeństwo. Dalsze informacje można uzy-
skać korzystając z poniższych zasobów interne-
towych.  Istnieje  szereg  protokołów  do  komu-
nikacji  między  procesami.  W  przypadku  sys-
temów desktopowych idealnie by było gdyby 
wszystkie aplikacje rozmawiały ze sobą wspól-
nym językiem. I właśnie D-Bus ma szansę stać 
się takim uniwersalnym protokołem. 

D-Bus:

•   http://www.freedesktop.org/wiki/Software/dbus
•   http://dbus.freedesktop.org/doc/
•   http://www.freedesktop.org/wiki/IntroductionToDBus
•   http://www.freedesktop.org/wiki/Software/DbusProjects
•   http://people.freedesktop.org/~david/hal-spec/hal-spec.html
•   http://www.linuxfromscratch.org/blfs/view/svn/general/dbus.html

Python:

•   http://www.python.org
•   http://www.python.org.pl
•   http://pl.wikibooks.org/wiki/Python

dbus-inspector:

•   http://www.vitavonni.de/projekte/dbus-inspector

W Sieci

R

E

K

L

A

M

A

Autor pracuje w firmie ComArch jako pro-
gramista od prawie dwóch lat. Jego zain-
teresowania zawodowe obejmują języki C, 
C++, Python i Java. Posiada również do-
świadczenie  jako  administrator  serwerów 
linuksowych i BSD.

Kontakt  z  autorem:  zbigniew.koza-

k@zk.net.pl

O autorze

background image

praktyka

Linux komórkowy

56

maj 2008

praktyka

Linux komórkowy

57

www.lpmagazine.org

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

W

iększość  czytelników  zapewne  pamię-
ta jeszcze czasy, kiedy telefony komór-
kowe sprawdzały się równie dobrze ja-
ko  urządzenia  do  wykonywania  połą-

czeń  telefonicznych,  jak  i  broń  obronno–zaczepna.  By-
ły po prostu ogromne! Ze względu na swoją wagę oraz 
rozmiary,  którymi  przypominały  znane  z  hollywoodz-
kich  filmów  wojskowe  telefony  satelitarne,  o  noszeniu 
ich  w  kieszeni  można  było  praktycznie  zapomnieć.  Na 
początku  lat  dziewięćdziesiątych  telefonia  komórkowa 
trafiła  również  do  Polski.  Od  tego  czasu  aparaty  zmie-
niły się nie do poznania. Z biegiem czasu funkcje wyko-
nywania połączeń i pisania SMS–ów zeszła na drugi, je-
śli nawet nie dalszy plan. Najważniejsze w dzisiejszym 
telefonie komórkowym jest to, żeby miał duży wyświe-
tlacz,  odtwarzał  muzykę,  robił  zdjęcia,  nagrywał  filmy, 
miał radio... a niedługo poprzez telefony komórkowe bę-
dzie można nawet oglądać cyfrową telewizję w standar-
dzie  DVB–H.  Ale  wróćmy  jeszcze  na  chwilę  do  prze-
szłości.  Kiedy  telefony  otrzymały  możliwość  komuni-
kacji za pomocą krótkich wiadomości tekstowych, ode-
brane SMS–y były przechowywane na karcie SIM, jed-

nak wiązały się z tym pewne ograniczenia. W zależno-
ści od operatora mogliśmy na niej przechowywać mak-
symalnie 25–30 wiadomości, co nie jest zbyt imponują-
cą ilością. Raz na jakiś czas trzeba było więc robić po-
rządki w pamięci poprzez wyrzucenie starych wiadomo-
ści. W okolicach roku 2003 w telefonach komórkowych 
zaczęto  montować  wewnętrzną  pamięć,  na  której  mo-
gła się znajdować zawartość naszej książki telefonicznej 
oraz skrzynki odbiorczej. Ostatecznie okazało się jednak, 
że chociaż teraz w pamięci możemy zapisać nawet ponad 
100 wiadomości, to i tak miejsca jest za mało. Spróbujmy 
więc  do  przechowywania  wiadomości  wykorzystać  na-
sze komputery, które nie tylko pozbawione są ograniczeń 
związanych z ilością dostępnego miejsca, a oferują po-
nadto  szeroki  wachlarz  różnorodnych  możliwości.  Pro-
gramy, które opiszę, oferują znacznie więcej niż pobiera-
nie SMS–ów z telefonu. W zasadzie to tylko wierzchołek 
góry lodowej, przejdźmy więc do konkretów.

Wstępna konfiguracja

Opiszę  tutaj  jak  podłączyć  telefon  korzystając  z  kabla 
USB,  chociaż  wszystkie  programy,  które  zaprezentu-

Linux komórkowy

Na początku był telefon komórkowy. Z biegiem czasu ewoluował w przenośny multimedialno–
rozrywkowy kombajn z zaszytą gdzieś głęboko funkcją telefonu. W tym artykule przedstawię kilka 
programów, które pozwolą na lepszą kontrolę nad telefonem w środowisku systemu Linux.

Robert Multan

background image

praktyka

Linux komórkowy

56

maj 2008

praktyka

Linux komórkowy

57

www.lpmagazine.org

ję niżej  mają  również  możliwość  komuni-
kacji za pośrednictwem podczerwieni (IR-
DA)  oraz  fal  radiowych  (Bluetooth).  Na 
początek  musimy  odpowiednio  skonfigu-
rować  jądro  naszego  systemu.  Podłącza-
my  więc  telefon  do  portu  USB  i  wydaje-
my polecenie 

lsusb

które pokaże nam li-

stę obecnych urządzeń. Jeżeli na liście od-
najdziemy  nasz  telefon  (nie  musi  to  być 
dokładnie  ten  sam  model),  przechodzi-
my  do  właściwej  konfiguracji.  Jeżeli  po-
trzebujemy  tylko  dostępu  do  systemu  pli-
ków  telefonu,  wystarczy  nam  jedynie  ob-
sługa urządzeń pamięci masowej podłącza-
nych pod USB, a ta jest integralną częścią 
praktycznie każdej dystrybucji (część tele-
fonów  wymaga  odnalezienia  opcji  podłą-
czenia  z  komputerem  i  zmiany  typu  połą-
czenia z modem/fax na data storage). W ta-
kiej sytuacji podłączone urządzenie będzie 
widoczne w systemie tak samo jak pendri-
ve czy zewnętrzny dysk twardy. Do trans-
feru  plików  będziemy  więc  potrzebowa-
li  tylko  zwykłego  managera  plików:  Ko-
nquerora, Dolphina, Midnight Commande-
ra czy zwykłych konsolowych poleceń. Je-
śli zaś chcemy mieć dostęp do książki adre-
sowej i odebranych wiadomości, potrzebny 
nam będzie moduł obsługi modemów USB. 
Najpierw sprawdzamy, czy mamy w syste-
mie odpowiedni moduł wydając w konsoli 
polecenie 

modprobe  -l  |  grep  cdc-acm

Jeśli system odpowie twierdząco, przecho-
dzimy dalej. Jeśli nie, będziemy zmuszeni 

doinstalować  brakujący  sterownik  (odnaj-
dziemy go w konfiguracji jądra pod Devi-
ce drivers –> USB Support –> USB Modem 
(CDC ACM)  support).  Zaopatrzeni  w  od-
powiedni moduł powinniśmy go teraz zała-
dować poleceniem 

modprobe  cdc-acm

. W 

tym  momencie  powinno  pojawić  się  urzą-
dzenie  /dev/ttyACM0  prowadzące  do  na-
szego  świeżo  zainstalowanego  telefonu. 
Zostało jeszcze tylko ostateczne sprawdze-
nie,  czy  mamy  odpowiednie  uprawnienia 
do pliku urządzenia (w przypadku systemu 
Gentoo musimy należeć do grupy uucp) po-
leceniem 

ls  -la  /dev/ttyACM0

 i podsta-

wową  konfigurację  możemy  uznać  za  za-
kończoną. Czas więc przyjrzeć się progra-
mom do obsługi naszego telefonu.

Gammu

Gammu jest niewielkim, konsolowym pro-
gramem  umożliwiającym  komunikację  z 
telefonami komórkowymi. Pomimo swojej 
niepozorności  oferuje  użytkownikowi  na-
prawdę szeroki wachlarz opcji. Przed przy-
stąpieniem do korzystania z programu na-
leży  wcześniej  skonfigurować  połączenie 
poleceniem 

gammu-config,

  które  wywo-

ła  pseudograficzny  konfigurator  służący 
do  ustalenia  potrzebnych  parametrów.  W 
przypadku  większości  nowszych  urządzeń 

podłączonych  do  portu  USB,  jako  typ  po-
łączenia  powinniśmy  wybrać  at115200  (w 
wypadku starszych modeli lepszym wybo-
rem jest at19200), a dla IRDA oraz Blueto-
oth  odpowiednio  irdaobex  i  blueat. Warto 
także  zwrócić  uwagę  na  pozycję  Synchro-
nize
  Time,  dzięki  której  program  będzie 
synchronizował  czas  na  naszym  telefonie 
z zegarem komputera przy każdym podłą-
czeniu.  Po  zakończeniu  konfiguracji  czas 
przetestować  połączenie.  W  tym  celu  wy-
dajemy polecenie 

gammu  identify,

 które 

wyświetla  podstawowe  informacje  o  tele-
fonie,  numerze  IMEI  oraz  wersji  oprogra-
mowania.  Czas  na  przedstawienie  najbar-
dziej  użytecznych  funkcji.  Kompletny  ze-
staw opcji jest opisany w manualu progra-
mu,  który  możemy  wywołać  poleceniem 

man gammu

.

Przejdźmy  teraz  do  używania  samego 

programu,  ściślej:  do  wysyłania  SMS–ów. 
Aby wysłać wiadomość wydajemy polece-
nie 

gammu sendsms TEXT <numer odbior-

cy>,

 następnie wpisujemy treść wiadomo-

ści,  potwierdzamy  naciskając  kombinację 
ctrl+D,  czekamy  chwilę  na  potwierdze-
nie wysłania SMS–a i już! Jedną z bardziej 
użytecznych funkcji programu jest na przy-
kład  możliwość  wysyłania  tak  zwanych 
flash  SMS–ów  (wystarczy  dodać  na  koń-

•   Strona domowa programu 

Kmobiletools
http://www.kmobiletools.org/

•   Strona internetowa Gammu

http://www.gammu.org/

•   Strona Wammu

http://wammu.eu/

W Sieci

Rysunek 1. 

Okno programu Wammu

Listing 1. 

Wynik polecenia lsusb. Jak widzimy system zauważył nasz telefon

cthulhoo

 ~ # 

lsusb

Bus

 

003

 

Device

 

007

:

 

ID

 22

b8

:

4902

 

Motorola

 

PCS

 

E398

 

GSM

 

Phone

Bus

 

001

 

Device

 

003

:

 

ID

 

0402

:

5603

 

ALi

 

Corp

USB

 

2.0

 

Q

-

tec

 

Webcam

 

300

Bus

 

001

 

Device

 

001

:

 

ID

 

0000

:

0000

Rysunek 2. 

Komunikator Wammu

background image

58

praktyka

Linux komórkowy

maj 2008

59

praktyka

Linux komórkowy

www.lpmagazine.org

cu powyższego polecenia parametr -flash), 
które  nie  mogą  być  zapisane  w  telefonie 
odbiorcy i znikają zaraz po ich odczytaniu. 

Kolejną  przydatną  funkcją  jest  możliwość 
ustalenia  okresu  ważności  SMS–a  (mak-
symalnego  czasu  oczekiwania  na  odbiór) 

poprzez  podanie  parametru  -validity  (od-
powiednie  wartości  parametru  to  HOUR, 
6HOURS,  DAY,  3DAYS,  WEEK,  MAX).  
Warto  przy  tym  nadmienić,  że  korzysta-
jąc  z  Gammu  możemy  wysyłać  nie  tylko 
SMS–y,  ale  i  EMS–y,  dzwonki,  animacje, 
wizytówki VCARD oraz wiele innych. 

Zatrzymajmy się teraz chwilę przy od-

czytywaniu  SMS–ów.  Jeśli  chcemy  wy-
świetlić  jakąś  wiadomość,  musimy  wydać 
polecenie 

gammu  getsms  <numer  folde-

ru>  <numer  pocztkowy>  <numer  ko-

cowy>

.  Numerem  skrzynki  odbiorczej  jest 

najczęściej 1, więc jeśli chcemy wyświetlić 
piątą z otrzymanych wiadomości, wydaje-
my polecenie 

gammu  getsms  1  5  5

. Jeśli 

zaś nie wiemy, jaki numer ma poszukiwana 
przez nas wiadomość, możemy poleceniem 

gammu getallsms

 polecić programowi po-

branie wszystkich wiadomości i wyświetle-
nie ich na ekranie.

Jednak  jedną  z  najprzydatniejszych 

(choć  może  nie  najczęściej  używanych) 
funkcji  programu  jest  możliwość  utwo-
rzenia kopii zapasowej wszystkich wiado-
mości,  numerów  telefonów  oraz  ustawień 
poleceniem 

gammu  backup  <nazwa  pliku 

docelowego>.

  W  razie  potrzeby  możemy 

przywrócić  wszystko  z  powrotem  polece-
niem 

gammu restore <nazwa pliku>

.

Wszystkim, którzy nie boją się konso-

li, szczerze polecam korzystanie z Gammu. 
Program oferuje bowiem niespotykaną nig-
dzie  indziej  mnogość  funkcji.  Konsolowy 
interfejs może nie jest dla wszystkich naj-
wygodniejszy, ale sprawdza się świetnie w 
sytuacji, kiedy chcemy zapisać czy odtwo-
rzyć  kopię  zapasową,  przeszukać  książkę 
adresową, czy wysłać szybko SMS–a.

Kmobiletools

Kolejną  aplikacją  jest  napisany  w  oparciu 
o  biblioteki  Qt  programem  do  obsługi  te-
lefonów  komórkowych  dedykowanym  dla 
środowiska KDE czyli Kmobiletools. Pew-
nym jego mankamentem jest fakt, że ostat-
nia  stabilna  wersja  ukazała  się  dość  daw-
no,  bowiem  w  2004  roku.  Coś  jednak  się 
ruszyło  i  obecnie  w  fazie  beta  jest  kolej-
na wersja programu. Autorzy zapowiadają 
prawdziwie  rewolucyjne  zmiany  nie  tylko 
w interfejsie, ale i ogólnej funkcjonalności. 
Na premierę stabilnej wersji przyjdzie nam 
jednak poczekać. 

Kmobiletools  posiada  bardzo  przej-

rzysty,  dobrze  zaprojektowany  interfejs, 
w którym bez problemu odnajdzie się każ-
dy  użytkownik.  Przy  konfiguracji  nie  ata-
kują nas zewsząd kreatory, ale tak napraw-

Rysunek 3. 

Ustawienia KMobile Tools

Rysunek 4. 

Nowa wiadomość w KMobile Tools

background image

58

praktyka

Linux komórkowy

maj 2008

59

praktyka

Linux komórkowy

www.lpmagazine.org

dę nie są potrzebne w sytuacji, gdy jedyną 
opcją,  którą  większość  użytkowników  bę-
dzie chciała zmienić, jest ścieżka do nasze-
go urządzenia (najczęściej to /dev/ttyACM0 
dla połączenia USB, /dev/ircomm0 dla pod-
czerwieni, /dev/rfcomm0 dla bluetooth). W 
przypadku  ciągu  inicjującego  lepiej  zdać 
się  na  domyślną  wartość.  Kmobiletools 
oferuje  nam  w  zasadzie  wszystko,  czego 
potrzebuje  typowy  użytkownik.  Możemy 
odczytywać, usuwać oraz wysyłać SMS–y, 
dzwonić pod dowolny numer bądź wybrać 
jeden z książki telefonicznej oraz monito-
rować siłę sygnału i stan baterii. Możemy 
też  zapisać  dowolną  wiadomość  na  dys-
ku.  Brakuje  niestety  importu  wiadomości 
i ustawień do telefonu. Chociaż to z pozo-
ru mało użyteczna opcja, przydaje się bar-
dzo  w  sytuacji,  kiedy  zmieniamy  numer 
bądź  telefon.  Dzięki  tej  funkcji  jesteśmy 
bowiem w stanie w paru kliknięciach prze-
nieść  wszystkie  numery  telefonów  oraz 
wiadomości z jednego aparatu do drugiego. 
Przy  każdym  uruchomieniu  aplikacja  sa-
ma zgrywa z telefonu wszystkie wiadomo-
ści. Kontakty trzeba pobrać ręcznie. Warto 
przy  tym  zaznaczyć,  że  Kmobiletools  au-
tomatycznie zapisuje nasze numery telefo-
nów w książce adresowej KDE. 

Jak wspomniałem, interfejs jest dobrze 

zaprojektowany,  ale  jednak  nie  idealny.  Z 
niewyjaśnionych  przyczyn  pozbawieni  je-
steśmy  możliwości  oznaczenia  przycho-
dzących  wiadomości  jako  przeczytane  i  o 
ile  samą  wiadomość  niemal  natychmiast 
możemy przeczytać na ekranie komputera, 
to aby telefon uznał ją za przeczytaną mu-
simy niestety po niego sięgnąć. 

Podsumowując,  jest  to  program  god-

ny polecenia dla użytkowników, którzy nie 
stawiają  na  bogactwo  opcji,  a  raczej  pro-
stotę programu, który umożliwia zarządza-
nie  numerami  telefonów  oraz  wiadomo-
ściami.  Kmobiletools  ma  bowiem  w  zasa-
dzie wszystko, czego potrzebuje przeciętny 
użytkownik, a przy tym oferuje przyjazny i 
dobrze zaprojektowany interfejs.

Wammu

Wammu,  jak  można  się  spodziewać,  jest 
graficzną  nakładką  na  wspomniany  wcze-
śniej Gammu. Do działania wymaga biblio-
tek  gammu–python  oraz  wxWidgets.  Pro-
gram  napisany  przez  naszych  sąsiadów  z 
Czech co prawda nie zachwyca ani wyglą-
dem,  ani  wygodą  użytkowania,  ale  w  za-
mian  oferuje  całkiem  pokaźną  ilość  opcji. 
Chociaż twórcy nie pokusili się co prawda 
o  zaimplementowanie  wszystkich  funkcji 
programu gammu, to te, które oferuje nam 
program,  powinny  zadowolić  nawet  wy-
brednych  użytkowników.  Już  przy  pierw-
szym  uruchomieniu  widać  bowiem  wy-
raźnie,  że Wammu  jest  programem  znacz-
nie bardziej rozbudowanym niż wspomnia-
ny wcześniej Kmobiletools. Wstępna kon-
figuracja w przypadku użytkowania wcze-
śniej Gammu okazuje się zbędna, bowiem 
program korzysta z tego samego pliku kon-
figuracji ~/.gammurc. Jeśli jednak nie uży-
waliśmy  wcześniej  Gammu,  przy  określa-
niu  ustawień  możemy  posłużyć  się  kre-
atorem,  który  –  jeśli  istnieje  taka  możli-
wość  –  skonfiguruje  wszystko  automa-
tycznie przepytując porty najczęściej uży-
wane przez wybrany sposób transmisji. Je-

żeli nasz telefon znajduje się na porcie in-
nym niż standardowy, nic nie stoi na prze-
szkodzie,  żeby  całą  konfigurację  przepro-
wadzić ręcznie. 

Podobnie  jak  w  przypadku  wymienio-

nych  wyżej  aplikacji  mamy  możliwość 
czytania  wiadomości  oraz  pobierania  za-
wartości  książki  telefonicznej.  Wystarczy 
wybrać  stosowną  opcję  z  menu  Retrieve
Możemy także dodawać nowe numery tele-
fonów oraz wysyłać i zapisywać wiadomo-
ści tekstowe korzystając z menu Create.

W  przypadku  niektórych  typów  tele-

fonów  (najczęściej  produkcji  firm  Nokia 
oraz  Sony  Ericsson)  będziemy  mogli  tak-
że  dodawać  notatki  czy  zdarzenia  do  ka-
lendarza. 

Do  tego  dochodzi  także  bardzo  wy-

godna funkcja wysyłania plików do telefo-
nu, co pozwoli uniknąć konieczności odłą-
czania telefonu i zmiany trybu pracy połą-
czenia USB z transferu danych na transfer 
plików. Listę funkcji obsługiwanych przed 
konkretny  aparat  możemy  przejrzeć  pod 
adresem  http://cihar.com/gammu/phonedb/
.  
Ciekawą  opcją  jest  również  możliwość 
eksportu wszystkich bądź wybranych wia-
domości  do  postaci  e–maili  w  trzech  róż-
nych formatach. 

Przy stałym połączeniu telefonu z kom-

puterem  Wammu  okazuje  się  być  wygod-
niejszy  w  obsłudze  od  kmobiletools,  jed-
nak brakuje mu nieco do ideału. Co prawda 
nowe wiadomości są oznaczane jako prze-
czytane,  ale  dzieje  się  to  automatycznie  i 
bez  naszej  ingerencji.  Niestety  nie  jeste-
śmy  również  powiadamiani  o  nadchodzą-
cych SMS–ach.

Wammu  jest  aplikacją  godną  polece-

nia wszystkim wymagającym od managera 
telefonu  komórkowego  czegoś  więcej  niż 
tylko podstawowych funkcji. Nie zachwyci 
raczej nikogo intuicyjnością czy urodziwo-
ścią interfejsu, ale jest naprawdę przyzwo-
icie napisanym programem. Aplikacja cały 
czas jest dynamicznie rozwijana i z każdą 
kolejną odsłoną oferuje nowe funkcje. 

Rysunek 5. 

Konsola Shell

Autor jest studentem drugiego roku Infor-
matyki  na  Uniwersytecie  Jagiellońskim. 
Prywatnie,  użytkownik  dystrybucji  Gen-
too,  grafik–amator  i  zagorzały  fan  angiel-
skiego humoru.
Kontakt z autorem:
jaszczur@bagienny.org

O autorze

background image

Programowanie

Język programowania/FreeBasic

60

maj 2008

Programowanie

Język programowania/FreeBasic

61

www.lpmagazine.org

   

 lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Freebasic – Basic

na miarę XXI wieku

Język programowania Basic stracił bardzo wiele na popularności w ciągu ostatnich lat. W latach 80. 
był to bardzo popularny język programowania szczególnie na komputerach ośmiobitowych takich jak 
ZX Spectrum, Atari XL oraz Commodore C64. Wbrew pozorom znacznie późniejszy AMOS, znany z 
komputerów AMIGA był językiem bardzo podobnym do Basica. O jego popularności zadecydowała m. in. 
duża liczba rozszerzeń, które ułatwiały tworzenie efektownej grafiki oraz oprawy muzycznej i dźwiękowej.

Marek Sawerwain

D

zisiaj Basic jest kojarzony z makrami np.: w 
programie OpenOffice. Jednakże, istnieją dwa 
bardzo ciekawe projekty związane z Basiciem 
dla  systemu  Linux.  Pierwszym  jest  GAM-

BAS. Jest to próba przeniesienia języka Visual Basic do śro-
dowiska UNIXowego. I co warto podkreślić, całkiem udana. 
Drugi projekt to FreeBasic, czyli bardzo nowoczesna odmia-
na języka Basic, ale zgodna w wielu aspektach z językiem 
QuickBasic (był on dostępny w systemie MS-DOS). Oferu-
je dostęp do wielu współcześnie stosowanych bibliotek np.: 
OpenGL, do funkcji systemu baz danych o nazwie SQLite, 
czy też do funkcji z biblioteki SDL, o ile tylko wersja binarna 
tej biblioteki jest dostępna w systemie. Jest to ogromną zale-
tą, ponieważ po instalacji standardowego pakietu uzyskuje-
my dostęp do wielu przydatnych funkcji.

Co może FreeBasic?

Współpraca FreeBasic'a z dostępnymi bibliotekami jest bar-
dzo  ważna.  Należy  podkreślić,  że  FreeBasic  oferuje  łatwą 
współpracę z innymi językami jak np.: C++ czy Java.

Jednak to nie wszystkie możliwości FreeBasica. Pozwa-

la on na tworzenie programów obiektowych, dostępne są wła-

sności a nawet istnieje możliwość przeciążania operatorów. Bez 
kłopotów możemy korzystać z przestrzeni nazw, z preproceso-
ra zgodnego z ANSI C i z wielu innych nowoczesnych właści-
wości jak np.: wątki (ang. thread).

Warto się przyjrzeć jak wyglądają wobec tego możliwo-

ści programowania obiektowego. Zdefiniujmy klasę o nazwie 
Vektor2D, która będzie zawierać dwa pola x oraz y typu single 
(liczba zmiennoprzecinkowa o pojedynczej precyzji) oraz ope-
rator konwersji na ciąg znaków. Odpowiednia definicja przed-
stawia się w następujący sposób: (Listing 4.)

Zaletą FreeBasic względem języka C++ jest następujący 

prosty fakt: operator konwersji został nazwany wprost słowem 

Cast

. Polepsza to znacząco czytelność kodu i trzeba przyznać, 

iż w tym konkretnym przypadku autorzy FreeBasica lepiej roz-
wiązali ten aspekt niż np.: w C++. Operator ten jest traktowany 
jako funkcja, dlatego o typie konwersji decyduje także typ war-
tości wynikowej. Deklaracja operatora przedstawia się w nastę-
pujący sposób:

operator Vector2D.cast () As String

   return "(" + Str(x) + ", " + Str(y) + ")"

End Operator

background image

Programowanie

Język programowania/FreeBasic

60

maj 2008

Programowanie

Język programowania/FreeBasic

61

www.lpmagazine.org

Właściwą konwersję wartości pól x oraz y wy-
konuje funkcja 

Str

. Jednakże, skoro mamy de-

finicję  typu  wektora  dwuwymiarowego,  to  bez 
większego  trudu  możemy  przeciążyć  operator 
dodawania:

declare operator + ( ByRef leftArg As 

Vector2D, ByRef rightArg As Vector2D 

) As Vector2D

Gdzie argument leftArg odpowiada lewemu ar-
gumentowi,  natomiast  prawy  o  nazwie  righ-
tArg
 zgodnie  ze swoją  nazwą  prawemu  argu-
mentowi operatora dodawania. Obydwa argu-
menty jak widać, są przekazywane przez refe-
rencję, co oznacza wysoką wydajność, ponie-
waż  nie  są  wykonywane  kopie  argumentów. 
Tym razem implementacja przedstawia się na-
stępująco: (Listing 5.)

Nowy  wektor  jest  utworzony  za  pomocą 

konstrukcji 

Type<Vector2D>

, gdzie zgodnie z 

kolejnością deklarowania argumentów podaje-
my wartości poszczególnych pól. W podobny 
sposób możemy deklarować nowe wektory, ini-
cjalizując od razu pola obiektu:

Dim a As Vector2D = Type<Vector2D>( 

2.2, 3.3 )

Naturalnie w klasie - czy używając nomenklatu-
ry FreeBasica: typie - możemy korzystać z kon-
struktora  oraz  destruktora.  Zaletą  jest  również 
obecność własności. Własność do odczytu dekla-
rujemy w następujący sposób:

declare property prop_name as integer

Natomiast  jeśli  chcemy  jeszcze  utworzyć  wła-
sność do zapisu to odpowiednia deklaracja przyj-
muje następującą postać:

declare property prop_name( new_value 

as integer )

Jednakże  istnieją  także  mankamenty.  Przedsta-
wiana wersja języka o numerze 0.18c nie oferuje 
na obecnym etapie np.: dziedziczenia oraz funk-
cji  wirtualnych,  co  naturalnie  stanowi  ogrom-
ne ograniczenie modelu obiektowego. Jednakże 
autorzy mają w planach wprowadzenie tej mimo 
wszystko zasadniczej właściwości. Toteż po uzu-
pełnieniu własności obiektowych będzie można 
powiedzieć, iż jest to język o możliwościach zbli-
żonych do C++ czy Java.

Mimo ograniczeń w modelu obiektowym w 

odróżnieniu od swoich protoplastów sprzed wie-
lu lat FreeBasic to sprawny 32-bitowy kompila-
tor, który daje możliwość tworzenia wydajnych 
aplikacji, co stanowi od razu o jego zalecie np.: 

względem  Javy,  która  w  przypadku  większych 
programów mimo wszystko nie oferuje zbyt du-
żej  wydajności,  a  na  poziomie  programowania 
strukturalnego, jego możliwości są podobne do 
języka C czy np.: ciągle popularnego Pascala.

Pierwszy program

Nasz  pierwszy  program,  to  nieskomplikowana 
aplikacja, która uruchamia tryb graficzny o nu-
merze 17, czyli tryb 640x400. Biblioteka funk-

cji graficznych, choć oferuje podstawowe możli-
wości, to oferuje bardzo proste API nie sprawia-
jące żadnych kłopotów. Naturalnie potrzebny jest 
kompilator. Sposób jego instalacji został pokrót-
ce przedstawiony w ramce pt.: Instalacja kompi-
latora FreeBasic

Nasz program będzie działał w ramach śro-

dowiska X-Windows choć wszystkie zawiłości z 
obsługą okna są przed nami ukryte. Kod źródło-
wy jest w całości zawarty na Listingu 1. Pierwsze 

Listing 1. 

Uruchomienie trybu graficznego oraz wyświetlenie palety dostępnych kolorów

DIM

 

key

 

AS

 

STRING

driver

 

AS

 

STRING

DIM

 

AS

 

INTEGER

 

i

j

w

h

d

rate

CONST

 

depth

 = 

32

SCREEN

 

17

depth

SCREENINFO

 

w

h

d

,,, 

rate

driver

LOCATE

 

2

,

2

PRINT

 

"Mode: "

 + 

STR

(

w

)

 + 

"x"

 + 

STR

(

h

)

 + 

"x"

 + 

STR

(

d

)

;

IF

 

(

rate

 > 

0

)

 

THEN

   

PRINT

 

" @ "

 + 

STR

(

rate

)

 + 

" Hz"

;

END

 

IF

PRINT

 

" ("

 + 

driver

 + 

")"

FOR

 

j

 = 

0

 

TO

 

w

-

1

   

LINE

 

(

32

+

j

40

)

 - 

(

32

+

j

79

)

j

 

SHL

 

16

   

LINE

 

(

32

+

j

100

)

 - 

(

32

+

j

139

)

j

 

SHL

 

8

   

LINE

 

(

32

+

j

160

)

 - 

(

32

+

j

199

)

j

NEXT

 

j

SLEEP

Rysunek 1. 

Uruchomiony przykład programu Stars oraz przykład z Listing 1, w tle fragmenty kodu źródłowe-

go programu

background image

62

Programowanie

Język programowania/FreeBasic

maj 2008

63

Programowanie

Język programowania/FreeBasic

www.lpmagazine.org

dwie linie na Listingu rozpoczynające się od sło-
wa 

DIM

 to deklaracje zmiennych. Następnie de-

finiujemy stałą, która będzie oznaczać liczbę bi-
tów przeznaczonych na kolor. Uruchomienie try-
bu graficznego sprowadza się do użycia polece-
nia 

SCREEN

.  W  rzeczywistości  jest  to  procedu-

ra, a dokładniej podprogram, jednakże dla odróż-
nienia od innych funkcji np.: z biblioteki 

FMOD

wszystkie nazwy związane bezpośrednio z Fre-
eBasiciem będą nazywane poleceniami.

Pierwszy  argument  polecenia 

SCREEN

  to 

numer  trybu  (17  odpowiada  rozdzielczości 
640x400, a np.: 21 to rozdzielczość 1280x1024), 
drugi argument to liczba bitów opisujących ko-
lor jednego piksela. Polecenie SCREEN, posiada 
jednakże znacznie więcej parametrów np.: wy-
wołanie w postaci:

SCREEN 18, 32, 4, 1

oznacza  uruchomienie  trybu  640x480  o  32-bi-
towym kolorze, gdzie mamy dostęp do czterech 
ekranów, po których można rysować. Naturalnie 
tylko jeden z nich jest widoczny w danej chwi-
li. Ostatni parametr -- jedynka – oznacza, iż tryb 
graficzny zostanie uruchomiony w trybie pełne-
go  ekranu.  Do  uruchomienia  trybu  graficznego 
wygodnie będzie też użyć polecenia 

SCREENRES

Dwa pierwsze argumenty, to odpowiednio szero-
kość i wysokość, więc możemy napisać:

SCREENRES 640, 480, 32, 4, 1

W  naszym  programie  po  uruchomieniu  trybu 
graficznego za pomocą 

SCREENINFO

 uzyskujemy 

szereg informacji o parametrach obrazu. Warto 
zwrócić uwagę na to, iż część parametrów została 
pominięta - wystarczy tylko wstawić przecinek, a 
ewentualną nazwę zmiennej pominąć.

Kolejna część programu za pomocą funkcji 

LOCATE

 (ustawienie pozycji kursora) oraz 

PRINT

 

w  lewym  górnym  rogu  wyświetli  podstawo-
we informacje o uruchomionym trybie graficz-
nym. Pętla 

FOR

 jest odpowiedzialna za narysowa-

nie trzech pasów w odcieniach czerwieni, zieleni 
oraz koloru niebieskiego. Rysowanie jest realizo-
wane za pomocą funkcji 

LINE

. Informacja o ko-

lorze jest zawarta w drugim argumencie, ponie-
waż pierwszy parametr to współrzędne początku 
i końca zapisane w postaci dwóch par rozdzie-
lonych myślnikiem: 

(x1,y1)  –  (x2,y2)

. Kod 

źródłowy naszego programu należy poddać kom-
pilacji, ponieważ w przeciwieństwie do starych 
wersji Basica, FreeBasic to kompilator. Kompi-
lacja niestety wymaga skorzystania z konsoli, ale 
jest bardzo łatwa. Jeśli nasz program z Listing 1, 
zapiszemy w katalogu domowym pod nazwą np.: 
example_0.bas,  to kompilacja sprowadza się do 
wydania polecenia:

fbc example_0.bas

Uzupełniając  jeszcze  informacje  o  trybie  gra-
ficznych  trzeba  dopowiedzieć,  iż  łatwo  dowie-

dzieć się, jakie tryby graficzne, a dokładniej ja-
kie  rozdzielczości,  możemy  włączyć.  Wystar-
czy  napisać  prosty  program  o  następującej  po-
staci: (Listing 6.)

Kluczowym  poleceniem  jest  SCREEN-

LIST,  które  jeśli  uruchomimy  z  parametrem 
oznaczającym  ilość  bitów  przeznaczonych  na 
kolor zwróci liczbę całkowitą, gdzie starsze bi-
ty zawierają szerokość, natomiast młodsze bity 
wysokość. Informacje o kolejnych trybach uzy-
skujemy wywołując polecenie 

SCREENLIST

 bez 

dodatkowych parametrów. Na końcu 

SCREEN-

LIST

 zwraca wartość zero, oznaczającą koniec 

Rysunek 2. 

Strona domowa projektu FreeBasic

Rysunek 3. 

Tworzenie interfejsu graficznego dla odtwarzacza modułów

Na  płycie  CD/DVD  znajdują  się  wykorzy-
stywane biblioteki, kod źródłowy programu 
oraz wszystkie listingi z artykułu.

Na płycie CD/DVD

background image

62

Programowanie

Język programowania/FreeBasic

maj 2008

63

Programowanie

Język programowania/FreeBasic

www.lpmagazine.org

listy dostępnych rozdzielczości.

Mały odtwarzacz modułów

Na płycie DVD dołączonej do czasopisma 

(oraz  na  stronie  czasopisma  Linux+)  znajdują 
się źródła omówionych przed chwilą przykładów 
jak również kilka innych programów. Jednakże, 
aby nie tracić miejsca na ich prezentację, zajmie-
my się tylko jednym z nich, a mianowicie pro-
gramem do odtwarzania modułów muzycznych. 
Moduły  muzyczne,  czyli  pliki  o  rozszerzeniu 
min.: MOD, S3M oraz XM to bardzo popularne 
formaty na tzw. demoscenie, ale nie tylko. Znana, 
szczególnie miłośnikom gier, gra Unreal również 
korzystała z modułów muzycznych.

Ponieważ  FreeBasic  oferuje  dostęp  do  bi-

blioteki FMOD, która odtwarza tego typu pliki, 
w ramach prostego ćwiczenia dość łatwo zbudo-
wać całkiem przydatny program. Listing 2 przed-
stawia kod źródłowy programu wykorzystujący 
bibliotekę FMOD.

Nasz program zaczynamy od polecenia pre-

procesora #include. Podobnie jak jego odpowied-
nik w języku C, polecenie 

#include

 włącza plik 

nagłówkowy. Dodatkowe słowo once zapewnia, 
że plik zostanie włączony tylko raz.

Programy  w  Basicu  nie  mają  wyróżnio-

nej  funkcji,  od  której  rozpoczyna  się  wykony-
wanie programu. Program rozpoczyna pracę od 
pierwszej instrukcji w pliku źródłowym. W na-
szym programie jest to instrukcja warunkowa IF. 
Wcześniej wprowadzamy deklarację funkcji 

er-

ror_sub

 przeznaczonej do obsługi błędów i kilka 

stałych. Jedna z nich, 

music_file

, zawiera nazwę 

pliku do odtwarzania. Nie jest to dobre rozwiąza-
nie, gdyż lepiej byłoby wyposażyć nasz program 
w interfejs dla użytkownika i tak zrobimy w na-
stępnym punkcie.

Zadanie  pierwszej  instrukcji  warunkowej, 

to sprawdzenie wersji biblioteki FMOD. Upew-
niamy  się,  czy  używana  przez  program  wersja 
FMOD nie jest niższa niż wersja FMOD zastoso-
wana podczas kompilacji naszego programu. Jest 
tak się stanie, funkcja 

error_sub

 zakończy dzia-

łania naszej aplikacji.

Gdy  numer  wersji  biblioteki  jest  odpo-

wiedni,  należy  dokonać  inicjalizacji  bibliote-
ki  FMOD.  To  zadanie  wykonuje  kolejna  in-
strukcja warunkowa wywołująca funkcję 

FSO-

UND_Init

.  Pierwszy  parametr  to  częstotli-

wość  dźwięku,  czyli  44kHz,  natomiast  liczba 
32  oznacza  ilość  dostępnych  kanałów  dźwię-
ku. Ostatni parametr pozwala na wprowadzenie 
dodatkowych flag, my jednak nie wykorzystu-
jemy żadnych dodatkowych właściwości.

Po  udanej  inicjalizacji  od  razu  może-

my spróbować wczytać moduł funkcją 

FMU-

SIC_LoadSong

. Wartość różna od zera ozna-

cza,  iż  moduł  został  poprawnie  wczytany. 

Jeśli  tak  się  stało,  uruchomienie  odtwarza-
nia pliku nastąpi po wywołanie funkcji 

FMU-

SIC_PlaySong

,  natomiast  zatrzymanie  od-

twarzania za pomocą funkcji 

FMUSIC_Stop-

Song

. Usunięcie modułu z pamięci następu-

je po wywołaniu funkcji 

FMUSIC_FreeSong

Po rozpoczęciu odtwarzania muzyki FreeBa-
sic wykonuje swój program w sposób zupeł-
nie niezależny, więc nie musimy się martwić 
o  płynność  odtwarzania  muzyki.  Bibliote-
ka FMOD jest pod tym względem niezależ-
na od naszego programu. Dlatego za pomo-

Listing 2. 

Odtwarzanie modułu muzycznego

#

include

 

once

 

"fmod.bi"

   

DECLARE

 

SUB

 

error_sub

 

(

 

byval

 

Message

 

as

 

string

 

)

   

const

 

TRUE

 = 

1

   

const

 

FALSE

 = 

0

   

const

 

music_file

 = 

"aryx.s3m"

   

DIM

 

song

 

AS

 

FMUSIC_MODULE

 

ptr

 

IF

(

 

FSOUND_GetVersion

()

 < 

FMOD_VERSION

 

)

 

THEN

   

error_sub

(

 

"Do poprawnego działania programu naley zainstalowa co 

najmniej wersj "

 & 

FMOD_VERSION

  

)

END

 

IF

IF

 

(

 

FSOUND_Init

 

(

 

44100

32

0

 

)

 = 

FALSE

 

)

 

THEN

   

error_sub

(

 

"Nie mona uruchomi systemu FMOD!"

 

)

END

 

IF

song

 = 

FMUSIC_LoadSong

(

 

music_file

 

)

IF

 

song

 = 

0

 

THEN

   

error_sub

 

(

 

"Nie mona wczyta pliku """

 + 

music_file

 + 

""""

 

)

END

 

IF

FMUSIC_PlaySong

(

 

song

 

)

PRINT

 

"Nacinij klawisz spacji (lub dowolny inny) aby zakoczy działanie 

tego programu."

SLEEP

FMUSIC_FreeSong

(

 

song

 

)

FSOUND_Close

END

SUB

 

error_sub

(

 

BYVAL

 

message

 

AS

 

String

 

)

  

print

 

"Błd: "

message

  

FSOUND_Close

  

END

 

1

END

 

SUB

•  Strona projektu FreeBasic - http://www.freebasic.net
•  Top50, czyli 50 najlepszych stron o FreeBasic'u - http://www.fbtop50.com
•  Spis gier opracowanych we FreeBasic'u - http://games.freebasic.net
•  Wiele narzędzi do programowania, również dla FreeBasic'a - http://www.phatcode.net
•  Najnowsze  informacje  zawiązane  z  kompilatorem  FreeBasic  -  http://

report.freebasic.info

•  Ciekawa strona zawierająca interesujące przykłady wraz z kodem źródłowym, natu-

ralnie we FreeBasic'u – http://aapproj.phatcode.net

W sieci

background image

64

Programowanie

Język programowania/FreeBasic

maj 2008

65

Programowanie

Język programowania/FreeBasic

www.lpmagazine.org

cą polecenia 

PRINT

 wyświetlamy komunikat 

i poleceniem 

SLEEP

 usypiamy nasz program, 

ale  muzyka  nadal  jest  odtwarzana.  Ta  wła-
sność  okaże  się  bardzo  wygodna  w  następ-
nym przykładzie.

Duży odtwarzacz modułów

Poprzedni  przykład,  niestety,  nie  ma  interfej-
su graficznego, toteż należy taki interfejs zbu-
dować. Załóżmy, że w naszym programie wy-
stąpi pięć przycisków. Trzy pierwsze związane 
będą z odtwarzaniem muzyki: Play, Pause oraz 
Stop. Przycisk O.K. kończy pracę naszej apli-
kacji. Ostatnim przyciskiem jest przycisk o na-
zwie „trzy kropki”. Za jego pomocą wybieramy 
moduł do odtwarzania. Dodamy również pole 
edycyjne, w którym wyświetlana będzie nazwa 
pliku wraz z pełną ścieżką.

Do  budowy  tak  prostego  interfejsu,  mi-

mo  wszystko,  najlepiej  skorzystać  z  biblio-
teki  GTK+,  tym  bardziej  iż  FreeBasic  ofe-
ruje  pełny  dostęp  do  tej  biblioteki. Wspiera-
ne są również pliki XML zawierające opis in-
terfejsu wygenerowanego za pomocą progra-
mu GLADE.

Niestety kod źródłowy naszej aplikacji jest 

już zbyt duży, aby go zaprezentować w całości, 
dlatego  Listing  3  przedstawia  tylko  wybrane, 
choć jak widać obszerne, fragmenty. Podobnie 
jak w poprzednim programie rozpoczynamy od 
dołączenia  plików  nagłówkowych.  Oprócz  bi-
blioteki FMOD dołączamy także pliki dotyczą-
ce biblioteki GTK+ oraz pakietu GLADE-XML. 
Następnie deklarujemy nagłówki funkcji odpo-
wiadające na sygnały np.: na sygnał „clicked”, 
czyli na tzw. kliknięcie na przycisk. Listing 3 za-
wiera tylko jeden przykład takiej deklaracji. Po-
dobieństwo do języka C jest jak widać oczywi-
ste,  choć  musimy  użyć  słowa  kluczowego  by-
val  aby  wskazać,  iż  wartości  te  są  przekazy-
wane przez wartość (tzn. wykonywana jest ko-
pia wskaźników). Nim zaczniemy budować sam 
interfejs,  należy  uruchomić  bibliotekę  FMOD 
-  ten  fragment  jest  identyczny  jak  w  poprzed-
nim punkcie, dlatego nie będzie on w tym miej-
scu omawiany.

Kolejny  fragment  to  definicja  przestrzeni 

nazw  o  nazwie  global. W  ten  sposób,  wszyst-
kie zmienne, które chcemy aby były widoczne 
dla innych funkcji i procedur są zawarte w prze-
strzeni global, pełniącej rolę przestrzeni zmien-
nych globalnych. Ważną zmienną jest zmienna 
o nazwie song reprezentująca wczytany moduł 
muzyczny. Po deklaracji zmiennych należy za-
inicjalizować  bibliotekę  GTK.  To  zadanie  jest 
realizowane  przez  funkcję  gtk_init.  Kolejne  li-
nie kodu są praktycznie takie same jak w wielu 
aplikacjach GTK+ pisanych bezpośrednio w ję-
zyku  C.  Zastosowanie  funkcji  glade_xml_new 

Listing 3. 

Fragmenty programu do odtwarzania plików muzycznych

#

include

 

once

 

"gtk/gtk.bi"

#

include

 

once

 

"gtk/libglade/glade-xml.bi"

#

include

 

once

 

"fmod.bi"

declare

 

sub

 

on_EndWorkBTN_clicked

 

cdecl

 

alias

 

"on_EndWorkBTN_clicked"

 

(

 

byval

 

object

 

as

 

GtkObject

 

ptr

byval

 

user_data

 

as

 

gpointer

 

)

usuni

te

 

fragmenty

namespace

 

global

   

Dim

 

music_filename

 

As

 

String

   

Dim

 

song

 

As

 

FMUSIC_MODULE

 

ptr

   

Dim

 

paused

 

As

 

Byte

   

Dim

 

FileNameENTRY

 

As

 

GtkWidget

 

ptr

end

 

namespace

Dim

 

xml

 

As

 

GladeXML

 

ptr

Dim

 

MainWin

 

As

 

GtkWidget

 

ptr

global

.

music_filename

 

=

 

""

gtk_init

(

NULL

NULL

)

inicjalizacja

 

FMOD

xml

 

=

 

glade_xml_new

(

 

"mplaywin.glade"

NULL

NULL

 

)

MainWin

 

=

 

glade_xml_get_widget

(

 

xml

"MainWin"

 

)

global

.

FileNameENTRY

 

=

 

glade_xml_get_widget

(

 

xml

"FileNameENTRY"

 

)

gtk_widget_show_all

(

 

MainWin

 

)

glade_xml_signal_autoconnect

(

 

xml

 

)

gtk_main

(

 

)

g_object_unref

(

 

xml

 

)

FSOUND_Close

end

 

0

usuni

te

 

fragmenty

sub

 

on_PlayBTN_clicked

 

cdecl

 

(

 

byval

 

object

 

as

 

GtkObject

 

ptr

byval

 

user_data

 

as

 

gpointer

 

)

 

export

   global.song = FMUSIC_LoadSong( global.music_filename)

   

if

 

global

.

song

 

=

 

0

 

then

      

error_sub

 

(

 

"Nie mona wczyta pliku: "

 

&

 

global

.

music_filename

)

   

else

      

FMUSIC_PlaySong

(

 

global

.

song

 

)

   

end

 

if

end

 

sub

sub

 

on_StopBTN_clicked

 

cdecl

 

(

 

byval

 

object

 

as

 

GtkObject

 

ptr

byval

 

user_data

 

as

 

gpointer

 

)

 

export

   FMUSIC_FreeSong( global.song )

end

 

sub

sub

 

on_PauseBTN_clicked

 

cdecl

 

(

 

byval

 

object

 

as

 

GtkObject

 

ptr

byval

 

user_data

 

as

 

gpointer

 

)

 

export

   

Dim

 

tmp

 

As

 

Byte

   

if

 

global

.

paused

 

=

 

0

 

then

      

tmp

 

=

 

FMUSIC_SetPaused

 

(

global

.

song

1

)

      

global

.

paused

 

=

 

1

   

else

      

tmp

 

=

 

FMUSIC_SetPaused

 

(

global

.

song

0

)

      

global

.

paused

 

=

 

0

    

end

 

if

end

 

sub

sub

 

on_SelFileBTN_clicked

 

cdecl

 

(

 

byval

 

object

 

as

 

GtkObject

 

ptr

byval

 

user_data

 

as

 

gpointer

 

)

 

export

   ' 

usuni

te

 

fragmenty

end

 

sub

background image

64

Programowanie

Język programowania/FreeBasic

maj 2008

65

Programowanie

Język programowania/FreeBasic

www.lpmagazine.org

powoduje  wczytanie  pliku  z  opisem  interfejsu 
użytkownika:

xml = glade_xml_new( "mplaywin.glade", 

NULL, NULL )

Kolejny krok to odczytanie wskazania na wid-
get reprezentujący główne okno. To zadanie wy-
konuje  funkcja 

glade_xml_get_widget

.  Ana-

logicznie  postępujemy  w  przypadku  uzyskania 
odniesienia do pola edycyjnego. Po tych czyn-
nościach  pozostaje  już  tylko  wyświetlić  całe 
okno  na  ekranie  za  pomocą  funkcji 

gtk_wid-

get_show_all

 i podłączyć sygnały do funkcji. 

To zadanie samodzielnie wykona funkcja o na-
zwie 

glade_xml_signal_autoconnect.

 W tym 

momencie  uruchomienie    programu  nastąpi  po 
wywołaniu  funkcji 

gtk_main

,  która  uruchamia 

główną pętlę przetwarzającą zdarzenia.

Do tych zdarzeń należą akcje podejmo-

wane  przez  użytkownika.  Jeśli  użytkow-
nik  kliknie  na  przycisk  z  trzema  kropka-
mi,  zostanie  wywołana  funkcja 

on_SelFi-

leBTN_clicked

. Zadanie tej funkcji to wy-

świetlenie  okna  dialogowego,  gdzie  użyt-
kownik będzie mógł wskazać plik z modu-
łem muzycznym. Trzeba zwrócić uwagę na 
to, że funkcja jak i pozostałe funkcje prze-

znaczone do obsługi sygnałów w swej defi-
nicji posiadają słowo export. Jest to bardzo 
ważne dla automatycznego podłączenia sy-
gnałów. Rozpoczniemy od deklaracji zmien-

nej dialog:

Dim dialog As GtkWidget ptr

Niektóre dystrybucje oferują odpowiednie pakiety z kompilatorem FreeBasica, np.: popu-
larna  dystrybucja  Ubuntu  zawiera  odpowiednie  pakiety.  Lepiej  jednak  zainstalować  naj-
nowszą wersję binarną. Ze strony projektu ściągamy archiwum z najnowszą wersję kom-
pilatora np.:

 FreeBASIC-v0.18.3b-linux.tar.gz.

 Archiwum należy rozpakować np.: w następujący sposób:

tar zxvpf FreeBASIC-v0.18.3b-linux.tar.gz ,

a po dekompresji możemy bezpośrednio wywoływać polecenie fbc bez żadnej dodatko-
wej konfiguracji. Ten fakt oznacza, iż możemy kompilator zainstalować we własnym katalo-
gu domowym. Jednakże autorzy kompilatora przygotowali prosty skrypt do instalacji, który 
po wywołaniu w następujący sposób (zakładając, że uruchamiamy skrypt jako zwykły użyt-
kownik poprzez polecenie sudo):

sudo ./install -i

zainstaluje kompilator oraz niezbędne pliki pomocnicze w katalogu /usr/share/freebasic
a w katalogu /usr/bin utworzy link symboliczny fbc odnoszący się do kompilatora.

Instalacja kompilatora FreeBasic

R

E

K

L

A

M

A

background image

66

Programowanie

Język programowania/FreeBasic

maj 2008

Za utworzenie okna dialogowego odpowiedzial-
ny jest poniższy kod (znak podkreślenia na koń-
cu linii oznacza iż dalsza część kodu będzie kon-
tynuowana w linii poniżej): (Listing 7.)

Stała  GTK_FILE_CHOOSER_ACTION_

OPEN oznacza typowe okno dialogowe, gdzie 
użytkownik może przemieszczając się po kata-
logach i wskazać plik, który go interesuje. Ko-
lejna  ważna  dla  nas  stała  to 

GTK_STOCK_OPEN

 

-  oznacza  przycisk  Otwórz  (ang.  Open),  nato-
miast stała 

GTK_RESPONSE_ACCEPT

 oznacza ja-

ka  wartość  ma  zostać  zwrócona  w  momencie 
wybrania przez użytkownika pliku. Listę para-
metrów funkcji kończymy za pomocą wartości 
NULL. Za uruchomienie okna odpowiada funk-

cja 

gtk_dialog_run

.  Należy  sprawdzić,  czy 

wartość powrotna oznacza iż użytkownik wska-
zał  plik  do  odtwarzania.  Sprowadza  się  to  do 
sprawdzenia, czy wynikiem jest stała 

GTK_RE-

SPONSE_ACCEPT

,  a  wykonamy  to  w  następują-

cy sposób: (Listing 8.)

Trzy najważniejsze instrukcje znajdujące się 

wewnątrz instrukcji warunkowej są następujące: 
(Listing 9.)

Pierwsza odczytuje nazwę pliku, druga prze-

pisuje tę nazwę do zmiennej znajdującej się prze-
strzeni global. Symbol gwiazdki jest niezbędny, 
ponieważ mamy do czynienia ze wskaźnikiem. 
Trzecia linia wpisuje nazwę pliku do pola edy-
cyjnego.  Obsługa  okna  dialogowego  pokazuje, 

iż port GTK+ zachowuje się w bardzo naturalny 
sposób. Możemy korzystać z oryginalnej doku-
mentacji do języka C, w wielu prostszych przy-
padkach jedyną znaczącą modyfikacją jest usu-
nięcie średnika na końcu linii .

Uruchomienie  odtwarzania  modułu  jest 

identyczne jak w poprzednim przykładzie. Ko-
rzystamy  z  funkcji 

FMUSIC_PlaySong

.  Jednak-

że wprowadziliśmy możliwość wstrzymania od-
twarzania  muzyki.  Korzystamy  z  funkcji  o  na-
zwie 

FMUSIC_SetPaused

.  Jej  pierwszy  argu-

ment to zmienna reprezentującą moduł, ale dru-
gi decyduje o wprowadzeniu pauzy. Wartość je-
den oznacza pauzę, natomiast zero nakazuje kon-
tynuowanie odtwarzania muzyki. Nasz program 
wykorzystuje zmienną z przestrzeni global, gdzie 
zapisana jest wartość, czy pauza została włączo-
na, czy wyłączona.

Podsumowanie 

Język Basic w wersji oferowanej przez kompila-
tor FreeBasic to nowoczesna wersja tego języka 
porównywalna z możliwościami języka C. Moż-
na i należy wytknąć braki w modelu obiektu ale 
trzeba pamiętać, że prace nad kompilatorem cią-
gle trwają.

Jednakże ze względu na obecność biblioteki 

graficznej oraz wsparcie dla wielu innych biblio-
tek warto polecić tą wersję Basica osobom, któ-
re  chciałyby  rozpocząć  naukę  programowania. 
Choć jest to zupełnie inny Basic, niż ten znany 
z komputerów ośmiobitowych, nadal ma w so-
bie tę odrobinę magii, którą każdy kto pisał pro-
gramy  w  Basicu  od  razu  zauważy  uruchamia-
jąc kompilator i pisząc własne aplikacje. Wbrew 
obiegowej opinii, że język Basic uczy złych na-
wyków programowania, która istotnie jest praw-
dziwa ale dotyczy Basic'a w wersji z przed wie-
lu lat, FreeBasic jest bardzo dobrym językiem do 
nauki  programowania.  Instalując  jeden  pakiet 
mamy dostęp do wielu bibliotek, mamy wbudo-
waną bibliotekę podstawowych operacji graficz-
nych,  ale  co  warto  podkreślić  program  napisa-
ny we FreeBasicu jest przenośny, czyli, o ile nie 
używamy funkcji charakterystycznych dla dane-
go systemu, program napisany pod Linuxem bę-
dzie bez żadnych zmian kompilował się w środo-
wisku np.: Windows. 

Autor zajmuje się tworzeniem oprogramo-
wania dla WIN32 i Linuksa. Zainteresowa-
nia:  teoria  języków  programowania  oraz 
dobra literatura. 
Kontakt z autorem: autorzy@linux.com.pl.

O autorze

Listing 4. 

Definicja typu obiektowego Vector 2D

Type

 

Vector2D

   

Dim

 

x

 

As

 

Single

   

Dim

 

y

 

As

 

Single

   

declare

 

operator

 

cast

()

 

As

 

String

End

 

Type

Listing 5. 

Operator sumy dla dwóch wektorów

operator

 + 

(

 

ByRef

 

lhs

 

As

 

Vector2D

ByRef

 

rhs

 

As

 

Vector2D

 

)

 

As

 

Vector2D

   

return

 

Type

<

Vector2D

>

(

 

lhs

.

x

 + 

rhs

.

x

lhs

.

y

 + 

rhs

.

y

 

)

End

 

Operator

Listing 6. 

Krótki program wyswietlający listę dostępnych trybów graficznych

DIM

 

AS

 

INTEGER

 

mode

w

h

mode

 = 

SCREENLIST

(

32

)

WHILE

 

(

mode

)

   

w

 = 

HIWORD

(

mode

)

h

 = 

LOWORD

(

mode

)

   

PRINT

 

STR

$

(

w

)

 + 

"x"

 + 

STR

$

(

h

)

   

mode

 = 

SCREENLIST

WEND

Listing 7. 

Utworzenie nowego okna dialogowego

dialog

 = 

gtk_file_chooser_dialog_new

(

 

"Prosz wybra plik typu MOD/S3M/XM:

"

NULL

_

   

GTK_FILE_CHOOSER_ACTION_OPEN

_

   

GTK_STOCK_CANCEL

GTK_RESPONSE_CANCEL

_

   

GTK_STOCK_OPEN

GTK_RESPONSE_ACCEPT

NULL

 

)

Listing 8. 

Wyświetlenie okna dialogowego

if

 

(

 

gtk_dialog_run

(

 

GTK_DIALOG

 

(

 

dialog

 

)

 

)

 = 

GTK_RESPONSE_ACCEPT

 

)

 

then

...

end

 

if

 

Listing 9. 

Odczytanie nazwy pliku wybranego przez użytkownika

filename

 = 

gtk_file_chooser_get_filename

(

 

GTK_FILE_CHOOSER

 

(

 

dialog

 

)

 

)

global

.

music_filename

 = *

filename

gtk_entry_set_text

(

 

GTK_ENTRY

(

global

.

FileNameENTRY

)

global

.

music_filename

 

)

background image

OMEGA SOFT Sp. z o.o.

Oprogramowanie: Zintegrowany System Wspo-

magania Zarządzania „Omega”. Platforma: Li-

nux,  Windows.  Baza  danych:  PostgreSQL. 

Usługi:  Outsourcing  sprzętu  i  oprogramowa-

nia. Sieci: Projektowanie i instalacja sieci kom-

puterowych, systemów CCTV, DVR, RCP, KD i 

centrali telefonicznych.

http://www.omega-soft.pl

SZKOŁA LINUXA

Oferujemy szkolenia z zakresu Linuxa od naj-

prostszych  jak  Wprowadzenie  do  Linuxa  do 

najbardziej  zaawansowanych  kursów  admi-

nistracji serwerami oraz siecią. W  Szkole Li-

nuxa prowadzimy roczne kursy z zakresu Ad-

ministracji  systemem  Linux/Unix,  na  których 

przeanalizowanych  jest  najwięcej  ciekawych 

zagadnień  z  życia  administratora  sieci  i  ser-

werów Unix.

http://www.szkola-linuxa.com

DUST

Jesteśmy  dostawcą  nowoczesnych  rozwiązań 

hostingowych dla biznesu. Zajmujemy się kom-

pleksową obsługą firm poprzez projekty serwi-

sów internetowych, rejestrację domen, oraz ho-

sting i serwery dedykowane. Indywidualne po-

dejście  do  każdego  projektu  jest  bezcenne, 

dlatego  oferujemy  je  naszym  klientom  zupeł-

nie gratis.

http://dust.pl

Trawers ERP/MRP II

Oferujemy  pakiet  TRAWERS  -  ekonomicz-

ne rozwiązanie ERP/MRP II dla MP, szczegól-

nie  dla  firm  wieloodziłaowych.  Cechy  pakietu: 

szeroka funkcjonalność i kompletność systemu 

uprawnień,  duża  szybkość  pracy  i  stabilność, 

obsuga  Linux  i  Windows.  Zapewniamy:  wdro-

żenie, szybki i fachowy serwis, sieć Partnerów 

w całej Polsce. 

http://trawers.tres.pl

WSISiZ w Warszawie

INFORMATYKA ZARZĄDZANIE

studia stopnia I i II (stacjonarne i niestacjonar-

ne)  specjalności:  inżynierskie,  magisterskie  i 

licencjackie. Szczegółowe plany studiów, opi-

sy  poszczególnych  specjalności  –  zaprasza-

my na stronę uczelni.

http://www.wit.edu.pl

Wyższa Szkoła Informatyki

Informatyka,  Ekonomia,  Fizjoterapia  (NO-

WOŚĆ,  Pedagogika,  Wychowanie  Fizyczne, 

Artystyczna  Grafika  Komputerowa,  Architek-

tura  Wnętrz  (NOWOŚĆ)  Studia  na  odległość 

e-learning  (Informatyka  II  stopnia)  Kompleks 

sportowy w Łodzi (hala, basen, siłownia, sau-

na).  Wydziały  zamiejscowe:  Włocawek,  Byd-

goszcz, Opatówek.

http://www.wsinf.edu.pl

OFERTA SKIEROWANA DO FIRM

Jeżeli Twoja firma jest prenumeratorem Linux+ DVD

za comiesięczną dopłatą 50 PLN + VAT możesz dodatkowo otrzymać reklamę.

Wyślij do nas: logo firmy, dane kontaktowe i informacje o firmie.

Reklama przez 11 kolejnych numerów tylko za 550 PLN + VAT.

Jeżeli nie posiadasz prenumeraty, możesz ją zamówić w atrakcyjnej cenie.

Skontaktuj się z nami:

linux@software.com.pl   tel. 22 427 35 32

pren@software.com.pl    http://buyitpress.com

background image

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

68

maj 2008

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

69

www.lpmagazine.org

   

lin

ux

@

so

ftw

ar

e.

co

m

.p

l

Second Life

Zdarzyło mi się już recenzować wiele tytułów, w większości strategii, strzelanin, czasem RPG. Czegoś 
takiego jak Second Life jeszcze nie. Jeżeli chodzi o gatunek, to jest to gra typu MMORGPG. Nazwanie 
tego tytułu grą nie jest nawet do końca właściwe. Mamy bowiem do czynienia z niemalże samodzielnym, 
wirtualnym światem, w którym po prostu egzystujemy. Nie będę może od samego początku zdradzał 
wszystkich szczegółów.

Przemysław Żarnecki

G

ra  została  wydana  w  roku  2003,  nie  tak 
dawno  doczekała  się  wersji  Linuksowej. 
Dostępna jest w chwili obecnej na wszyst-
kie  popularne  platformy  systemowe.  Li-

nuksowy  klient  jest  nieco  mniej  rozwinięty,  niż  jego 
Windowsowe odpowiedniki, jednakże sukcesywnie nad-
rabia straty. W chwili pisania artykułu oznaczony był ja-
ko wersja beta.

Gra jest częściowo darmowa, częściowo zaś płatna. 

Za pobranie i uruchomienie na koncie podstawowym nie 
trzeba nic płacić. Istnieją jednak konta płatne, które do-
dają  nowe  elementy  do  wirtualnej  rozrywki.  O  tym  za 
chwilę. W każdym razie ze względu na to, że gra bynajm-
niej nie posiada licencji GNU GPL, rzadko kiedy znajdu-
je się w oficjalnych repozytoriach, pomimo że sam pro-
ducent nie ma nic przeciwko temu. Można ją jednak zna-
leźć w wielu dodatkowych, dostarczanych często z syste-
mem repozytoriach (np. w UbuntuMint). W większości 
przypadkach konieczne będzie jednak jej ściągnięcie.

Tekst  adresuję  do  graczy,  ale  również  do  rodziców, 

którzy powinni sobie zdawać sprawę, z jakich uciech mo-
gą korzystać ich latorośle. Nie oznacza to bynajmniej po-

stawienia jakiejś kontrowersyjnej tezy na samym począt-
ku tekstu. Produkt potrafi z całą pewnością wciągnąć i ra-
zem z jak najbardziej pozytywnym przekazem powinno 
iść również zdroworozsądkowe ostrzeżenie. Zresztą nie 
mogę nie wspomnieć, że istnieje również wersja gry za-
adresowana dla nastolatków. Ale o tym później, teraz za-
praszam do recenzji.

Zanim rozpoczniesz rozgrywkę

Rejestracja związana jest z kilkoma krokami. W pierw-
szym przedstawiamy się, czyli wybieramy swoje wirtu-
alne imię i nazwisko. O ile pierwsze po prostu wpisuje-
my, to już w drugim przypadku wybieramy spośród cał-
kiem pokaźnej liczby przygotowanych. Znajdziemy rów-
nież  na  niej  swojsko  brzmiące.  Ponadto  wpisujemy  da-
tę urodzenia, właściwy mail i przechodzimy dalej. W na-
stępnym kroku czas na wybór awatara, czyli widoku na-
szej postaci. Możemy wybierać spośród dwunastu posta-
ci – sześciu kobiet i sześciu mężczyzn. Wybór wskazuje 
po części na nasze przysposobienie. Rozróżnienie prze-
biega wokół osi związanej z rozrywką. Mamy więc go-
ścia z dyskoteki, królika itp.

background image

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

68

maj 2008

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

69

www.lpmagazine.org

Po  ustaleniu  najważniejszych  z  punktu 

widzenia  samej  gry  rzeczy,  można  przejść 
do  wpisania  naszych  prawdziwych  danych. 
Tego punktu nie ma co omawiać. Jeżeli pla-
nujecie grę kontem płatnym, to możecie tu-
taj  dopisać  kod  promocyjny,  o  ile  taki  po-
siadacie. W  następnej  kolejności  decyduje-
cie  o  rodzaju  posiadanego  konta.  Może  to 
być  któreś  z  kont  Premium  (wybierasz  ro-
dzaj abonamentu), bądź konto darmowe (po-
mijasz ten krok).

Konto płatne różni się tym od darmowe-

go, że możesz kupować ziemię i budować na 
niej różnego rodzaju rzeczy, a nawet otwie-
rać swój własny biznes. Zresztą jedno z ha-
seł  reklamowych  brzmi  mniej  więcej  tak: 
posiadasz  własny  biznes,  najwyższy  czas
aby zaistniał w Second Life.

Na  koncie  darmowym  możesz  jedynie 

wynajmować ziemię, bądź budynki. Różnica 
jest więc co najmniej spora. Można posiadać 
więcej niż jedno konto podstawowe, ale po-
za  pierwszym  wszystkie  są  płatne  (aczkol-
wiek  mniej  niż  premium. W  chwili  pisania 
było to 9,95$ jednorazowej opłaty).

Posiadając  konto  premium  możesz  li-

czyć  na  otrzymywanie  stypendium  w  wa-
lucie  obowiązującej  w  świecie  gry.  Auto-
rzy nie byli tutaj jakoś specjalnie oryginalni, 
bowiem owa waluta dostała miano L$, czy-
li Linden Dolarów. Linden to nic innego jak 
nazwa studia, które opracowało grę.

Stypendia  dostaje  się  za  różne  rzeczy. 

Za rejestrację i korzystanie z komercyjnego 
konta.  Można  również  dostać  stypendium 
za podanie danych związanych z naszą kar-
tą  kredytową,  bądź  systemem  PayPal.  Wy-
sokość stypendiów zmienia się stosunkowo 

często, nie ma więc większego sensu poda-
wanie liczb. Z całą pewnością warto pamię-
tać, że większość z nich dotyczy kont płat-
nych, zaś wszelkie zapomogi dla posiadaczy 
bezpłatnych, to tylko drobna próbka możli-
wości. Czy to oznacza, że nie ma większego 
sensu  grać  bezpłatnie?  Zastanowię  się  nad 
tym w dalszej części recenzji.

Proces  rejestracji  kończy  się  dopiero  po 

tym, jak otrzymasz maila z aktywacją swojego 
konta. Po aktywacji możemy przejść do gry.

Świat Second Life

Gra nie posiada ujednoliconego świata gry, jak 
w wielu innych MMORPG. Na grę składa się 
wiele serwerów, które połączone są w specjal-
ną sieć. Gracze posiadają klienty, które umoż-
liwiają im modyfikację otoczenia, jak również 
uczestniczenia w tym wszystkim, co sprezen-
towali nam developerzy.

Wspomniałem,  że  świat  nie  jest  jedno-

lity. Większość lokalizacji i postaci przypo-
mina  zwyczajne,  czasem  mniej,  ale  znane 
miejsca.  Bohaterowie  są  zazwyczaj  ludzcy. 
Dzięki możliwości modyfikacji świata i bo-
haterów możemy trafić jednak do wielu nie-
standardowych miejsc. Nie jest niespodzian-
ką,  jeżeli  pewnego  dnia  znajdziemy  się  w 
średniowieczu, innego w świecie fantasy.

Same  postacie  mogą  nam  również  do-

starczyć  wiele  zabawy.  O  tym,  jak  się  je 
tworzy,  w  zasadzie  już  wspomniałem.  Na 
tym jednak cały proces się nie kończy. Mo-
żemy bowiem zmodyfikować naszego awa-
tara w każdej chwili, zaś zakres modyfikacji 
jest co najmniej imponujący.

Za  pomocą  specjalnych  suwaków  zmie-

niamy  kolor  skóry,  oczu,  włosów.  Nie  ma 

problemu  z  modyfikacją  kształtu  ust,  długo-
ści włosów. Bardzo ciekawym rozwiązaniem 
jest możliwości dodawania np. tatuaży do czę-
ści ciała. Najciekawsze jest to, że owe tatuaże 
możemy sami stworzyć, a następnie wgrać na 
serwer. Pod warunkiem, że dysponujemy od-
powiednią  walutą  w  świecie  gry.  Nie  jest  to 
specjalnie drogie. Niewiele od tego różni się 
sposób ustalania ubrania awatara, które rów-
nież można modyfikować na wiele sposobów. 
Generalnie mamy możliwość modyfikacji po-
nad 140 cech w skali od 1 do 100.

Najwięcej  możliwości  daje  jednak  do-

dawanie do naszej postaci tzw. przystawek 
(z ang. attachments). W zasadzie za ich po-
mocą  dodamy  do  naszej  postaci  dowolną 
rzecz.  Może  to  być  broń  (której  oczywi-
ście nie użyjemy), biżuteria, niezwykle ory-
ginalne ubranie, czy nawet o wiele bardziej 
osobista  rzecz.  Mam  na  myśli  oczy,  wło-
sy, uszy i wiele wiele innych. W ten sposób 
spotkać można w grze nawet smoki czy in-
ne  fantastyczne  awatary.  Jeżeli  nasz  wize-
runek znudzi się nam, możemy go w każdej 
chwili zmienić.

Postać  nie  posiada  statystyk,  tak  jak 

w  większości  gier  MMORPG.  Zostały 
nam przypisane informacje o bardziej spo-
łecznościowym  charakterze.  Jest  to  więc 
nazwa/opis  postaci,  określenie  zaintere-
sować,  przynależności  do  jakiejś  grupy 
użytkowników, wreszcie obrazek. Tylko to 
określa naszą postać. Nie jest to więc kla-
syczna gra fabularna, w której wraz z wy-
konywaniem  kolejnych  zadań  zdobywa-
my określone poziomy doświadczenia i na-
sze statystyki poprawiają się. W przypadku 
Second  Life  funkcjonowanie  postaci  zale-
ży tylko i wyłącznie od nas, a nie od wirtu-
alnego  zestawu  czynników.  Nie  bez  koze-
ry  twórcy  wspominają  wielokrotnie  o  sy-
mulatorze życia. Wynika to z bodajże naj-
ważniejszego hasła reklamowego gry: Your 
WorldYour Imagination (Twój świat. Two-
ja wyobraźnia).

Przez  to  gra  nie  ma  z  góry  określone-

go  celu.  Ot  mamy  świat,  w  którym  może-

Rysunek 1. 

Ekran logowania

Rysunek 2. 

Przykład ciekawego awatara

background image

70

maj 2008

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

71

www.lpmagazine.org

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

my  rozwijać,  oczywiście  wirtualnie  swoje 
zainteresowania,  poznawać  nowych  ludzi, 
a nawet robić interesy. Możliwości interak-
cji z otoczeniem są wręcz ogromne. Istnieją 
wprawdzie pewne zasady, rzekłbym prawa, 
jednak nic nie zmienia faktu, że naprawdę 
trudno nazwać Second Life grą. Spotkałem 
się z określeniem, że jest to wirtualne miej-
sce  spotkań  i  uważam,  że  coś  w  tym  jest. 
Osobiście skojarzyło mi się z pewną słynną 
grą,  w  której  pielęgnowaliśmy  milusińskie 
wirtualne zwierzątko (miało ono niewątpli-
wie jedną zaletę, nie trzeba było naprawdę 
po  nim  sprzątać).  W  Second  Life  zamiast 
zwierzątka  mamy  do  czynienia  z  posta-
cią, która żyje w rzeczywistym, aczkolwiek 
wirtualnym  społeczeństwie.  Nie  uważam, 
żeby  w  moim  stwierdzeniu  była  jakakol-
wiek sprzeczność. Z socjologicznego punk-
tu  widzenia  aby  mówić  o  społeczeństwie 
nie  są  potrzebne  przecież  takie  kryteria, 
jak wspólne terytorium, a na pewno nie bli-
skość  zamieszkania,  osobiste  kontakty  itp. 
Przecież społeczeństwo polskie to też zbiór 
jednostek, które niekoniecznie się znają. W 
przypadku gry liczba i poziom skompliko-
wania  interakcji  doprowadziły  do  powsta-
nia  swoistego  społeczeństwa.  Prawdziwe-
go, ponieważ wytworzyło ono pewne zasa-
dy  związane  z  funkcjonowaniem  w  wirtu-
alnym świecie. Zasady nie odbiegające ja-
koś  zasadniczo  od  rzeczywistych.  Różnica 
jest tylko taka, że sam świat nie jest już rze-
czywisty. Można się tylko zastanowić, czy 
osoby, które mają niewątpliwą przyjemność 
być członkami tej społeczności, zdają sobie 
sprawę, jaka cienka jest czasem granica po-
między  światem  wirtualnym,  a  rzeczywi-
stym.  Przynajmniej  w  sferze  psychicznej. 
Coraz częstsze przypadki przemocy w sto-
sunku  do  obcych,  krewnych,  będące  prze-

dłużeniem  tego,  co  się  dzieje  w  światach 
wirtualnej rozrywki dają z pewnością sporo 
do myślenia. A przynajmniej powinny.

Taka  dowolność  w  rozgrywce  może 

również  prowadzić  do  wielu  patologicz-
nych z założenia zachowań, gdzie ma miej-
sce  wirtualna  przemoc,  łamanie  zasad  czy 
nakazów moralnych. Z całą pewnością Se-
cond  Life  jest  miejscem,  w  którym  każdy 
może pokazać swoje drugie często nie naj-
lepsze  oblicze.  Samo  to  w  sobie  nie  jest 
najlepsze,  niektórzy  przecież  potrzebują 
czasem  najzwyczajniej  w  świecie  się  wy-
szumieć.  Natomiast  jest  w  tym  jakaś  doza 
zagrożenia.  Zwłaszcza,  jeżeli  w  grę  zaan-
gażuje się zbyt młoda osoba. Lub jeśli nie 
daj Boże stanie się ona obiektem (gra) po-
lityczno–moralnego ataku ze strony środo-
wisk  prawicowo–konserwatywnych,  które 
zazwyczaj  robią  w  ten  sposób  więcej  złe-
go niż dobrego.

Na szczęście została stworzona specjal-

na wersja gry dla osób niepełnoletnich, na-
stolatków, która posiada wiele ograniczeń z 
uwagi na wiek. Polecam rodzicom zapozna-
nie się z nimi, być może w ten sposób uda 
się  dotrzeć  do  własnych  pociech.  Przede 
wszystkim ograniczyć w miarę możliwości 
potencjalne  epatowanie  przemocą.  Wiem, 
że  osoby  pokroju  Johna  Locke'a  pisały  o 
tym, że ludzie z natury są dobrzy, państwo 
i  zasady  są  w  zasadzie  więc  niepotrzebne, 
jednakże  życie  pokazuje,  że  czasem  warto 
zadbać  również  o  tych  najmłodszych.  Idź-
my dalej.

Rozgrywka

Przy  pierwszym  uruchomieniu  klienta,  tuż 
po  zalogowaniu  będziecie  musieli  jesz-
cze  zaakceptować  licencję  użytkownika. 
W  trakcie  wczytywania  mogą  się  jeszcze 

pojawić  okna  z  komunikatami  krytyczny-
mi,  czyli  różnymi  informacjami  o  błędach 
w grze. Najlepiej nie lekceważyć sobie ta-
kich informacji i postępować zgodnie z in-
strukcjami. W domyślnej wersji są one, tak 
jak pozostała część interfejsu po angielsku. 
Polskiego  niestety  nie  uświadczymy.  To 
może być pewna przeszkoda dla niektórych 
użytkowników.  Na  szczęście  niezbyt  po-
ważna, przynajmniej moim zdaniem.

Tuż  po  uruchomieniu  klienta  nasz  bo-

hater pojawia się w określonym miejscu w 
losowo  wybranej  początkowej  lokalizacji. 
Tak jest przynajmniej za pierwszym razem. 
Zanim jeszcze na dobre rozpoczniemy roz-
grywkę, zostaniemy poproszeni o doprecy-
zowanie naszego wyboru odnośnie języka. 
Może to być angielski, koreański, japoński i 
niemiecki. Pewien wybór więc mamy.

Pierwsze kroki to generalnie tutorial, w 

trakcie  którego  zostajemy  stosunkowo  do-
kładnie zapoznani z wszystkimi elementami 
interfejsu. Dowiadujemy się, w jaki sposób 
można  poruszać  naszą  postacią,  jak  doko-
nywać  interakcji  z  różnymi  obiektami,  jak 
również z innymi postaciami. Zresztą w ra-
mach  wprowadzenia  zostaną  przydzielone 
Ci  drobne  zadania,  które  umożliwią  pełne 
zorientowanie  w  świecie  i  możliwościach 
gry.  Będziesz  musiał  pochodzić  w  około, 
powiedzieć  coś  do  innych  postaci.  Sukces 
zostanie nagrodzony radosnym podskokiem 
naszego  bohatera  i  odpowiednim  dźwię-
kiem.  Nie  da  się  go  pomylić  z  czymś  in-
nym. Na zapoznanie się ze wszystkimi niu-
ansami lepiej poświęcić sporo czasu, dzię-
ki czemu w gruncie rzeczy zaoszczędzimy 
go na właściwej rozgrywce. Tylko na czym 
ta tak naprawdę polega. Mówiąc kolokwial-
nie, ale zarazem jak najbardziej poważnie, 
rzeknę, że na życiu.

Rysunek 3. 

To również awatar, który wygląda nieco bardziej groźnie

Rysunek 4. 

W oczekiwaniu na towarzystwo

background image

70

maj 2008

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

71

www.lpmagazine.org

rozrywka

Second Life – rzut okiem na wirtualny świat rozgrywki

Nasza postać zostaje rzucona w wirtual-

ny świat, w którym musi się odnaleźć. Mo-
żemy  zostać  znanym  projektantem  tatuaży 
i sporo przy tym zarobić, w walucie wirtu-
alnej oczywiście. Możemy handlować róż-
nymi akcesoriami, świadczyć kompleksowe 
usługi,  budować/projektować/wynajmować 
i  sprzedawać  nieruchomości.  Jednym  sło-
wem  możemy  prawie  wszystko.  To  co  ro-
bimy świadczy o nas samych, jest źródłem 
naszej sławy i coraz to większych bogactw. 
Jeżeli posiadasz ciekawą i sławną nierucho-
mość, to możesz np. stworzyć w niej klub, 
dancing  czy  inne  gniazdo  rozgrywki.  Za-
trudniasz  kelnerów,  barmanki,  ochroniarzy 
i zabawa do białego rana. Oczywiście mu-
sisz mieć odpowiedni kapitał, ale jak już go 
masz to nic nie stoi na przeszkodzie, aby go 
pomnożyć. Rozwiązań jest wiele, zaś eko-
nomia świata jest na tyle rozbudowana, że 
każdy znajdzie coś dla siebie.

Nie każdy musi jednak być aż tak twór-

czy.  Dużo  zabawy  zapewnia  już  zwykłe 
przechadzanie  się  po  świecie  gry.  W  tym 
miejscu muszę pójść na ustępstwo i zrezy-
gnować z osobnej części poświęconej gra-
fice w grze. Zwiedzanie świata stanowi je-
den  z  ciekawszych  elementów,  zaś  grafika 
ma tutaj pierwszorzędne znaczenie. W wer-
sji  linuksowej  zdarzają  się  podobno  błędy 
w  renderowaniu  wielu  elementów  krajo-
brazu  i  postaci.  Przyznam  się  szczerze,  że 
przez wiele godzin poszukiwałem tych błę-
dów i (nie)stety nie udało mi się tego doko-
nać. Albo  miałem  po  prostu  szczęście,  al-
bo jest to wyolbrzmiona przez kogoś spra-
wa. Przechadzając się w różnych lokacjach 

można się napatrzeć na wiele dziwów. Weź-
my na przykład fantastyczne budynki awa-
tary  w  różnych  odmianach,  począwszy  od 
smoków,  a  skończywszy  na  latających  dy-
wanach.

Po  zwiedzaniu  stałym  elementem  gry 

jest komunikacja. Moim zdaniem najwięk-
szym  plusem  wszelkich  gier  on–line  jest 
możliwość  komunikacji  z  ludźmi  z  całe-
go świata, w zasadzie w dowolnym języku. 
Poza  swobodą  wymiany  poglądów,  ważny 
jest aspekt edukacyjny – nauka języków ob-
cych, a przynajmniej jej ważny element.

W grze można znaleźć o wiele bardziej 

wysublimowane rozrywki. Na przykład dys-
koteki, które założyły przedsiębiorcze oso-
by. Rzeczywisty świat jest odwzorowany do 
tego stopnia, że można umówić się na rand-
kę, która skończy się w stosunkowo gorący 
spokój. Naturalnie w wersji dla nastolatków 
szereg rozrywek został nieco pomniejszony. 
Jak nie odpowiadają Wam randki, możecie 
udać  się  na  arenę  sportową,  aby  zobaczyć 
mecz bokserski. Co odważniejsi, mogą sa-
mi spróbować sił.

Do  tego  wszystkiego  zastosowano  w 

pełni  trójwymiarową,  realistyczną  grafikę. 
Połączono  to  z  klimatycznymi  dźwiękami, 
jak najbardziej dostosowanymi do aktualnej 
lokalizacji.  Czegóż  można  więcej  chcieć. 
A... jest jeszcze jedna sprawa. W całym roz-
gardiaszu nie wspomniałem jeszcze, że wir-
tualne pieniądze można zamieniać na dola-
ry amerykańskie. Ta sprawa nie jest jeszcze 
do końca rozwinięta, ale chodzi o to, że w 
świecie Second Life można naprawdę zaro-
bić. I to całkiem spore pieniądze.

Czy warto?

Napisałem już wiele o grze, pytanie, czy jest 
ona warta, aby w nią zagrać. Niesie ona ze so-
bą liczne zalety, o których już się rozpisywa-
łem, wady zresztą też, w postaci chociażby za-
grożeń  dla  małoletnich.  Pojawiają  się  jesz-
cze problemy natury bardziej technicznej. Za 
tą wspaniałą grafikę i muzykę musimy płacić 
posiadaniem bardzo dobrego łącza interneto-
wego. Wyobraźcie sobie, że przy całym ogro-
mie  świata  autorzy  udostępnili  nam  jedynie 
niewielkiego  klienta.  Wszystkie  dane  –  gra-
fika, dźwięk, są tam naprawdę na bieżąco ak-
tualizowane przez Internet. Już zwykła prze-
chadzka przez wyspę niesie ze sobą koniecz-
ność wymiany ogromnej liczby informacji, a 
cóż dopiero taniec w dyskotece, wizyta na sta-
dionie i wiele wiele innych.

Mimo  wszystko  gra  jest  warta  obejrze-

nia. Już chociażby z racji swojej oryginalno-
ści.  W  dzisiejszym  świecie,  po  dziesiątkach 
lat rozwoju rozgrywki elektronicznej (no mo-
że przesadziłem z tym wiekiem, niemniej jed-
nak  rynek  rozgrywki  rozwija  się  na  Zacho-
dzie od naprawdę wielu lat), naprawdę trud-
no jest stworzyć coś, co może pozytywnie za-
skoczyć gracza. Twórcom Second Life udało 
się coś wyjątkowego i pomimo licznych, na-
prawdę oczywistych wad, warto się zaintere-
sować. Polecam, aczkolwiek przypominam o 
przestrogach.

Autor  jest  redaktorem  serii  poradników  o 
praktycznym  zastosowaniu  OpenOffice. 
Zajmuje  się  również  propagowaniem  idei 
wolnego  oprogramowania.  Interesuje  się 
aplikacjami biurowymi oraz multimedialny-
mi zastosowaniami systemu Linux. Wolne 
oprogramowanie stanowi dla niego hobby, 
jak  również  przedmiot  aktywności  zawo-
dowej.
Kontakt z autorem:
p.zarnecki@plusnet.pl

O autorze

Rysunek 5. 

Początek wieczoru

Rysunek 6. 

Na spacerze

background image

Tipsy

GKrellm

72

maj 2008

Tipsy

GKrellm

73

www.lpmagazine.org

GKrellm

Piotr Pawłowski

K

ażdy  z  użytkowników  Linuxa 
prędzej czy później zapragnie na 
bieżąco kontrolować to, co dzie-
je się w jego systemie. W inter-

necie bez trudu odnaleźć można małe programy, 
które wyświetlają informacje o poszczególnych 
urządzeniach komputera. Umieszczenie wszyst-
kich  potrzebnych  programów  na  pulpicie  mija 
się jednak z celem. Z pomocą przychodzi pro-
gram GKrellm. Aplikacja pozwala na stałe mo-
nitorowanie  komponentów  komputera.  Podsta-
wowa konfiguracja pozwala na dobrą współpra-
cę z użytkownikiem. Możliwości konfiguracyjne 
GKrellm są bardzo duże więc zaraz po kompila-
cji należy przejść do personalizacji.

Kopie

Prace nad personalizacją aplikacji zazwyczaj po-
lega  na  metodzie  prób  i  błędów.  Sposobem  na 
uniknięcie problemów jest następujące polecenie: 

gkrellm -c test

. W katalogu głównym progra-

mu powstaje folder data-test, w którym przecho-
wywane są wszystkie ustawienia. Pozwala to na 
bezproblemowe  zmienianie  ustawień.  Po  skoń-
czonej zabawie nic nie stoi na przeszkodzie by 
przenieść wyniki do 'głównego' programu.

Wygląd

Ciekawą rzeczą, na którą pozwala Gkrellm jest 
zmiana wyglądu graficznego. Użytkownik, dzię-
ki  skórkom,  ma  możliwość  dopasowania  wy-
glądu do indywidualnych ustawień graficznych 
pulpitu. Klawiszami Page Down i Page Down 
możemy  szybko  przeglądać  dostępne  wystroje. 
Standardowo  możliwa  jest  jedynie  zmiana  ko-
lorystyczna dostępnego motywu. Każdy, kto pra-
gnie zmienić nie tylko kolor ale i cały wygląd 
programu powinien udać się na stronę domową 
projektu. Po ściągnięciu interesującej nas skórki, 
prostej kompilacji i instalacji, pojawia się ona w 
katalogu Themes aplikacji.

Czujniki

Aby przejść do ustawień należy wcisnąć klawisz 
[F1] podczas gdy kursor jest nad aplikacją.

Pierwszą  opcją  do  modyfikacji  są  czujni-

ki. Ich ilość zależy od komponentów kompute-
ra. Jeśli użytkownik posiada sprzęt dobrej mar-

ki ma dostępne czujniki od temperatury proce-
sora, prędkości obrotów procesora oraz od na-
pięć na procesorze. Niestety mój sprzęt pozwa-
la tylko na ustawienia dotyczące temperatury. 
Aby  wprowadzić  informacje  o  temperaturze 
procesora  należy  zaznaczyć  odpowiednie  po-
le przy odpowiedniej wartości. Zmiana etykie-
ty pozwoli na rozpoznanie wartości temperatu-
ry. Przypominam, że każda wartość TZS odpo-
wiada innym komponentom.

W tym wypadku warto zwrócić uwagę na 

opcję  Alarmy. Aby  ustrzec  się  niepożądanym 
konsekwencjom związanym z dużymi tempe-
raturami  można  ustawić  odpowiednie  warto-
ści górnej granicy dla Ostrzeżenia i dla Alar-
mu
. Warto tez ustawić odpowiednie polecenie 
w  przypadku  przekroczenia  wartości  krytycz-
nej np. restart środowiska graficznego lub re-
start komputera.

Zegar

Jak sama nazwa wskazuje w tej zakładce dostęp-
ne są opcje dotyczące wyświetlania zegara oraz 
kalendarza. Opcjami do edycji są tutaj sposoby 
do wyświetlania godziny lub daty. Na przykład 
aby kalendarz wyświetlał bieżący dzień, miesiąc, 
rok oraz dzień tygodnia należy wpisać 

%d.%m.%y 

,%j  dzie  roku

Jeśli chcemy aby zegar wy-

świetlał aktualną godzinę (w systemie 24 godzin-
nym) wraz z minutami i sekundami wpisujemy 
polecenie formatowania: 

%k:%M  %S

 ( jeśli pre-

ferowany jest zegar 12 godzinny to zamiast 

%k 

wpisujemy 

%l

). Szczegółowy wykaz zmiennych 

do modyfikacji ukazany jest w Listingu 1.

Dla  uatrakcyjnienia  można  włączyć  wy-

bijanie dźwięków starego zegara, który wybi-
ja godziny.

CPU i PROCESY

Ta  opcja  nie  pozwala  na  zbytnie  modyfikacje. 
Użytkownicy laptopów chętnie skorzystają z tej 
opcji by sprawdzać na bieżąco obciążenie pro-
centowe  procesora.  W  połączeniu  z  informa-
cją o temperaturze oraz aktualnej częstotliwości 
procesora staje się ona pomocnym miernikiem w 
przypadku, gdy jakiś proces w systemie powodu-
je zbytnie obciążenie komputera i należy go zabić 

Listing 1: 

zmienne daty i zegara

%

a

 – 

skr

ó

towa

 

nazwa

 

dnia

%

A

 – 

pe

ł

na

 

nazwa

 

dnia

%

b

 – 

rzymskie

 

okre

lenie

 

miesi

ca

%

B

 – 

pe

ł

na

 

nazwa

 

miesi

ca

%

c

 

oraz

 

%

C

 –  

aktualnej

 

daty

%

d

 – 

dzie

 

miesi

ca

%

D

 – 

data

 

w

 

formacie

 

dd

\

mm

\

rr

%

e

 – 

dzie

 

miesi

ca

%

F

 – 

data

 

bie



ca

 

w

 

formacie

 

rrrr

-

mm

-

dd

%

g

 – 

dwie

 

ostatnie

 

cyfry

 

roku

%

G

 – 

rok

%

h

 – 

miesi

c

 

w

 

cyfrach

 

rzymskich

%

H

 

lub

 

%

k

 – 

godzina

%

I

 

lub

 

%

l

– 

godzina

 

w

 

notacji

 

dwynastogodzinnej

%

j

 – 

dzie

 

roku

%

m

 – 

miesi

c

 

(

cyfra

)

%

M

 – 

minuty

 

r

%

 

-

 

pe

ł

na

 

godzina

 

w

 

notacji

 

dwunastogodzinnej

R

%

 

-

 

pe

ł

na

 

godzina

 

w

 

notacji

 

dwudzi

estoczterogodzinnej

%

S

 – 

sekundy

%

T

 

lub

 

%

X

– 

pe

ł

na

 

godzina

 

w

 

formacie

 

gg

:

mm

:

ss

%

z

 – 

czas

 

GMT

%

Z

 – 

czas

 

Europy

 

Centralnej

 

(

CET

)

background image

Tipsy

GKrellm

72

maj 2008

Tipsy

GKrellm

73

www.lpmagazine.org

poleceniem 

kill

. Aby przyspieszyć zabicie pro-

cesu  warto  ustawić  uruchomienie  np.  KsysGu-
ard. W tym celu należy wypełnić pole polecenie 
cpu 
pożądanym programem, w tym przypadku 

KsysGuard

.  Opcja wyświetlania procesów także 

nie  posiada  rozwinięcia  skrzydeł  konfiguracyj-
nych. Jednak w połączeniu z wtyczką wyświetla-
jącą procesy, które najbardziej obciążają system, 
staje się całkiem pożytecznym narzędziem.

DYSK

Bardzo przydatna opcja dla tych, którzy wyko-
nują  wiele  operacji  związanych  z  przenosze-
niem i kopiowaniem plików. Gkrellm pozwa-
la na monitorowanie każdej partycji wykrytej 
przez  system.  Wykres  może  pokazywać  wy-
kresy wszystkich dysków razem bądź każdy z 
osobna.  W  bardzo  łatwy  sposób  można  sfor-
matować  etykietę  informacji  wyświetlanych 
na wykresie. Aby wiadomo było ile kilobajtów 
jest zapisywanych i odczytywanych z danego 
dysku  w  formatowaniu  etykiet  należy  wpisać 
następujący tekst: 

$r odczyt\n$w zapis

.

INTERNET i SIEĆ

Oba  monitory  są  powiązane.  Pierwszy  po-
wiadamia  o  połączeniach  przez  zdefiniowany 

przez użytkownika port. Jeśli chcemy wiedzieć 
ile połączeń jest ustanawianych przez protokół 
http należy wpisać zakres portów (standardowo 
80 i 8080) oraz etykietę (najlepiej http). Z tego 
narzędzia  chętnie  skorzystają  administratorzy 
oraz osoby z dużymi obciążeniami sieci przez 
połączenia p2p.

Dzięki zakładce Sieć możemy obserwować 

prędkości osiągane podczas ściągania bądź wy-
syłania danych z i do sieci Internet lub LAN. 
Format etykiety jest taki sam jak w przypadku 
odczytu/zapisu z dysków twardych. Aby efek-
tywnie prowadzić nadzór należy zaznaczyć od-
powiedni interfejs. Dla użytkowników Interne-
tu, którzy mają czasowy dostęp do Sieci, uży-
teczną opcja jest Licznik Czasu. Po uprzednim 
ustawieniu interfejsu podłączonego do Liczni-
ka  można  łatwo  manipulować  czasem  korzy-
stania z Internetu.

PAMIĘĆ

W  każdym  komputerze  istnieje  pamięć  RAM. 
Dodatkowo  może  występować  pamięć  SWAP. 
Opisywany  monitor  przedstawia  w  prosty  spo-
sób użycie obu pamięci w megabajtach. Aby na 
etykiecie wyświetlana była ilość wolnej i zużytej 
pamięci w Łańcuchu formatowania etykiet pane-
lu
 należy wpisać ciąg znaków: 

$U – zajte $W 

– wolne

, dla pokazania całkowitej pamięci użyć 

trzeba zmiennej 

$t 

. Szczegółowy wykaz zmien-

nych znajduje się w Listingu 2.

SYSTEM PLIKÓW

Przydatna opcja dla tych, którzy wykonują nie-
zliczone operacje na dyskach. Opcja ta na bie-
żąco  pokazuje  wolne  miejsce  na  dyskach  za-
montowanych  w  komputerze.  Konfiguracja 
jest bardzo prosta. W polu etykieta wpisać na-
leży dowolną, wymyśloną przez siebie nazwę, 
wyświetlaną na panelu Gkrellm, np. Dokumen-
ty
. W polu Punkt montowania podajemy pełną 
ścieżkę  do  dysku  (katalogu),  którego  pojem-

ność chcemy sprawdzać na bieżąco, np. /home/
USER
 . Możliwe jest także montowanie party-
cji z użyciem pliku /etc/fstab. Aby tego doko-
nać trzeba uprzednio zmienić wyżej wspomnia-
ny plik tak, aby użytkownikowi nadać prawa do 
montowania urządzeń.

POCZTA

Bardzo przydatny monitor. Na bieżąco spraw-
dza  skrzynkę  pocztową.  Wszelkie  parametry 
konta  pocztowego  ustawiamy  tak  jak  w  każ-
dym programie do odczytu listów e-mail. War-
to  ustawić  opcję  włączania  programu  poczto-
wego  (np.  Thunderbird)  w  celu  pobrania  ko-
respondencji.  Aby  to  uczynić  należy  w  po-
lu Program do czytania poczty wpisać nazwę 
naszego ulubionego programu. Warto ustawić 
sprawdzanie  skrzynek  co  5-10  minut  aby  na 
bieżąco  kontrolować  przychodzące  wiadomo-
ści.  Moduł  bardzo  pomocny,  gdy  nie  chcemy 
mieć włączonego cały czas w systemie progra-
mu pocztowego.

BATERIA i CZAS PRACY

Obie opcje preferowane są przez użytkowników 
laptopów.  Są  mało  konfigurowalne  lecz  swoją 
przydatnością zadowolą niejednego użytkowni-
ka Linuxa na laptopie, który chce pokazać wyż-
szość ich ulubionego systemu nad konkurencyj-
nym  systemem  operacyjnym  z  Redmond.  Stan 
baterii pobierany jest z biosu, lecz możliwa jest 
własna  konfiguracja  czasu  działania  laptopa  na 
baterii. Warto to zrobić, gdy uważamy, że nasza 
bateria pozwala na dłuższą pracę. 

WTYCZKI

Rozbudowane  opcje  pozwalają  na  dobry  mo-
nitoring systemu. Jednak dla każdego, kto pra-
gnie monitorować coś więcej, a czego nie po-
zwala nam robić GKrellm, możliwa jest rozbu-
dowa programu o wtyczki. Dodatkowe modu-
ły są dostępne na stronie domowej projektu. Ich 
instalacja jest bardzo prosta i zawęża się do wy-
dania tych samych poleceń co przy kompilacji 
kodu źródłowego każdego programu. Każdy z 
nich ma osobne opcje konfiguracyjne dostępne 
w zakładce Wtyczki .

Listing2: zmienne 

dla pamięci

Dla

 

pami

ci

 

i

 

swap

:

 

$

t

 

-

 

razem

 

MiB

 

$

u

 

-

 

zaj

te

 

MiB

 

$

f

 

-

 

wolne

 

MiB

 

$

U

 

-

 

zaj

te

 

%

 

$

F

 

-

 

wolne

 

%

 

$

l

 

-

 

etykieta

 

panelu

 

Tylko

 

dla

 

pami

ci

:

 

$

s

 

-

 

dzielone

 

MiB

 

$

b

 

-

 

buforowane

 

MiB

 

$

c

 

-

 

MiB

 

w

 

pami

ci

 

podr

cznej

Piotr  Pawłowski  jest  czynnym  członkiem 
Koła  Naukowego  Systemów  Informatycz-
nych  E-xpert  działającego  przy  Katedrze 
Informatyki  Ekonomicznej  Uniwersytetu 
Gdańskiego.
Kontakt z autorem: p.pawlowski@e-xpert.pl

O autorze

background image

74

maj 2008

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

75

www.lpmagazine.org

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

L+: Proszę opowiedzieć coś o sobie, aby przy-
bliżyć czytelnikom Pana osobę . Jak długo  pra-
cuje Pan w Motoroli, czym się zajmuje, za jaki 
sektor jest odpowiedzialny?.
MP:
 Nazywam się Maciej Piliński, moje sta-
nowisko to tak zwane Portfolio Lead. Obecnie 
mam  przyjemność  w  Motoroli  zajmować  się 
nie tylko Polską, ale też innymi krajami Euro-
py Centralnej: Czechami, Słowacją i Węgrami. 
W Motoroli pracuję właściwie od.... nie jest ła-
two odpowiedzieć na to pytanie, bo w Motoroli 
zacząłem pracować w roku '96 na innym stano-
wisku, w roku 2000 opuściłem firmę i w 2004, 
ponieważ  miałem  bardzo  miłe  wspomnienia 
związane  z  Motorolą,  postanowiłem  wrócić. 
Z firmą jestem więc związany już ponad 12 lat 
można  powiedzieć,  z  małą  przerwą.W  dziale 
telefonów  komórkowych  Motoroli  pracuję  od 
niecałych 4 lat

Na obecnym stanowisku jestem odpowie-

dzialny za produkt i to w wielu aspektach, są 
to między innymi kwestie przygotowania pro-
duktu  na  polski  rynek,  przygotowanie  odpo-
wiedniej zawartości pudełka, czyli np. jakie-
go rodzaju akcesoria mają się tam znaleźć oraz 
jak ma wyglądać to pudełko. Do mnie należy 
również  dopilnowanie  kwesti  prawnych,  ja-
ko że w przypadku telefonów sprzedawanych 
na polskim rynku są wymagane odpowiednie 
deklaracje,  a  w  przypadku  telefonów  linu-
ksowych - dodatkowo informacja o dostępno-

już  wkrótce  telefony  staną  się  np.  elektro-
niczną portmonetką, a to narzuca bardzo re-
strykcyjne wymagania jeśli chodzi o bezpie-
czeństwo takiego rozwiązania. Nie oznacza 
to  oczywiście,  że  nie  można  dodawać  no-
wej  funkcjonalności  czy  programów.  Są  to 
po prostu klasyczne, standardowe aplikacje 
napisane w Javie. Ale i tu są pewne ograni-
czenia zwiększające bezpieczeństwo danych 
użytkownika i jego portfela: gdy nowe opro-
gramowanie  w  Javie  chce  łączyć  się  z  sie-
cią to wymaga to zgody użytkownika. Kiedy 
oprogramowanie chce przeglądać np. książ-
kę telefoniczną, to zgodę na to musi wyrazić 
użytkownik.  Kiedy  oprogramowanie  chce 
coś  zapisywać  np.  na  karcie  pamięci  itd., 
użytkownik również powinien na to de facto 
wyrazić zgodę. Wynika to min. ze standar-
du Javy ale również z bardzo wysokiego po-
ziomu zabezpieczeń stosowanych w produk-
tach Motoroli . Źródłem tego jest po prostu 
zdrowy rozsądek, bo jeżelibyśmy pozwolili 
na to, żeby aplikacje robiły wszystko w na-
szym telefonie, żeby ktoś mógł np. modyfi-
kować  kod  w  naszym  telefonie,  to  następ-
nym  krokiem  byłyby  robaki,  wirusy,  konie 
trojańskie i itp. Każda operacja, która wiąże 
się z komunikacją w sieci naszego operatora 
(np. wysłanie sms'a, wysłanie mms'a, połą-
czenie telefoniczne, przesłanie danych) jest 
jednoznaczna z opłatami.

ści kodów źródłowych oprogramowania Open 
Source.  Istnieje  strona  internetowa:  http:
//www.motorola.com/opensource
,  gdzie  moż-
na pobrać pliki źródłowe do konkretnego mo-
delu telefonu.
L+: Jak firma podchodzi do pracy ze środowi-
skiem open source i czy uważacie, że w ogóle 
taka współpraca jest potrzebna?
MP:
 To bardzo ciekawe pytanie. Może od-
powiem w ten sposób: decyzję o tym, żeby 
wykorzystać  system  operacyjny  Linux,  za-
padła tak naprawdę kilka lat temu, ponieważ 
czas  wytworzenia  takiego  produktu,  który 
będzie  wykorzystywał  zupełnie  nowy  sys-
tem  operacyjny,  trwa  od  kilku  do  kilkuna-
stu miesięcy. Wersja systemu operacyjnego 
nazywanego przez nas LinuxJava, który jest 
instalowany  w  telefonach    komórkowych, 
jest  tak  naprawdę  systemem  zamkniętym. 
To  znaczy  nie  daje  on  pełnych  możliwości 
tworzenia, zmiany tego systemu, dodawania 
nowych funkcji, czy zmiany działania tych 
funkcji poprzez zewnętrznych developerów. 
Natomiast nie wykluczamy takich możliwo-
ści  w  przyszłości.  Ingerencja  w  oprogra-
mowanie może mieć wpływ na wiele para-
metrów, które są istotne z punktu widzenia 
operatora i przynajmniej na tym etapie także 
operatorzy wymagają, aby oprogramowanie 
w  telefonach  komórkowych  nie  było  zbyt 
otwarte. Proszę pamiętać choćby o tym, że 

Wywiad z Maciejem 

Pilińskim Portfolio 

Lead w Motorola 

Polska SP. z o. o.

background image

74

maj 2008

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

75

www.lpmagazine.org

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

Wybraliśmy  system  operacyjny  Linux, 

gdyż  widzimy  przyszłość  tego  typu  rozwią-
zań, chociażby ze względu na to, że dużo ele-
mentów, które są zawarte w tym systemie „za-
łatwiają” nam bardzo istotne potrzeby z punktu 
widzenia konsumenta, użytkownika. Są to mię-
dzy  innymi  kwestie  odtwarzania  plików  mul-
timedialnych,  filmów,  przeglądanie  interne-
tu.  W  telefonach  linuksowych  stosowana  jest 
przeglądarka  Opera  Mobile,  która  tym  róż-
ni się od Opery Mini, znanej z innych telefo-
nów, że nie wymaga żadnego serwera pośred-
niczącego. Ona po prostu bezpośrednio ściąga 
sobie strony internetowe, bezpośrednio je prze-
twarza (parsuje), i wyświetla na ekranie telefo-
nu komórkowego. Również interface użytkow-
nika jest bardzo atrakcyjny, daje wiele nowych 
możliwości.A są to wszystko bardzo ważne dla 
użytkownika funkcjonalności.
L+: Jak długo i czy  w ogóle przewidujecie roz-
wiązania na platformie Linux? W jakich urzą-
dzeniach oprócz telefonów znajduje on zasto-
sowanie?
MP:
 Mogę jedynie odpowiedzieć na to pyta-
nie w kontekście telefonów, chociaż wiem, że 
moi koledzy z innych działów również wyko-
rzystują  Linuksa,  ale  w  jakim  stopniu...  nie 
chciałbym tutaj wypowiadać się w ich imie-
niu, bo oni są fachowcami w swoich dziedzi-
nach. Myślę, że warto byłoby po prostu z ni-
mi przeprowadzić osobny wywiad. 

Jeśli  chodzi  o  telefony  komórkowe, 

pierwszym telefonem komórkowym z syste-
mem Linux Java, który wszedł na polski ry-
nek przebojem to  MOTORAZR2 V8 z pła-
ską, szczupłą, bardzo elegancką klapką. Jest 
to  telefon  w  pełni  multimedialny  potrafiący 
odtwarzać  muzykę,  filmy,  dający  dostęp  do 
internetu, a przy okazji również mający takie 
narzędzia jak zaawansowany kalendarz, roz-
budowana książka telefoniczna. Kwestie np. 
synchronizacji  są  tutaj  dość  zaawansowane, 
czyli można synchronizować nasze kontakty 
oraz  kalendarz, zarówno bezprzewodowo jak 
i przewodowo. Można oczywiście doinstalo-
wywać nowe aplikacje Javy, a ponieważ jest 
to Linux, dostajemy również takie możliwo-
ści jak chociażby zakładanie nowych katalo-
gów w naszym menu. Do tych katalogów mo-
żemy  wgrywać  nasze  aplikacje,  możemy  je 
przenosić między katalogami itp. Jest to do-
syć elastyczne, jeśli chodzi o punkt widzenia 
użytkownika.
L+: Chyba właśnie na tym większości klientów 
zależy, żeby mieć możliwości ewentualnego ma-
newru prawda?
MP:
  Owszem,  konsumentom  zależy  ma 
spersonalizowaniu  tego  telefonu  do  swo-
ich  potrzeb,  czyli  wgrania  takiego  zestawu 

aplikacji  i  takiego  poukładania  tego  w  me-
nu , aby móc wygodnie korzystać z tych te-
lefonów. Już w najbliższym czasie, na prze-
łomie pierwszego, drugiego kwartału pojawi 
się na polskim rynku telefon o symbolu MO-
TO U9, i mimo, że wydaje się niewielki, je-
śli chodzi o swoje wymiary, to w środku znaj-
duje się naprawdę bardzo potężna maszyna. 
System  operacyjny  Linux  wymaga  przecież 
dość dużej mocy obliczeniowej, czyli jest po-
trzebny bardzo wydajny procesor i dużo pa-
mięci w telefonach, które z niego korzystają. 
W  drugim  kwartale  będziemy  chcieli  wpro-
wadzić  nasz  flagowy  muzyczny  telefon  o 
symbolu ROKR E8, który jest telefonem mu-
zycznym: ma już wbudowane 2GB pamięci, 
więc można wgrać do niego dużo utworów. 
Oprócz tego można dołożyć na karcie pamię-
ci micorSD dodatkowe 4GB, ma wyjście na 
słuchawki  ze  złączem  Jack  3.5mm,  Blueto-
oth stereo itd., natomiast najciekawszy w tym 
telefonie jest interface użytkownika. Między 
innymi  dlatego  telefon  otrzymał  w  tym  ro-
ku  aż  cztery  nagrody  na  Consumer  Elec-
tronic Show w Las Vegas. Dotykanie szkla-
nej powierzchni telefonu powoduje wykona-
nie  określonej  funkcji  a  użytkownikowi  da-
je złudzenie naciskania prawdziwych klawi-
szy. Telefon można przełączyć w różne tryby, 
na przykład w tryb muzyczny i wtedy znikają 
cyfry a pojawiają się nam tylko te przyciski, 
które służą do sterowania muzyką. Można go 
przełączyć w tryb aparatu cyfrowego i wte-
dy w pojawiają się tylko takie klawisze, któ-
re służą np. do sterowania zoom'em, przełą-
czenia się na tryb przeglądania zdjęć itd.. Za-
wsze są to tylko te przyciski, które związane 
są z daną funkcją a więc w znaczny sposób 
ułatwiają korzystanie z niego.

Niebawem będziemy również wprowadzać 

telefon linuksowy w formie rozsuwanej, czyli 
tzw. „slider”.Jest on o tyle nietypowy, że został 
wyposażony jeszcze dodatkowo w interfejs Wi-
Fi i umożliwia prowadzenie rozmów w trybie 
Voice over IP. W tym modelu wykorzystywa-
ny jest standard UMA, który jest wykorzysty-
wany przez Orange w postaci usługi o nazwie 
„unifon”. Daje ona możliwość zarówno prowa-
dzenia rozmów w sieci GSM, a po powrocie do 
domu, w którym mamy np. stację WiFi telefon 
łączy się poprzez nią z internetem i w ten spo-
sób rozmowy są prowadzone właśnie tą drogą. 
Nasza stacja WiFi pełni funkcję malutkiej sta-
cji bazowej.

Jak widać tych telefonów jest kilka i pla-

nowane są kolejne modele. Zalety Linuksa są 
oczywiście takie, że jest dużo elementów, jak 
przeglądarki  internetowe,  odtwarzacze  mul-
timediów itp., a w połączeniu z Javą daje to 

możliwość połączenia z aplikacjami, które są 
tworzone przez setki czy tysiące firm na ca-
łym świecie.
L+: Mi zdecydowanie telefon U9 się podoba ;) 
Naprawdę jest dla kobiet idealny.
MP:
 Jest piękny... to prawda.
L+:  Czy  zastosowanie  Linuxa  jest  opłacalne 
i co powoduje, że jednak w większości sprzę-
tów stosują Państwo oprogramowanie inne niż 
Linux?
MP:
  To  jest  kolejne  bardzo  dobre  pytanie. 
Dlaczego  w  innych  telefonach  jest  zastoso-
wane inne oprogramowanie i jakiego rodza-
ju jest to oprogramowanie. Właściwie możli-
wości  jest  kilka. Albo  jest  to  oprogramowa-
nie,  które  było  tworzone  przez  firmy  od  sa-
mego początku, czyli jest to tzw. „proprieta-
ry  system”,  który  niemal  od  pierwszej  linij-
ki kodu był tworzony w firmie produkującej 
telefony komórkowe. Na pewno można sobie 
wyobrazić, że tworzenie takiego rozwiązania 
nie jest efektywne kosztowo. Poza tym jest to 
rozwiązanie zamknięte, dodawanie kolejnych 
funkcji wymaga tworzenia i pisania konkret-
nych  aplikacji  pod  konkretny  system.  I  taka 
jest  pierwsza  możliwość.  Inną  możliwością 
jest np. Windows Mobile tworzony przez fir-
mę Microsoft, ale mimo, a może właśnie dla-
tego że ten system ma bardzo dużo zalet – nie 
należy do rozwiązań najtańszych. Należy on 
jednak do otwartej platformy, w której znaj-
dują się setki aplikacji napisane pod ten sys-
tem. Jest dużo narzędzi pro-biznesowych, ty-
pu synchronizacja poczty z serwerem (oczy-
wiście  Microsoftu)  itd.  Jak  łatwo  się  domy-
ślić,  oprogramowanie  Microsoft  z  oprogra-
mowaniem  Microsoft  będzie  się  bardzo  do-
brze synchronizował...
L+: To na pewno.
MP: Proszę zwrócić uwagę na to, że urządze-
nia wyposażone w Windows Mobile są raczej 
urządzeniami  z  wyższej  półki.  To  są  nadal 
drogie telefony, nie dla wszystkich. W więk-
szości przypadków są to telefony duże, czę-
sto wyposażone w pełną klawiaturę. Również 
Motorola ma takie telefony w swojej ofercie 
–  bardzo  udany  MOTO  Q  9h  –  a  będziemy 
mieli kolejne w dalszej części tego roku. Na 
pewno i tutaj będzie coś ciekawego.

Kolejnym  otwartym  systemem  opera-

cyjnym  jest  Symbian  i  ciekawostka,  rów-
nież  i  Motorola  wykorzystuje  to  rozwiąza-
nie. Wykorzystujemy Symbiana w wersji 9 
z nakładką UIQ, więc jest to troszeczkę inna 
odmiana od tej, którą rozwija nasza konku-
rencja. Nie jesteśmy jednak sami, ponieważ 
firma UIQ należy do Motoroli i do firmy So-
nyEricsson  (mamy po 50 % udziałów). Je-
śli chodzi o Symbiana to tu również są set-

background image

76

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

maj 2008

77

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

www.lpmagazine.org

ki aplikacji, które zostały dla tego systemu 
stworzone.  Platforma  ta  jest  bardzo  multi-
medialna, dająca możliwości np. otwarzania 
filmów  w  bardzo  wysokiej  jakości,  dogry-
wania  nowych  aplikacji  takich  jak  „DivX 
player”  itd. Również my mamy telefony, w 
których  system  Symbian  znajduje  zastoso-
wanie. Nadal jednak, tak jak większość tele-
fonów Symbianowych, są to telefony z wyż-
szej półki.

Dlatego mamy nadzieję, że tak naprawdę 

dopiero Linux w przeciągu najbliższych kil-
ku lat spowoduje, że będzie to po raz pierw-
szy  tak  zaawansowany  system  operacyjny, 
który  trafi  do  najbardziej  popularnych  i  po-
szukiwanych  telefonów  ze  średniej  półki. 
Tak jak wspomniałem, otwarte systemy ope-
racyjne  wymagają  dużej  mocy  obliczenio-
wej i wymagają wydajnych procesorów, du-
żej  ilości  pamięci  i  to  wszystko  oczywiście 
kosztuje. Każdy MB czy MHz, który dodaje 
się do telefonu bezpośrenio przekłada się na 
cenę. Na szczęście ceny tej elektroniki spada-
ją na tyle szybko, że system operacyjny Linu-
xJava będzie możliwy w najbliższych kwar-
tałach  w  coraz  tańszych  i  bardziej  popular-
nych modelach. A wracając do Pani pytania o 
opłacalność: czy może być coś bardziej opty-
malnego  kosztowo,  niż  coś,  co  jest  po  pro-
stu bezpłatne?
L+:  Wracając  do  tego,  wyprzedził  Pan  mo-
je  następne  pytanie.  Czy  Linux  ma  szansę  w 
ogóle  zrewolucjonizować  rynek  telefonii  ko-
mórkowej?
MP:
  Czy  zrewolucjonizować?  Na  pewno 
zmienić. To jest oczywiście tak, że 95% użyt-
kowników kupując telefony nie dba o to, ja-
ki  system  operacyjny  jest  w  nim  zastoso-
wany.  Tak  jak  z  użytkownikami  samocho-
dów:  większość  z  nich  nie  dba  o  to,  w  ja-
kiej technologii spalana jest benzyna ważne 
jest, aby samochód jeździł do przodu spraw-
nie oraz aby zapewniał jak największą przy-
jemność z jazdy. W telefonach komórkowych 
jest podobnie: użytkownicy oczywiście bar-
dziej  zwracają  uwagę  na  to,  w  jakiego  ro-
dzaju  funkcje  jest  wyposażony  telefon,  czy 
jest telefonem multimedialnym, czy pozwa-
la robić zdjęcia i słuchać muzyki, przeglądać 
strony internetowe, czy daje dostęp do pocz-
ty  elektronicznej,  czy  łatwo  zsynchronizo-
wać kontakty ze swoją książką itd. Jest bar-
dziej istotne z punktu widzenia użytkownika. 
A to, że akurat system operacyjny Linux wie-
le z tych rzeczy robi bardzo dobrze, to my-
ślę, że to właśnie spowoduje, że użytkownicy 
nawet nie będąc świadomymi, że kupują te-
lefon z Linuxem, będą te telefony wybierać 
jako  bardziej  zaawansowane,  bardziej  mul-

timedialne  dające  więcej  takich  prokonsu-
menckich funkcji.

Natomiast  zrewolucjonizować  rynek  tele-

fonii  komórkowych  mogą  nowe  technologie, 
takie jak np. GPS.
L+: W nowych modelach również?
MP:
  Również w nowych modelach Motoro-
li,  w  drugiej  połowie  roku  będziemy  ofero-
wać wbudowane odbiorniki GPS. Proszę pa-
miętać, że Motorola była pierwszym produ-
centem, który wyprodukował telefony z od-
biornikami a-GPS. Modele takie jak A1000, 
A925 do tej pory, mimo upływu czasu są in-
tensywnie  używane,  głównie  wśród  studen-
tów. Myślę, że w tym przypadku trochę wy-
biegliśmy „przed szereg” i za wcześnie poka-
zaliśmy takie technologie. Rynek jeszcze nie 
był na to gotowy. Teraz już i ceny tych tech-
nologii, i dostępność na rynku powodują, że 
coraz  więcej  telefonów  będzie  wyposażo-
nych w odbiorniki GPS.To daje zupełnie no-
we możliwości, funkcje, zastosowania. Tego 
typu  rzeczy  zrewolucjonizują  na  pewno  ry-
nek telefonii komórkowych, a system opera-
cyjny może co najwyżej pomóc w korzysta-
niu z tych dobrodziejstw.
L+: Czy Linux jest tym, co stanie się domyśl-
nym system na urządzeniach typu smartphone?
MP:
  Raczej będzie to zmierzało w tym kie-
runku,  o  którym  mówiłem,  czyli  dostarcze-
nie atrakcyjnych funkcji, których poszukuje 
użytkownik telefonu komórkowego. Łatwość 
dzwonienia, łatwość wyszukiwania w książ-
ce  telefonicznej,  możliwość  zapisywania 
czegoś  w  kalendarzu,  przejrzenia  strony  in-
ternetowej,  posłuchania  muzyki,  obejrzenia 
filmu, zrobienia zdjęcia, podzielenia się tym 
zdjęciem. Ostatnio bardzo modnym stało się 
hasło o nazwie „WEB 2.0”: użytkownicy nie 
tylko czerpią z sieci, ale również udostępnia-
ją innym to co sami wytworzyli. Przykładem 
są wszelkiego rodzaju serwisy, na których lu-
dzie dzielą się zdjęciami, takie jak FlickrPi-
casaWeb
  czy  Fotka.  Bardzo  znanym  przy-
kładem  jest  serwis  z  filmami:  YouTube:  to 
jest  najlepszy  przykład,  gdzie  ludzie  dzielą 
się  stworzonymi  przez  siebie  filmami,  i  ro-
bią to bezpłatnie. Już dzisiaj możemy nakrę-
cić  film  przy  pomocy  telefonu  komórkowe-
go  i  jednym  naciśnięciem  guzika  umieścić 
go na YouTube'ie . Więc myślę, że w tą stro-
nę będzie to zmierzać i Linux ma to umożli-
wić i ułatwić.
L+:  Wiele  firm  stawia  na  inne  systemy  na 
pierwszym  planie,  czy  rewolucją  i  odmia-
ną  narzucanych  przez  gigantów  stereoty-
pów  nie  byłoby  położenie  wszystkiego  na 
sprzęt  z  systemem  Linux  i  dobre  wsparcie 
techniczne?

MP: Wiele firm stawia na inne systemy na 
pierwszym  miejscu.  To  jest  prawda.  Jeże-
li  Państwo  spojrzą  na  naszych  konkuren-
tów, to są firmy, które w swojej ofercie mają 
np. tylko jeden system operacyjny, występu-
jący w kilku różnych odmianach. Nie mogę 
mówić w imieniu swoich konkurentów, ale 
jak widać my wykonaliśmy krok w kierun-
ku dywersyfikacji platform. W ofercie Mo-
toroli mogą Państwo znaleźć telefony, któ-
re są zrobione zarówno na platformie Win-
dows, na platformie Symbian, jak i na plat-
formie  Linux.  Każdy  z  tych  telefonów  jest 
przeznaczony  do  innego  rodzaju  odbiorcy 
i  przeznaczony  jest  do  spełnia  innego  ro-
dzaju  funkcji.  My  rzeczywiście  stawiamy 
na Linuxa i mimo, że na pierwszym etapie 
ten  system  jest  zamknięty,  to  myślę,  że  w 
przyszłości będzie on zmierzał w taką stro-
nę, by współudział przy tworzeniu tych te-
lefonów był również wśród szerokiego gro-
na  developer'ów.  Czy  wsparcie  technicz-
ne jest dobre? Tak, mamy np. dedykowane 
strony przeznaczone dla developer'ów (http:
//www.motodev.com), gdzie firmy tworzące 
oprogramowanie  na  telefony  znajdą  prak-
tycznie  wszystkie  niezbędne  i  konieczne 
informacje  do  tego,  żeby  takie  dodatkowe 
oprogramowanie na te telefony tworzyć.
L+: Interesuje nas stworzenie programów Li-
nuksowych do komunikacji z telefonem. Jeże-
li chodzi o same systemy operacyjne telefo-
nów to ciekawi jesteśmy czy Motorola planu-
je umożliwienie hobbystom modyfikację opro-
gramowania nieobsługiwanych już modeli. 
MP:
 Na tym etapie oprogramowanie, które 
jest  dodawane  do  telefonów  Linuksowych 
nie  jest  oprogramowaniem  natywnym  pod 
konkretny  system  operacyjn  ale  jest  opro-
gramowaniem  pisanym  w  Javie.  Daje  ona 
pewien  poziom  bezpieczeństwa  związa-
ny  z  tymi  aplikacjami,  to  o  czym  mówili-
śmy  na  początku:  zbyt  dużo  operacji,  któ-
re się wykonuje w przypadku telefonów ko-
mórkowych mogą mieć dość istotne konse-
kwencje.Znane są programy (np. MotoBac-
kup) które potrafi przeczytać zawartość na-
szej  książki  telefonicznej  i  zrobić  jej  bez-
pieczną kopię na serwerze. Jeżeli sobie jed-
nak  wyobrazimy,  że  jakieś  bliżej  nieznane 
oprogramowanie bez mojej wiedzy i kontro-
li mogłoby wysłać moją książkę telefonicz-
ną  bezprzewodowo  w  świat,  to  mnie  prze-
chodzą ciarki po plecach. Więc póki co bę-
dą  to  na  pewno  programy  pisane  w  Javie, 
co oczywiście nie oznacza, że są one w ja-
kiś sposób gorzej zintegrowane z tym tele-
fonem,  czy  dają  mniejsze  możliwości.    Po 
pierwsze Java jest taką platformą, która da-

background image

76

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

maj 2008

77

wywiad

Wywiad z Maciejem Pilińskim Portfolio Lead w Motorola Polska SP. z o. o

www.lpmagazine.org

je  bardzo  dużą  przenośność,  więc  napisa-
nie oprogramowania na jeden model telefo-
nu, daje dużą pewność, że to oprogramowa-
nie zostanie wykorzystane na innym mode-
lu,  który  nawet  jeszcze  nie  wszedł  do  pro-
dukcji. Jeśli chodzi o tworzenie programów 
Linux'owych  do  komunikacji  z  telefonem, 
czyli wysyłanie sms'ów , synchronizacje itd. 
to są dokładnie te rzeczy, o których mówi-
łem przed chwilą. Bardziej chodzi o bezpie-
czeństwo użytkownika, oczywiście oprogra-
mowanie w Javie pozwala wiele z tych rze-
czy, ale jeżeli oprogramowanie nie jest cer-
tyfikowane,  nie  jest  podpisane  specjalnym 
certyfikatem, to użytkownik musi po prostu 
za  każdym  razem  wyrazić  zgodę  na  to,  by 
połączyć się z siecią, wysłać smsa itd. 
L+:  Jeżeli  chodzi  o  same  systemy  operacyjne 
telefonów,  to  ciekawi  jesteśmy,  czy  Motorola 
planuje  umożliwienie  hobbystom  modyfikację 
oprogramowania?
MP:
 Na bieżącym etapie nie, ale w przyszło-
ści nie wykluczamy takiej możliwości. Myślę, 
że to będzie właśnie zmierzało w taką stronę. 
Modyfikacja pewnych fragmentów tego opro-
gramowania będzie możliwa: np. zainstalowa-
nie nowej książki telefonicznej, jeżeli nie bę-
dzie się podobała komuś standardowa książka 
dostarczona w telefonie.
L+:  Jesteśmy  także  ciekawi  jakie  możliwości 
będą  miały  telefony  z  Linuksem.  Czy  będą  to 
pełnosprawne smartphony , czy też telefony dla 
ubogich krewnych?
MP:
  O  tym  właściwie  rozmawialiśmy.  Dla 
ubogich krewnych raczej nie, choćby ze wzglę-
du na to, że możliwości tych telefonów są na-
prawdę spore. Będą to telefony na pewno bo-
gato  wyposażone,  multimedialne,  dające  do-
stęp do internetu itd., choć  niekoniecznie kosz-
tujące tysiące złotych. Są więc dostępne, a przy 
okazji multimedialne. Myślimy i liczymy na to, 
że to właśnie da nam Linux 
L+: Wiemy, że pracujecie Państwo z firmą, któ-
rej płacicie za support do Linuksa. Co to za fir-
ma  i  dlaczego  zdecydowaliście  się  na  współ-
pracę z nią?
MP:
  Szczerze  mówiąc  nie  posiadam  takich 
informacji, więc nie chciałbym się tutaj wy-
powiadać na ten temat. Możliwe, że tak jest. 
Nie zaprzeczam. Jeśli chodzi o rozwój tego 
systemu, z tego co mi wiadomo, to oprogra-
mowanie rozwijają nasze własne grupy pro-
gramistów.
L+: Jakie są plany na przyszłość, jakie plany co 
do produktów spod Linuksa?
MP:
  Tych  telefonów  będzie  na  pewno  coraz 
więcej,  będą  to  telefony  różne,  tzn.,  będą  to 
telefony  ładne,  muzyczne,  z  aparatami,  z  no-
wą funkcjonalnością taką jak chociażby UMA 

, czyli unifone w Orange'u. Będą to rownież te-
lefony potrafiące kręcić filmy, łączyć się z In-
ternetem, wysyłać i odbierać pocztę itd. itd.
L+: W jaki sposób ocenia Pan grono czytelni-
ków Linux+ jako potencjalnych klientów?
MP:
  Myślę,  że  czytelnicy  Linux+  jako  oso-
by  bardziej  świadome  jeśli  chodzi  o  znacze-
nie systemów operacyjnych na pewno z zain-
teresowaniem  pochylą  się  nad  telefonem,  je-
żeli usłyszą, że w środku jest Linux. Nie chce-
my jednak, żeby ten telefon był wybrany przez 
użytkownika tylko dlatego, że ma w środku Li-
nux. Jest on bowiem narzędziem, a nie celem 
samym w sobie. Chcemy, żeby telefon był wy-
godny w użyciu, multimedialny, żeby miał cie-
kawą szatę graficzną i aby można było je zmie-
niać. Tak jak wspomniałem, Linux jest narzę-
dziem  a  nie  celem  samym  w  sobie.Gdy  za-
czniemy tak naprawdę analizować jakiego ro-
dzaju funkcje znajdują się w tym telefonie to 
dochodzimy do wniosku, że to są tak naprawdę 
małe multimedialne komputery. Czasy, w któ-
rych telefony służyły tylko do dzwonienia i pi-
sania sms'ów odeszły bezpowrotnie w zamierz-
chłą przeszłość. W tej chwili telefony potrafią 
odtwarzać  filmy,  odtwarzać  muzykę,  zaczyna 
być  to  oprogramowanie  coraz  bardziej  skom-
plikowane. Proszę sobie wyobrazić taką sytu-
ację, że użytkownik wchodzi na strony, na jakiś 
portal, zaczyna odtwarzać film lub wiadomości 
na żywo - dzisiaj jest to możliwe. Ten film za-
czyna się odtwarzać na wyswietlaczu a ścieżki 
dźwiękowej użytkownik słucha przez bezprze-
wodowe  słuchawki  Bluetooth  stereo.  Proszę 
zauważyć  ile  elementów  jest  wykorzystywa-
nych równocześnie, aby taką wydawałoby się 
prostą i oczywistą z punktu widzenia użytkow-
nika funkcjonalność przeprowadzić: transmisja 
danych, dekodowanie strumienia mpeg, w ta-
ki sposób, aby go płynnie otworzyć i wyświe-
tlić na ekranie, obsługa ekranu, obsługa dźwię-
ku, który musi być jeszcze na dodatek przesła-
ny przez interface bluetooth stereo do kolejne-
go urządzenia. Dodatkowo ten telefon cały czas 
powinien być dostępny w sieci, czyli umożli-
wić dodzwonić się w trakcie odtwarzania.Mo-
gę nawet zaryzykować stwierdzenie, że jest to 
urządzenie conajmniej tak skomplikowane, jak 
komputer, który stoi u nas na biurku. Oczywi-
ście są to ogromne sztaby ludzi, którzy nad tym 
pracują, wiele problemów z którymi się bory-
kają,  funkcjonalność.  Doskonałym  przykła-
dem  jest  zaprojektowanie  interfejsu  użytkow-
nika tak, żeby był on jak najprostszy w obsłu-
dze, a jednocześnie, żeby dawał jak najwięcej 
możliwości: to właściwie są dwie rzeczy, któ-
re się wzajemnie wykluczają. Jeżeli mamy du-
żo opcji, możliwości, funkcji, to coraz trudniej 
jest  zaproponować  taki  interfejs,  który  jedno-

cześnie będzie prosty. Poza tym, to komputer 
jest urządzeniem, które daje możliwości oglą-
dania filmów, słuchania muzyki i obsługi doku-
mentów, ściągania poczty i przeglądania inter-
netu. To są też urządzenia, które są skompliko-
wane. Starsi ludzie mają bardzo duży problem, 
żeby z takich urządzeń korzystać, żeby takim 
urządzeniem się posłużyć. 

L+: Proszę mi powiedzieć, czy przed wpro-

wadzeniem nowego modelu jak np. MOTO U9 , 
robicie wywiad środowiskowy? Czy stwarzacie 
modele  dla  konkretnej  grupy  użytkowników? 
Czy są robione dla ogółu?
MP:
 Oczywiście, że tak. Myślę, że tutaj nie 
mamy  dyskryminacji  pod  kątem  płci.  Zda-
rza się też, że telefon bardziej podoba się ko-
bietom niż mężczyznom, ale tutaj na pewno 
nie  dyskryminujemy  pod  tym  kątem.  Nato-
miast  tak...  rzeczywiście  jeżeli  robimy  tele-
fon muzyczny taki jak ROKR E8 to wiado-
mo, że grupą docelową będą młodzi ludzie, 
którzy lubią słuchać muzyki i chcą tą muzy-
kę mieć zawsze ze sobą. Wiele funkcji tego 
telefonu, chociażby duża pamięć wewnętrz-
na (2GB + miejsce na kartę microSD), wyj-
ście  na  słuchawki  umieszczone  wygonie  u 
góry  obudowy,  fragment  okręgu,  które  po-
zwala bardzo łatwo nawigować po tysiącach 
utworów itd. powoduje, że korzystanie z te-
lefonu  jak  z  odtwarzacza  muzyki  jest  dużo, 
dużo prostsze. Z kolei w telefonie, który bę-
dzie przeznaczony do biznesu, nacisk będzie 
położony na to, aby mieć dobrą przeglądar-
kę internetową, dobry dostęp do poczty elek-
tronicznej. W prostszych modelach stawiamy 
na to, żeby móc łatwo wysyłać sms'y, nawią-
zywać i kończyć połączenie oraz rozmawiać 
przez zestaw Bluetooth. Na przykład dla ta-
kich modeli kwestie słuchania muzyki są w 
tym  przypadku  drugorzędne.  Oczywiście  są 
określone grupy docelowe, do których dedy-
kujemy  nasze  telefony. Telefon  z  systemem 
Windows  jest  np.  dedykowany  do  biznesu 
właśnie  ze  względu  na  tą  łatwość  synchro-
nizacji  poczty,  łatwość  synchronizacji  kon-
taktów, kalendarza, wygodną klawiaturę itd. 
Oczywiście staramy się rozpoznawać potrze-
by rynku. Próbujemy zrozumieć, czego ocze-
kują nasi Klienci, co im się podoba, jakiego 
rodzaju funkcje zwracają uwagę, jakiego ro-
dzaju telefony im się podobają. Proszę zwró-
cić uwagę, że do momentu, w którym w 2004 
roku  pojawił  się  RAZR  V3,  telefony  były 
brzydkie,  nieporęczne,  plastikowe  i  niecie-
kawe.  Dopiero  ten  model  spowodował,  że 
nie  tylko  Motorola,  ale  wszystkie  inne  fir-
my zaczęły produkować eleganckie telefony. 
To była rewolucja, którą faktycznie mieliśmy 
okazję stworzyć.

background image

78

Felieton

Stąd do przyszłości

maj 2008

P

oczątkowo tylko garstka ludzi po-
trafiła  zaprogramować  kompu-
ter,  dawniej  nazywany  maszyną 
cyfrową.  Odbywało  się  to  oczy-

wiście sprzętowo. Nikt nie pisał wielu lini-
jek kodu. Po prostu wchodziło się do takie-
go komputera, który zajmował powierzchnię 
kortu  tenisowego  i  modyfikowało  się  połą-
czenia w nim. Dziś napiszemy coś w notat-
niku,  skompilujemy  to,  prześlemy  przy  po-
mocy bluetootha na komórkę i nasz telefon 
mieszczący się w kieszeni wykona oblicze-
nia  szybciej,  niż  starodawny  kilkutonowy 
komputer, ale do tego przejdziemy później. 
Na etapie sprzętowego programowania kom-
puterów, dążono do tego, by proces ten nie-
co ułatwić. Powstały więc karty perforowa-
ne  itd.  Dzięki  temu  coraz  więcej  osób  mo-
gło uczestniczyć w tworzeniu oprogramowa-
nia. Służyło to oczywiście celom naukowym 
– nie było tutaj mowy o zastosowaniach biu-
rowych, czy rozrywkowych – oczywiste jest 
więc, że nie było nawet potrzeby upublicz-
niania kodu źródłowego.

Z  czasem  jednak  komputery  ewoluowa-

ły, rozmiar pamięci systematycznie się zwięk-
szał, procesory przyspieszały, a całość zamiast 
powiększać swe rozmiary, zaczęła się zmniej-
szać, dzięki czemu możemy pozwolić sobie na 
trzymanie tychże urządzeń w domach, a nawet 
w kieszeniach. Wspomniane wyżej karty ode-

na rzecz Open Source. I chwała na wieki im za 
to – w końcu nie chcemy, by pieniądze z na-
szych podatków zasilały konto wielkich firm, 
których niezbyt lubimy. Bierzmy więc z takich 
instytucji przykład.

Po wolnym oprogramowaniu przychodzi 

pora na wolny sprzęt. Pojawiają się projek-
ty  otwartych  kart  graficznych,  etc. A  co  za 
tym idzie? Wzrośnie konkurencyjność także 
na tym rynku. Zyska tutaj oczywiście klient, 
bo  spadną  koszta  zakupu  sprzętu,  a  system 
operacyjny  będzie  lepiej  współpracował. 
Jest już także kilka otwartych modeli komó-
rek z Linuksem na pokładzie i są to napraw-
dę ciekawe urządzenia charakteryzujące się 
ogromnymi  możliwościami  za  stosunkowo 
niewielką cenę.

Jak widzimy wszystko to zmierza w do-

brym kierunku. Pozostaje nam jedynie mieć 
nadzieję,  że  z  nadmiaru  darmowego  opro-
gramowani, firmy zajmujące się tworzeniem 
oprogramowania nie zbankrutują, bo spowo-
dowałoby  to  wzrost  bezrobocia  wśród  pro-
gramistów, a to groziłoby z pewnością spo-
wolnieniem  rozwoju  informatyki.  Musi  zo-
stać  zachowana  pewna  równowaga,  trzeba 
znaleźć złoty środek. Nie można więc fana-
tycznie  zwalczać  ani  oprogramowania  za-
mkniętego, ani otwartego. Jedno i drugie ma 
swoją wartość, swoje dobre i złe strony. Jest 
to ważne dla przyszłości. 

szły w niepamięć, zaczęły pojawiać się języki 
programowania, które znamy do dziś, jak As-
sembler, czy C. Łatwość nauczenia się tych ję-
zyków, sprawiła, że co raz więcej ludzi naby-
wała umiejętność dogadywania się z kompute-
rami. Zaczęli oni tworzyć przeróżne aplikacje 
bardziej lub mniej pomagające w codziennym 
życiu oraz gry komputerowe i to zarówno w 
celach komercyjnych jak i hobbystycznych.

W  tym  momencie  ludzie  stanęli  na  roz-

drożu, gdyż wypracowano dwie metody wy-
twarzania, a także dystrybucji oprogramowa-
nia  –  otwartą  i  zamkniętą.  Wielkie  korpora-
cje  w  zamkniętym  oprogramowaniu  dostrze-
gły łatwy sposób na wzbogacenie się, ale zna-
lazło się także grono ludzi, którzy w otwartym 
oprogramowaniu  dostrzegli  pewne  ideolo-
gie. Im bliżej dnia dzisiejszego, tym wolnego 
oprogramowania więcej. Jest ono także co raz 
częściej dostrzegane i wybierane. Co prawda 
wielu  instytucjom,  czy  organizacjom  ciężko 
przerzucić się z zamkniętego oprogramowania 
na otwarte, bo przecież wiąże się to z koszta-
mi, które już raz poniosły zakupując oprogra-
mowanie zamknięte, ale na dłuższą metę taka 
zmiana jest opłacalna. Warto tutaj zauważyć, 
iż kraje, które dopiero się informatyzują mogą 
etap ten bardzo sprawnie przeskoczyć. Polska 
ma taką szansę. Zresztą nawet zinformatyzo-
wane już instytucje porzucają drogie, ale rów-
nie funkcjonalne zamknięte oprogramowanie 

Stąd do 

przyszłości

Roger Zacharczyk

Spójrzmy krytycznym, obiektywnym okiem na to, co dzieje się dziś w naszym informatycznym świecie 
pełnym przeróżnej elektroniki, oprogramowania i użytkowników. Początki tego świata i użytkowników 
sięgają odległych czasów, jednak początki komputerów oraz oprogramowania – nie tak daleko. Jak wiele 
się zmieniło? Czy na lepsze? A może na gorsze? Co było ważne kiedyś, co jest ważne dziś, a co będzie 
ważne jutro?  

background image

księgozbiór

79

Recenzje książek

www.lpmagazine.org

L

inux  od  samego  początku  zaj-
mował  miejsce  w  zastosowa-
niach sieciowych, a od niespeł-
na kilku lat Linux zdobywa co-

raz większą popularność w zastosowaniach 
biurkowych  sukcesywnie  wypierając  sys-
temy  Windows.  Dlatego  też  ciągle  rośnie 
liczba programistów interesujących się tym 
systemem.

Książka  Oprogramowanie  użytkowe  w 

systemie Linux jest bardzo wyczerpującym 
podręcznikiem  dla  programistów  zaintere-
sowanych programowaniem systemu Linux 
oraz programowaniem Unixów. Całość pro-
gramowania  pokazana  jest  przez  pryzmat 
Linuxa,  wraz  z  uwzględnieniem  jego  spe-
cyficznych rozszerzeń.

Książka składa się z 4 części i 3 odręb-

nych dodatków A, B, C oraz słownika, lite-
ratury i skorowidza.

W  pierwszej  części  złożonej  z  3  roz-

działów  czytelnik  zapoznaje  się  z  krótką 
historią  darmowego  oprogramowania,  sys-
temów uniksowych oraz Linuxa, ze szcze-
gólnym  uwzględnieniem  prawa  autorskie-
go oraz różnych licencji na których jest roz-
prowadzane darmowe oprogramowanie (li-
cencja GNU-GPL), a także podstawowych i 
przydatnych informacji o Linuxie.

Druga  część  książki  (Środowisko  i  na-

rzędzia  programistyczne)  składa  się  z  pię-
ciu rozdziałów. 

Rozdział czwarty omawia edytory oraz 

tak  ważne  dla  programisty  programy  jak 
make i gdb. Rozdział piąty traktuje o kom-
pilatorze gcc. 

Następny  rozdział  mówi  o  problemach 

i  błędach  związanych  z  alokacją  pamięci, 

Oprogramowanie użytkowe w systemie Linux

a  także  omawia  narzędzia  zabezpieczające 
przed tymi kłopotami i służące do badania 
pamięci.  Rozdział  siódmy  porusza  zagad-
nienia dotyczące tworzenia i korzystania z 
bibliotek, a ósmy pomaga zrozumieć funk-
cje systemowe.

Część trzecia Programowanie systemo-

we – jest sercem tej książki (dwanaście roz-
działów). Ta część stanowi właśnie bardzo 
dokładny  kurs  programowania  pod  syste-
mem Linux.

Dziewiąty rozdział jest dokładnym opi-

sem pojęcia procesu i jego właściwości za-
czynając od najprostszych atrybutów proce-
su,  poprzez  podstawowe  funkcje  związane 
z procesem a kończąc na sesjach, grupach i 
terminalach sterujących. 

Następne trzy rozdziały poświęcone są 

bardzo ważnej kwestii programowania sys-
temowego,  jaką  jest  system  plików  i  ka-
talogów  oraz  operacje  na  nich.  Rozdział 
dziesiąty to całkowite podstawy (takie jak 
atrybuty  pliku,  podstawowe  operacje  na 
nim, manipulowanie plikami i ich deskryp-
torami).  Rozdział  jedenasty  omawia  do-
kładnie  operacje  na  katalogach,  a  dwuna-
sty opisuje zaawansowane możliwości ob-
sługi plików. 

Następne  rozdziały  traktują  kolejno  o 

obsłudze sygnałów, zarządzaniu zadaniami, 
terminalach i pseudoterminalach z wyczer-
pującym  omówieniem  terminalu  termios, 
komunikacji  sieciowej  za  pomocą  gniazd, 
budzikach i stanie uśpienia, liczbach loso-
wych, programowaniu konsoli wirtualnych 
i konsoli Linuxa. 

Część  czwarta  Biblioteki  programisty 

to  ostatnie  sześć  rozdziałów  prezentują-

cych różne przydatne dla programisty funk-
cje biblioteczne. 

Przeczytamy  tu  o  funkcjach  porówny-

wania  napisów,  opisie  bibliotek  S-Langi  i 
db,  bibliotekach  obsługujących  bazy  da-
nych, bibliotece popt potrzebnej do analizy 
składniowej opcji podanych z wiersza pole-
ceń,  interfejsie  dl  obiektów  dzielonych  ła-
dowanych dynamicznie, a także w rozdzia-
le  ostatnim  o  nazwie  i  bazie  danych  użyt-
kowników.

Wymienione na samym początku dodat-

ki A, B i C to:

•   A – bezpośredni dostęp do portów wej-

ścia-wyjścia,

•   B  –  pełny  kod  źródłowy  przykładowej 

powłoki ladsh,

•   C – oryginalne licencje GNU.

Podsumowując:

książka  jest  bardzo  obszerna  i  dobrze 

napisana.  Poruszane  zagadnienia  opatrzo-
ne są dobrze dobranymi, jasnymi i bogaty-
mi przykładami. 

Niniejsza pozycja przyda się programi-

stom, którzy chcieliby zacząć programować 
pod  Linuxem  (lub  Unixem),  a  także  tym, 
którzy już to robią. 

Niniejsza  książka  stanowi  prawdziwe 

(jak pisze wydawca): kompendium wiedzy o 
pisaniu oprogramowania użytkowego w sys-
temie Linux, a także o przenoszeniu go z in-
nych platform na platformę linuksową
.

inż. Wojciech Hryń

Autor: Johnson K.Michael i inni

Wydawnictwo: WNT

Rok wydania: 2000

Oprawa: Twarda

Ilość stron: 551

ISBN: 8320425522

background image

Kontakt 

1. Telefon

+48 22 427 36 53

+48 22 427 36 79

2. Fax

+48 22 244 24 59

2. Online

pren@software.com.pl

3. Adres

Bokserska 1

02-682 Warszawa

Polska

Roczna prenumerata

      

tylko

179

 

Linux+DVD jest przeznaczony dla początkujących i za-
awansowanych użytkowników Linuksa. Nasi czytelnicy to 
w większości użytkownicy Linuksa, jak również specjali-
ści IT, technicy, a także ci, którzy szukaj alternatywy dla 
MS Windows. Są oni zainteresowani bieżącymi nowościa-
mi ze świata Linuksa, m.in. jądrem Linuksa, Debianem, 
Mandrakelinuksem i Auroksem. Dużym zainteresowaniem 
wśród czytelników cieszą się stale działy pisma: Dla Po-
czątkujących, Dla Programistów i Sprzęt. Oprócz nich, w 
każdym wydaniu znajdują się informacje dotyczące typo-
wego użycia Linuksa: bezpieczeństwa, multimediów, na-
rzędzi naukowych, programowania czy poczty elektronicz-
nej.

,-

background image

1

Zamówienie prenumeraty

Imię i nazwisko ...............................................................................

Nazwa firmy.....................................................................................

Dokładny adres ..............................................................................

.........................................................................................................

Telefon ............................................................................................

E–mail .............................................................................................

ID kontrahenta ................................................................................

Numer NIP firmy .............................................................................

Fax (wraz z nr kierunkowym) .........................................................

Prosimy wypełniać czytelnie i przesyłać faksem na numer: 
00 48 22 244 24 59
lub listownie na adres: 
Software-Wydawnictwo Sp. z o. o.
ul. Bokserska 1
02-682 Warszawa
Polska
E-Mail: pren@software.com.pl
Przyjmujemy też zamównienia telefoniczne:
0048 22 427 36 53
0048 22 427 36 79

Jeżeli chcesz zapłacić kartą kredytową, 
wejdź na stronę naszego sklepu internetowego www.buyitpress.com.

Prenumerujesz 

– zyskujesz

l

 

oszczędność

     pieniędzy 

l

 

szybka dostawa 

l

 

prezenty

l

 

bezpieczna płatność 

     on–line

Tytuł

Ilość

nume-

rów

Ilość

 zama-

wianych 

prenume-

rat

Od 

numeru 

pisma 

lub mie-

siąca

Cena

Linux+DVD (płyta DVD)

Miesięcznik o systemie 

Linux

11*

199/

179**

PLN

Linux+Extra! (płyty CD 

lub DVD) Numery spe-

cjalne z popularnymi 

dystrybucjami Linuxa

8

232/

198*** 

PLN

□  automatyczne przedłużenie prenumeraty

*  W lipcu i sierpniu ukazuje sie jeden wakacyjny numer

** Cena prenumeraty rocznej dla osób prywatnych

*** Cena prenumeraty rocznej dla osób prenumerujących 

już Software Developer’s Journal lub Linux+ DVD

Zadzwoń

+48 22 427 36 79

lub

zamów

mailowo!

background image

 

 

 

 

 

Grafika i DTP

•    Przegląd managerów fontów dostępnych dla systemu  

  Linux

•    Piszemy mini commandera
•   Scribus

W numerze planujemy 

m.in. następujące artykuły

Numer w sprzedaży od 18 maja!

DVD : Open Enterprise Server 2. 

Głównym tematem numeru czerwcowego Linux+ będzie

Aktualne informacje o najbliższym numerze: http://www.lpmagazine.org/pl

Redakcja zastrzega sobie możliwość zmiany zawartości pisma.

background image
background image