linux 05 2009 pl

84

Upload: maciej-jackowski

Post on 27-Jun-2015

476 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Linux 05 2009 PL
Page 2: Linux 05 2009 PL
Page 3: Linux 05 2009 PL
Page 4: Linux 05 2009 PL

4 maj 2009

Spis treści

5www.lpmagazine.org

W bieżącym numerze

Aktualności

NewsTomasz Bednarski

Opis płyty

Fedora 10Getting Started with Linux: Novell's Guide to CompTIA's Linux+

Rozwiązania

LDAP – idea, główne pojęcia, konfiguracja i testowanieJanusz Bielec

Artykuł ten jest pierwszą częścią cyklu poświęconego OpenLDAP. Poszczególne części dotyczyć będą następujących obszarów: idei i głównych pojęć, konfiguracji oraz testowania, bezpieczeństwa w OpenLDAP, OpenLDAP-u jako źródła informacji oraz źródła uwierzytelnienia, OpenLDAP-u w praktyce administracyjnej – tutaj weźmiemy pod uwagę m.in. sambę, postfix, apache.

System z piekła rodemŁukasz Ciesielski

Określany jest systemem dla maniaków i pasjonatów, którzy znają się na szeroko pojmowanych zagadnieniach informatyki. Wiele osób nawet nie wie o jego istnieniu, a szczytem współczesnej rewolucji na wąskim rynku systemów operacyjnych stało się rozpowszechnienie Linuksa w jego dziesiątkach odmian. Tymczasem jest jeszcze jeden kandydat do miana rewelacyjnego systemu – FreeBSD.

Webmin i Usermin Rafał Kułaga

Istnieje wiele narzędzi służących do zdalnego zarządzania systemem za pomocą przeglądarki internetowej. Dwa z nich – Webmin oraz Usermin – pozwalają na konfigurację najważniejszych parametrów pracy systemu oraz udostępniają wygodny interfejs, w którym użytkownicy mogą zdalnie wykonywać najczęstsze zadania.

Miesięcznik Linux+ (11 numerów w roku) jest wydawany przez Software-Wydawnictwo Sp. z o. o.

Dyrektor wydawniczy: Anna Adamczyk, [email protected]

Redaktor naczelna: Iwona Chwedoruk, [email protected]

Kierownik produkcji: Marta Kurpiewska, [email protected]

Opracowanie DVD: Tomasz Kostro, [email protected]

Korekta: Tomasz Łopuszański

Dział reklamy: [email protected], tel.: (22) 427 36 91

Obsługa prenumeraty: EuroPress [email protected]

Okładka: Agnieszka Marchocka, Łukasz Pabian

DTP:Monika Grotkowska, [email protected]

Stali współpracownicy: Piotr Brzózka, Leszek Konka, Przemysław Prytek,

Staszek Bujok

Wydawca: Software-Wydawnictwo Sp. z o. o., 02-682 Warszawa, ul. Bokserska 1e-mail: [email protected],

tel. (22) 427 36 91

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

Druk:

101 Studio, Firma Tęgi

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 .

6

8

10

18

24

Page 5: Linux 05 2009 PL

4 maj 2009

Spis treści

5www.lpmagazine.org

Urządzenia mobilneTemat miesiąca

Współpraca telefonów z systemem LinuxMichał Sobczak

Obsługę telefonów komórkowych w Linuksie można krótko podsumować – nie zawsze działa, nie posiada oficjalnego wsparcia producentów aparatów, lecz jeśli działa, to sprawia dużą radość.

Synchronizacja urządzeń mobilnychSylwester Zdanowski

Współcześnie dużą popularność zdobyły komputery kieszonkowe nazywane elektronicznymi asystentami czy mądrymi telefonami. Jednym z warunków ich pełnego wykorzystania jest możliwość zarządzania danymi poprzez podłączenie do komputera. Pozwala ono na tworzenie kopii zapasowych, wygodne przeglądanie notatek czy kalendarza. Czynności te wymagają jednak synchronizacji z systemem, której wykonanie nie tylko z Linuksem może przyprawić o ból głowy.

Sprzęt

Test modemów gprsWojciech Zając

Każdy z operatorów sieci gsm świadczy swoim klientom usługę mobilnego dostępu do internetu w oparciu o pakietową transmi-sję danych. W tym celu zazwyczaj dostarcza modem wraz z kartą SIM, które umożliwiają podłączenie się do sieci komórkowej, jednak na pytanie czy ten zestaw zadziała pod Linuksem więk-szość sprzedawców dziwnie wzrusza ramionami.

Linux na urządzeniach mobilnychGrzegorz Madajczak

Większości osób Linux kojarzy się co najwyżej z systemem przeznaczonym na komputery klasy PC, co i tak jest dobrym punktem widzenia wobec tych, którzy postrzegają Linuksa jako system tylko do zastosowań serwerowych. Wielu zapewne zdziwi się informacją, że system ten na dobre rozgościł się w urządzeniach

mobilnych, takich jak komputery PDA czy telefony komórkowe, zwłaszcza te określane mianem smartfonów. Niedowiarkom, którzy nadal w to powątpiewają, postaram się przedstawić wybrane modele telefonów komórkowych pracujących pod kontrolą Linuksa, a także przedstawić najważniejsze dystrybucje Linuksa na urządzenia mobilne.

Linux kontra iPodGrzegorz Madajczak

Codziennie chodząc po ulicach każdego z miast Polski, Europy i świata, niemalże na każdym kroku spotyka się ludzi słuchających muzyki przez charakterystyczne białe słuchawki. Wielu z nich należy do wielkiej rodziny posiadaczy iPoda. Ja sam do nich należę, więc poniższy artykuł – o wzajemnych relacjach Linuksa i iPodów będzie – wybitnie subiektywny.

Mobilny LinuxPurnima Singh

Na podstawie raportu Embedded Software Market Intelligence, 23% ankietowanych wykorzystywało systemy typu Open Source w swoich projektach – w tym 18% z nich system Linux.

Programowanie

Android, czyli Linux na komórkiMarek Sawerwain

Od kilku lat system Linux nieustannie zyskuje na popularności. Przyszłe lata także rysują się bardzo obiecująco, ponieważ system ten może znaleźć uznanie wśród użytkowników netbook'ów, gdyż względem konkurencyjnego systemu Windows Linux oferuje lepszą wydajność na mniej zaawansowanych platformach sprzętowych. Również na komputerach normalnych użytkowników Linux gości coraz częściej. Jest jednakże jeszcze jeden typ urządzeń, gdzie Linux również zyskuje dużą popularność: są to telefony komórkowe.

Recenzja

TeeworldsMaciej Mroziński

Każdy, kto spędza przy grach komputerowych chociaż trochę więcej czasu niż tak naprawdę powinien, doskonale wie, iż rzadko się zdarza, aby gra miała grywalność plasującą ją powyżej średniej gatunku. Na szczęście tak właśnie jest w przypadku Teeworlds, niewielkiego rozmiarowo projektu, który zdążył zyskać sobie ogromną popularność i setki oddanych graczy. Co złożyło się na ogromną popularność opisywanego tytułu? Miła oku grafika, prostota i intuicyjność, czy może coś jeszcze? Spójrzmy.

32

34

38

48

58

64

68

74

Page 6: Linux 05 2009 PL

aktualnościMandriva

6 maj 2009

dział prowadzi: Tomasz Bednarski [email protected]

aktualnościMandriva

7www.lpmagazine.org

dział prowadzi: Tomasz Bednarski [email protected]

Mandriva Linux 2009.1 Spring – kandydat do podium?Ukazała się pierwsza wersja kandydująca naj-nowszego wydania Mandrivy. Czy jest to kan-dydat do podium w kategorii dystrybucja da-jąca użytkownikowi największy wybór śro-dowisk graficznych? To się okaże, ale moje pierwsze wrażenia dają mocne podstawy do odpowiedzi TAK!.

Wybierz środowisko dla siebieW każdym wydaniem Mandrivy pojawiają nowe możliwości w zakresie wyboru środo-wiska pracy. Użytkownik nie jest ograniczo-ny do wyboru jednego dobrze dopracowane-go środowiska. Może wybrać jedno z czterech – zależnie od preferencji osobistych i/lub moż-liwości komputera. Osoby, które cenią środo-wiska o bardzo rozbudowanej funkcjonalności mogą wybrać:

• KDE w wersji (KDE 4.2.1) (więcej infor-macji poniżej) lub

• GNOME Zastosowano GNOME 2.25.92 czyli wersję kandydującą GNOME 2.26.

Osoby stawiające na szybkość i wydajność mogą zdecydować się na XFCE lub LXDE.

• XFCE w wersji finalnej 4.6, które zawie-ra wsparcie dla standardu freedesktop.org (które jest używane przez Mandriva), no-wą konfigurację systemu wraz z kilkoma nowymi ustawieniami aplikacji oraz no-wy dźwięk miksera. Mimo że jest mniej rozbudowane niż KDE czy GNOME to i tak pozwala na wykonanie wszystkich co-dziennych zadań na komputerze.

• LXDE – lekkie środowisko graficzne. Do-myślnie lekkim środowiskiem jest teraz LXDE (Lightweight X11 Desktop Envi-ronment) zamiast icewm. Dostępne jest we wszystkich dostępnych obrazach ISO. Szczególnie przydatne dla użytkowników małych netbooków. Środowisko jest do-stosowane do ich specyfiki – mniejszej wydajności oraz ekranów o niewielkich rozmiarach.

Wybór jest spory i wcale się nie wyklucza. Każde środowisko można zainstalować w każdej chwili z internetowych repozytoriów i używać w zależności od potrzeb.

Hybrydowe ISO Począwszy od systemu Mandriva Linux 2009 Spring RC1 zastosowano eksperymentalne

hybrydowe ISO, które można łatwo zrzucić na pamięć USB. W wydaniu RC1 przygoto-wano ISO z GNOME.

Aby zrzucić hybrydowe ISO, należy po-stąpić zgodnie z tym procedury:

• włóż urządzenie USB przeznaczone do uruchomienia systemu

• odmontuj wszystkie punkty montowania tego USB

• jako root uruchom

dd if=mandriva-linux-one-2009.1-rc1-

GNOME-int-cdrom-i586.iso of=/dev/sdX

bs=8M

gdzie gdzie /dev/SDX jest ścieżką do Twojego urządzenia USB

• kiedy zakończy uruchom sync • odłącz urządzenie • i wczytaj do przetestowania

W niektórych systemach, wyświetlacz rozru-chu może się zawiesić w lewym górnym rogu okna. W tym konkretnym przypadku, kilka ra-zy naciśnij enter i wypełnij raport o błędzie ze szczegółami o swoim systemie.

EstetykaMandriva przyzwyczaiła nas już, że każ-de wydanie wiąże się ze zmianami wyglą-du. Mandriva ma specyficzną estetykę – mu-szę przyznać, że od samego początku przypa-dła mi do gustu, ale jest coraz lepiej. W wy-

daniu RC 1 nie możemy jeszcze cieszyć oka nową szatą graficzną. Pojawi się ona dopie-ro w RC 2. Namiastkę możemy jednak zoba-czyć w elementach gfxboot, bootsplash i tło. K menu zostało odnowione.

Ciekawsze zmiany w narzędziach MandrivyZgodnie z zapowiedziami narzędzia Mandri-vy są sukcesywnie rozwijane. W tym wydaniu na tapętę inżynierowie wzięli DrakX, msec, Drakguard, Rpmdrake, Draksnapshot. Wię-cej na temat planowanych zmian pisałem w w przedostatnim numerze. W RC 1 pojawiły się następujące zmiany:

• DrakX (installer) – wykonano wie-le usprawnień w instalatorze, aby mógł używać urpmi w domyślnym ustawieniu. Główne zalety: • mniejsza skala duplikacji kodu• łatwiejsze utrzymanie i rozwój instla-

tora• możliwość wykorzystania łat jedno-

cześnie w instalatorze, urpmi i narzę-dziach One

• Draksnapshot – dodano nowy wpis w instalatorze mediów (ekran gfxbo-ot). Korzystając z niego będzie moż-na przywrócić stan systemu z dane-go dnia, pod warunkiem, że masz uru-chomiony system tworzenia kopii za-pasowych całego systemu. Rozwiąza-nie jest w tej chwili intensywnie testo-wane.

Rysunek 1. KDE 4.2 w One

Page 7: Linux 05 2009 PL

aktualnościMandriva

6 maj 2009

dział prowadzi: Tomasz Bednarski [email protected]

aktualnościMandriva

7www.lpmagazine.org

dział prowadzi: Tomasz Bednarski [email protected]

• powiadomienia systemu i aplikacji są wy-świetlane w ujednolicony sposób przez tackę systemową,

• W celu zaoszczędzenia wolnego miejsca istnieje możliwość ukrycia ikon na tacce systemowej, a panel może być teraz ukry-wany automatycznie,

• nowe narzędzia do zarządzanie energią laptopów,

• narzędzia drukowania pozwalają na efek-tywniejsze zarządzanie zadaniami druko-wania.

Zmiany te znacznie zwiększają wygodę korzy-stania z komputera.

Oprócz poprawy produktywności, sta-bilności i możliwości samego środowiska twórcy udoskonalili Dolphina, Kmaila i Ko-nquerora.

Rzut oka pod maskę

Obsługa EXT4 Mandriva Linux 2009 Spring obsługuje sys-tem plików Ext4 – najnowsza wersja najczę-ściej wykorzystywanego w Linuksie syste-mu plików Ext3. Ext4 niesie większe zmia-ny w stosunku do Ext3 niż Ext3 w stosun-ku do Ext2.

W Ext3 największą zmianą było dodanie dziennika do Ext2. Jednak Ext4 zawiera waż-ne modyfikacje w strukturze danych systemu plików. W rezultacie otrzymaliśmy system pli-ków oparty na lepszym projekcie, o większej wydajności, niezawodności i funkcjonalno-

ści. Użytkownicy mogą instalować Mandri-va Linux 2009 Spring na partycjach Ext4 po-nieważ instalator DrakX zyskał wsparcie tego systemu plików.

Kernel 2.6.29 RC 6 W tym wydaniu wykorzystywana jest wer-sja RC 6 jądra 2.6.29. Na stronie Heise On-line [1] znajduje się seria artykułów Ker-nel Log na temat nowych funkcji w wersji 2.6.28. Najbardziej widoczne zmiany doty-czą obsługi sprzętu, w tym systematyczne poprawki w obsłudze wielu urządzeń dźwię-kowych HDA firmy Intel oraz wielu kamer internetowych.

Syslinux - HDT Zaktualizowano do najnowszej wersji. Sy-slinux 3.73 zawiera kilka nowych funkcji. Dodano nowy moduł: HDT (Hardware De-tection Tool – Narzędzie Detekcji Sprzę-tu). Moduł ten jest dostępny z menu in-stalacji. Po wybraniu opcji z menu będzie możliwe wyświetlenie informacji na temat sprzętu dla komponentów zgodnych z x86 takich jak:

• PCI • DMI • CPU • dyski (prace trwają) • Syslinux • moduły jądra systemu Linux wymagane

na danym hoście• środowisko PXE

Nowy system bezpieczeństwa Mandrivy – MSEC Mandriva Security Framework znany ja-ko MSEC został bardzo mocno unowocze-śniony. Wbudowano system wtyczek, któ-ry umożliwia łatwe rozszerzanie możliwo-ści MSEC. Dodano obsługę AppArmor. Wy-posażono go także w nowy interfejs użyt-kownika. Zadaniem MSEC jest kontrola i za-rządzanie bezpieczeństwem systemu. Po raz pierwszy światło dziennie ujżał w Mandrake 8 i był to w owym czasie pierwszy system te-go rodzaju.

Ulepszone narzędzia siecioweNarzędzia sieciowe Mandrivy zyskały kil-ka ciekawych usprawnień tj. lepsza obsłu-ga 3G, mniejsze zużycie pamięci, możli-wość edycji ogólnych ustawień sieci (ob-sługa Ipv6, skalowanie okna TCP), obsługę mostkowania ATM dla PPPOE przez mo-dem USB xDSL.

Co nowego w KDE 4.2Najnowsza wersja tego wspaniałego środo-wiska wydaje się być przełomową – pierw-sze wrażenia dotyczące stabilności i funk-cjonalności są bardzo obiecujące. Zgodnie z deklaracjami twórców KDE 4.2 powin-no spełnić oczekiwania większości użyt-kowników, a to dzięki następującym no-wościom:

• nowe i ulepszone aplety m. in. szybkie-go uruchamiania, prostego współdzielenia plików itd.

• tradycyjny pulpit umożliwiający zarzą-dzanie plikami za pomocą ikon w stylu KDE 3,

• menedżer zadań na panelu potrafi teraz grupować zadania oraz posiada tryb wie-lowierszowy,

• nowa tacka systemowa pozwala śledzić długo trwające zadania takie jak pobiera-nie plików,

Rysunek 3. KDE 4.2 zainstalowany w Xtreme 3Rysunek 2. Nowy interfejs MSEC

Page 8: Linux 05 2009 PL

8 maj 2009

opis DVDDVD

9www.lpmagazine.org

opis DVDDVD

Fedora 10Tym razem specjalnie dla Was zamieściliśmy na naszej płycie długo wyczekiwaną Fedorę 10.

Zmiany, aktualizacje, nowości...Środowiska graficzne zostały zaktualizowa-ne do najnowszych wersji, Gnome 2.24, KDE 4.1.2 oraz użyto w nich schematu graficznego Solar. Przystosowano także bardzo lekkie śro-dowisko oparte na GTK+, LXDE do pracy w Fedorze. Do wydania dołączono najnowsze-go OpenOffice.org 3.0. Wprowadzono rów-nież nowe niskopoziomowe narzędzie służą-ce do graficznego ładowania systemu Plymo-

uth zastępujące przestarzałe i wolne RHGB oparte o serwer X. Przyspieszono także skryp-ty startowe.

Fedora została oparta o jądro 2.6.27. Ser-wer graficzny doczekał się kilku istotnych zmian. Za obsługę urządzeń wejścia (myszki, touchpady, klawiatury) odpowiada teraz no-wy sterownik xf86-input-evdev który wykry-wa i konfiguruje urządzenia w serwerze bez konieczności restartu. Poza wprowadzeniem sterownik wejścia przeniesiono również cię-żar aktywowania trybu graficznego z serwera X.org do Kernel Modesetting.

Zmiany dotknęły również instalatora Ana-conda. Obecnie korzysta on z D-bus, a konfigu-racja sieci odbywa się poprzez NetworkManage-ra. Dodano również narzędzie do automatyczne-go odzyskiwania systemu – First Aid Kit.

Od teraz Fedora 10 potrafi przeszukiwać zewnętrzne repozytoria w poszukiwaniu kode-ków obsługiwanych poprzez GStreamera. In-stalując repozytorium RPMFusion i odtwarza-jąc kolekcję audio/video odtwarzacz oparty o GStreamer sam zaproponuje instalację odpo-wiednich wtyczek.

Bardzo poważnie potraktowano rozwój popularnej ostatnio wirtualizacji. Narzędzia wirtualizacyjne lepiej współpracują z SELi-nuksem. Usprawniono administrację prze-strzenią dyskową maszyn wirtualnych, którą można zarządzać zarówno dla maszyn lokal-nych jak i zdalnych. Możliwa stała się także zdalna instalacja na maszynie wirtualnej.

Programiści również znajdą coś dla siebie. Zaktualizowano Eclipse Fedory do wersji 3.4 oraz dodano NetBeans IDE.Inne ważne zmiany w systemie to:

• udostępnianie połączenia bezprzewodowe-go ad hoc za pomocą NetworkManagera;

• usprawniona konfiguracja i obsługa urzą-dzeń drukujących, ulepszenie narzędzi za-rządzających systemem drukowania;

• zarządzanie przestrzenią dyskową maszyn wirtualnych zostało uproszczone;

• wprowadzono narzędzie SecTool, którego zadaniem jest audyt bezpieczeństwa oraz system detekcji intruzów;

• zaktualizowano RPM do wersji 4.6;• usprawniono wydajność PulseAudio po-

przez przepisanie plannera audio;• ulepszono obsługę kamer internetowych;• ulepszono wsparcie dla zdalnego sterowa-

nia za pomocą podczerwieni• ścieżki /usr/local/sbin:/usr/sbin:/sbin zo-

stały dodane do PATH dla normalnych użytkowników co usprawnia administra-cję poprzez konta zwykłych użytkowni-ków.

Więcej informacji znajdziecie na stronach pro-jektu Fedora:

• http://fedoraproject.org/wiki/Releases/10/ReleaseSummary

• https://fedoraproject.org/wiki/Tours • http://fedoraproject.org/wiki/Releases/10/

FeatureList

Page 9: Linux 05 2009 PL

8 maj 2009

opis DVDDVD

9www.lpmagazine.org

opis DVDDVD

Kurs Wstęp do linuksa: przewodnik Novella do CompTIA poświęca uwagę podstawowym umie-jętnością jakie są niezbędne do wykonywania czynności administracyjnych w systemie SUSE LINUX Enterprise Server 9 (SLES 9). Zakres materiału zamieszczony w tym kursie pokrywa cele podane przez CompTIA dla egzaminu Li-nux+. W celu adekwatnego przygotowania się do egzaminu powinieneś przeczytać podręcznik i przećwiczyć zawarte w nim ćwiczenia. Zdol-ności nabyte dzięki temu kursowi, oraz te naby-te w kursach SUSE Linux Enterprise Server 10 Administration (3072) (Administracja) oraz SU-SE Linux Enterprise Server 10 Advanced Admi-nistration (3073) (Zaawansowana Administra-cja) przygotują cię do wzięcia udziału w teście praktycznym w celu uzyskania certyfikatu No-vell Certified Linux Professional (Novell CLP)

Cele kursuNiniejszy kurs uczy następujących zdolności oraz koncepcji będących podstawą zrozumienia syste-mu SUSE Linux Enterprise Server 9 (SLES 9):

• podstawy linuksa oraz instalacji SLES 9;• używanie linuksa;

• lokalizowanie i używanie zasobów pomo-cy w systemie Linux;

• używanie narzędzia administracyjnego YaST do administracji systemem;

• zarządzanie plikami i folderami w syste-mie Linux;

• pracowanie w powłoce systemu linux oraz edytowanie plików tekstowych;

• używanie interfejsu poleceń w celu admi-nistracji systemem;

• zrozumienie procesów, zadań i poziomów wykonywania w systemie Linux;

• zarządzanie ustawieniami sieci;• zarządzanie usługami sieciowymi;• zarządzanie bezpieczeństwem;• podstawy sprzętowe.

Zrozumienie tych założeń jest niezbędne w celu nauczenia się zdolności niezbęd-nych dla średnio-zaawansowanego admi-nistratora systemu Linux lub pracownika pomocy technicznej w środowisku przed-siębiorstwa.

Zamierzona publika/słuchacze/audytoriumKurs skierowany jest do studentów przygoto-wujących się do egzaminu CompTIA Linux+. Aktualni kandydaci do uzyskania statusu certy-fikowanych inżynierów Novella (Novell CNE) z doświadczeniem w innych systemach opera-cyjnych mogą również skorzystać z tego kur-su w celu przygotowania się do egzaminu prak-tycznego Novell CLP (Certified Linux Profes-sional).

Wymagana wiedza podstawowa/wstępnaZanim rozpoczniesz ten kurs sugerujemy byś zdobył trochę doświadczenia w pracy z system Linux w wersji Desktop lub Serwer w pełnym środowisku komputerowym (takim jak przed-siębiorstwo lub otoczenie akademickie).

Plan zajęćStosując się do planu działania z Tabeli 1, zrobienie kursu nie powinno zająć Ci wię-cej niż 5 dni.

Certyfikaty Novell LinuxTen kurs pozwala ci na przygotowanie się na eg-zamin praktyczny Novell Certified Linux Pro-fessional 10 (CLP 10). Certyfikat ten jest wy-magany by móc ubiegać się o wyższy poziom certyfikatu Novell CLE 10. By móc go uzyskać musisz najpierw uzyskać Novell CLP 10 .

Egzamin praktyczny Novell CLP 10 jest oparty na scenariuszach podczas realizacji któ-rych masz zastosować zdobytą wiedzę by roz-wiązać problem spotykany w codziennym ży-ciu – demonstrując tym samym iż rozumiesz co trzeba zrobić i jak należy to zrobić. Oprócz celów omawianych w niniejszym kursie egza-min ten sprawdza również twoją znajomość z zagadnień omawianych w następujących kur-sach:

• SUSE Linux Enterprise Server Admini-stration (Course 3072)

• SUSE Linux Enterprise Server Advanced Administration (Course 3073)

YaST jest integralną częścią systemu SU-SE, dlatego też jest o tym wspomniane w różnych częściach kursu – jednakże na egzaminie CompTIA Linux+ nie ma żad-nych pytań z nim związanych.

YaST

Tabela 1. Plan zajęć

Sekcja Dzień Czas (hh:mm)

Wprowadzenie 1 00:30

Podstawy Linuxa i instalacja SLES 9 1 02:00

Używanie systemu Linux 1 00:45

Lokalizacja i używanie zasobów pomocy systemu Linux 1 00:45

Używanie narzędzia YaST do administracji systemem 1 02:00

Zarządzanie plikami i katalogami w systemie Linux 2 03:00

Praca z powłoką systemu Linux oraz edytowanie plików tekstowych 2 03:00

Używanie interfejsu poleceń do zarządzania systemem 3 04:00

Procesy, zadania i poziomy uruchomień w systemie Linux 3 02:00

Zarządzanie ustawieniami sieciowymi 4 02:00

Zarządzanie usługami sieciowymi: DNS, udostępnianie plików i drukarek 4 02:00

Zarządzanie usługami sieciowymi: NIS, poczta oraz xinetd 4 02:00

Zarządzanie zabezpieczeniami 5 03:00

Podstawy sprzętowe 5 02:00

Getting Started with Linux: Novell's Guide to CompTIA's Linux+

Page 10: Linux 05 2009 PL

RozwiązaniaPo co komu LDAP?

10 maj 2009

RozwiązaniaPo co komu LDAP?

11www.lpmagazine.org

linux

@so

ftwar

e.co

m.p

l

Przez wiele lat w patrzeniu na LDAP (Lightweight Directory Access Protocol) przez pryzmat linuk-sa dominowało podejście, które można określić po-krótce: ja i mój komp. Usługi katalogowe, dla zde-

cydowanej większości użytkowników systemów open source jawiły się jako niepotrzebne, a przede wszystkim obce.

W myśleniu tym nie ma nic dziwnego, usługi katalogo-we były rozwijane w organizacjach zhierarchizowanych, jak wojsko, albo rozbudowanych korporacjach. W organizacjach tych potrzeba porządkowania relacji jest bardzo silna, nato-miast Linux stał się ikoną ruchu wolnego oprogramowania. To dwa różne światy...

Jednak w ciągu ostatnich kilku lat Linux przestał być po-strzegany, jako system, na którym informatycy stawiali so-bie na zapleczu serwer WWW, albo pocztę. Jest ważnym ele-mentem biznesu informatycznego. Wiele czołowych firm in-formatycznych traktuje linuksa, jako jedną z równorzędnych platform uruchamiania swoich usług. O wyborze platformy coraz częściej decyduje klient.

Czy w takim razie zmieniło się w ciągu tych lat patrze-nie na usługi katalogowe na platformie linuksowej? Moim zdaniem zmiany są kosmetyczne. LDAP jest niedocenia-

ny, traktowany powierzchownie, a przede wszystkim nie-rozumiany. A przecież jest to najlepsze rozwiązanie proble-mu uwierzytelnienia w sieciach heterogenicznych, w których mamy komputery z różnymi systemami operacyjnymi. Dzię-ki LDAP możemy łatwo uporządkować zarządzanie kontami użytkowników, maszyn etc. W przypadku wirtualnych skrzy-nek pocztowych nie musimy wprowadzać dodatkowej ba-zy kont czy aliasów. Bazę LDAP możemy wykorzystać ja-ko bazę adresów e-mail, źródło uwierzytelnienia dla Radiusa, samby, systemów pocztowych... to tylko kilka przykładów. LDAP jest praktycznie niezastąpiony tam, gdzie potrzebne są rozbudowane systemy uprawnień, np. w dużych organiza-cjach gdzie działają systemy pracy grupowej

DNS i LDAP – cechy wspólneNajpopularniejszą bazą hierarchiczną jest DNS Doma-in Name System (System Nazw Domenowych). Przypatrz-my się bliżej strukturze DNS – pozwoli nam to łatwiej zro-zumieć pojęcia używane w opisie LDAP, ze względu na roz-liczne analogie. Na szczycie struktury znajduje się 13 głów-nych serwerów (root servers) obsługujących domeny naj-wyższego poziomu (TLD – top level domains). Zagłębiając

LDAP – idea, główne pojęcia, konfiguracja i testowanie

Artykuł ten jest pierwszą częścią cyklu poświęconego OpenLDAP. Poszczególne części dotyczyć będą następujących obszarów – idei i głównych pojęć, konfiguracji oraz testowania, bezpieczeństwa w OpenLDAP, OpenLDAP-u jako źródła informacji oraz źródła uwierzytelnienia. OpenLDAP-u w praktyce administracyjnej – tutaj weźmiemy pod uwagę m.in. sambę, postfix, apache.

Janusz Bielec

Page 11: Linux 05 2009 PL

RozwiązaniaPo co komu LDAP?

10 maj 2009

RozwiązaniaPo co komu LDAP?

11www.lpmagazine.org

się w strukturę możemy dostrzec domeny (np. edu.pl), w obrębie których możemy dostrzec poddomeny (np. uj.edu.pl), hosty rzeczywiste (np. www.uj.edu.pl) i wirtualne (np. www.in-ib.uj.edu.pl). Te pierwsze ograniczone są na-szymi możliwościami przydziału adresów IP, te drugie stanowią dowiązania do tych pierw-szych – możemy to wszystko sprawdzić pole-ceniem dig. W bazach DNS mamy także do-datkowe informacje, np. dotyczące poczty dla domeny.

DNS to nie tylko pliki z opisem rekor-dów. Częścią DNS jest także protokół komu-nikacyjny opisujący sposób łączenia się klien-tów z serwerami DNS oraz zalecenia dotyczą-ce sposobu aktualizacji wpisów w bazach do-men internetowych. Wypunktujmy teraz istot-ne cechy DNS:

• abstrakcyjny wierzchołek (top), który speł-nia rolę porządkującą;

• kontenery (domeny), które mogą zawierać obiekty o konkretnych atrybutach (np. ho-sty o konkretnym adresie IP) albo dalsze kontenery (poddomeny);

• sformalizowany opis poszczególnych obiektów w rekordach różnego typu;

• system zapewnienia unikatowości nazwy – uzyskiwane to jest przez formalną dele-gację obsługi domen.

Te cechy możemy dostrzec także w bazach LDAP. Zresztą strukturę DNS-u można by pro-sto zbudować w bazie LDAP. Jednak LDAP zo-stał stworzony z zamiarem opisywania różnego typu obiektów, więc sensowniej jest tu mówić o klasach obiektów:

• klasa obiektów abstrakcyjnych – służy ona zasadniczo do wprowadzania innych obiektów;

• klasa obiektów strukturalnych – definiują one jakie typu wpisy będą zawierać rekor-dy. Te obiekty nie zmieniają się podczas edycji, są kośćcem szkieletu;

• klasa obiektów dodatkowych – mają one za zadanie rozbudowywać opis bez naru-szania obiektów strukturalnych;

• unikatowość nazw – została w LDAP osiągnięta przez wprowadzenie OID-ów (Object Identifier Definitions). OID to sekwencja liczb całkowitych oddzielo-nych kropkami. Składają się z części ba-zowej, określenia typu oraz określenia obiektu. Część bazowa jest przydzielana przez Internet Assigned Number Autho-rity (IANA). Na stronie: http://www.oid-info.com/get/ możemy wyszukać kto za-rezerwował odpowiednią część bazową

OID. Wpisując np. 1.3.6.1.4.1.23 jako ba-zową część OID-u dostajemy informację, że została ona zarezerwowana przez fir-mę Novell.

Organizacja Internet Assigned Number Autho-rity jest dodatkowym punktem zbieżności DNS i LDAP, odpowiada bowiem za główne serwe-ry nazw.

DNS to jakby przypadek szczególny LDAP i hosty w sieci mogą być opisane w ba-zie LDAP. Takie rozwiązania istnieją od wielu lat , np. Active Directory czy eDirectory. Stacja

robocza może wtedy odpytywać AD czy eDi-rectory o adres IP czy inne właściwości kon-kretnego hosta.

LDAP – budowanie strukturyWspomnieliśmy już o klasach obiektów oraz ich unikatowym opisie za pomocą OID-ów. Jak to się odbywa? Otóż wykorzystuje się do tego tekstowe pliki opisujące grupę konsystentnych obiektów. Taki opis jest określany mianem ,schema. Weźmy konkretny przykład. Podsta-wowym plikiem tego typu jest core.schema. Na początku pliku znajdziemy istotne informacje

Listing 1. Odwołania do RFC w pliku core.schema# RFC 2252/2256 (LDAPv3)

# Select standard track schema items:

# RFC 1274 (uid/dc)

# RFC 2079 (URI)

# RFC 2247 (dc/dcObject)

# RFC 2587 (PKI)

....

Listing 2. Definicja simpleSecurityObject w tymże plikuobjectclass ( 0.9.2342.19200300.100.4.19 NAME 'simpleSecurityObject'

DESC 'RFC1274: simple security object'

SUP top AUXILIARY

MUST userPassword )

Listing 3. Definicja inetOrgPerson# inetOrgPerson

objectclass ( 2.16.840.1.113730.3.2.2

NAME 'inetOrgPerson'

DESC 'RFC2798: Internet Organizational Person'

SUP organizationalPerson

STRUCTURAL

MAY ( audio $ businessCategory $ carLicense $ departmentNumber $

displayName $ employeeNumber $ employeeType $ givenName $

homePhone $ homePostalAddress $ initials $ jpegPhoto $

labeledURI $ mail $ manager $ mobile $ o $ pager $

photo $ roomNumber $ secretary $ uid $ userCertificate $

x500uniqueIdentifier $ preferredLanguage $

userSMIMECertificate $ userPKCS12 ) )

Listing 4. Prosty sposób sprawdzenia, jakie programy narzędziowe zawiera pakiet openldap-servers#_ rpm -ql openldap-servers | grep bin

/usr/sbin/slapacl

/usr/sbin/slapadd

........

/usr/sbin/slapindex

/usr/sbin/slappasswd

/usr/sbin/slaptest

Podobnie dla pakietu klienckiego:

#_ rpm -ql openldap-clients | grep bin

/usr/bin/ldapadd

...........

/usr/bin/ldapsearch

/usr/bin/ldapwhoami

Page 12: Linux 05 2009 PL

12

RozwiązaniaPo co komu LDAP?

maj 2009 13

RozwiązaniaPo co komu LDAP?

www.lpmagazine.org

dodatkowe podane w zakomentowanych wier-szach tak jak na Listingu 1.

Plik wskazuje na konkretne dokumenty RFC, w których możemy znaleźć opis wprowa-

dzanych obiektów, ale ich definicja na potrzeby bazy LDAP jest zawarta w naszym pliku. Popa-trzmy na Listing 2.

Mamy tu wprowadzony obiekt o nazwie simpleSecurityObject, należący do klasy obiektów dodatkowych, którego jedynym wy-maganym atrybutem jest userPassword.

Proszę zwrócić uwagę na OID. Sprawdź-my, czy jest on poprawny, tzn. na jaką organizację wskazuje w tym przypadku baza organizacji IA-NA. Na stronie http://www.alvestrand.no/objectid/0.9.html możemy znaleźć, że OID-y z częścią ba-zową 0.9.2342 zostały zarezerwowane na potrzeby RFC. Oznacza to, że zdefiniowane w core.schema obiekty mogą być wykorzystywane do różnych zastosowań i na różnych platformach bez ryzyka konfliktu opisu, czy problemów prawnych. W od-wołaniech do obiektu możemy użyć zarówno je-go nazwy, jak i OID-u. Oprócz core.schema także pliki: cosine.schema oraz inetorgperson.schema są traktowane jako standardowe. Zawierają one naj-częściej wykorzystywane obiekty. Np. inetorgper-son.schema zawiera opis obiektu inetOrgPerson zaprezentowany na Listingu 3.

Obiekt typu inetOrgPerson jest bardzo często wykorzystywany ponieważ umożliwia (pole MAY) określenie wielu danych przydatnych w zarządzaniu ludźmi natomiast nie zmusza do wpisywania dodatkowych informacji (puste, a właściwie brak pola MUST). Ogólnie przy budo-wie struktury takie klasy obiektów, które posze-rzają możliwość opisu nie zmuszając do wpisy-wania zbędnych informacji, są mile widziane. Dla naszego wywodu ważne jest jednak to, że do każdego obiektu znajdziemy opis w plikach schem i wskazanych dokumentach RFC.

LDAP – implementacja OpenLDAPPodstawą tej, powszechnie dostępnej, implemen-tacji jest serwer LDAP (Standalone demon ldap czyli slapd). Jest to centralna część projektu, ale jego nieodłącznymi częściami są odpowiednie bi-blioteki wraz z API umożliwiającym pisanie wła-snego oprogramowania na bazie slapd bez ko-nieczności grzebania w jego kodzie źródłowym oraz zestaw programów klienckich i narzędzi li-nii poleceń. Rysunek 2 pokazuje schematycznie te zależności. Proszę zwrócić uwagę, że narzędzia klienckie zgodnie z nazwą działają w architektu-rze klient-serwer wykorzystując protokół ldap czy ldaps natomiast narzędzia typu slapcat pozwalają na bezpośredni dostęp do danych. Diagram wska-zuje także na pliki konfiguracyjne, które wpływa-ją na zachowanie serwera i narzędzi.

OpenLDAP wykorzystuje jako silnik ba-zy danych różne technologie, najczęściej jest to Berkeley Data Base czyli BDB. Dla dużych baz informacyjnych sensowne jest wykorzysta-

Listing 5. W bazie RPM zawarte są także informacje o plikach konfiguracyjnych poszczególnych pakie-tów oprogramowania#_ rpm -qc openldap-servers

/etc/logrotate.d/ldap

/etc/openldap/schema/local.schema

/etc/openldap/slapd.access.conf

/etc/openldap/slapd.conf

/etc/rc.d/init.d/ldap

/etc/sysconfig/ldap

/var/lib/ldap/DB_CONFIG

Listing 6. Bardzo istotne wiersze konfiguracji OpenLDAP: typ bazy, umiejscowienie, nazwa konta zarzą-dzającego i~stowarzyszone z nim hasłodatabase bdb

suffix "dc=example,dc=com"

rootdn "cn=Manager,dc=example,dc=com"

rootpw {crypt}ijFYNcSNctBYg

Listing 7. Gdzie zdefiniowany jest „dc”...#_ grep dc /usr/share/openldap/schema/*

. . . . . . . . .

/usr/share/openldap/schema/core.schema~: NAME ( 'dc'

'domainComponent' )

/usr/share/openldap/schema/core.schema~:objectclass ( 1.3.6.1.4.1.1466.344

NAME 'dcObject'

. . . . . . . . .

Listing 8. Co to jest ,,cn''?attributetype ( 2.5.4.3 NAME ( 'cn' 'commonName' )

DESC 'RFC2256: common name(s) for which the entity is known by'

SUP name )

Listing 9. Generowanie hasła na potrzeby OpenLDAP#_ slappasswd

New password:

Re-enter new password:

{SSHA}iXMvNmiaBzKSCd+R6gXvlTEc7Qfwf1ZA

Listing 10. Przykładowy plik struktura.ldiffdn: dc=firma,dc=pl

description: To nasza firma

dc: firma

o: Firma

objectClass: top

objectClass: dcObject

objectClass: organization

Listing 11. Miejsce, gdzie określono, że dla ,,dc'' powinniśmy podać pojedynczą wartość# RFC 1274 + RFC 2247

attributetype ( 0.9.2342.19200300.100.1.25

NAME ( 'dc' 'domainComponent' )

DESC 'RFC1274/2247: domain component'

EQUALITY caseIgnoreIA5Match

SUBSTR caseIgnoreIA5SubstringsMatch

SYNTAX 1.3.6.1.4.1.1466.115.121.1.26 SINGLE-VALUE )

Page 13: Linux 05 2009 PL

12

RozwiązaniaPo co komu LDAP?

maj 2009 13

RozwiązaniaPo co komu LDAP?

www.lpmagazine.org

nie odmiany optymalizowanej pod hierarchicz-ne bazy danych, czyli HDB.

OpenLDAP okiem administratoraTestowałem OpenLDAP na kilku dystrybucjach Linuksa oraz na FreeBSD. Do opisu wybrałem popularną dystrybucję Mandriva. Myślę, że wy-bór jest w miarę uniwersalny ponieważ istnieją silne związki Mandrivy z RedHatem, a z kolei użytkownicy SuSE znajdą silne oparcie w narzę-dziu YAST. Z drugiej jednak strony wybór dys-trybucji jest sprawą drugorzędną, chociaż wła-śnie Mandriva, pomimo często przyprawianej jej opinii dystrybucji typowo desktopowej, ma bardzo bezpieczną konfigurację domyślną de-monów sieciowych. Ale do rzeczy. Ta część ar-tykułu jest pomyślana, jako wyjaśnienia do pra-cy przy konsoli administracyjnej! Poleceniem:

#_ urpmi ldap-servers ldap-clients

instaluję potrzebne pakiety. Początkowy hash wskazuje tu na linię komend. Mogę sprawdzić jakie programy zawierają zainstalowane pakie-ty – Listing 4. Dla pewności sprawdźmy jesz-cze pliki konfiguracyjne – Listing 5.

Na pierwszy rzut oka trochę tego dużo, ale pierwszy z nich służy do zarządzania dzienni-kami, dwa inne tworzą skrypt startowy a ostat-ni określa konfigurację bazy BDB na potrze-by OpenLDAP. Te pliki mogą w pewnej mie-rze zależeć od dystrybucji, ale okażemy im na początku odrobinę zaufania, natomiast prze-analizujemy pliki z /etc/openldap, tzn. /etc/openldap/schema/local.schema, /etc/openldap/slapd.access.conf, /etc/openldap/slapd.conf.

#_ cat /etc/openldap/schema/

local.schema

# This is a good place to put your

schema definitions

Widać, że local.schema może się przydać do-piero w przyszłości. Zajmijmy się więc głów-nym plikiem konfiguracyjnym: /etc/openldap/slapd.conf.

include /usr/share/openldap/schema/

core.schema

include /usr/share/openldap/schema/

cosine.schema

To oczywisty fragment – wczytywane są pliki z definicjami obiektów.

include /etc/openldap/schema/

local.schema

include /etc/openldap/

slapd.access.conf

Listing 12. Definicja objectclass organization

objectclass ( 2.5.6.4 NAME 'organization'

DESC 'RFC2256: an organization'

SUP top STRUCTURAL

MUST o

MAY ( userPassword $ searchGuide $ seeAlso $ businessCategory $

x121Address $ registeredAddress $ destinationIndicator $

preferredDeliveryMethod $ telexNumber $ teletexTerminalIde

ntifier $

telephoneNumber $ internationaliSDNNumber $

facsimileTelephoneNumber $ street $ postOfficeBox $

postalCode $

postalAddress $ physicalDeliveryOfficeName $ st $ l $

description )

)

Listing 13. Przeszukiwanie bazy LDAP

#_ ldapsearch -x -W -D "cn=Admin,dc=firma,dc=pl" -b "dc=firma,dc=pl"

Enter LDAP Password:

# extended LDIF

#

..........

dn: dc=firma,dc=pl

description: To nasza firma

dc: firma

o: Firma

objectClass: top

objectClass: dcObject

objectClass: organization

# search result

..........

Listing 14. Przykładowy plik z definicja jednostek organizacyjnych

#Definicja jednostek organizacyjnych

dn: ou=Marketing,dc=firma,dc=pl

ou: Marketing

description: Grupa handlowa

objectClass: organizationalUnit

dn: ou=Finanse,dc=firma,dc=pl

ou: Finanse

description: Grupa finansowa

objectClass: organizationalUnit

dn: ou=Produkcja,dc=firma,dc=pl

ou: Produkcja

description: Ludzie na Produkcji

objectClass: organizationalUnit

dn: ou=IT,dc=firma,dc=pl

ou: IT

description: Informatycy

objectClass: organizationalUnit

Page 14: Linux 05 2009 PL

14

RozwiązaniaPo co komu LDAP?

maj 2009 15

RozwiązaniaPo co komu LDAP?

www.lpmagazine.org

Wczytywane są dodatkowe pliki konfiguracyj-ne. Jest to raczej zabieg organizacyjny ułatwia-jący grupowanie pewnych opcji i nie ma dodat-kowego znaczenia.

pidfile /var/run/ldap/slapd.pid

argsfile /var/run/ldap/

slapd.args

modulepath /usr/lib64/openldap

# database backend modules available:

#moduleload back_dnssrv.la

#moduleload back_ldap.la

Informacja o położeniu pliku, w którym zapisa-ny jest numer procesu oraz informacja o dodat-kowych modułach ładowanych podczas star-tu... Pomińmy na razie kwestie certyfikatów TLS oraz dostępu do poszczególnych obiektów

i skupmy się na ostatnich czterech wierszach. Określają one po pierwsze silnik bazy danych, którą będzie wykorzystywał OpenLDAP, jej abstrakcyjne umiejscowienie oraz obiekt wy-korzystywany do zarządzania budowanym ka-talogiem i hasło wymagane do jego uwierzytel-nienia. Proszę zwrócić uwagę, że obiekt, któ-ry będzie właścicielem katalogu, jest tworzo-ny przez wpis w pliku konfiguracyjnym, inne obiekty będą istniały już w samej bazie. Niekie-dy wyjątkiem jest obiekt używany do replikacji katalogu, a to z tego powodu, że pozwala po-brać replikę do pustej bazy – Listing 6.

Jednak aby zrozumieć co oznaczają po-szczególne określenia musimy jeszcze pew-ne terminy wyjaśnić. Otóż suffix wskazuje na obiekty „dc”. Sprawdźmy co to za obiekt, i czy odwołując się tylko do plików: core.sche-

ma, cosine.schema oraz inetorgperson.schema znajdziemy tam definicję tego obiektu – Li-sting 7.

Jak widać dc to atrybut obiektu domain-Component i zdefiniowany jest w core.schema. Mamy jeszcze atrybut cn – Listing 8.

Pozostała nam fraza „rootdn” = "cn=Ma-nager,dc=example,dc=com" Otóż dn to skrót od Distinguished Name – nazwa wyróżnial-na. Oznacza to unikatową nazwę, która jed-noznacznie identyfikuje obiekt w bazie LDAP. Fraza dn używana jest w różnych zbitkach: ro-otdn – nazwa wyróżnialna obiektu tworzącego katalog, binddn – nazwa wyróżnialna używana do podłączenia się klienta do bazy, etc.

Umiejscowienie wierzchołka struktury katalogu LDAP w punkcie typu: dc=firma-,dc=pl jest wygodne, wiele automatycznych instalacji sugeruje takie rozwiązanie (np. Yast), ale ogólnie chodzi o to, że na szczycie struktury musi się znaleźć obiekt typu kon-tener i wybór powinien być przemyślany. Ponieważ firma wprowadzająca usługi ka-talogowe z reguły dysponuje jakąś domeną to takie rozwiązanie często bywa sensowne bo stanowi odwołanie się do istniejącej już struktury. Wykorzystamy więc tę sugestię w naszych eksperymentach.

Przyjmijmy, że suffix = dc=firma,d-c=pl a rootdn = cn=Admin,dc=firma,dc=pl i sprawdźmy, czy nasza konfiguracja jest po-prawna.

#_ slaptest -v -f /etc/openldap/

slapd.conf

config file testing succeeded

Zadbajmy teraz o porządne hasło dla obiek-tu rootdn – Listing 9. Zapiszmy je w pliku slapd.conf.

rootpw {SSHA}iXMvNmiaBzKSCd+R6gXvlTE

c7Qfwf1ZA

Teraz mogę uruchomić serwer ldap:

#_ /etc/init.d/ldap start

Polecenie:

#_ netstat -vat

powinno uwidocznić otwarte porty ldap (389) oraz ldaps (636). Jeżeli tak jest, możemy zabrać się do przygotowania struktury.

Struktura wzorcowaPrzygotujmy wzorcowy plik struktura.ldiff o następującej zawartości – Listing 10.

Listing 15. Sprawdzenie, czy plik ou.ldiff został poprawnie zaimportowany. Powinny tu być widoczne wszystkie obiekty i atrybuty zdefiniowane we wczytywanym pliku# ldapsearch -x -W -LLL -D "cn=Admin,dc=firma,dc=pl" "ou=*"

Enter LDAP Password:

dn: ou=Marketing,dc=firma,dc=pl

ou: Marketing

description: Grupa handlowa

objectClass: organizationalUnit

...........

Listing 16. Przykładowy plik definiujący konta użytkownikówdn: uid=kuba,ou=IT,dc=firma,dc=pl

ou: IT

uid: kuba

sn: Kowalski

cn: Kuba Kowalski

givenName: Kuba

displayName: Kuba Kowalski

mail: [email protected]

userPassword: {SSHA}t8lz47CuWX7LYvhlbAv+5SWoh9QjwvMS

# to co powyżej uzyskujemy slappasswd

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

dn: uid=jas,ou=IT,dc=firma,dc=pl

ou: IT

uid: jas

sn: Nowak

cn: Jan Nowak

givenName: Jan

displayName: Jan Nowak

mail: [email protected]

userPassword: {SSHA}Nyw9uBC4pkWg18iGa/CgTD9/FN+K5hcc

# to co powyżej uzyskujemy slappasswd

objectClass: person

objectClass: organizationalPerson

objectClass: inetOrgPerson

Page 15: Linux 05 2009 PL

14

RozwiązaniaPo co komu LDAP?

maj 2009 15

RozwiązaniaPo co komu LDAP?

www.lpmagazine.org

Dlaczego podajemy tylko dc: firma, a nie obydwa komponenty, tzn. dc: firma, dc: pl? Otóż zerkając do opisu dcObject znajdziemy, iż powinna być podana pojedyncza wartość ,dc. tak ja na Listingu 11.

Skąd to wynika? Otóż zamysł jest taki, że za wyżej położony katalog być może odpowia-da inna baza i będzie możliwość dołączenia się do takowej, przynajmniej nie jest blokowana. Popatrzmy jeszcze na objectClass: organi-zation – Listing 12.

Wymaga ona tylko jednego atrybutu, po-dania nazwy ,o:, ale umożliwia podanie wie-lu innych atrybutów opisujących firmę. Wyda-je się, że nasz wzorcowy plik jest poprawny. W takim razie możemy go wykorzystać do budo-wy struktury. Poleceniem:

#_ ldapadd -x -D "cn=Admin,dc=firma,dc

=pl" -W -f struktura.ldiff

Enter LDAP Password:

adding new entry "dc=firma,dc=pl"

wprowadzamy dane z pliku do struktury ba-zy LDAP.Przeanalizujmy składnię tego polecenia:

• -x oznacza, że hasło jest przesyłane otwar-tym tekstem. W przypadku Mandrivy au-tomatycznie tworzone są certyfikaty TLS, ale w innych dystrybucjach trzeba je utwo-rzyć. Bezpieczeństwo LDAP będzie jedna-kowoż opisane w odrębnym artykule, w którym omówimy także tworzenie certy-fikatów;

• -D to wskazanie na Distinguished Name (binddn) obiektu, który łączy się do bazy;

• -W wymusza interaktywne przesłanie ha-sła;

• -f wskazuje na plik, który ma zostać wy-korzystany do budowy czy rozszerzenia struktury.

Polecenie z Listingu 13 nie powinno już spra-wiać problemów.

Dodając -LLL pozbędziemy się dodatko-wych informacji:

#_ ldapsearch -x -W -LLL -D "cn=Admin

,dc=firma,dc=pl" -b "dc=firma,dc=pl"

Jeszcze bardziej możemy ułatwić sobie pracę edytując plik /etc/openldap/ldap.conf. Proszę nie ruszać pliku /etc/ldap.conf ponieważ jego rola jest zupełnie inna. Dopiszmy więc dwa na-stępujące wiersze:

BASE dc=firma,dc=pl

HOST localhost Rysunek 1. Relacja pomiędzy obiektami strukturalnymi a dodatkowymi

���

������������������

�������

������������������

������������

������������������

��������������������

��������������������������

Listing 17. Zależność pomiędzy „person”, „organizationalPerson” i „InternetOrganizationalPerson”

objectclass ( 2.5.6.6 NAME 'person'

DESC 'RFC2256: a person'

SUP top STRUCTURAL

MUST ( sn $ cn )

MAY ( userPassword $ telephoneNumber $ seeAlso $ description ) )

objectclass ( 2.5.6.7 NAME 'organizationalPerson'

DESC 'RFC2256: an organizational person'

SUP person STRUCTURAL

MAY ( title $ x121Address $ registeredAddress $ destinationIndicator $

preferredDeliveryMethod $ telexNumber $ teletexTerminalIdentifier $

telephoneNumber $ internationaliSDNNumber $

facsimileTelephoneNumber $ street $ postOfficeBox $ postalCode $

postalAddress $ physicalDeliveryOfficeName $ ou $ st $ l ) )

objectclass ( 2.16.840.1.113730.3.2.2

NAME 'inetOrgPerson'

DESC 'RFC2798: Internet Organizational Person'

SUP organizationalPerson

STRUCTURAL

MAY (

audio $ businessCategory $ carLicense $ departmentNumber $

displayName $ employeeNumber $ employeeType $ givenName $

homePhone $ homePostalAddress $ initials $ jpegPhoto $

labeledURI $ mail $ manager $ mobile $ o $ pager $

photo $ roomNumber $ secretary $ uid $ userCertificate $

x500uniqueIdentifier $ preferredLanguage $

userSMIMECertificate $ userPKCS12 )

)

Listing 18. W katalogu /var/lib/ldap/ mamy pliki bazy BDB, w których zawarte są informacje bazy LDAP#_ ll /var/lib/ldap/

-rw-r--r-- 1 ldap ldap 2048 2009-03-08 17:19 alock

. . . . . . . . . . . . . . . .

-rw------- 1 ldap ldap 8192 2009-03-08 17:24 uid.bdb

Listing 19. Po usunięciu plików z katalogu /var/lib/ldap/ serwer LDAP posiada tylko informacje zawarte w pliku konfiguracyjnym#_ ldapsearch -x -W -D "cn=Admin,dc=firma,dc=pl"

Enter LDAP Password:

# extended LDIF

.......

search: 2

result: 32 No such object

# numResponses: 1

Page 16: Linux 05 2009 PL

16

RozwiązaniaPo co komu LDAP?

maj 2009

i możemy uprościć poprzednie polecenie wpi-sując poniższy kod:

#_ ldapsearch -x -W -LLL -D "cn=Admin

,dc=firma,dc=pl"

Rozbudowa strukturyFirmy mają często bardzo rozbudowaną struk-turę organizacyjną. Popatrzmy na podstawowe obiekty przydatne do opisu rzeczywistości fir-mowej.

Jednostki organizacyjneZałóżmy, że nasza firma ma kilka działów: mar-keting, finanse, produkcję oraz dział informa-tyki. W jaki sposób możemy to uwzględnić w LDAP? Wykorzystajmy do tego objectClass organizationalUnit. Stwórzmy plik ou.ldiff zawierający zapis jak na Listingu 14. Wczytaj-my przygotowany plik:

#_ ldapadd -x -D "cn=Admin,dc=firma,dc

=pl" -W -f ou.ldiff

i sprawdźmy czy informacja została umiesz-czona w katalogu – Listing 15.

LudzieDodajmy teraz choćby jednego informatyka do jednostki organizacyjnej IT. Plik, dajmy na to ludzie-it.ldiff mógłby mieć postać jak na Li-stingu 16. Dlaczego mamy te trzy klasy przy-toczone? Proszę zerknąć na załączone frag-menty definicji tych obiektów, a dokładniej na wyróżnione fragmenty. Widać, że inetOrg-Person wymaga organizationalPerson, a ten z kolei obiekt korzysta z atrybutów per-son – Listing 17. Powiedzmy sobie uczciwie,

LDAP jest wrażliwy na literówki, zdarza się podanie kropki zamiast przecinka, etc. Dlate-go sprawdźmy najpierw czy nasz plik jest po-prawny.

#_ slapadd -v -u -c -f /etc/openldap/

slapd.conf -l ludzie-it.ldiff

Jeżeli plik jest poprawnie zbudowany rozbuduj-my katalog LDAP w znany już nam sposób.

#_ ldapadd -x -v -D "cn=Admin,dc=firma

,dc=pl" -W -f ludzie-it.ldiff

Sprawdźmy teraz naszą bazę.

#_ ldapsearch -x -W -LLL -D "cn=Admin

,dc=firma,dc=pl"

Szybki backup LDAPSerwer LDAP działa w systemie linuksowym z uprawnieniami specjalnie utworzonego konta:

#_ grep ldap /etc/passwd

ldap:x:80:422:system user for

openldap:/var/lib/ldap:/bin/false

Widzimy tutaj, że /var/lib/ldap jest katalogiem domowym tego użytkownika. W tym katalogu znajdziemy pliki bazy – Listing 18. Zapiszmy wyniki wyszukiwania w bazie LDAP do pliku:

#_ ldapsearch -x -W -LLL -D "cn=Admin

,dc=firma,dc=pl" > /root/ldap/all.ldiff

Sprawdźmy zawartość tego pliku.

#_ less /root/ldap/all.ldiff

Jeżeli widzimy tam nasze wpisy, będziemy mo-gli je z powrotem odtworzyć. Usuńmy pliki ba-zy danych.

#_ rm -rf /var/lib/ldap/*

Restartujmy serwer LDAP

#_ /etc/init.d/ldap restart

I sprawdźmy zawartość bazy LDAP – Listing 19. Właściwie nie ma tu żadnych obiektów. Mo-żemy teraz wczytać nasz plik all.ldif standardo-wym poleceniem.

#_ ldapadd -x -v -D "cn=Admin,dc=firma

,dc=pl" -W -f all.ldiff

Jeżeli nic się nam po drodze nie udało sknocić (np. nadpisać plik all.ldiff) baza powinna zo-stać odtworzona. Czytelnikowi pozostawiam sprawdzenie.

Backup inaczejDociekliwy czytelnik zapewne zwrócił uwagę, że w katalogu /var/lib/ldap zawarte są wszyst-kie pliki bazy BDB, to znaczy plik konfigu-racyjny, pliki indeksów, dzienniki transakcji. Oznacza to, że skopiowanie tych plików w in-ne miejsce można traktować jako kopię bezpie-czeństwa. Ponieważ bazy LDAP najczęściej są odpytywane, a zdecydowanie rzadziej zmie-niane, zwykle wystarcza skopiowanie plików działającej bazy, bez konieczności jej zatrzy-mywania. Można się przy tym posłużyć stan-dardowymi narzędziami jak:

• tar (#_ tar cf /nazwa-archiwum.tar /var/lib/ldap);

• tar + gzip (#_ tar zcf /nazwa-archiwum.tgz /var/lib/ldap).

Możemy też wykorzystując program rsync czy ssh i przesłać dane do innego hosta. Ale o tym będziemy jeszcze rozmawiać.I to byłoby na tyle. Zapraszam za miesiąc.

Janusz Bielec – z wykształcenia biofizyk. Pracuje jako administrator sieci III Kampu-su UJ w Sekcji Usług Sieciowo-Serwero-wych Uniwersytetu Jagiellońskiego, jest też konsultantem ds. systemów open source w Compendium Centrum Edukacyjne sp. z o.o. Więcej informacji można znaleźć na stronie domowej http://awe.mol.uj.edu.pl/~jjb/.

O autorze

Rysunek 2. Schemat ideowy działania serwera slapd oraz narzędzi dodatkowych rozwijanych w projekcie OpenLDAP

������������������������

���������������

�����

�������������

�����������������

�����������������������

�����������

����������������

���������������

�����������������������

����������

����������

����������

�������

����������

�������������������

��������

��������������

�����������

Page 17: Linux 05 2009 PL

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/2009

Page 18: Linux 05 2009 PL

RozwiązaniaSystem z piekła rodem

18 maj 2009

RozwiązaniaSystem z piekła rodem

19www.lpmagazine.org

linux

@so

ftwar

e.co

m.p

l

Przez wiele lat był odsuwany na dalszy plan co w efekcie spowodowało, że współcześnie otacza go spora doza tajemniczości. Nie wpłynęło to jednak na pracę licznego grona developerów, którzy do-

prowadzili FreeBSD do doskonałości, stabilności i funkcjo-nalności. System z założenia miał pozostać wolnym od ogra-niczających licencji. Nie można jednak pozostawić tak roz-budowanego projektu bez uprzedniego określenia jego sta-tusu. Na Uniwersytecie Kalifornijskim w Berkeley opraco-wano specjalną licencję BSD, która miała określać charak-ter tworzonego systemu operacyjnego i dzięki temu stabilizo-wać go od strony prawnej. Jest ona całkowicie zgodna z za-sadami Wolnego Oprogramowania, ale co najważniejsze sku-pia się na prawach użytkownika. Licencja ta pozwala na mo-dyfikowanie kodu systemu, a nawet rozprowadzanie wyni-ków tej pracy. Co ciekawe, istnieje także możliwość włącza-nia fragmentów kodu źródłowego do innych projektów. Wy-starczy jedynie zamieścić informację o twórcach oryginalne-go kodu oraz treść licencji. Takie podejście autorów systemu i jego licencji daje nie tylko ogromne możliwości, ale umoż-liwia także prowadzenie badań nad kodem źródłowym, któ-ry w przypadku wielu systemów operacyjnych jest skrzętnie

skrywany przed światem. Nasuwa się pytanie, dotyczące ce-lu jaki przyświecał twórcom Projektu FreeBSD. Kluczową myślą było dostarczenie takiego oprogramowania, które mo-głoby być wykorzystywane bez opłat i zobowiązań. Nieskrę-powanego wszechobecnymi prawami autorskimi. Develope-rzy nie otrzymują stałych wynagrodzeń, choć pracują ciężko nad swoim dziełem. Oczywiście zdarzają się dofinansowa-nia, jednak nie są one celem pracy. Należy pamiętać, że twór-cami systemu są entuzjaści, którzy pragną jedynie dostarcze-nia darmowego kodu każdemu użytkownikowi. Czy moż-na pomóc w tworzeniu FreeBSD? Każdy, kto posiada pew-ne umiejętności i dużo chęci ma prawo do współpracy z sze-rokim gronem aktualnych developerów. Podstawowe drzewo źródłowe znajduje się w repozytorium CVS (ang. Concurrent Version System – System kontroli Wersji) znajdującym się na komputerze w Kalifornii (USA). Z tego miejsca jest rozsyła-ne na serwery lustrzane na całym świecie.

Aby lepiej wczuć się w klimat niewątpliwie towarzyszą-cy FreeBSD, warto prześledzić jego historię. Pomimo chę-ci i ogromnej determinacji jego twórców początki tego sys-temu nie były bezproblemowe. Momentami nawet burzli-we. Trudno określić dokładną datę powstania projektu, po-

System z piekła rodemOkreślany jest systemem dla maniaków i pasjonatów, którzy znają się na szeroko pojmowanych zagadnieniach informatyki. Wiele osób nawet nie wie o jego istnieniu, a szczytem współczesnej rewolucji na wąskim rynku systemów operacyjnych stało się rozpowszechnienie Linuksa w jego dziesiątkach odmian. Tymczasem jest jeszcze jeden kandydat do miana rewelacyjnego systemu – FreeBSD.

Łukasz Ciesielski

Page 19: Linux 05 2009 PL

RozwiązaniaSystem z piekła rodem

18 maj 2009

RozwiązaniaSystem z piekła rodem

19www.lpmagazine.org

nieważ jego początki są związane z nieoficjal-nym zestawem łat dla systemu 386BSD (tzw. patchkit). Początkowo autorzy chcieli stwo-rzyć rodzaj prezentacji ukazującej postęp roz-woju 386BSD. Problem tej dystrybucji pole-gał na tym, że oprócz rosnącej ilości łat, rozwój dystrybucji zastygł. Trzej twórcy – Nate Wi-liams, Rod Grimes oraz Jordan Hubbard – po-stanowili ożywić projekt Billa Jolitza. Ten jed-nak w ostatniej chwili zdecydował, że nie po-prze pomysłu na nadanie tempa rozwoju sys-temu 386BSD. Prace nad zestawem łat zaszły jednak na tyle daleko, aby trzech zapaleńców kontynuowało rozwój. Od tej pory ich dzieło przestało być patchkitem, uzupełnieniem. Sta-ło się czymś więcej, samodzielnym i samoist-nym projektem. Dla podkreślenia tej sytuacji w 1993 roku David Greenman wymyślił na-zwę, która doskonale się przyjęła – FreeBSD. Kolejnym krokiem było ustalenie ogólnych za-łożeń i celów. Wiele aspektów było już goto-wych, a fundamenty nowej dystrybucji zosta-ły opracowane. Z drugiej jednak strony prekur-sorzy FreeBSD doszli do momentu, w którym miały się rozegrać losy tego systemu. Albo uzy-skają pomoc z zewnątrz i sfinalizują dzieło, al-bo projekt zostanie zepchnięty na boczny tor i stopniowo ulegnie degradacji. Odpowiedź na-suwa się sama, Jordan Hubbard skontaktował się z firmą Walnut Creek CDROM w celu na-wiązania współpracy. Pomysł na FreeBSD zo-stał przyjęty niezwykle ochoczo, dzięki czemu jego twórcy otrzymali odpowiedni sprzęt oraz szybkie łącze z Internetem. Bez tego wspar-cia prawdopodobnie prace nie zaszłyby tak da-leko w tak krótkim czasie. Ponadto system był rozprowadzany nie tylko w sieci, lecz także w postaci płyt CD. W grudniu 1993 roku wyda-no pierwszą oficjalną wersję opatrzoną nume-rem 1.0. Bazowała ona na 4.3BSD-Lite Net/2, który wywodził się z Uniwersytetu Kalifornij-skiego w Berkeley. Dla usprawnienia dystrybu-cji dodano sporą dawkę świeżego oprogramo-wania. Prace nad systemem ruszyły pełną parą, aż do roku 1994. Przyczyną kłopotów był pro-ces pomiędzy firmą Novell a Uniwersytetem

Kalifornijskim, twórcą systemu BSD. Sprawa tyczyła się powielania fragmentów kodu sys-temu UNIX (którego właścicielem była firma Novell) w kodzie BSD. Zawarcie ugody umoż-liwiło prace nad 4.4BSD-Lite. Dlaczego jest to takie istotne w odniesieniu do FreeBSD? Otóż na skutek wspomnianego procesu projekt ten miał zostać zamknięty do końca lipca 1994 ro-ku. Przyczyną był fakt, że FreeBSD bazowa-ło na 386BSD i 4.3BSD Net/2. Uniwersytet w Berkeley rozpoczął pracę nad usuwaniem z ko-du fragmentów rzekomo powielonych. Wyda-na wersja 4.4BSD-Light okazała się znacznie wyszczuplona, co nie ułatwiało prac nad Fre-eBSD. W listopadzie 1994 roku zakończono prace nad FreeBSD 2.0, natomiast w styczniu ukazał się system oznaczony numerem 2.0.5. Poprawiono, a właściwie uproszczono w nim proces instalacji. Kolejne lata to okres nieustan-nego dopracowywania kodu, łatania odnalezio-nych luk i tworzenia dodatkowego oprogra-mowania. Warto jednak wspomnieć, że obec-nie dostępne są dwie wersje stabilne. Pierwsza opatrzona numerem 6.4 została wydana 28 li-stopada 2008 roku, natomiast druga – oznaczo-na jako 7.1 – ujrzała światło dzienne 5 stycznia bieżącego roku.

Aktualnie FreeBSD jest systemem wprowa-dzającym wiele nowinek i udogodnień. Projekt prężnie się rozwija dzięki czemu nie pozostaje bierny w stosunku do sytuacji na rynku syste-mów operacyjnych. Poniżej przeanalizujemy ce-chy FreeBSD i prześledzimy kto z niego korzy-sta. Pozwoli to na zrozumienie przyświecającej dzisiaj idei całego przedsięwzięcia, a także rzuci odrobinę światła na charakter systemu.

Dlaczego FreeBSD?Ciężko byłoby odpowiedzieć na postawione pytanie w jednym zdaniu. Na początek spraw-dzimy co potrafi ten system, a następnie zasta-nowimy się do czego można go wykorzystać.

Pierwszą i wydawałoby się najbardziej prymar-ną cechą jakiej doszukujemy się we współcze-snych systemach operacyjnych jest oczywi-ście wielozadaniowość. Oznacza to, że zasoby komputera, np. pamięć operacyjna jest równo-miernie i – chciałoby się powiedzieć sprawie-dliwie – dzielona pomiędzy wszystkimi uru-chomionymi aplikacjami i dostępnymi użyt-kownikami. FreeBSD dzięki specjalnym me-chanizmom radzi sobie z tym niezwykle trud-nym zadaniem bez najmniejszych problemów. Zastosowano tu dynamiczną regulację priory-tetów dzięki czemu nawet w sytuacjach maksy-malnego obciążenia systemu, zasoby są odpo-wiednio rozdzielone. Dzięki ochronie pamię-ci, awaria jednego programu nie wpływa na po-zostałe. Oznacza to, że zarówno programy jak i użytkownicy nie mają prawa do ingerencji w działanie reszty oprogramowania. A co jeżeli zapotrzebowanie na pamięć jest w danej chwi-li większe niż oferowane zasoby? Opracowano w tym celu tzw. stronicowaną pamięć wirtualną oraz współdzielenie pamięci podręcznej. Opcja ta pozwala na ciągłość pracy, kiedy rozmiar pa-mięci RAM okazuje się zbyt mały.

Kolejnym elementem jest wieloużytkowni-kowość. Ponieważ najczęściej zdarza się, że na jednym komputerze pracuje kilka, a nawet kil-kanaście osób, umożliwienie im posiadania wła-snego konta w systemie stało się koniecznością. W przypadku FreeBSD pojęcie wieloużytkow-nikowości pojmowane jest znacznie szerzej. To właśnie dzięki niej możliwe jest poprawne stwo-rzenie np. kolejki do takich urządzeń jak drukar-ka, czy skaner. Ponadto nie chodzi już jedynie o użytkowników lokalnych, lecz także sieciowych. Jest to jedna strona medalu. Z drugiej natomiast, system ten pozwala na ograniczenie dostępu do urządzeń określonym grupom. Fakt ten powodu-je wzrost bezpieczeństwa i prywatności.

Dodatkowym atutem FreeBSD jest sze-roka gama obsługiwanych standardów siecio-

Listing 1. Zawartość pliku rc.conf.font8x8="iso02-8x8"

font8x14="iso02-8x14"

font8x16="iso02-8x16"

keymap="pl_PL.ISO8859-2"

Listing 2. Zawartość pliku /etc/login.conf.userspl:\

:charset=pl_PL.ISO8859-2:\

:lang=pl_PL.ISO8859-2:\

:tc=default:

Rysunek 1. Menu powitalne FreeBSD pozwala na uruchomienie go z określonymi parametrami

Page 20: Linux 05 2009 PL

20

RozwiązaniaSystem z piekła rodem

maj 2009 21

RozwiązaniaSystem z piekła rodem

www.lpmagazine.org

wych. Dzięki temu system doskonale nadaje się nie tylko dla komputerów osobistych, np. PC czy laptopy. Idealnie wkomponował się w zapotrzebowanie współczesnego rynku, na niezwykle stabilny, nie sprawiający proble-mów system operacyjny pracujący w charak-terze serwera. Okazało się, że FreeBSD spraw-dza się w tej roli doskonale. Nie chodzi tu już o niewielki serwer w firmie, lecz również rozbu-dowany jak np. http://www.yahoo.com. Obsłu-ga sieci TCP/IP nikogo już nie zaskakuje. Jeżeli jednak dołączymy do tego pełną obsługę takich standardów jak SLIP, PPP, DHCP i NIS funk-cjonalność systemu staje się niepodważalna. Dodatkowo FreeBSD umożliwia zdalny dostęp do plików, dzięki takim funkcjom jak NFS. Po-zwala to nie tylko na przesyłanie plików na ser-wery firmy, obsługę poczty, ale również skonfi-gurowanie systemu jako zaporę ogniową.

Niezwykle ważną kwestią jest wspomnia-ny już kod systemu o charakterze otwartym i ogólnie dostępnym. Wiąże się to z możliwością dostosowania FreeBSD do rozmaitych projek-tów np. naukowych. Jest to doskonały sposób na poznawanie istoty systemów operacyjnych, sposobów funkcjonowania oraz mechanizmów wewnętrznych. Dystrybucja dostarcza ogrom-ne ilości darmowego oprogramowania pozwa-lającego na zrobienie niemalże wszystkiego. Najczęściej jedynym ogranicznikiem okazuje się wyobraźnia użytkowników. Jak nietrudno się domyśleć FreeBSD dostarcza szereg narzę-dzi programistycznych. Pozwala to na tworze-nie własnych aplikacji w najpopularniejszych językach oraz kompilowanie dostępnych ko-dów źródłowych dostosowując je tym samym do posiadanego sprzętu. Dzięki temu możemy zmaksymalizować prędkość działania systemu i oprogramowania.

Nadal uważasz, że FreeBSD jest mało po-pularny i zastanawiasz się, czy można zain-stalować ulubione oprogramowanie rodem

z Linuksa? Jest to całkowicie błędne podej-ście. Wystarczy przeanalizować listę najwięk-szych potentatów internetowego świata wspie-ranych właśnie przez FreeBSD, aby skutecz-nie rozwiać wątpliwości. Kto się do nich zali-cza? Wspomnieliśmy już o Yahoo!, ale znajdu-ją się tam również Apache, Blue Mountain, We-atchernews, Netcraft oraz New York Internet. Oczywiście to zaledwie początek długiej li-sty, której przytoczenie w całości jest niemożli-we. Podobna sytuacja ma miejsce w przypadku oprogramowania przeznaczonego dla systemu Linux. Dzięki zgodności binarnej uruchomimy wszystkie aplikacje, których używaliśmy na Li-nuksie. Sytuacja taka ma miejsce raczej rzad-ko, ponieważ większość z nich dostępna jest w portach systemu. Wystarczająco przekonujące i atrakcyjne? To może na koniec warto też wspo-mnieć, że FreeBSD dostarcza aż 19.000 pakie-tów. Wszystkie one są bezpłatne, a do tego każ-dy ma możliwość przeglądania ich kodów źró-dłowych. Czy jest sens zaczynać poznawanie nowego systemu operacyjnego? Trzy argumen-ty: przygoda i zabawa, rozwijanie umiejętności, maksymalne wykorzystanie zasobów kompute-ra. Rozpoczynamy instalację?

Godzina na poważnieInstalację należy rozpocząć od pobrania obra-zu płyty zawierającej system. Najpewniejszym miejscem jest oczywiście strona domowa pro-jektu, czyli http://www.freebsd.org. W dziale Getting FreeBSD użytkownik może zdecydo-wać jaka wersja będzie dla niego najodpowied-niejsza. Aktualnie Projekt FreeBSD wspiera dwie wersje stabilne: 6.4 (tzw. Legacy) oraz 7.1. Druga z wymienionych została wydana 5 stycznia bieżącego roku. Pomimo towarzy-szącej jej świeżości, wersja ta została doskona-le opracowana. Po dokonaniu odpowiedniego wyboru, pobieramy obraz płyty instalacyjnej np. poprzez FTP lub za pośrednictwem BitTor-

rent. I tu kolejna niespodzianka. Obrazów jest kilka, w zależności od potrzeb użytkowników. Jeżeli posiadamy stałe łącze z Internetem, wy-starczy pierwsza płyta CD. Druga i trzecia za-wierają jedynie dodatkowe pakiety, natomiast czwarta dokumentację. Developerzy dokona-li takiego podziału z myślą o użytkownikach, którzy nie mogą cieszyć się stałym dostępem do sieci. Istnieje także możliwość pobrania ca-łości w formie obrazu płyty DVD. W rzeczy-wistości znajduje się tam zawartość wspomnia-nych czterech płyt CD.

Proces instalowania systemu rozpoczyna się od uruchomienia płyty. Już po chwili przy-wita nas ekran powitalny wraz z menu (Rysu-nek 1). Ważna uwaga! Pierwsza instalacja Fre-eBSD nie należy do najłatwiejszych, dlatego zawsze warto się chwilę zastanowić i dokład-nie przeczytać wyświetlane komunikaty zanim przystąpieniem do kolejnego etapu. Przyjrzyj-my się jednak pierwszemu menu. Składa się ono z siedmiu pozycji. Najczęściej wybiera-my pierwszą z nich zatwierdzając ją klawiszem [Enter]. Jeżeli z jakichkolwiek względów opcja ta będzie stwarzać problemy, warto sprawdzić pozycje od 2 do 5. Jednak w większości przy-padków wszystko działa bez zarzutu. Dla po-czątkujących pewną niedogodnością może oka-zać się krótki czas na dokonanie wyboru (dzie-sięć sekund). Można jednak zatrzymać odlicza-nie poprzez wciśnięcie Spacji. Drugim etapem będzie określenie kraju oraz układu klawiatury (Rysunek 2, Rysunek 3). Dopiero po tych czyn-nościach zostaniemy przeniesieni do głównego okna programu sysinstall (Rysunek 4). To wła-śnie on jest odpowiedzialny za przeprowadze-nie instalacji systemu. Należy jednak zwrócić uwagę na fakt, że wykonywane czynności są dopiero przygotowaniem właściwego proce-su instalacji. Oznacza to, że ustawienia, które wprowadzimy można dowolnie modyfikować. Jak posługiwać się programem sysinstall? Do poruszania się po nim służą strzałki oraz Tabu-lator. Zaznaczenia w nawiasach kwadratowych dokonujemy za pomocą Spacji. Podjęte decyzje akceptujemy klawiszem [Enter].

Użytkownik ma do wyboru dwa sposoby przeprowadzenia instalacji. Pierwszy to wersja standardowa, czyli po prostu polecenie Stan-dard. Jest on zalecany zwłaszcza początkują-cym użytkownikom. Druga przeznaczona jest dla osób, które wcześniej już przeprowadzały instalację FreeBSD. Zdecydowanie odradza się ją, jeżeli użytkownik nie posiada wystarczają-cej wiedzy i doświadczenia (oczywiście wyłą-czając sytuację, kiedy formatujemy całą zawar-tość dysku twardego). Teraz czeka nas określe-nie miejsca, w którym ma zostać zainstalowany nowy system. Automatycznie zostaniemy prze-Rysunek 2. Wskazanie regionu i kraju

Page 21: Linux 05 2009 PL

20

RozwiązaniaSystem z piekła rodem

maj 2009 21

RozwiązaniaSystem z piekła rodem

www.lpmagazine.org

niesieni do programu Fdisk. Zanim dokonamy tu jakichkolwiek zmian, koniecznie należy je przemyśleć. Zauważmy, że dysk twardy jest oznaczony inaczej niż w systemie Linux, za-miast np. hd0 widzimy ad0. Gdybyśmy chcie-li przeznaczyć cały dysk na potrzeby naszego nowego systemu, sprawa byłaby prosta. Wy-starczyłoby usunąć odnalezione partycje kla-wiszem D (jeżeli takie istnieją). Następnie po wciśnięciu klawisza A dostępne miejsce zosta-łoby automatycznie rozdysponowane (ang. Use Entire Disk). Najczęściej jednak sytuację kom-plikuje fakt współdzielenia dysku z innymi sys-temami operacyjnymi. Co zrobić w takim wy-padku? Nie stanowi to problemu, należy jedy-nie zachować większą ostrożność. Na począt-ku należy wskazać odpowiednią partycję i usu-nąć ją (klawisz [D]) aby uzyskać miejsce dla instalowanego FreeBSD. Kiedy program po-informuje nas o dostępności wolnego miejsca, zaznaczamy je za pomocą strzałek i wciskamy [C] w celu stworzenia nowej partycji. Akcep-tujemy sugerowaną wielkość i gotowe. Jeżeli się pomylimy, nic złego się nie stanie. Wszel-kie operacje w programie Fdisk można cofnąć przy pomocy klawisza [U] (ang. Undo). W po-równaniu do systemu Linux, FreeBSD ma do-syć specyficzny sposób przydzielania miejsca, ponieważ tworzy rodzaj subpartycji wewnątrz wskazanej partycji podstawowej. Doskonale widać to podczas pracy z programem Diskla-bel Editor. Stworzona wcześniej partycja zosta-je podzielona na mniejsze fragmenty, np. party-cja systemowa (FS) i wymiany (Swap). Zanim jednak przystąpimy do określania poszczegól-nych partycji, należy określić zachowanie pro-gramu ładującego. Sysinstall oferuje trzy moż-liwości: BootMgr, Standard oraz None. Regu-ła jest prosta. Jeśli na dysku twardym posiada-my inne systemy operacyjne wybieramy No-ne, czyli wersję bez ingerencji w MBR (ang. Master Boot Record). W pozostałych przypad-kach korzystamy z opcji BootMgr lub Stan-dard. Wróćmy jednak do określania partycji w programie Disklabel Editor. Zapewne każ-dy zastanawia się nad sposobem podziału wol-nej przestrzeni. Zasadniczo istnieją trzy rozwią-zania. Pierwszym i najprostszym jest pozwole-nie, aby program sam zadecydował jakie party-cje stworzyć i jakie rozmiary im przypisać. Słu-ży do tego wspomniany już klawisz [A]. Dru-ga metoda to stworzenie dwóch partycji, a mia-nowicie Swap i FS. Doświadczeni użytkowni-cy zapewne wiedzą, że ta pierwsza nie jest wy-magana, jednak zasadniczo lepiej ją stworzyć. Trzecie rozwiązanie to stworzenie kilku par-tycji, np. oddzielnie dla kluczowych katalo-gów /var, /usr itd. Jest to doskonała metoda na przystosowanie systemu dla własnych potrzeb.

Problem pojawia się w momencie, kiedy przy-chodzi do ustalenia rozmiarów poszczególnych partycji. Zacznijmy od Swap. Jeśli system po-siada 1 GB pamięci RAM – lub więcej – to bę-dzie ona mało wykorzystywana. W przypad-ku zasobów poniżej tej wartości, dobrą prak-tyką jest utworzenie partycji Swap o rozmiarze minimum 512 MB. Starsze dokumentacje po-dają, że powinna ona być dwu- lub trzykrotnie większa od dostępnej pamięci RAM. Zwróć-my jednak uwagę na fakt, że w tamtych cza-sach pamięć ta wynosiła np. 64 MB, 128 MB, czyli nieporównywalnie mniej niż współczesne standardy. W odniesieniu do pozostałych ka-talogów trudno jest jednoznacznie określić ja-ką powinny mieć wielkość. Dla /var może to być około 150 MB (choć oficjalna dokumenta-cja systemu podaje 50 MB), natomiast dla /tmp 350 MB. Należy jednak wziąć pod uwagę, że większość plików będzie instalowana w kata-logu /usr. Przed ustaleniem rozmiarów party-cji, należy dokładnie przeanalizować przezna-czenie przyszłego systemu.

Nadszedł czas na wybór odpowiednich komponentów. FreeBSD oferuje kilka zbiorów, podzielonych w zależności od zapotrzebowania użytkownika, np. dla programisty będzie to De-veloper oraz X-Developer. Z wiadomych wzglę-dów twórcy doradzają, aby początkujący wybra-li opcję All, czyli instalacja wszystkiego. Na-stępnie można oczywiście usunąć zbędne opro-gramowania. Metoda ta jest raczej mało eduka-cyjna. Zaleca się wybór najbardziej pasującego profilu, a następnie doinstalowanie potrzebnego oprogramowania. Co mamy do wyboru? Oso-by interesujące się programowaniem mogą wy-brać wersję Developer, która zawiera pełne źró-dła, binaria oraz dokumentację. Usunięto z niej gry uznając je za zbyteczne. Jak widać braku-je również środowiska graficznego. Jej rozsze-rzoną wersją jest X-Developer. Zawiera te sa-me składniki co Developer a dodatkowo X-Win-

dow. Użytkownicy, którzy prowadzą, lub chcie-liby rozpocząć badania nad jądrem systemu po-winni koniecznie wypróbować Kern-Developer. Zawiera on pełne binaria, dokumentację i co naj-ważniejsze źródła jądra. Podobnie jak dwie po-przednie wersje stworzono także opcję z X-Win-dow, a dokładniej X-Kern-Developer. Zarówno programowanie jak i poznawanie tajemnic tzw. kernela to pasjonująca przygoda. Nie wolno jed-nak zapominać, że FreeBSD jest również do-skonałym systemem dla użytkowników, którzy się tym nie zajmują. Wystarczy wybrać zestaw User lub X-User (z X-Window). Osobom mają-cym doświadczenie z FreeBSD zaleca się wybór wersji minimalistycznej, czyli okrojonej do bazy systemowej – Minimal. W międzyczasie instala-tor zapyta nas, czy chcemy zainstalować kolek-cję portów. Dzięki niej będziemy mogli w pro-sty sposób dodawać nowe oprogramowanie. Nie należy jednak mylić jej z zestawem kodów źró-dłowych. Są to jedynie pliki, które automatyzu-ją proces pobierania programów, ich kompilo-wania i wreszcie instalowania. Warto się zasta-nowić, ponieważ kolekcja portów zajmuje oko-ło 450 MB. Jest pewnym uproszczeniem, jednak zamiast tracić cenne miejsce na dysku, można pobrać ją na płytach CD lub DVD.

Kolejnym etapem jest wybór nośnika, czyli miejsca z którego instalator będzie pobierał da-ne. Jeżeli posiadamy CD lub DVD z pakieta-mi i systemem, możemy wskazać te nośniki ja-ko bazowe. Nie oznacza to jednak, że jest to je-dyna metoda. FreeBSD oferuje znacznie więcej. Użytkownik może zdecydować się na instalację za pośrednictwem tzw. aktywnego FTP (Install from an FTP server, działa jeśli nie mamy usta-wionej zapory ogniowej), pasywnego FTP (In-stall from an FTP server through a firewall, dzia-ła pomimo istniejącej zapory) oraz wielu innych, włączając w to dyskietki i partycje DOS.

Teraz jesteśmy już przygotowani do roz-poczęcia właściwej instalacji na dysk twar-

Rysunek 3. Wybór odpowiedniego układu klawiatury

Page 22: Linux 05 2009 PL

22

RozwiązaniaSystem z piekła rodem

maj 2009 23

RozwiązaniaSystem z piekła rodem

www.lpmagazine.org

dy. Sysinstall wyświetli jeszcze komunikat ostrzegając, że jest to ostatnia chwila na zre-zygnowanie. Oczywiście nie jesteśmy zain-teresowani. Na pytanie, czy chcemy konty-nuować odpowiadamy twierdząco. W zależ-ności od ilości wybranego oprogramowania proces instalacji może potrwać od kilkuna-stu do kilkudziesięciu minut. Po zakończeniu naszym oczom ukaże się stosowny komuni-kat: Gratuluję! Masz już zainstalowany sys-tem FreeBSD.

Tak jak ja chcę!Po instalacji nadszedł czas na konfigurację. Jest to proces prawdopodobnie najważniejszy, po-nieważ odpowiednie ustawienia kluczowych elementów systemu stanowią o jego stabilno-ści, funkcjonalności i współdziałaniu z podze-społami komputera. Na początek dobrze jest odpowiednio ustawić połączenie sieciowe. Po-zwoli to na uzyskanie niezbędnego wsparcia z Internetu i instalację dodatkowego oprogramo-wania. Aby skonfigurować sieć, skorzystamy z

dobrze znanego nam programu sysinstall oraz jego submenu Configure. Na pytanie, czy chce-my ustawić urządzenie sieciowe należy odpo-wiedzieć twierdząco. Następnie instalator za-pyta o protokół IPv6. W większości wypad-ków wystarczy Ipv4, więc bez problemu może-my z tej opcji zrezygnować. Kolejnym krokiem będzie określenie DHCP (ang. Dynamic Host Configuration Protocol). Korzystnie jest odpo-wiedzieć twierdząco na pytanie o uruchomie-nie programu dhclient. Jeśli będzie to możliwe, karta sieciowa będzie automatycznie skonfigu-rowana i zostanie nawiązane połączenie. Oczy-wiście należy także wskazać odpowiednie urzą-dzenie, czyli np. kartę Ethernet. Jeżeli DHCP wykryje odpowiednie ustawienia, zostanie wy-świetlona odpowiednia ramka z informacjami. W przeciwnym razie będziemy zmuszeni do sa-modzielnego wypełnienia poszczególnych pól, a zwłaszcza bramy, numeru IP, DNS i maski sieciowej. Można oczywiście uzyskać ten sam efekt uzupełniając odpowiednie pliki konfigu-racyjne w systemie, jednak wykorzystanie w tym celu sysinstall pozwala zaoszczędzić czas.

Drugim etapem przygotowywania syste-mu do codziennej pracy, jest oczywiście po-lonizacja. Dlaczego warto jej dokonać? Po-nieważ zapewni to obsługę polskiej czcion-ki przez system. W przypadku części progra-mów pojawi się również dokumentacja w języ-ku polskim i spolonizowane opisy przycisków. Na początek należy edytować plik /etc/rc.conf, a następnie zmodyfikować jego zawartość tak jak pokazano na Listingu 1. Polecenia te usta-wiają czcionkę, obsługującą takie znaki jak ą, ę czy ź. To jednak nie koniec. W kolejnym pli-ku, a dokładniej /etc/ttys trzeba odnaleźć linij-kę: ttyv1 "/usr/libexec/getty Pc" con-s25l2 on secure. Jeżeli takiej nie ma, ko-nieczna będzie zamiana już istniejącego do przedstawionej postaci. Postępujemy tak aż do ttyv7. Nie wolno zmieniać linii oznaczo-nej ttyv8. Ostatnim krokiem jest dopisanie na końcu pliku /etc/login.conf zawartości jak na Listingu 2. Kiedy wszystkie pliki są już odpo-wiednio zmodyfikowane, należy przebudować bazę systemową wpisując w konsoli cap_mkdb /etc/login.conf. Jeśli w systemie zostały założone konta użytkowników, koniecznie mu-simy zmienić przypisaną im klasę default na userspl. W tym celu wystarczy wpisać pole-cenie: pw user mod nazwa_użytkownika -L userspl i gotowe!

Trzecim z podstawowych problemów jest problem z montowaniem pamięci przenośnych, czego doskonałym przykładem jest pendri-ve. Można temu zaradzić na kilka sposobów. Najbardziej oczywistym jest użycie polece-nia mount z określonymi parametrami. Przed Rysunek 4. Trzy warianty instalacji oferowane w programie sysinstall

Page 23: Linux 05 2009 PL

22

RozwiązaniaSystem z piekła rodem

maj 2009 23

RozwiązaniaSystem z piekła rodem

www.lpmagazine.org

montowaniem naszego nośnika danych, musi-my sprawdzić jak jest on oznaczony w syste-mie, a następnie przygotować miejsce w kata-logu /mnt. Aby stworzyć katalog wystarczy wy-dać polecenie np. mkdir /mnt/pendrive. Te-raz za pomocą polecenia ls /dev sprawdza-my zawartość katalogu /dev. Ponieważ pamięć flash najprawdopodobniej będzie oznaczona ja-ko np. da0s1, da0s2, można uzupełnić polece-nie do postaci ls /dev | grep da. Teraz zo-staną wyświetlone jedynie te pozycje, któ-re zawierają zwrot da. Na koniec wydajemy polecenie mount -t msdosfs /dev/da0s1

/mnt/pendrive. Jest to podstawowa metoda. Nic nie stoi na przeszkodzie, aby zautomatyzo-wać ten proces, dodając chociażby odpowiedni wpis do pliku /etc/fstab.

W podrozdziale tym przedstawiono jedy-nie trzy kluczowe i najczęściej spotykane trud-ności konfiguracyjne. Nietrudno się domyśleć, że sytuacji takich jest znacznie więcej. Opisa-nie wszystkich jest niemożliwe chociażby dlate-go, że nie można ich przewidzieć. W zależności od sprzętu, na którym FreeBSD jest zainstalowa-ny po konfigurację przyczyn powstania określo-nych trudności może być bardzo dużo. Warto za-poznać się z doskonałą i rozbudowaną dokumen-tacją dostępną aktualnie także w języku polskim (http://www.freebsd.org). Wiele interesujących artykułów można również znaleźć na polsko-języcznych stronach internetowych takich jak: http://www.bsd4u.org, http://freebsd.therek.net, http://www.freebsd.kie.pl oraz http://www.bsd-guru.org.

Jak zainstalować program?Jest to pierwsze pytanie, które zawsze zostaje zadane tuż po instalacji i konfiguracji nieznane-go wcześniej systemu lub dystrybucji. Oczywi-ście jest ono jak najbardziej na miejscu, ponie-waż dodawanie i usuwanie dodatkowego opro-gramowania to umiejętność kluczowa. Pozwala to nie tylko na codzienną pracę ale też na zarzą-dzanie systemem. W przypadku FreeBSD na-leży najpierw wyjaśnić czym są pakiety i tzw. porty. Są to zagadnienia kluczowe. Otóż insta-lacja oprogramowania może odbywać się dwo-jako. Pierwsza metoda to pobranie binarnej paczki, a następnie zainstalowanie jej w sys-temie. Druga to skompilowanie źródeł danego programu. Proces ten jednak został zautomaty-zowany dzięki wykorzystaniu wspomnianych portów. Nie ma potrzeby szukania i pobierania źródeł z Internetu.

Przygodę z dodawaniem i usuwaniem pro-gramów rozpocznijmy jednak od wspomnia-nych pakietów. Nie wymaga to żadnej wiedzy o kompilowaniu kodu. Ich niewątpliwą zaletą jest proste zarządzanie. Ponadto kompilowanie

dużych projektów, jak np. środowiska graficz-ne (GNOME czy KDE) ze źródeł zajmowałoby mnóstwo czasu i zasobów systemowych. Dzię-ki pakietom wystarczy chwila. Jak wygląda składnia przykładowego polecenia? Załóżmy, że chcemy zainstalować GNOME. W konso-li wpisujemy pkg_add -r -v gnome2. Analo-gicznie postępujemy instalując inne programy. Usuwanie jest równie proste. Wystarczy użyć pkg_delete nazwa_programu. Warto również wspomnieć, że skompresowany plik jakim jest każdy pakiet zajmuje znacznie mniej miejsca niż kompletny kod źródłowy. W przypadku kil-ku tego typu paczek nie miałoby to znaczenia, jednak mając do czynienia z kilkoma tysiącami różnica jest zdecydowanie odczuwalna.

Drugi sposób na rozszerzenie zbioru opro-gramowania zainstalowanego w systemie opie-ra na tzw. drzewie portów. Czym są tajemnicze porty? Mówiąc krótko, jest to zbiór instrukcji i wskazówek dla systemu, mówiących skąd ma-ją zostać pobrane źródła danego programu oraz w jaki sposób powinny zostać skompilowane i zainstalowane. Podczas instalacji sysinstall py-ta użytkownika, czy chce zainstalować por-ty na dysku twardym. W praktyce jest to ka-talog (/usr/ports), w którym znajdują się kolej-ne katalogi odpowiadające poszczególnym pro-gramom. Wewnątrz każdego zostaje stworzony plik Makefile (czasem Configure). To właśnie one określają warunki instalacji. Dodatkowo w niektórych przypadkach można spotkać plik di-stinfo informujący jakie pliki muszą zostać po-brane, aby kompilacja danego portu przebie-gła pomyślnie. Z mniej istotnych plików moż-na wymienić chociażby pkg-plist (lista zainsta-lowanych przez port plików), pkg_descr (opis) i katalog files (łaty bezpieczeństwa).

Jeżeli podczas instalacji systemu nie za-akceptowaliśmy kolekcji, wystarczy wywo-łać w konsoli sysinstall i wybrać odpowied-nią opcję. Alternatywnym sposobem jest sko-rzystanie z programu portsnap. Instalujemy go poleceniem pkg_add -r -v portsnap. Skompre-sowaną migawkę kolekcji portów pobieramy z Internetu poleceniem portsnap fetch. Następ-nie musimy ją rozpakować: portsnap extract i można kompilować dodatkowe oprogramowa-nie. W bardzo prosty sposób można aktualizo-wać listę portów. Wystarczy wpisać w konsoli portsnap update.

W jaki sposób zainstalować określony program, np. htop za pomocą portów? Na po-czątek należy zlokalizować odpowiadający mu port za pomocą polecenia whereis htop. Kiedy zostanie wyświetlony katalog, przecho-dzimy do niego (cd /usr/ports/ścieżka/htop) i wpisujemy make install clean. Po odczy-taniu Makefile oraz pliki konfiguracyjne zosta-

ną pobrane źródła, które następnie będą skom-pilowane, a wyniki zainstalowane. Na koniec polecenie clean usunie pozostałości po kom-pilacji.

Pewnie każdy zauważył, że metoda ta nie jest doskonała. Zajmuje sporo czasu, obciąża procesor, a same porty zajmują około 450 MB miejsca na dysku twardym. Jaki jest zatem sens używania portów? Otóż obok tych nie-licznych wad, istnieje wiele zalet. Jedną z naj-ważniejszych jest możliwość kompilacji ko-du z własnymi parametrami, co często pozwa-la zoptymalizować działanie programu, przy-spieszyć je i uczynić wydajniejszym. Dru-ga kwestia dotyczy licencji. Choć zdarza się to sporadycznie, niektóre programy nie mogą być rozprowadzane jako pliki binarne. Można w takiej sytuacji skompilować kod samemu. Ponadto porty umożliwiają zaawansowanym użytkownikom modyfikację kodu źródłowe-go, nakładanie własnych łat, usprawnień itp. Jest to niezwykle zaawansowana i wydajna metoda zarządzania oprogramowaniem. Zde-cydowanie warto ją chociażby wypróbować, a zalety zostaną niewątpliwie dostrzeżone w trakcie pracy.

PodsumowanieFreeBSD zdecydowanie nie jest kolejnym po-wieleniem istniejącego wcześniej systemu, choć na bazie takiego właśnie powstał. Wy-różniają go nie tylko takie cechy jak oryginal-ność, stabilność czy funkcjonalność. Jest sys-temem dojrzałym, ukoronowanym specyficzną licencją, dzięki której każdy może poznać zaka-marki kodów źródłowych. Choć jest to kontro-wersyjne można spotkać się z opinią, że Linux jest doskonałym systemem dla młodych użyt-kowników, ale dopiero FreeBSD zaspokaja po-trzeby doświadczonych użytkowników w śred-nim wieku. Czy jest to prawdą? Trudno osą-dzić. Jedno jest pewne, FreeBSD nie jest sys-temem na miesiąc czy rok, to system na długie lata. Każdy kto go pozna, z pewnością zostanie oczarowany i poczuje magię BSD. Czy warto? Zainstaluj FreeBSD i zobacz jaki powinien być system zmierzający do doskonałości, skromny lecz potężny. Taki właśnie jest!

Autor jest dziennikarzem, którego pasją stało się programowanie (C/C++, Java, Pascal, Qt, Gtk+) oraz systemy spod zna-ku pingwina (Slackware, Debian).Kontakt z autorem: [email protected]

O autorze

Page 24: Linux 05 2009 PL

RozwiązaniaWebmin i Usermin – zdalna administracja

24 maj 2009

RozwiązaniaWebmin i Usermin – zdalna administracja

25www.lpmagazine.org

Rozw

iąza

nia W prawie każdym środowisku korpora-

cyjnym istnieje potrzeba zapewnienia możliwości zdalnej konfiguracji syste-mu. Wynika to nie tylko z faktu, iż bar-

dzo często serwer fizycznie znajduje się w odległym miej-scu, ale jest również skutkiem tego, że większość admi-nistratorów jest odpowiedzialnych za wiele sieci i serwe-rów. Bardzo wygodne byłoby w takim razie posiadanie na-rzędzia, które umożliwiałoby szybką konfigurację podsta-wowych aspektów pracy systemu oraz uruchomionych na nim usług.

Omawiane kilka miesięcy temu narzędzia, takie jak Zenoss i David, umożliwiają monitorowanie stanu sieci oraz jej konfigurację (w ograniczonym stopniu). Są one bardzo dobrym rozwiązaniem, kiedy jesteśmy odpowie-dzialni za zarządzanie siecią o złożonej strukturze, zarów-no pod względem liczby użytkowników, jak i stosowane-go sprzętu.

Narzędzia, których obsługa i wykorzystanie zosta-nie przeze mnie przedstawione w tym artykule, prezen-tują inne podejście do zagadnienia zdalnej administra-cji – umożliwiają konfigurację parametrów pracy kom-

putera, na którym są zainstalowane. Nie są one wyposa-żone w rozbudowane narzędzia, służące do monitorin-gu całej sieci – stawiają za to na możliwość wprowadza-nia dowolnych zmian w konfiguracji komputera w stop-niu, który odpowiada możliwościom, jakie mielibyśmy siedząc przed nim.

Większość dostępnych obecnie narzędzi do zdalnej ad-ministracji posiada interfejs graficzny. Upraszcza to znacz-nie obsługę oraz skraca czas potrzebny na wykonanie naj-częstszych zadań. Webmin i Usermin – dwa narzędzia oma-wiane przeze mnie w tym artykule, posiadają wygodny i czytelny interfejs graficzny, podzielony na przejrzyste ka-tegorie. Co więcej, obydwa programy dają również możli-wość zdalnego wykonywania poleceń trybu konsolowego. Można śmiało powiedzieć, że stanowią doskonałą alterna-tywę dla narzędzi takich jak SSH, szczególnie dla mniej za-awansowanych użytkowników.

Omawiając rozwiązania dla zdalnej administracji nie sposób nie wspomnieć o kwestiach bezpieczeństwa. Oby-dwa opisywane przeze mnie narzędzia standardowo uży-wają szyfrowanego protokołu HTTPS, przez co zapewnia-ją bezpieczeństwo porównywalne do SSH. Pokażę dodat-

Webmin i Usermin Istnieje wiele narzędzi służących do zdalnego zarządzania systemem za pomocą przeglądarki internetowej. Dwa z nich – Webmin oraz Usermin – pozwalają na konfigurację najważniejszych parametrów pracy systemu oraz udostępniają wygodny interfejs, w którym użytkownicy mogą zdalnie wykonywać najczęstsze zadania.

Rafał Kułaga

Page 25: Linux 05 2009 PL

RozwiązaniaWebmin i Usermin – zdalna administracja

24 maj 2009

RozwiązaniaWebmin i Usermin – zdalna administracja

25www.lpmagazine.org

kowo, jak wykorzystując mniej znane funk-cje tych programów, jeszcze bardziej zwięk-szyć poziom bezpieczeństwa.

Webmin a UserminPomiędzy dwoma narzędziami, których wy-korzystanie jest tematem tego artykułu, istnie-je bardzo istotna różnica. Webmin jest progra-mem służącym do zdalnego wykonywania za-dań administracyjnych, takich jak:

• zarządzanie kontami użytkowników i gru-pami;

• monitorowanie pracy sprzętu;• zarządzanie pakietami, instalacja dodat-

kowego oprogramowania;• konfiguracja i monitorowanie pracy ser-

werów, takich jak: Apache, Samba i FTP;• konfiguracja i monitorowanie pracy urzą-

dzeń i połączeń sieciowych;• konfiguracja i przeglądanie plików lo-

gów.

Widzimy, że są to zadania często wykonywa-ne przez każdego administratora. Co więcej, Webmin umożliwia tworzenie tzw. klastrów, za pomocą których możemy jednocześnie wy-konywać to samo polecenie na wielu serwe-rach. Jest to szczególnie użyteczne w dużych sieciach komputerowych.

Usermin, będący mniej rozbudowanym narzędziem, świetnie uzupełnia takie rozwią-zanie, dając użytkownikom dostęp do funk-cji, takich jak:

• obsługa poczty elektronicznej za pomocą przeglądarki internetowej (tzw. webmail);

• zmiana hasła, konfiguracji sesji SSH i Telnet, zdalny dostęp do wiersza poleceń;

• zdalne zarządzanie plikami, przy użyciu bardzo wygodnego apletu Javy;

• monitorowanie procesów uruchomionych przez danego użytkownika.

Podsumowując – Webmin jest narzędziem przeznaczonym głównie dla administratorów systemu, natomiast Usermin umożliwia zdal-ne wykonywanie najczęstszych zadań przez użytkowników.

Instalacja programów Webmin i UserminNajnowsze wersje programów Webmin i Usermin są dostępne na stronie http://webmin.com/. Gorąco polecam instalację z wykorzystaniem pakietów binarnych prze-znaczonych dla Twojej dystrybucji – me-nedżer pakietów zadba bowiem o spełnie-nie wszystkich zależności. Jeżeli decydu-

jesz się na instalację bez wykorzystania pa-kietów, to nie zapomnij o instalacji języka Perl oraz biblioteki OpenSSL, co pozwo-li na pełne skorzystanie z możliwości za-bezpieczenia połączeń, jakie daje Webmin i Usermin.

Zarówno Webmin, jak i Usermin posia-dają wbudowane serwery HTTP, co sprawia, że ich instalacja jest bardzo prosta i pro-gram jest gotowy do pracy zaraz po insta-lacji. Po zainstalowaniu pakietów, jeżeli na komputerze uruchomiony jest firewall, pa-miętaj aby otworzyć porty wykorzystywane przez aplikacje – 10000 (Webmin) i 20000 (Usermin).

Po zakończeniu instalacji programu mo-żesz skierować swoją przeglądarkę interne-tową pod adres https://adres.ip.komputera:10000/ w celu otwarcia interfejsu progra-mu Webmin lub https://adres.ip.komputera:20000/, jeżeli chcesz sprawdzić działanie aplikacji Usermin.

Za każdym razem, gdy będziesz logo-wał się do nowej instalacji dowolnego z pre-zentowanych programów, przeglądarka in-ternetowa poinformuje Cię o nieprawidło-wym certyfikacie, którego używa zdalny in-terfejs. Dzieje się tak, ponieważ jest on pod-pisany przez jednostkę certyfikującą progra-mu Webmin, a nie przez zaufaną instytucję. Nie przejmuj się tym jednak – nie powodu-je to wyłączenia szyfrowania, które jest pod-stawą bezpiecznej komunikacji. Więcej in-formacji o certyfikatach używanych przez program Webmin znajdziesz w dalszej czę-ści artykułu.

Przejdźmy teraz do następnego kroku, którym jest konfiguracja zainstalowanych przez nas narzędzi.

Konfiguracja aplikacji WebminZanim będziemy mogli w pełni wykorzystać możliwości udostępniane przez program We-bmin, musimy go skonfigurować. W tym pa-ragrafie skupimy się na kwestiach związa-nych z ustawieniami interfejsu oraz adresami i portami, pod którymi będzie dostępny inter-fejs programu.

Po otworzeniu interfejsu programu We-bmin w oknie przeglądarki pojawi się stro-na z informacjami na temat systemu, na którym uruchomiony jest serwer programu Webmin, takimi jak wykorzystanie pamię-ci operacyjnej i przestrzeni dyskowej (Ry-sunek 1). W menu znajdującym się po lewej stronie interfejsu, z kategorii Webmin wy-bierz moduł Webmin Configuration. Twoim oczom ukaże się szereg ikon przedstawia-jących rozmaite aspekty konfiguracji apli-

kacji (Rysunek 2). Na samym dole znajduje się przycisk Start at boot time, umożliwia-jący ustawienie, czy Webmin ma być uru-chamiany przy starcie systemu (domyślnie aktywne).

Konfiguracja interfejsuWebmin udostępnia szereg sposobów zmiany wyglądu i interfejsu. Możliwa jest również zmiana języka interfejsu na język polski, jednak nie polecam tego rozwiązania – tłu-maczenie jest zdecydowanie w dość wcze-snej fazie rozwoju i brakuje w nim większo-ści podpisów.

Poszczególne ikony modułu Webmin Con-figuration umożliwiają:

• User Interface – zmiana kolorów w me-nu, rozmiaru ramek itp.;

• Language – zmiana języka interfejsu;• Index Page Options – konfiguracja menu

głównego Webmin;• Reassign Modules – zmiana modułów

przypisanych do poszczególnych katego-rii;

• Edit Categories – zmiana nazw kategorii;• Module Titles – zmiana nazw modułów;• Webmin Themes – zmiana motywów gra-

ficznych interfejsu, import i instalacja no-wych;

• Mobile Device Options – zmiana moty-wów graficznych używanych przy połą-czeniu z urządzeń mobilnych, takich jak palmtopy, smartfony.

Nie będziemy opisywać znaczenia poszcze-gólnych opcji znajdujących się w wymie-nionych menu – jeżeli masz wątpliwości co do znaczenia którejś z nich, możesz skorzy-stać z dokumentacji programu dostępnej na głównej stronie projektu (adres strony w ta-belce W Sieci).

Konfiguracja portów i adresówZarówno Webmin, jak i Usermin zawierają wbudowane serwery, umożliwiające prak-tycznie bezkonfiguracyjne uruchomienie aplikacji. Należy jednak zwrócić uwagę na kilka ważnych problemów związanych ze zdalnym dostępem do interfejsów progra-mów.

Domyślnie Webmin oczekuje połączeń na porcie 10000, na adresach przypisanych wszystkim interfejsom sieciowym zainstalo-wanym w komputerze. Z pewnych względów możesz chcieć zmienić te ustawienia, np. w celu uniemożliwienia zdalnego dostępu do in-terfejsu aplikacji, poprzez powiązanie progra-mu z adresem localhost (127.0.0.1).

Page 26: Linux 05 2009 PL

26

RozwiązaniaWebmin i Usermin – zdalna administracja

maj 2009 27

RozwiązaniaWebmin i Usermin – zdalna administracja

www.lpmagazine.org

Odpowiednie opcje konfiguracyjne znajdziesz w menu dostępnym pod ikoną Ports And Addresses. W celu ustawienia interfejsu i portu, na którym Webmin ma oczekiwać połączeń, zmień wartości zapi-sane w polach Bind to IP address – opcja Any address spowoduje nasłuchiwanie na wszystkich adresach konfigurowanego ser-wera, Only address... – jedynie na określo-nym adresie IP. Zmiana wartości zapisa-nej w polu Listen on port spowoduje zmia-nę portu, na którym Webmin będzie oczeki-wał połączeń.

Inną ważną opcją konfiguracyjną, znaj-dującą się w menu Ports and addresses, jest Listen for broadcasts on UDP port. Do-myślnie jest ona aktywowana na tym sa-mym porcie, na którym aplikacja oczekuje połączeń z interfejsem przeglądarkowym. Aktywowanie tej opcji umożliwi nam ła-twe skonfigurowanie funkcji zarządzania grupowego, opisywanego w następnych pa-ragrafach.

Po wprowadzeniu zmian w menu Ports and Addresses zawsze pamiętaj o sprawdze-niu konfiguracji ściany ogniowej systemu i zezwoleniu na połączenia przychodzące na określonych adresach.

Moduły Spośród wielu zalet programu Webmin jedną z najważniejszych jest możliwość rozszerza-nia za pomocą modułów. Dają one możliwość dodania nowych funkcji do aplikacji oraz po-zwalają na łatwe określanie praw dostępu użytkowników do poszczególnych obszarów konfiguracji systemu.

Bezpośrednio po instalacji Webmin posia-da bardzo szeroką listę modułów, za pomocą których będziemy mogli skonfigurować każ-dy aspekt pracy systemu i najczęściej używa-nych serwerów sieciowych. Pokażemy teraz, jak konfigurować, instalować i zarządzać mo-dułami.

Konfiguracja modułówNiemal za każdą z opcji, dostępnych w me-nu programu Webmin, odpowiada osobny moduł. Część z nich jest po instalacji nieak-tywna, ponieważ w systemie nie wykryto ser-werów, za których konfigurację odpowiadają, lub ich błędna konfiguracja uniemożliwia po-prawne działanie.

Każdy z modułów posiada swój własny panel konfiguracyjny, dostępny po kliknię-ciu etykiety Module Config w lewym górnym rogu ekranu. Nie sposób opisać tu znaczenia opcji konfiguracyjnych dla wszystkich modu-łów, ograniczymy się więc do porad, jak ra-dzić sobie w sytuacji, gdy któryś z modułów nie działa prawidłowo.

Jeżeli problemy sprawia moduł odpo-wiadający za konfigurację serwera, powi-nieneś przede wszystkim sprawdzić popraw-ność ścieżek dostępu do plików konfiguracyj-nych danego serwera. Następnie upewnij się, że użytkownik programu Webmin, na które-go koncie jesteś zalogowany, ma odpowied-nie prawa dostępu do modułu sprawiające-go problemy.

Instalacja i aktualizacja modułówInstalacja dodatkowych modułów programu Webmin jest niezwykle prosta i sprowadza się

do wskazania ścieżki dostępu do pliku ze ścią-gniętym modułem, lub wybrania modułu z li-sty dostępnych modułów.

Jeżeli chcesz zainstalować nowy moduł, w menu wybierz kategorię Webmin, następnie Webmin Configuration oraz Webmin Modules. Pokaże się strona, na której będziesz mógł wy-brać źródło danych (Rysunek 3):

• From local file – instalacja pliku znajdu-jącego się na maszynie, na której urucho-miony jest Webmin;

• From uploaded file – instalacja pliku znajdującego się na komputerze, za po-mocą którego łączysz się z interfejsem programu Webmin;

• From FTP or HTTP URL – instalacja modułu dostępnego pod wskazanym ad-resem URL;

• Standard module from www.webmin.com – instalacja jednego ze standardowych modułów. Po jej wybraniu pojawi się li-sta dostępnych modułów wraz z ich krót-kimi opisami;

• Third party module – instalacja jednego z nieoficjalnych modułów. Po jej wybra-niu pojawi się lista dostępnych modułów niestandardowych wraz z ich krótkimi opisami.

Po wskazaniu źródła, z którego Webmin ma pobrać dodatkowy moduł, możesz ustawić fla-gę ignorowania zależności (Ignore dependen-cies), oraz wybrać użytkownika, który będzie miał do niego dostęp po instalacji (Grant ac-cess only to users and groups), lub włączyć udostępnianie modułu wszystkim użytkowni-kom (Grant access to all Webmin users).

Warto okresowo przeprowadzać aktu-alizacje zainstalowanych modułów progra-mu Webmin. Informacja o dostępności now-szych wersji modułów pojawia się na ekra-nie startowym aplikacji. Za pomocą menu Upgrade Webmin, znajdującego się w mo-dule Webmin Configuration, możesz ręcznie przeprowadzić aktualizację pakietów. Aktu-alizację programu Webmin przeprowadza się podobnie jak instalację nowych modułów. W tym celu na zakładce Upgrade Webmin wy-bierz źródło danych, a następnie kliknij przy-cisk Upgrade Webmin.

Webmin umożliwia również skonfiguro-wanie automatycznej aktualizacji programu. Aby aktywować tę opcję, przejdź na zakładkę Scheduled update, a następnie zaznacz opcję Scheduled updating currently enabled oraz wybierz źródło, z którego mają być pobierane pakiety (domyślnie jest to główna strona pro-jektu Webmin).Rysunek 1. Strona, którą wita nas Webmin po zalogowaniu

Page 27: Linux 05 2009 PL

26

RozwiązaniaWebmin i Usermin – zdalna administracja

maj 2009 27

RozwiązaniaWebmin i Usermin – zdalna administracja

www.lpmagazine.org

Inne operacje na modułachW menu Webmin Modules możesz dodatko-wo usuwać, klonować oraz eksportować ist-niejące moduły.

Aby odinstalować dowolny z modułów, kliknij zakładkę Delete, a następnie z listy modułów wybierz moduł (ewentualnie wy-muszając ignorowanie zależności pomiędzy modułami – Ignore module dependencies when deleting) i kliknij przycisk Delete Se-lected Modules.

Klonowanie modułów może być przy-datne, jeżeli chcesz mieć kilka kopii dane-go modułu, o różnych ustawieniach, np. w sytuacji, gdy na zarządzanej maszynie dzia-ła wiele instancji danego serwera. W ce-lu sklonowania istniejącego modułu, na za-kładce Clone wybierz moduł do sklonowa-nia (Module to clone), nazwę kopii modułu (Cloned module name), jego kategorię (As-sign to category) oraz flagę powodującą po-wrót do domyślnej konfiguracji (Reset confi-guration to default).

Opcja eksportowania modułów (zakład-ka Export) może okazać się użyteczna, kie-dy będziemy chcieli szybko przenieść mo-duły (wraz z ustawieniami) pomiędzy wielo-ma instalacjami programu Webmin. Aby zapi-sać eksportowany moduł na serwerze, wybierz opcję File on server, natomiast aby ściągnąć go na dysk komputera, z którego się logujesz – Download in browser.

Logi modułówWiększość modułów programu Webmin two-rzy logi, w których zapisywane są zmiany do-konywane za ich pośrednictwem, wraz z data-mi i nazwami użytkowników, z których kont zostały one wprowadzone.

Aby zobaczyć logi wyświetlanego wła-śnie modułu, kliknij przycisk View Module-’s Logs, znajdujący się w lewym dolnym ro-gu interfejsu przeglądarkowego. Zauważ, że każdy moduł tworzy własny log, tak więc aby obejrzeć zapis czynności wykonanych w danym module, musisz go najpierw wy-wołać.

Zwiększamy bezpieczeństwoKiedy mówimy o aplikacjach służących do zdalnej administracji, nie sposób nie wspo-mnieć o zagadnieniach związanych z bezpie-czeństwem. Błędy w aplikacji lub zła konfigu-racja (co w praktyce zdarza się znacznie czę-ściej), mogą sprawić, że przyjdzie nam słono zapłacić za większą wygodę administracji.

Webmin należy do narzędzi bardzo do-brze przygotowanych do pracy w niezaufa-nych środowiskach, takich jak np. publicz-

na sieć bezprzewodowa. Domyślnie, jeżeli w systemie zainstalowane są odpowiednie pa-kiety, Webmin korzysta z połączeń szyfrowa-nych za pomocą protokołu kryptograficznego SSH, zapewniającego bardzo wysoki poziom bezpieczeństwa.

W tym paragrafie pokażemy, jak zmak-symalizować bezpieczeństwo zarządzanego przez nas serwera, zapobiegając nieuprawnio-nemu dostępowi i podsłuchaniu sesji.

Konfiguracja CAJeżeli Webmin został zainstalowany na sys-temie z dostępną biblioteką OpenSSL, to domyślnie posiada skonfigurowaną jednost-kę certyfikującą. Możesz jednak łatwo zmie-nić jej parametry korzystając z menu Certifi-cate Authority, dostępnego w module Webmin Configuration. Wprowadzenie spersonalizo-wanych ustawień oraz wybranie odpowied-niej długości klucza spowoduje jednak ko-

nieczność ponownego utworzenia certyfika-tów użytkowników – pamiętaj o tym, jeżeli w przyszłości będziesz chciał stworzyć nową konfigurację CA programu Webmin.

Utworzenie certyfikatu CA wymaga wy-pełnieniu kilku pól:

• Authority name – nazwa nowego CA;• Email address – adres e-mail CA;• Department – nazwa wydziału organizacji;• Organisation – nazwa organizacji;• State – stan (województwo);• Country Code – kod kraju, np. PL.

Oprócz tego musisz wybrać rozmiar klucza RSA dla nowego certyfikatu. Domyślnie ma on długość 512 bitów i jest to wartość zapew-niająca dostateczne bezpieczeństwo. Jeżeli jednak chcesz zwiększyć długość klucza, mo-żesz to zrobić podając odpowiednią wartość w polu Custom size.

Rysunek 2. Moduł Webmin Configuration, za pomocą którego zmieniamy ustawienia aplikacji

Rysunek 3. Instalacja dodatkowych modułów Webmin

Page 28: Linux 05 2009 PL

28

RozwiązaniaWebmin i Usermin – zdalna administracja

maj 2009 29

RozwiązaniaWebmin i Usermin – zdalna administracja

www.lpmagazine.org

Po podaniu wszystkich parametrów klik-nij przycisk Setup certificate authority. Po chwili zostanie wygenerowany nowy certy-fikat, którego podgląd dostępny będzie w po-lu tekstowym poniżej. Naciśnięcie przyci-sku Shutdown certificate authority spowodu-je wyłączenie jednostki certyfikującej – ist-niejące certyfikaty nie będą uwzględniane, a użytkownicy korzystający z nich będą musie-li logować się przy użyciu nazwy użytkow-nika i hasła.

Certyfikat serweraNastępnym krokiem jest wygenerowanie cer-tyfikatu dla serwera. Webmin będzie używał go w celu przedstawiania się użytkownikom

i ustanawiania szyfrowanego połączenia po-między klientem a serwerem.

Plik klucza możemy wygenerować przy wy-korzystaniu menu SSL Encryption, znajdującego się w module Webmin Configuration. Na zakład-ce Create Certificate należy wypełnić pola ana-logicznie jak dla certyfikatu CA, pamiętając przy tym, aby jako nazwy serwera użyć nazwy dome-nowej lub adresu IP, zaś w przypadku, gdy ad-res serwera jest zmienny, zaznaczyć opcję Any hostname. Pole Days before expiry określa waż-ność certyfikatu podaną w dniach, zaś zaznacze-nie opcji Use new key immediately powoduje na-tychmiastowe użycie klucza po wygenerowaniu.

Utworzony certyfikat możemy obej-rzeć na zakładce Current certificate. Webmin

umożliwia również użycie odrębnych plików kluczy dla połączeń z różnymi adresami IP – odpowiednie opcje odnajdziesz na zakładce Per–IP certificates. Więcej informacji na te-mat tej opcji znajdziesz w dokumentacji pro-gramu Webmin.

Certyfikaty klientówOprócz standardowej metody uwierzytelnia-nia, jaką jest nazwa użytkownika i hasło, We-bmin pozwala na użycie w tym celu certyfi-katów. Jest to wygodne i bezpieczne rozwią-zanie, jednak przy jego wykorzystaniu nale-ży pamiętać o niebezpieczeństwie uzyskania przez osobę niepowołaną dostępu do pliku z kluczem – może się to zdarzyć np. w sytuacji, gdy laptop, z którego korzysta użytkownik, zostanie ukradziony.

Jeżeli zdecydujesz się na ten sposób uwierzytelniania użytkowników, narzędzie do generowania certyfikatów znajdziesz w module Webmin Users, pod przyciskiem Re-quest an SSL certificate. Proces generowania klucza dla użytkownika odbywa się bardzo podobnie jak w przypadku tworzenia certy-fikatu serwera, i sprowadza się do wprowa-dzenia kilku parametrów i określenia długo-ści klucza.

Po wygenerowaniu certyfikatu możesz zainstalować go w przeglądarce interneto-wej. Proces logowania będzie teraz odbywał się automatycznie, bez potrzeby wprowadza-nia nazwy użytkownika lub hasła. Certyfi-katy można przypisywać konkretnym użyt-kownikom przy pomocy karty właściwo-ści konta.

Konta użytkownikówBezpośrednio po instalacji, w interfejsie Webmin możemy zalogować się przy użyciu konta użytkownika root systemu, na którym uruchomiony jest serwer. Nic nie stoi jed-nak na przeszkodzie, aby utworzyć dodat-kowe konta o określonych uprawnieniach. Rozwiązanie to okaże się szczególnie do-godne, gdy za zarządzanie serwerem odpo-wiada kilka osób lub gdy chcemy pozwo-lić użytkownikom na zmiany opcji związa-nych np. z działaniem serwera Samba syste-mu. Pokażemy również, jak używać certyfi-katów, służących jako alternatywny sposób uwierzytelniania.

Zmiany w zakresie konfiguracji kont użyt-kowników dokonujemy za pomocą modu-łu Webmin Users. Opcje konfiguracyjne kont użytkowników prześledzimy na przykładzie tworzenia nowego konta.

Aby utworzyć nowe konto kliknij przy-cisk Create a new Webmin user. W przeglądar-Rysunek 5. Lista serwerów z zainstalowanym programem Webmin

Rysunek 4. Ustawienia kont użytkownika

Page 29: Linux 05 2009 PL

28

RozwiązaniaWebmin i Usermin – zdalna administracja

maj 2009 29

RozwiązaniaWebmin i Usermin – zdalna administracja

www.lpmagazine.org

ce otworzy się strona, na której musisz wpro-wadzić parametry nowego konta (Rysunek 4). W grupie ustawień Webmin user access rights należy podać podstawowe parametry konta, takie jak nazwa użytkownika (pole Userna-me) i hasło (Password). Wybranie opcji Set to... spowoduje wymuszenie używania wybra-nego hasła, zaś Unix authentication spowodu-je wykorzystanie hasła istniejącego w syste-mie. Ustawienie flagi Force change at next lo-gin spowoduje wymuszenie zmiany hasła przy pierwszym logowaniu.

W kategorii User interface options może-my wybrać certyfikat, którym będzie posłu-giwał się użytkownik (SSL certificate name) oraz skonfigurować interfejs, zmieniając je-go język (Language) i motyw graficzny (Per-sonal UI theme).

Ważne ustawienia wpływające na bezpie-czeństwo znajdują się w grupie Security and limits options. Możemy tutaj ustawić godzi-ny oraz dni tygodnia, w których dany użyt-kownik będzie mógł się zalogować (Allowed days/times of the week/day) oraz skonfiguro-wać parametry takie jak minimalna długość hasła (Minimum password length) i maksy-malny dozwolony czas bezczynności (Inac-tivity logout time). Szczególnie duże znacze-nie ma opcja IP access control, pozwalają-ca na określenie adresów z których użytkow-nik może się logować (Only allow from listed addresses).

Każdemu z użytkowników możemy przy-pisać uprawnienia dostępu do określonych modułów. Lista wszystkich modułów znajdu-je się na samym dole strony, za pomocą której tworzymy konto użytkownika.

Po wybraniu odpowiednich modułów kliknij przycisk Create. Możesz już spróbo-wać zalogować się na nowe konto.

Zarządzanie grupami serwerówWebmin umożliwia zarządzanie nie tylko po-jedynczymi serwerami, ale również tzw. kla-strami – grupami komputerów z zainstalowa-nym programem Webmin. Dzięki temu może-my skrócić czas potrzebny na wykonanie ope-racji, które musielibyśmy powtarzać dla każ-dej maszyny.

Tworzenie grupy serwerówAby utworzyć nową grupę serwerów, przejdź do modułu Webmin Servers Index. Otworzy się strona (Rysunek 5), na któ-rej możesz dodawać serwery Webmin w celu zarządzania nimi za pomocą narzę-dzi do wprowadzania zmian w konfigu-racji grup serwerów (kategoria modułów Cluster). Jeżeli serwery, które chcesz do-

dać do listy mają aktywną funkcję nasłu-chiwania połączeń rozgłoszeniowych (Bro-adcast), to możesz z niej skorzystać, naci-skając przycisk Broadcast for servers. Mo-żesz również przeszukać całą sieć przy po-mocy opcji Scan for servers i podając da-ne logowania.

W większości przypadków serwery bę-dziesz dodawał ręcznie, przy pomocy opcji Register a new server. W oknie, które poja-wi się po kliknięciu tego przycisku, zostaniesz poproszony o podanie informacji, takich jak adres zdalnego serwera oraz port, na którym należy nawiązać połączenie. Możesz dodać serwer do istniejącej grupy lub utworzyć no-wą, podając jej nazwę w polu New group. Bar-dzo ważne jest, aby aktywować opcję SSL se-rver, jeżeli zdalny system korzysta z tego pro-

tokołu kryptograficznego, oraz nazwy użyt-kownika Webmin i hasła. Po kliknięciu przy-cisku Save, serwer zostanie dodany do listy zarządzanych serwerów.

Narzędzia administracji grupamiModuły służące do zarządzania grupami ser-werów znajdują się w kategorii Cluster. Omó-wimy teraz krótko najciekawsze możliwości, jakie oferują.

W środowiskach sieciowych, w których działa wiele serwerów, często istnieje potrze-ba, aby utworzyć nowe konto użytkownika na każdym z nich. Umożliwia to moduł Cluster Users and Groups. Aby dodać nowe konto użytkownika dla wybranych serwerów, klik-nij przycisk Add User i w wyświetlonym for-mularzu wprowadź wymagane dane, na ko-

Rysunek 7. Moduł Samba Windows File Sharing, służący do konfiguracji serwera Samba

Rysunek 6. Moduł Cluster Software Packages, służący do zarządzania pakietami grup serwerów

Page 30: Linux 05 2009 PL

30

RozwiązaniaWebmin i Usermin – zdalna administracja

maj 2009 31

RozwiązaniaWebmin i Usermin – zdalna administracja

www.lpmagazine.org

niec wybierając serwery, na których ma zo-stać utworzone zdefiniowane konto (Servers to create on). Bardzo podobnie przebiega pro-ces tworzenia grup na wielu serwerach jedno-cześnie (Add Group).

Moduł Cluster Cron Jobs pozwala na jed-noczesne zaplanowanie zadań Cron dla wielu serwerów. Po kliknięciu etykiety Create a new cluster cron job i wypełnieniu zestawu pól po-nownie będziesz musiał wybrać serwery, na których powinno zostać dodane owe zadanie.

Ciekawym narzędziem jest moduł Cluster Software Packages (Rysunek 6). Umożliwia on zarządzanie pakietami zainstalowanymi na wielu serwerach, jednoczesne przeprowa-

dzanie aktualizacji oraz porównywanie wer-sji oprogramowania dostępnego na poszcze-gólnych serwerach. Aby dokonywać tych ope-racji, musisz najpierw dodać serwery do wi-doku tego narzędzia, wybierając z listy roz-wijalnej nazwy komputerów i klikając przy-cisk Add server. Aby porównać pakiety za-instalowane na serwerach, użyj opcji Compa-re Servers. Za pomocą funkcji Installed Pac-kages możesz wyszukiwać określone pakiety, zaś przy użyciu narzędzia Install a New Pac-kage możesz zainstalować nowy pakiet z do-wolnego źródła.

Moduły Cluster Usermin Servers oraz Clu-ster Webmin Servers pozwalają na zarządzanie

ustawień programów Webmin i Usermin dla grup serwerów. W szczególności umożliwiają jednoczesną instalację i aktualizację modułów oraz zarządzanie użytkownikami programów.

Zastosowania programu WebminProgram Webmin jest już w pełni skonfiguro-wany. Po wprowadzeniu opisanych zmian sta-nowi bezpieczne i wygodne narzędzie do zdal-nego przeprowadzania prac administracyjnych, zarządzania uruchomionymi usługami, konta-mi użytkowników oraz umożliwia monitoro-wanie pracy sprzętu i przeglądania logów sys-temowych.

Nie sposób opisać, nawet w kilku artyku-łach, wszystkich możliwości konfiguracji sys-temu, jakie dają moduły programu Webmin. Jednak dzięki łatwości ich obsługi oraz bar-dzo dobrej dokumentacji, dostępnej na stronie głównej programu, nawet początkujący użyt-kownicy nie będą mieli problemu z wykorzy-staniem możliwości, jakie daje skonfigurowana przez nas aplikacja. Jest jeszcze jeden powód, dla którego nie opisuję tu sposobu wykorzysta-nia poszczególnych modułów – ich wykorzy-stanie wymaga zazwyczaj chociaż podstawo-wej wiedzy z zakresu sposobu działania danego serwera, lub mechanizmu systemu, za którego konfigurację dany moduł odpowiada.

Zamiast opisu poszczególnych modułów przedstawię teraz domeny zastosowań progra-mu Webmin wraz z przykładowymi moduła-mi, służącymi do ich realizacji.

Monitorowanie pracy serweraStandardowe moduły programu Webmin umożliwiają monitorowanie wielu aspektów pracy serwera – począwszy od podstawowych informacji o wykorzystaniu zasobów aż do zaawansowanych statystyk połączeń siecio-wych. Najważniejsze moduły służące do wy-konywania zadań z tej kategorii to:

• System Logs – moduł umożliwiający przeglądanie plików z logami systemu (głownie z katalogu /var/log);

• Webalizer Logfile Analysis – moduł służą-cy do analizy plików z logami i tworzenia na ich podstawie raportów;

• System and Server Status – moduł umoż-liwiający monitorowanie rozmaitych aspektów pracy systemu, takich jak uru-chomione usługi oraz dający możliwość powiadamiania administratora o proble-mach za pomocą poczty e-mail;

• Bandwidth Monitoring – moduł służący do analizy ruchu sieciowego i wykorzy-stania łącza sieciowego;

• Strona główna programów Webmin i Usermin – www.webmin.com

W Sieci

Rysunek 9. Przykładowe zastosowanie programu Usermin – proste rozwiązanie webmail

Rysunek 8. Aplet File Manager, umożliwiający wygodny dostęp zdalny do plików znajdujących się na serwerze

Page 31: Linux 05 2009 PL

30

RozwiązaniaWebmin i Usermin – zdalna administracja

maj 2009 31

RozwiązaniaWebmin i Usermin – zdalna administracja

www.lpmagazine.org

• Partitions on Local Disks – moduł służą-cy do zarządzania partycjami serwera;

• Printer Administration – moduł służący do zarządzania drukarkami podłączony-mi do serwera;

• SMART Drive Status – moduł służą-cy do odczytu danych diagnostycznych SMART dysku twardego.

Konfiguracja serwerówWebmin posiada wiele modułów, które umoż-liwiają wygodną konfigurację i zarządzanie serwerami najpopularniejszych usług siecio-wych. Najczęściej używane moduły z tej ka-tegorii to:

• Apache Webserver – moduł służący do konfiguracji serwera Apache. Udostępnia narzędzia do konfiguracji wszystkich naj-ważniejszych funkcji serwera WWW oraz umożliwia tworzenie i zarządzanie wirtu-alnymi hostami;

• BIND DNS Server – moduł ułatwiający konfigurację serwera DNS;

• MySQL Database Server – moduł służą-cy do konfiguracji, zarządzania i przeglą-dania baz danych MySQL uruchomionych na serwerze;

• SSH Server – moduł umożliwiający konfi-gurację serwera SSH;

• Samba Windows File Sharing – moduł słu-żący do konfiguracji serwera Samba, umoż-liwiającego współdzielenie plików z syste-mami Microsoft Windows (Rysunek 7);

• Sendmail Mail Server – moduł służący do konfiguracji serwera Sendmail.

Zdalny dostęp do systemu plików i terminalaWebmin zawiera bardzo wygodne narzędzie służące do przeglądania plików i folderów znajdujących się na zdalnej maszynie – Fi-le Manager (Rysunek 8). Jest to aplet Javy, posiadający bardzo duże możliwości, udo-stępniający interfejs bardzo podobny do te-go, który wszyscy znamy ze standardowych menadżerów plików dostępnych w KDE i Gnome.

Drugim wartym uwagi narzędziem jest zdalny terminal – Command Shell. Umożli-wia on szybkie wydawanie poleceń, bez po-trzeby ustanawiania sesji SSH pomiędzy dwo-ma maszynami.

Usermin – konfiguracja i zastosowanieWebmin jest programem przeznaczonym głównie dla administratorów poszukujących bezpiecznego i wydajnego narzędzia do zdal-

nego zarządzania serwerami. Usermin, będą-cy bardzo podobnym narzędziem, prezentuje podejście do problemu pracy zdalnej od stro-ny użytkownika (Rysunek 9). Nie udostęp-nia złożonych opcji konfiguracyjnych serwe-rów ani nie pozwala na dokonywanie zmian w ustawieniach systemu (co w tym wypadku by-łoby niepożądane), lecz stanowi wygodne na-rzędzie do odbierania i wysyłania poczty, za-rządzania plikami oraz zdalnego wykonywa-nia poleceń trybu tekstowego.

Konfiguracja UserminKonfiguracja programu Usermin jest bardzo prosta i odbywa się za pomocą specjalnego mo-dułu programu Webmin – Usermin Configura-tion. Niestety, nie jest on dostępny od razu po instalacji, tak więc będziesz musiał zainstalo-wać go na własną rękę.

Aby zainstalować moduł Usermin Confi-guration, otwórz w przeglądarce interfejs pro-gramu Webmin, a następnie za pomocą narzę-dzia służącego do instalowania modułów, po-bierz i zainstaluj wspomniany moduł korzysta-jąc ze standardowego repozytorium modułów http://www.webmin.com (opis instalacji modu-łów znajduje się w jednym z poprzednich pa-ragrafów). Po zakończeniu instalacji (która od-bywa się w pełni automatycznie) odśwież listę modułów, klikając przycisk Refresh Modules w lewym dolnym rogu interfejsu przeglądar-kowego. W kategorii Webmin powinna poja-wić się dodatkowa pozycja – moduł Usermin Configuration.

Po uruchomieniu zainstalowanego modu-łu z pewnością zauważysz bardzo duże podo-bieństwo do narzędzia używanego przy kon-figuracji programu Webmin. Po aktywowa-niu poszczególnych opcji okaże się, że różni-ce sięgają jeszcze głębiej – proces konfigura-cji programu Usermin w zasadzie nie różni się niczym od konfiguracji, którą przeprowadzili-śmy w poprzednich punktach.

Zwróć tylko uwagę na fakt, iż w przy-padku programu Usermin konfiguracja wy-glądu interfejsu nabiera znacznie większego znaczenia – odpowiednie pogrupowanie mo-dułów, wraz ze zmianą ich nazw, może znacz-nie poprawić wygodę obsługi systemu zdalne-go dostępu.

Zastosowania programu UserminUsermin również może być rozszerzany za pomocą modułów, dając możliwość zbudo-wania wydajnego systemu pozwalającego na-szym użytkownikom na wykonywanie pro-stych zadań, takich jak obsługa poczty elek-tronicznej lub zdalne zarządzanie plikami za pomocą apletu znanego z programu Webmin.

Usermin a urządzenia mobilneUsermin umożliwia szybkie tworzenie wygodnych rozwiązań dostępu zdalnego dla urządzeń mobilnych, takich jak PDA i smartfony. Opcje umożliwiające dostoso-wanie interfejsu do obsługi urządzeń tego typu znajdują się w module Usermin Confi-gurations, w menu Mobile Devices Options. Dla wolniejszych urządzeń mobilnych war-to wybrać jak najprostszy motyw graficzny interfejsu.

PodsumowanieZ artykułu dowiedziałeś się, jak zainstalować, skonfigurować i korzystać z dwóch bardzo do-brych programów do zdalnej pracy i admini-stracji – Webmin i Usermin. Wiesz już rów-nież, jak rozszerzać możliwości tych aplika-cji za pomocą dodatkowych modułów i jak prawidłowo zadbać o bezpieczeństwo two-rzonych rozwiązań. Chciałbym, abyś pamię-tał, że artykuł ten pokazuje jedynie, jak zbu-dować szkielet rozwiązania zdalnego dostępu dla użytkowników – w rzeczywistych środo-wiskach istnieje bowiem bardzo duża różno-rodność problemów, którym sprostać muszą systemy tego typu, a których nie sposób opi-sać w jednym artykule.

Na stronie głównej programu Webmin znajdziesz również inną aplikację – Virtualmin, usprawniającą zarządzanie serwerami w zło-żonych środowiskach wykorzystujących wir-tualizację.

Jeżeli zainteresował Cię temat zdalne-go zarządzania serwerami przy użyciu pro-gramów Webmin i Usermin, to zachęcam do poszukiwania dodatkowych informacji na stronach internetowych. Znajdziesz na nich nie tylko wiele porad dotyczących za-awansowanych aspektów konfiguracji oma-wianych aplikacji, ale również wiele dodat-kowych modułów, które mogą znacznie uła-twić Ci pracę. Czytelnikom zajmującym się zarządzaniem większymi sieciami szczegól-nie polecam dokładne zapoznanie się z moż-liwościami zarządzania grupowego, udo-stępnianymi przez program Webmin.

Autor interesuje się bezpieczeństwem systemów informatycznych, programo-waniem, elektroniką, muzyką rockową, architekturą mikroprocesorów oraz za-stosowaniem Linuksa w systemach wbu-dowanych.Kontakt z autorem: [email protected]

O autorze

Page 32: Linux 05 2009 PL

RozwiązaniaWspółpraca telefonów komórkowych z systemem Linux

32 maj 2009

RozwiązaniaWspółpraca telefonów komórkowych z systemem Linux

33www.lpmagazine.org

lin

ux@

softw

are.

com

.pl

Współpraca telefonów z systemem LinuxObsługę telefonów komórkowych w Linuksie można krótko podsumować – nie zawsze działa, nie posiada oficjalnego wsparcia producentów aparatów, lecz jeśli działa, to sprawia dużą radość.

Michał Sobczak

Obsługa telefonów komórkowych w systemie Linux jest zupełnie odmienna od obsługi tele-fonów w innych systemach, a głównie w Win-dows. W przeważającej większości producen-

ci sprzętu zostawiają użytkowników Linuksa bez odpowied-niego oprogramowania, które będzie oficjalnie wspierane. Z ekonomicznego i racjonalnego punktu widzenia jest to cał-kiem rozsądne działanie, ponieważ koszt produkcji komer-cyjnego oprogramowania musi być odpowiednio uzasadnio-ny. W przypadku użytkowników systemu Linux, producen-ci zapewne twierdzą, że środowisko jeśli będzie oprogramo-wania potrzebowało, to go stworzy. Z drugiej jednak strony utrzymywanie specyfikacji sprzętu i protokołów komunika-cyjnych jako tajemnicę handlową, jest czynnikiem spowal-niającym rozwój tego typu aplikacji. Na szczęście wiele te-lefonów działa w sposób ustandaryzowany i nie ma proble-mów tego typu.

Wśród otwartego oprogramowania wyróżniamy obecnie kilka tytułów, które są warte kilku minut uwagi. W zależno-ści od tego, jaki telefon komórkowy posiadamy, potrzebuje-my innych aplikacji. Warto również zwrócić uwagę, że mó-wimy tutaj o telefonach, których systemem operacyjnym nie

jest Symbian (z drobnymi wyjątkami), Palm OS ani żaden mobilny Linux – to są kwestie osobne.

NokiaWśród oprogramowania dla telefonów marki Nokia, prym wie-dzie aplikacja Gnokii, obecnie zarządzana m. in. przez polskie-go programistę. Jest to oprogramowanie przenośne, w sen-sie obsługi wielu systemów operacyjnych, np. Linux, Solaris, otwarte BSD oraz Windows. Gnokii to aplikacja z interfejsem tekstowym, jednakże posiada także wiele interfejsów graficz-nych, takich jak Xgnokii oraz Gnocky.

Rysunek 1. Interfejs graficzny oprogramowania Gnokii – Gnocky

Page 33: Linux 05 2009 PL

RozwiązaniaWspółpraca telefonów komórkowych z systemem Linux

32 maj 2009

RozwiązaniaWspółpraca telefonów komórkowych z systemem Linux

33www.lpmagazine.org

Projekt rozpoczął się w 1998 roku jako opro-gramowanie obsługujące telefony Nokia 3810/3110/8110. Umożliwia komunikację z telefonem za pomocą kabla szeregowego, USB, podczer-wieni oraz Bluetooth. Pozwala na wysyłanie i odbieranie wiadomości SMS wraz z potwierdze-niami dostarczenia. Warto wspomnieć, że obsłu-giwana jest opcja WAP Push. Ponadto uzyskuje-my dostęp do książki adresowej, kalendarza oraz, co chyba najciekawsze, możliwości wykonywa-nia i odpowiadania na rozmowy głosowe. Wśród obsługiwanych aparatów znajdują się m. in. se-rie 51xx, 60xx, 61xx, 62xx, 63xx oraz telefony z systemem Symbian, tj. 6600 i 6260. Szczegó-łowa lista obsługiwanych aparatów znajduje się pod adresem http://wiki.gnokii.org.

SiemensDla posiadaczy aparatów marki Siemens został przygotowany projekt SieFS, który jest wirtual-nym systemem plików, umożliwiającym dostęp do pamięci telefonu. Pamięć taka, z wykorzysta-niem SieFS, może być podmontowana jako nor-malne urządzenie za pomocą kabla transmisyjne-go lub podczerwieni. SieFS dostarczą ciekawą opcję konwertera wiadomości głosowych (vmo-2wav). Ponadto posiada narzędzie do obsługi linii poleceń (slink) oraz moduł edycji systemu plików (siefs). Autor podaje na stronie internetowej na-stępującą sekwencję poleceń. Można ją uzupełnić opcjami w miejsce nawiasów kwadratowych.

mount -t siefs [-o options] /dev/ttyS0

/mnt/mobile

fusermount /mnt/mobile siefs /dev/

ttyS0 [options]

vmo2wav [-o output_file.wav] input_

file.vmo

SieFS został oparty o FUSE (ang. Filesystem in USErspace). Obsługiwanymi telefonami są: S45, ME45, C65, SL55 oraz kilka innych. Pełną listę funkcjonujących połączeń można znaleźć pod adresem http://chaos.allsiemens.com/siefs. Ostatnia jednak aktualizacja SieFS miała miej-sce w 2005 roku, zatem można stwierdzić, że za-interesowanie projektem jest coraz mniejsze.

LG, Samsung, SanyoWłaściciele aparatów LG, Samsung oraz Sanyo mogą korzystać z programowania BitPim. Sze-roka lista obsługiwanych aparatów znajduje się pod adresem http://www.bitpim.org. Projekt wy-daje się być całkiem aktywnym, gdyż ostatnia jego aktualizacja miała miejsce 15 grudnia 2008 roku. Świetnie ponadto prezentuje się system pomocy umieszczony na stronie internetowej, który zawiera listę testowanych modeli aparatów wraz ze znanymi problemami z ich obsługą.

BitPim to aplikacja umożliwiająca podgląd oraz manipulację danymi znajdującymi się w pamięci telefonu komórkowego. Możliwy jest m.in. dostęp do: książki adresowej, kalenda-rza, tapet, dzwonków oraz wbudowanego sys-temu plików. BitPim działa na systemach Li-nux, Mac OS X oraz Windows. Oprogramowa-nie obsługuje generalnie telefony oparte o chip-set Qualcomm CDMA. Projekt funkcjonuje od 2003 roku.

MotorolaPopularne ostatnio telefony marki Motoro-la mają także oprogramowanie specjalnie dla nich napisane – moto4lin. Aparaty typu: Razr V3, Rokr E1 oraz m.in. A630, E815 są ozna-czone jako współpracujące z moto4lin. Peł-na lista aparatów znajduje się na stronie http:

//moto4lin.sf.net. Projekt działa od 2005 roku, jednakże od dłuższego czasu nie miała miejsce żadna znacząca jego aktualizacja.

Pozostałe projektyPoza najbardziej charakterystycznym oprogra-mowaniem pokroju Gnokii istnieje cała gama aplikacji, które w mniejszym lub większym stopniu obsługują różne aparaty. Są to także bi-blioteki oraz interfejsy użytkownika dla wcze-śniej wymienionych aplikacji. Możemy tutaj wymienić m.in. KMobileTools, floAT's Mobi-le Agent, Funambol, Gammu, Wammu i kil-ka innych.

PodsumowaniePo krótkim przeglądzie możemy stwierdzić, że wprawdzie oficjalne wsparcie dla systemu Li-nux nie istnieje ze strony producentów apara-tów, ale prywatna inicjatywa skutecznie temu zapobiega. Dostarczane oprogramowanie cza-sami wymaga większej ilości czasu, aby po-prawnie obsługiwało dany model aparatu. Za-wsze jest jednak możliwość, aby we własnym zakresie przygotować i opublikować odpo-wiednie moduły oprogramowania, rozwijając tym samym społeczność otwartego oprogra-mowania.

Rysunek 2. Aplikacja BitPim

Rysunek 3. Oprogramowanie KMobileTools

Michał Sobczak. Projektant oprogramowa-nia, autor literatury informatycznej. Właści-ciel firmy Septerion zajmującej się produk-cją i sprzedażą oprogramowania wspoma-gania zarządzania. Specjalizuje się projek-towaniu portali społecznościowych. Kontakt z autorem: [email protected].

O Autorze

Page 34: Linux 05 2009 PL

RozwiązaniaSynchronizacja urządzeń mobilnych

34 maj 2009

RozwiązaniaSynchronizacja urządzeń mobilnych

35www.lpmagazine.org

linux

@so

ftwar

e.co

m.p

l

Przenośne urządzenia mogące współpracować z komputerem mogą być wyposażone w jeden z kilku konkurujących systemów. Przede wszyst-kim funkcjonuje cała rodzina systemów Win-

dows Mobile, do tego mamy Palm OS czy Symbiana. Jak na-kazuje tradycja, najbardziej problematyczny we współpracy jest produkt firmy Microsoft Windows Mobile. To, co w je-go przypadku jest jedynie początkiem drogi do synchroniza-cji, w pozostałych przypadkach powinno być niemal wszyst-kim co należy zrobić.

Pierwszym krokiem do wykonania będzie zapewnienie systemowi możliwości wykrycia i komunikowania się z pod-łączonym urządzeniem. Zależnie od urządzenia i systemu, jaki ono wykorzystuje, należy zacząć od modułów jądra. Ich ewentualne uzupełnienie mogą stanowić dodatkowe sterow-niki do pobrania w formie źródeł.

Kiedy już system wykrywa urządzenie, pozostaje kwe-stia programu, poprzez który można zarządzać urządzeniem oraz jego możliwości. Istnieje wiele tego typu narzędzi za-równo graficznych, jak i tekstowych. Różnią się one znacz-nie pod kątem synchronizacji, jak i późniejszych możliwo-ści działania.

Na koniec pozostaje problem o znacznie większej wadze niż codzienne korzystanie z elektronicznego asystenta. Przeno-śne urządzenia, podobnie jak komputery z systemem pewnej fir-my, czasem wymagają ponownego wgrania całego oprogramo-wania. W sytuacji takiej, przy największej chęci unikania sys-temów komercyjnych, Windows jest najpewniejszym i najbez-pieczniejszym rozwiązaniem. Alternatywą pozostaje urucho-mienie na urządzeniu Linuksa, o ile jest to w ogóle możliwe.

KernelUrządzenia PDA, takie jak Tungsten E, po podłączenia po-przez USB wykorzystują asynchroniczną transmisję szerego-wą. Z tego powodu potrzebna jest obsługa asynchroniczne-go protokołu PPP (ang. point to point protocol). Dodanie tych elementów w jądrze systemu wraz z odpowiednim sterowni-kiem dla urządzenia wykorzystującego system Palm OS nie-mal załatwia problem synchronizacji. W przypadku wspo-mnianego Tungsten E potrzebny jest również sterownik vi-sor. Położenie w drzewie jądra potrzebnych elementów wi-doczne jest na Listingach 1 i 2.

W przypadku urządzeń z systemem WM należy postępować zgodnie z wymaganiami projektu Synce dla własnej dystrybucji.

Synchronizacja urządzeń mobilnychWspółcześnie dużą popularność zdobyły komputery kieszonkowe nazywane elektronicznymi asystentami czy mądrymi telefonami. Jednym z warunków ich pełnego wykorzystania jest możliwość zarządzania danymi poprzez podłączenie do komputera. Pozwala ono na tworzenie kopii zapasowych, wygodne przeglądanie notatek czy kalendarza. Czynności te wymagają jednak synchronizacji z systemem, której wykonanie nie tylko z Linuksem może przyprawić o ból głowy.

Sylwester Zdanowski

Page 35: Linux 05 2009 PL

RozwiązaniaSynchronizacja urządzeń mobilnych

34 maj 2009

RozwiązaniaSynchronizacja urządzeń mobilnych

35www.lpmagazine.org

W przypadku dystrybucji Debian konieczna jest instalacja ze źródeł sterowników USB; usb-mdis-lite. Bez tych sterowników system nie będzie w stanie odczytać nawet numeru seryjnego urządze-nia. Stanowią one podstawę do współpracy syste-mu z urządzeniem. Pomimo iż instalacja ze źródeł tego sterownika sprowadza się do dwóch komend, kryje pewien haczyk. Jeżeli system jest wyposażo-ny w skompilowane i odchudzone jądro, możliwy jest brak wymaganych elementów.

Najprostszym działającym rozwiązaniem jest wykorzystanie domyślnie zainstalowane-go przez system jądra. W przypadku systemu Debian Lenny instalowane jądro 2.6.26-1-686 sprawdza się bez zastrzeżeń. Na Rysunku 1 wi-dać jednak jak duża ilość modułów jest instalo-wana wraz z tym jądrem.

Dalsze elementy potrzebne do komunikacji z urządzeniem również zapewnia Synce. W je-go skład wchodzą trzy protokoły:

• RemoteReplicationAgent – protokół wyko-rzystywany do synchronizacji wszystkich urządzeń z systemami wcześniejszymi niż Windows Mobile 2005. Obecnie wykorzy-stywany częściowo dla synchronizacji pli-ków, multimediów i notatek;

• RemSync – protokół wykorzystujący port 999 do przekazywania informacji o statu-sie etapów synchronizacji;

• DesktopPassThrough – protokół wykorzy-stywany do udostępniania urządzeniu po-łączenia internetowego komputera.

Dla systemu Symbian do wersji 6.1 konieczna jest obsługa protokołu PLP. W wersjach kolej-nych został on zastąpiony przez protokół PPP.

Wykrywanie urządzeńDo sprawdzenia jak zachowuje sie urządzenie, oraz usunięcia ewentualnych problemów potrzeb-ne jest kilka poleceń. Przede wszystkim dmesg oraz tail, dzięki którym możliwe jest obserwo-wanie co właściwie dzieje się w systemie. Naj-lepszą możliwością jest wykorzystanie polecenia tail -f /var/log/messages, które spowoduje wyświetlanie informacji systemu w konsoli.

W przypadku WM system zakomuniku-je podłączenie zaraz po podłączeniu urządzenia. System PalmOS przed zakomunikowaniem obec-ności wymaga wciśnięcia przycisku synchroniza-cji. Najgorszą możliwością jest brak jakiejkol-wiek reakcji lub informacja o podłączeniu urzą-dzenia, ale bez podania żadnych jego danych. Sy-tuacja taka oznacza problem z fizycznym połącze-niem lub ze sterownikami. Jeżeli system wyposa-żony jest we wcześniej wskazane oprogramowa-nie, nie powinna ona mieć miejsca. Wyświetlone przez system informacje będą się znacznie różniły

zależnie od systemu. Dla systemu PalmOS utwo-rzone zostanie urządzenie znakowe /dev/ttyUSB0 i /dev/ttyUSB1. Takie działanie ma zarówno plu-sy, jak i minusy. Zasadniczym plusem jest łatwość

stwierdzenia, do jakiego urządzenia mają się od-woływać programy synchronizujące dane. Minus polega na kłopotach z kolejnością czynności po-trzebnych do synchronizacji. Powstaje paradoks.

Rysunek 1. Nadmiarowe moduły domyślnego jądra

Rysunek 2. Wykrycie WM przez Linuksa

Listing 1. Położenie modułów jądra dla PPPDevice Drivers --->

Network device support --->

<M> PPP (point-to-point protocol) support

<M> PPP support for async serial ports

Listing 2. Położenie modułów jadra dla transmisji szeregowej<M>USB Serial Conventer support --->

...

<M> USB PocketPC PDA Driver

...

<M> USB Handspring Visor / Palm m50x / Sony Clie Driver

Listing 3. Tworzenie urządzeń znakowych1: # mknod /dev/ttyUSB0 c 188 0

2: # mknod /dev/ttyUSB1 c 188 1

3: # ln -s /dev/ttyUSB1 pilot

Page 36: Linux 05 2009 PL

36

RozwiązaniaSynchronizacja urządzeń mobilnych

maj 2009 37

RozwiązaniaSynchronizacja urządzeń mobilnych

www.lpmagazine.org

Aby odwołać się do urządzenia, należy rozpocząć na urządzeniu synchronizacje, jednak po rozpo-znaniu urządzenia program doprasza się o jej roz-poczęcie po raz drugi. Pamiętając, że urządzenie znika wraz z jego odłączeniem, konieczne jest ręczne tworzenie urządzenie znakowego. O tym jednak później przy właściwym programie syn-chronizującym. Dla systemu WM powstaje urzą-

dzenie znakowe USB, które można zidentyfiko-wać przez polecenie lsusb.

Programy dla PalmOSW ostatnim kroku do wymiany danych pomię-dzy komputerem a urządzeniem potrzebne jest oprogramowanie synchronizujące i przekazują-ce dane. Istnieje wiele tego rodzaju programów

zarówno dla środowisk KDE, GNOMA, jak i konsoli. Do podstawowych narzędzi można za-liczyć KPilot. Program użyteczny dla urządzeń z systemem PalmOS.

Jego użycie jest raczej bezproblemowe, wy-starczy w konfiguracji wybrać właściwe urzą-dzenie oraz prędkość. Należy jednak pamiętać, iż urządzenie ttyUSB zostanie utworzone dopiero po naciśnięciu przycisku HotSync. Dlatego też mo-gą pojawić się kłopoty z nawiązaniem połączenia. Skutecznym rozwiązaniem powinno być utworze-nie urządzeń znakowych, następnie uruchomienie programu KPilot. Dzięki temu program będzie myślał, że urządzenie istnieje, chociaż synchro-nizacja nie została jeszcze rozpoczęta. Do utwo-rzenia urządzeń znakowych potrzebne jest polece-nie mknod widoczne na Listingu 3. Polecenie w li-nii 3 Listingu 3 tworzy dowiązanie symboliczne do urządzenia. Dzięki niemu niepotrzebne powin-no być zmienianie urządzenia w konfiguracji pro-gramu KPilot, wystarczy jedynie ustawienie wła-ściwej prędkości. Korzystajac z takiego rozwiąza-nia należy pamiętać o uprawnieniach dostępu do urządzenia. Po udanej synchronizacji dane z urzą-dzenia dostępne będą poprzez program Kontact, z którym KPilot jest połączony.

Innym programem do prostego wykorzy-stania z systemem PalmOS jest Evolution. Pro-gram ten wyposażony został w kreator konfigu-racji pozwalający na połączenie z urządzeniem. Jego elementem jest gpilot. W przypadku proble-mów z automatycznym wykryciem lub zgłosze-niem problemu związanego z tą aplikacja, moż-na ja wywołać za pośrednictwem konsoli. Na Ry-sunku 5 widoczne są wywołane z konsoli progra-my gpilot oraz Evolution, które pozwoliły na wy-konanie synchronizacji. Po jej zakończeniu, gdy urządzenie automatycznie kończy połączenie, pojawia sie błąd, również widoczny na Rysunku.

Programy dla Windows MobileW przypadku oprogramowania Microsoft moż-liwości synchronizacji są dużo mniej komforto-we. Podstawowe oprogramowanie stanowi Syn-ce. Jego instalacja jest związana z każdą dystry-

Rysunek 3. Lista urządzeń USB

Rysunek 4. Konfiguracja KPilot

Rysunek 5. Synchronizacja Evolution

Wszystkie opisane czynności były wykony-wane w trakcie pisania artykułu. W przypad-ku braku ich skuteczności należy korzystać z informacji systemu, których sposób odczytu podany jest w artykule. Przed rozpoczęciem prób synchronizacji należy również wykonać kopię zapasową danych. Jej brak niesie ry-zyko utraty synchronizowanych informacji. Sytuacja taka miała miejsce w czasie prób synchronizacji podczas pisania artykułu.

Ważne uwagi praktyczne:

Page 37: Linux 05 2009 PL

36

RozwiązaniaSynchronizacja urządzeń mobilnych

maj 2009 37

RozwiązaniaSynchronizacja urządzeń mobilnych

www.lpmagazine.org

bucją, czego opis można znaleźć na stronach projektu podanych na końcu artykułu. Po za-instalowaniu oprogramowania należy zwrócić uwagę na kilka podstawowych elementów:

• odccm – jest to demon pozwalający utrzy-mać połączenie z systemami WM. Musi on zostać uruchominy w sposób właściwy dla dystrybucji;

• synce-sync-engine – porozumiewa się z WM za pomocą protokoły ActiveSync;

• synce-Kpm/synce-Gnome – narzędzia gra-ficzne odpowiednio dla środowiska KDE i Gnom.

Po uruchomieniu wszystkich powyższych ele-mentów synchronizacja odbędzie się automatycz-nie. Narzędzie graficzne pozwoli na wyświetlenie stanu baterii instalacji oprogramowania, jednak nie sposób pobrać i wykorzystać jakiekolwiek da-ne z urządzenia. Synce oferuje kilka narzędzi kon-solowych do wykonywania czynności takich jak kopiowanie czy usuwanie plików oraz uruchamia-nie programów. Dla poleceń widocznych w Tabe-li 1 ważna jest wersja oprogramowania; nowsze wersje nie wymagają przedrostka synce-.

Nie daje jednak rzeczywistej możliwości odczytania kalendarza czy kontaktów z WM6, jak było to możliwe dla PalmOS.

Próby ominięcia tego ograniczenia na chwi-lę obecną prowadzą do wykorzystania serwera Exchange, z którym WM potrafi się porozumieć. Rozwiązanie takie oferuje Google, pozwalając na kopiowanie zawartości asystenta na swoje serwe-ry Exchange. Z kolei program Evolution może działać jako klient tych serwerów. Z jednej strony daje to kopię zapasową danych, z drugiej zaś wy-syła w internetowy chaos bardzo prywatne dane.

Należy jednak dobrze zrozumień idee tego rozwiązania. Urządzenie przesyła dane na ser-wer znajdujący się w sieci po czym pobieramy je z powrotem na komputer. Akceptując tą ideę należy się pogodzić z wypuszczeniem prywat-nych informacji w internetową dzicz.

Alternatywą dla powyższych zmagań jest zainstalowanie na urządzeniu systemu Linux. Rozwiązania takie oparte są na różnych dys-trybucjach Linuksa. Wadą ich są braki w ob-słudze wszystkich funkcji telefonu. Niezależ-nie od modelu i wersji oprogramowania nale-ży spodziewać się problemów z obsługą apara-tu czy sieci bezprzewodowej. Jako punkt wyj-ścia można przyjąć rozwiązania takie jak Open-Moko, który można zainstalować w formie do-datkowego oprogramowania, czy systemy Tit-chy, OPIE, Qtopia oraz IMOHO. W przypad-ku prób ich instalacji konieczne jest wykonanie kopii zapasowych wszystkich dancyh.

Inne programy, inne systemyŚwiat przenośnych urządzeń jest znacznie większy niż WM czy PalmOS. Również ilość dostępnych programów obsługujących takie urządzenia jest znacznie większa niż już przed-stawione. Jako uniwersalne narzędzie do syn-chronizacji różnych rodzajów telefonów moż-na wymienić Wammu. Obsługuje on połącze-nie poprzez kabel USB, podczerwień, kabel szeregowy i Bluetooth. Daje możliwość wyko-rzystania jednego z czterech protokołów:

• bazującego na AT;• OBEX i IrMC;• Nokia;• Symbian Gnapplet.

Zasadniczo powinien być w stanie obsłużyć większość urządzeń, których nie można zakla-syfikować do szerzej omówionych grup Pal-mOS i WM.

Podobnym programem posiadającym po-kaźną listę obsługiwanych telefonów jest Bit-PIM. Obsługuje on telefony LG, Ericsson czy Samsung.

OpenOBEX to program przydatny dla no-wych telefonów Nokia. Wykorzystując protokół OBEX (ang. Object Exchange) protokół ten ma znacznie szersze możliwości niż komunikacja z te-lefonami. Pozwala na komunikację między kom-puterami czy przesyłanie zdjęć przez kamery.

Podsumowanie Wraz z postępem miniaturyzacji urządzenia przenośne w formie telefonów czy dedyko-wanych asystentów są coraz popularniejsze. Ich współpraca z systemem Linux jest możli-wa zawsze przy poświęceniu odpowiedniej ilo-ści czasu na znalezienie właściwego rozwiąza-nia. Niestety, w przypadku WM, a szczególnie WM6, rozwiązania takie maja skutki uboczne.

Zasadniczo znaczną część urządzeń mobil-nych można bez większych problemów zsynchro-nizować z jednym z kilku programów: Evolution, Wammu, BitPIM czy OpenOBEX. Podejmując jakiekolwiek działania należy pamiętać o różni-cach między dystrybucjami Linuksa oraz bezpie-czeństwie danych zapisanych na urządzeniu.

Tabela 1. Polecenia Synce

polecenie funkcjasynce-pcp kopiowanie plikówsynce-pls wyświetlenie zawartości katalogusynce-pmv tworzenie katalogusynce-prm usuwanie plikusynce-prmdir uruchamianie programusynce-pstatus wyświetlenie statusu podłączonego urządzeniasynce-install-cab instalacja plików cab

• http://www.synce.org/moin/ – główna strona projektu Synce;• http://www.gentoo.org/doc/en/pda-guide.xml – instrukcja podłączenia PDA użyteczna

nie tylko dla Gentoo;• http://www.linuxtogo.org/~htcpxa/htcuniversal/images/OpenMoko/ – program

OpenMoko w formie pliku CAB.

W Sieci

• Jakie sterowniki leżą u podstaw synchronizacji;• Jakie są możliwości synchronizacji;• Jak dużo można zrobić z PalmOS;• Jak dużo można zrobić z Windows Mobile.

Czego się dowiesz:

Absolwent technikum policealnego na kierun-ku informatyki w Szczecinie. Obecnie student 2 roku Europeistyki na Uniwersytecie Szcze-cińskim. Od ponad roku pracownik firmy świadczącej usługi internetowe w Gryfinie.Kontakt z autorem: [email protected]

O autorze

Page 38: Linux 05 2009 PL

SprzętTest modemów gprs

38 maj 2009

SprzętTest modemów gprs

39www.lpmagazine.org

a

utor

zy@

lpmag

azine

.org

Test modemów gprsKażdy z operatorów sieci gsm świadczy swoim klientom usługę mobilnego dostępu do internetu w oparciu o pakietową transmisję danych. W tym celu zazwyczaj dostarcza modem wraz z kartą SIM, które umożliwiają podłączenie się do sieci komórkowej, jednak na pytanie czy ten zestaw zadziała pod Linuksem większość sprzedawców dziwnie wzrusza ramionami.

Wojciech Zając

W internecie można znaleźć szereg aplika-cji ułatwiających konfigurację modemu w różnych dystrybucjach Linuksa. Wy-brałem kilka programów graficznych, któ-

re zostaną poniżej zaprezentowane. Test przeprowadziłem na dystrybucji Ubuntu 8.10.

W tabeli zostały przedstawione podstawowe parametry potrzebne do zestawienia połączenia z internetem w zależno-ści od operatora sieci komórkowej. Informacje jakie potrze-bujemy to: APN, numer na jaki dzwonił będzie modem, na-zwa użytkownika i hasło, czasami przydatne będą IP serwe-rów DNS (informacje w Tabeli 1).

Nie należy zapomnieć o kosztach jakie wiążą się z trans-misją pakietów przez sieć gsm dla poszczególnych ofert ope-ratorów. Rozbieżności cen są tak duże, że chwila satysfak-cji z dostępu do internetu może spowodować wytrzeszcz ga-łek ocznych po sprawdzeniu stanu konta (np.: TAK-TAK), tym bardziej, że Ubuntu jak każdy nowy przyjazny system po uzyskaniu dostępu do swoich serwerów sprawdza czy do-stępne są nowe uaktualnienia.

W przypadku Ubuntu ze środowiskiem Gnome typo-wym konfiguratorem sieci jest NetworkManager, którego

obsługa jest bardo intuicyjna. Pierwszym etapem usta-wiania połączenia jest kliknięcie prawym przyciskiem myszy na ikonkę sieci i wybór opcji: Modyfikuj połącze-nia > Komórkowe > Dodaj (Rysunek 1). W oknie Se-rvice Provider (Rysunek 2) program poprosi o wybranie dostawcy internetu z listy, po czym następuje potwier-dzenie wraz z wybraniem nazwy. W ten sposób może-my mieć zdefiniowanych wielu dostawców różnych sie-ci, których będziemy wybierać z listy. Na liście braku-je operatora Play, ale nie stanowi to problemu ponieważ wystarczy wybrać innego dowolnego operatora (np. Po-lkomtel), a później poprzez edycję zmienić wartość pa-rametru APN na internet. Wszystko jest proste i intuicyj-ne, ale nie zawsze operacja ta może zakończyć się suk-cesem, dlatego poniżej przedstawiam konfigurację pakie-tów ppp oraz wvdial, które są odpowiedzialne za konfi-gurację modemu i obsługę połączenia.

Programem, który bardzo dobrze radził sobie z konfiguracją modemów gprs, niezależnie od ro-dzaju interfejsu (PCMCIA, USB, ExpressCard) jest global3g (Rysunek 3) dostępny na stronie http://www.global3g.strony.pl/. Jak widać jest to program

Page 39: Linux 05 2009 PL

SprzętTest modemów gprs

38 maj 2009

SprzętTest modemów gprs

39www.lpmagazine.org

polski. Z licencji dowiadujemy się, że mo-żemy go swobodnie przetestować, jednak by bez ograniczeń cieszyć się jego funk-cjonalnością musimy wykupić niedrogą li-cencję (29zł). Aplikacja nie wymaga insta-lacji, ale korzysta z programów, które mu-szą być zainstalowane w naszej dystrybucji: ppp oraz wvdial. Posiada przejrzyste intu-icyjne menu (Rysunek 4), wsparcie dla wie-

lu urządzeń oraz dane potrzebne do połą-czenia z operatorami gsm. Parametry jakie należy ustawić to: dostawca internetu, mo-del urządzenia, port (urządzenie) i PIN je-żeli modem wymaga tego (Rysunek 5). Pro-gram posiada również opcje, dzięki którym łatwiej możemy sprawdzić model używane-go przez nas modemu oraz urządzenie gdzie modem został wykryty. Przydatny jest także

bieżący wykres ilości przesyłanych bajtów przez modem (Rysunek 6).

Trzecim programem jaki przetestowałem jest pGPRS (Rysunek 7) dostępny na stronie http://przemkalicki.pl/?page_id=262. Umoż-liwia on wybranie operatora, portu i podanie PIN (Rysunek 8). Bardzo prosty w konfigura-cji. Jednak nie był w stanie poradzić sobie z każdym modemem.

wvdialJednak co robić gdy żaden z wymienionych wyżej programów nie działa, albo nie korzysta-my z interfejsu graficznego?

W takiej sytuacji korzystamy z wvdial oraz ppp. W wielu dystrybucjach programy te są do-

Listing 1. /etc/wvdial.conf[Dialer Defaults]

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

Modem Type = Analog Modem

Modem = /dev/ttyUSB0

Dial Command = ATD

ISDN = 0

Baud = 115200

Listing 2. Uruchomienie programu wvdial# wvdial

--> WvDial: Internet dialer version 1.60

--> Cannot get information for serial port.

--> Initializing modem.

--> Sending: ATZ

ATZ

OK

--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

OK

--> Modem initialized.

--> Sending: ATD*99***1#

--> Waiting for carrier.

ATD*99***1#

CONNECT

--> Carrier detected. Waiting for prompt.

--> Don't know what to do! Starting pppd and hoping for the best.

--> Starting pppd at Mon Mar 9 19:24:21 2009

--> Pid of pppd: 8069

--> Using interface ppp0

--> pppd: ��%[08]8�%[08]

--> pppd: ��%[08]8�%[08]

--> pppd: ��%[08]8�%[08]

--> pppd: ��%[08]8�%[08]

--> pppd: ��%[08]8�%[08]

--> pppd: ��%[08]8�%[08]

--> local IP address 94.254.129.148

--> pppd: ��%[08]8�%[08]

--> remote IP address 10.64.64.64

--> pppd: ��%[08]8�%[08]

Listing 3. W poszukiwaniu procesu demona ppp# ps uax | grep ppp

root 8069 0.0 0.2 3000 1164 pts/3 S 19:24 0:00 /usr/

sbin/pppd 115200 modem crtscts defaultroute usehostname -detach user play

noipdefault call wvdial usepeerdns idle 0 logfd 7

Rysunek 1. Network Manager

Rysunek 2. Dodanie operatora w Network Manager

Rysunek 3. Global3g

Page 40: Linux 05 2009 PL

40

SprzętTest modemów gprs

maj 2009 41

SprzętTest modemów gprs

www.lpmagazine.org

stępne jako pakiety. Wvdial jest programem ob-sługującym modem.

Może on być zastosowany na dwa spo-soby:

• bezpośrednio wywołany z linii komend inicjalizuje modem i uruchamia demona pppd;

• użyty w pliku konfiguracyjnym demona pppd będzie pełnił funkcję pośrednika w komunikacji komputera z modemem.

W pierwszym przypadku po wywołaniu z li-nii komend wvdial odczytuje konfigurację /etc/wvdial.conf, którą wykorzystuje do na-wiązania połączenia przez modem, a następ-nie uruchamia pppd.

W tym drugim przypadku wywołany jest w konfiguracji ppp z opcją --chat i jest to istotna opcja, ponieważ to ona mówi mu, że ma pełnić rolę negocjatora pomiędzy mo-demem a demonem pppd. Dla tego przypad-ku z linii poleceń wywołujemy pppd call

play, gdzie play jest plikiem konfiguracyj-nym dla ppp.

W pakiecie wvdial dostępne jest rów-nież narzędzie do generowania konfigu-racji dla tego programu: wvdialconf. Za-daniem tego programu jest uzyskanie ta-kich informacji jak nazwa urządzenia (np.:

/dev/ttyUSB0), prędkość transmisji (baud rate), sekwencja znaków inicjalizująca mo-dem, itp.

Wykryta konfiguracja zostaje dopisa-na do /etc/wvdial.conf w głównej sekcji [Dia-ler Defaults]. Program uruchamiamy bez pa-rametrów.

# wvdialconf

Gadatliwy program wylewa z siebie co tyl-ko może nam powiedzieć, a my analizujemy wyniki.

ttyS1<*1>: ATQ0 V1 E1 -- and failed

too at 115200, giving up.

Ta linijka wskazuje nam, że tu program rezy-gnuje z próby wykrycia modemu (i ma racje, tu go nie ma).

ttyUSB0<*1>: ATQ0 V1 E1 S0=0 &C1 &D2

+FCLASS=0 -- OK

ttyUSB0<*1>: Modem Identifier: ATI --

Manufacturer: huawei

ttyUSB0<*1>: Speed 9600: AT -- OK

Tu natomiast otrzymujemy informacje, że modem został wykryty jako /dev/ttyUSB0, pojawia się inicjująca sekwencja znaków

oraz model urządzenia i prędkość trans-misji.

Nie zawsze te dane są zgodne z prawdą. Dla tego modemu spokojnie możemy zwięk-szyć prędkość transmisji do 460800bps. Tak wygląda wygenerowany (i poprawiony przez nas) plik /etc/wvdial.conf. Prezentuje to Li-sting 1.

W konfiguracji tej widzimy ciągi znaków inicjujące modem: Init1 oraz Init2, czasami jest ich więcej w zależności od modemu. W

Listing 4. Wyświetlenie konfiguracji interfejsu ppp0# ifconfig ppp0

ppp0 Link encap:Point-to-Point Protocol

inet addr:89.108.223.74 P-t-P:10.64.64.64 Mask:255.255.255.255

UP POINTOPOINT RUNNING NOARP MULTICAST MTU:1500 Metric:1

RX packets:27 errors:0 dropped:0 overruns:0 frame:0

TX packets:23 errors:0 dropped:0 overruns:0 carrier:0

collisions:0 txqueuelen:3

RX bytes:1397 (1.3 KB) TX bytes:1137 (1.1 KB

Listing 5. Wyświetlenie tablicy routingu# route -n

Kernel IP routing table

Destination Gateway Genmask Flags Metric Ref Use Iface

10.64.64.64 0.0.0.0 255.255.255.255 UH 0 0 0 ppp0

0.0.0.0 0.0.0.0 0.0.0.0 U 0 0 0 ppp0

Listing 6. Wykryty kontroler USB# lspci

00:0b.0 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50)

00:0b.1 USB Controller: VIA Technologies, Inc. VT82xxxxx UHCI USB 1.1 Controller (rev 50)

00:0b.2 USB Controller: VIA Technologies, Inc. USB 2.0 (rev 51)

Listing 7. Wykryte urządzenie USB# lsusb

Bus 003 Device 003: ID 12d1:1003 Huawei Technologies Co., Ltd. E220 HSDPA Modem / E270 HSDPA/HSUPA Modem

Rysunek 4. Menu w Global3g

Page 41: Linux 05 2009 PL

40

SprzętTest modemów gprs

maj 2009 41

SprzętTest modemów gprs

www.lpmagazine.org

przypadku numeru na jaki będzie dzwonił mo-dem czasami może być wartość *99#.

Typ modemu oraz urządzenie pod jakim został wykryty modem: /dev/ttyUSB0, ale w zależności od modelu może być przypisa-nych więcej niż jeden plik np. /dev/ttyUSB0 i /dev/ttyUSB1. W dalszej części pliku zapisa-na jest komenda, która rozpocznie dzwonie-nie (Dial Command) oraz prędkość transmi-sji (Baud).

Dodatkowo należy dopisać odpowied-nie ustawienia operatora. W przypadku ope-ratora Play parametry Username i Password są dowolne.

Phone = *99***1#

Username = play

Password = play

W zależności od potrzeb dopisujemy jeszcze dodatkowo:

Carrier Check = no

Niektóre modele modemów nieprawidłowo wskazują stan online, wtedy należy ustawić parametr Carrier Check = no.

Wvdial nie będzie sprawdzał czy modem jest online.

Check DNS = yes

Oznacza, że po nawiązaniu połączenia ma usta-wić parametry serwerów DNS.

Abort on Busy = no

Program nie przerwie działania, gdy otrzyma informację od modemu linia zajęta, tylko bę-dzie ponawiał próbę.

Abort on no Dialtone = no

Program nie przerwie działanie, gdy otrzyma informację od modemu brak sygnału.

Dialt Attempts =10

Ustawienie tego parametru oznacza, że program przerwie działanie dopiero po 10 nieudanych próbach nawiązania połączenia. Aby próbował cały czas, należy ustawić Dialt Attempts =0 Uruchamiamy program poleceniem wvdial.

Na ekranie widzimy kolejne etapy działa-nia programu – Listing 2.

Listing 8. Uzyskanie informacji o module usbserial# modinfo usbserial

filename: /lib/modules/2.6.27-9-generic/kernel/drivers/usb/serial/usbserial.ko

license: GPL

description: USB Serial Driver core

author: Greg Kroah-Hartman, [email protected], http://www.kroah.com/linux/

srcversion: 96219212FFE058A93C12C85

depends: usbcore

vermagic: 2.6.27-9-generic SMP mod_unload modversions 586

parm: vendor:User specified USB idVendor (ushort)

parm: product:User specified USB idProduct (ushort)

parm: debug:Debug enabled or not (bool)

Listing 9. Fragment logów wskazujący na wykrycie nowo podłączonej komórki usb 4-1: new full speed USB device using uhci_hcd and address 3

usb 4-1: configuration #1 chosen from 1 choice

cdc_acm 4-1:1.1: ttyACM0: USB ACM device

usbcore: registered new interface driver cdc_acm

cdc_acm: v0.26:USB Abstract Control Model driver for USB modems and ISDN adapters

Listing 10. Opcje dla wybranych modułów w make menuconfigDevice Drivers ---> USB support --->

usb_storage = USB Mass Storage support

cdc_acm = USB Modem (CDC ACM) support

Device Drivers ---> USB support ---> USB Serial Converter support --->

usbserial = USB Serial Converter support

option = USB driver for GSM and CDMA modems

Listing 11. Opcje dla ppp w make menuconfigDevice Drivers ---> Network device support

slhc = CSLIP compressed headers

ppp_generic = PPP (point-to-point protocol) support

ppp_async = PPP support for async serial ports

bsd_comp = PPP BSD-Compress compression

ppp_deflate = PPP Deflate compression

Library routines --->

crc-ccitt = CRC-CCITT functions

zlib_deflate

Page 42: Linux 05 2009 PL

42

SprzętTest modemów gprs

maj 2009

• inicjalizację modemu,• nawiązywanie połączenia,• start demona pppd, który otrzymuje dane z

modemu,• konfigurację interfejsu ppp0 (IP 94.254.129.148) • konfigurację routingu (brama 10.64.64.64).

Domyślnie program nie działa w tle, tylko ca-ły czas jest podłączony do terminala, w którym został wywołany. Działa do czasu wyłączenia go sekwencją [Ctrl-C]. Aby wiedzieć co dzieje się w naszym systemie i poradzić sobie z ewen-tualnymi problemami należy sprawdzić w pro-cesach czy demon pppd wystartował. W tym celu wpisujemy polecenie z Listingu 3.

W procesach widzimy działającego de-mona pppd z odpowiednimi parametrami. Na-stępnie sprawdzamy, czy interfejs sieciowy jest ustawiony. Prezentuje to Listing 4.

Utworzony został interfejs ppp0 i przydzie-lony dla niego publiczny adres IP, po którym będziemy identyfikowani na wszelkich serwe-rach. Sprawdzamy czy do tablicy routingu do-dane zostały wpisy dla interfejsu ppp0. Od tego zależy gdzie będą wysyłane pakiety, w zależno-ści od adresu IP przeznaczenia (DST). Prezen-tuje to Listing 5.

DNS-y często nie zostają ustawione, dla-tego lepiej je samemu dodać. Zapisujemy je w pliku /etc/resolv.conf. Warto zrobić sobię ko-pię takiego pliku, ponieważ niekiedy może zo-

stać nadpisany gdy podłączymy komputer pod inną sieć. Dla przykładu podaje adresy serwe-rów DNS:

• opendns.com nameserver 208.67.222.222

nameserver 208.67.220.220

• task.gda.pl nameserver 153.19.250.101

nameserver 212.77.96.123

• icm.edu.pl nameserver 212.87.14.39

W przypadku błędów, wskazówek nale-ży szukać w /var/log/syslog lub /var/log/messages.

Wykrycie sprzętuTesty przeprowadzałem na modemach: Hu-awei E220 podłączany przez USB; Huawei E620 złącze PCMCIA oraz komórce Nokia 6230i.

Powyższe urządzenia wykrywane są au-tomatycznie po podłączeniu do komputera ja-ko urządzenia USB, a za ich obsługę odpowie-dzialne są standardowe sterowniki (moduły) z pakietu jądra systemu.

Aby wykryć sprzęt warto posłużyć się ty-powymi narzędziami Linuksa, dostępnymi do-myślnie w wielu dystrybucjach. Dodatkowo można informacje odczytać z katalogu /proc, jednak skorzystanie z gotowych narzędzi uwa-żam za wygodniejsze niż suche dane proc-sys-temu.

Warto upewnić się, że mamy wykryty kon-troler USB – Listing 6.

Szukamy urządzenia zidentyfikowa-nego jako USB Controller, oczywiście nie oznacza to, że mamy załadowane ste-rowniki do niego, dlatego wyświetlamy li-stę załadowanych modułów i szukamy od-powiednio modułu uhci_hcd, ehci_hcd, ohci_hcd lub innego w zależności od ty-pu kontrolera USB oraz urządzenia do nie-go podłączonego:

# lsmod

ehci_hcd 43276 0

uhci_hcd 30736 0

usbcore 148848 2 ehci_

hcd,uhci_hcd

Następnie komendą lsusb wyświetlimy urzą-dzenia wykryte przez kontroler – Listing 7.

Uzyskujemy informacje o wykrytych urządzeniach USB (ewentualnie PCMCIA). Warto zwrócić uwagę na numery ID 12d1:1003, są to numery vendor i product mogą one przydać się w przypadku błędnego wy-Rysunek 5. Konfiguracja w Global3g

Tabela 1. Parametry wybranych operatorów

Operator APN numer użytkownik hasło DNSPlay internet *99***1# dowolny dowolny 89.108.195.20

89.108.195.21

iplus www.plusgsm.pl *99# dowolny dowolny 212.2.96.51212.2.96.52

heyah heyah.pl *99***1# heyah heyah

ERA erainternet *99***1# erainternet erainternet 213.158.199.1213.158.199.5

Orange internet *99# internet internet 194.9.223.79

Page 43: Linux 05 2009 PL

43

SprzętTest modemów gprs

www.lpmagazine.org

krycia urządzenia. Jeżeli tak jest, podczas za-ładowania modułu usbserial musimy po-dać parametry:

# modprobe usbserial vendor=12d1

product=1003

Moduł usbserial jest wykorzystywany gdy podłączane urządzenie jest pewnym typem urządzenia szeregowego, a wszelkiego rodzaj

modemy są takimi urządzeniami. Wiele istot-nych informacji o module możemy uzyskać za pomocą modinfo również o parametrach ja-kie możemy ustawiać dla wybranego modułu – Listing 8.

Dla testowanych modemów Huawei po-trzebny jest jeszcze sterownik modemu o na-zwie option:

# modprobe option

W wielu dystrybucjach Linuksa do zarządzania podłączonymi urządzeniami wykorzystywany jest hal (Hardware Abstraction Layer). Dzięki temu po poprawnym wykryciu modemu zosta-nie utworzony odpowiedni plik urządzenia np.: /dev/ttyUSB0, co jest sygnałem dla nas, że urzą-dzenie zostało pomyślnie wykryte, a sterownik załadowany.

Jeżeli modem posiada dodatkowo pa-mięć flash, to modułem odpowiedzialnym za dostęp do takiej pamięci jest usb_sto-rage.

A jak jest w przypadku komórek? Do laptopa podłączyłem kablem USB nokię 6230i. Po wyświetleniu listy urządzeń ja-kie zidentyfikowane zostały przez kontro-ler USB widzimy model telefonu.

Bus 003 Device 005: ID 0421:0428

Nokia Mobile Phones 6230i Modem

Gdy zajrzymy do logów (/var/log/syslog), na końcu znajdziemy wpisy podobne do poniż-szych – Listing 9.

Wyczytać stąd możemy że modem w te-lefonie został rozpoznany. Automatycznie załadowany został moduł cdc_acm określa-

Listing 12. Konfiguracja dla ppp /etc/ppp/peers/play115200

modem

crtscts

connect "/usr/bin/wvdial --chat --config /etc/ppp/peers/wvdial-chat.conf"

user play

-detach

nopcomp

defaultroute

noipdefault

usepeerdns

/dev/ttyUSB0

logfile /var/log/pppd.log

idle 0

debug

R E K L A M A

Page 44: Linux 05 2009 PL

44

SprzętTest modemów gprs

maj 2009

ny jako sterownik modemów usb oraz ada-pterów ISDN. W katalogu urządzeń utworzo-ny został /dev/ttyACM0. Cała konfiguracja za pomocą wvdialconf przebiegła bez problemu i tak samo uruchomienie programu wvdial. Należy pamiętać, by nie zapomnieć włączyć odpowiednich opcji w telefonie. W przypad-ku zablokowanego dostępu do przesyłania danych GPRS na telefonie pojawił się komu-nikat informujący, że należy włączyć trans-misję GPRS.

Dla zaawansowanychModuły niezbędne do działania tego typu mo-demów są dostarczone w standardowym kata-logu /lib/modules/<kernel_version>/kernel/drivers/usb/serial/. Jednak dla posiadaczy wła-snoręcznie kompilowanego kernela przydatna będzie wskazówka gdzie szukać odpowiednich opcji w menuconfig – Listing 10.

W pliku konfiguracyjnym kernela (.config) zostaną ustawione parametry:

CONFIG_USB_STORAGE=m

CONFIG_USB_SERIAL=m

CONFIG_USB_SERIAL_OPTION=m

CONFIG_USB_ACM=m

Oprócz tego muszą być dodane moduły obsłu-gi protokołu ppp łącznie z kompresją, które ła-dują się dopiero po uruchomieniu pppd – Li-sting 11.

Powyżej omówione zostały tylko wy-brane modele modemów oraz kilka sterow-ników do nich. Należy pamiętać, że spośród wielu modemów, sterowniki nie wszystkich

Rysunek 7. pgprs

Rysunek 8. Konfiguracja pgprs

Listing 13. Konfiguracja dla wvdial użytego przez ppp /etc/ppp/peers/wvdial-chat.conf[Dialer Defaults]

Init1 = ATZ

Init2 = ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

Phone = *99***1#

Username = dowolny

Password = dowolne

Dial Command = ATD

Listing 14. Uruchomienie demona ppp# pppd call play

--> WvDial: Internet dialer version 1.60

--> Initializing modem.

--> Sending: ATZ

ATZ

OK

--> Sending: ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

ATQ0 V1 E1 S0=0 &C1 &D2 +FCLASS=0

OK

--> Modem initialized.

--> Sending: ATD*99***1#

--> Waiting for carrier.

ATD*99***1#

CONNECT

--> Carrier detected. Waiting for prompt.

--> Don't know what to do! Starting pppd and hoping for the best.

Rysunek 6. Wykres wykorzystania łącza w Global3g

Page 45: Linux 05 2009 PL

45

SprzętTest modemów gprs

www.lpmagazine.org

mogą się znaleźć w źródłach kernela. Nie-które mogą być dostępne jako pakiety dys-trybucyjne albo po prostu jako zewnętrz-ne programy do pobrania z internetu. Nie-stety zdarza się, że napotykamy na sprzęt, do którego nie ma przewidzianych sterow-ników dla Linuksa. Nie życzę tego żadnemu Linuksiarzowi.

Inne przydatne polecenia do analizy sprzętu:

• lshal – wyświetlają urządzenia rozpoznane na liście jaką posiada HAL;

• lshw – wyświetla informacje o sprzęcie (paczka lshw).

pppdPpp jest protokołem służącym m.in. do zestawie-nia połączenia z internetem przez różnego rodza-ju modemy lub inne urządzenia obsługujące pro-tokół point-to-point (punkt-punkt). Demon pppd współpracuje ze sterownikami kernela w celu ze-stawienia i utrzymania łączności z docelowym punktem zwanym peer lub po prostu serwer. W celu zestawienia połączenia wykonywane są pro-cesy uwierzytelnienia, konfiguracji interfejsu ppp oraz dodania wpisu do tablicy routingu.

Drugim sposobem uruchomienia jest wy-wołanie pppd ze wskazaniem mu pliku, z któ-rego ma przeczytać opcje do konfiguracji mo-demu. Plik ten musi znajdować się w katalogu /etc/ppp/peers. Tworzymy go o dowolnej na-zwie (np.: play) – Listing 12. Dzięki temu nie będziemy mieli problemów w przypadku ko-rzystania z różnych operatorów lub modemów. Zawartość tego pliku będą stanowić opcje opi-sane w man pppd.

Wartość liczbowa stanowi prędkość transmisji danych (baud), ten parametr nale-ży ustawić w zależności od modemu. Opcja modem odpowiedzialna jest za wykorzysta-nie sygnału Carrier Detect, nie należy uży-

wać tej opcji w przypadku gdy urządzenie nie posiada tego typu funkcji. Analogicz-nie dotyczy opcji crtscts odpowiedzialnej za sprzętową kontrolę sterowania przepły-wem. W następnej kolejności wskazany jest skrypt, który ma posłużyć do skonfigurowa-nia połączenie do serwera zanim pppd za-cznie działać. W naszym przypadku wyko-rzystany jest w tym celu wvdial, jednak czę-sto w tym miejscu używany jest program chat (pakiet ppp). Parametr user ustawia na-zwę użytkownika do uwierzytelnienia. Aby demon ppp nie przeszedł w tło ustawiamy nodetach. Opcja nopcomp wyłącza negocja-cję kompresji pól protokołu dla transmisji.

• manuale: wvdial, wvdialconf, wvdial.conf, pppd, chat.• http://linux.msstudio.com.pl/Howto/ppp/PPP-HOWTO.pl.html• http://www.debian.one.pl/index.php?url=20• http://www.global3g.strony.pl/• http://przemkalicki.pl/?page_id=262 - program pgprs• http://www.linux.rk.edu.pl/• http://www.faqs.org/docs/Linux-HOWTO/PPP-HOWTO.html• http://www.docmirror.net/pl/linux/howto/networking/PPP-HOWTO/

W Sieci

R E K L A M A

Page 46: Linux 05 2009 PL

46

SprzętTest modemów gprs

maj 2009

Opcja defaultroute ustawi domyślny gate-way, jest to konieczne dla poprawnego prze-syłania pakietów. Stosujemy noipdefault aby IP zostało przyznane przez zdalny ser-wer. Dla uzyskania adresów DNS ustawia-my usepeerdns. Parametr /dev/ttyUSB0 jest oczywiście urządzeniem pod jakim zo-stał wykryty modem. Jeżeli chcemy aby lo-gi znajdowały się w oddzielnym pliku wpi-sujemy logfile ze ścieżką do pliku. Jeżeli chcemy by modem rozłączył się po określo-nym czasie bezczynności, wykorzystujemy opcję idle z liczbą określającą czas w se-kundach, dla zera nie następuje w tym przy-

padku rozłączenie. Aby uzyskać szczegóło-we logi dodajemy debug.

Należy zwrócić uwagę, że przy nawią-zywaniu połączenia musi zostać wykonany skrypt inicjujący modem. Mamy do wybo-ru użycie jednego z dwóch programów chat oraz wvdial. Wykorzystamy do tego celu zo-stał wvdial ze względu na łatwość konfigu-racji. Istotny w tym przypadku jest parametr --chat dla tego programu, bo on mówi mu, że ma pełnić rolę pośrednika w komunikacji z modemem. Potrzebujemy również podać kon-figurację modemu dla programu wvdial. Po-stanowiłem wykorzystać do tego opcję con-

fig, a konfigurację zamieścić w pliku /etc/ppp/peers/wvdial-chat.conf – Listing 13.

Zamiast programu wvdial można wyko-rzystać program chat dostarczony w pakie-cie ppp, jednak skrypt jaki dla niego należy przygotować jest bardzo skomplikowany, ra-czej polecany dla zaawansowanych użytkow-ników. Rozbudowany opis składni polecenia chat i budowy skryptu znajduje się w man chat, a przykłady dostępne są w plikach pa-kietu (/usr/share/doc/ppp/examples). Następ-nie wywołujemy demona pppd z opcją call po której podajemy plik z utworzoną konfi-guracją – Listing 14.

Do tego momentu wykonywane są za-dania przez wvdial, który inicjalizuje mo-dem, dzwoni na ustawiony numer, zestawia połączenie – Listing 15. Następnie przepro-wadzony zostaje proces uwierzytelniania CHAP, a po poprawnym procesie uwierzy-telniania przez serwer przyznany zostaje lo-kalny adres IP oraz ustawiane są pozostałe parametry sieci.

Zadaniem wywołanego skryptu /etc/ppp/if-up jest wpisanie serwerów DNS w pliku /etc/resolv.conf oraz wykonanie wszel-kich dodatkowych zadań jakie są potrzebne już po ustawieniu połączenia do internetu. Jest to ostatni etap, po którego zakończeniu powinniśmy cieszyć się mobilnym podłą-czeniem do internetu. Połączenie zakańcza-my sekwencją [Ctrl-C] – Listing 16.

W przypadku gdy nie działa, wskazówek należy szukać w logach. Jeżeli wysyłamy lo-gi do /var/log/pppd.log, to tam należy zacząć, w przeciwnym przypadku /var/log/syslog i /var/log/messages. Powinniśmy sprawdzić ustawienia w /etc/resolv.conf, interfejs ppp0, tablicę routingu, firewalla.

Logi generowane podczas uruchamiania dla przetestowanych sieci można znaleźć na stronie magazynu: http://www.lpmagazine.org

Listing 15. Wynik działania pppSerial connection established.

using channel 3

Using interface ppp0

Connect: ppp0 <--> /dev/ttyUSB0

sent [LCP ConfReq id=0x1 <asyncmap 0x0> <magic 0xb087136b> <accomp>]

rcvd [LCP ConfReq id=0x8 <asyncmap 0x0> <auth chap MD5> <magic 0x1bf5883>

<pcomp> <accomp>]

sent [LCP ConfRej id=0x8 <pcomp>]

rcvd [LCP ConfAck id=0x1 <asyncmap 0x0> <magic 0xb087136b> <accomp>]

rcvd [LCP ConfReq id=0x9 <asyncmap 0x0> <auth chap MD5> <magic 0x1bf5883>

<accomp>]

sent [LCP ConfAck id=0x9 <asyncmap 0x0> <auth chap MD5> <magic 0x1bf5883>

<accomp>]

sent [LCP EchoReq id=0x0 magic=0xb087136b]

rcvd [LCP DiscReq id=0xa magic=0x1bf5883]

rcvd [CHAP Challenge id=0x1 <cec74916d0b0dc45844bdc9b0c17e29b>, name =

"UMTS_CHAP_SRVR"]

sent [CHAP Response id=0x1 <1300d803e83363deba7c0d36e3de7e37>, name =

"play"]

rcvd [LCP EchoRep id=0x0 magic=0x1bf5883 b0 87 13 6b]

rcvd [CHAP Success id=0x1 ""]

CHAP authentication succeeded

CHAP authentication succeeded

rcvd [IPCP ConfNak id=0x9 <addr 89.108.226.138>]

sent [IPCP ConfReq id=0xa <addr 89.108.226.138>]

rcvd [IPCP ConfAck id=0xa <addr 89.108.226.138>]

Could not determine remote IP address: defaulting to 10.64.64.64

Cannot determine ethernet address for proxy ARP

local IP address 89.108.226.138

remote IP address 10.64.64.64

Script /etc/ppp/ip-up started (pid 19004)

Script /etc/ppp/ip-up finished (pid 19004), status = 0x0

Listing 16. Wynik wyłączania pppTerminating on signal 2

Connect time 6.7 minutes.

Sent 120 bytes, received 120 bytes.

Script /etc/ppp/ip-down started (pid 24890)

sent [LCP TermReq id=0x2 "User request"]

rcvd [LCP TermAck id=0x2]

Connection terminated.

Script /etc/ppp/ip-down finished (pid 24890), status = 0x0

Magister inżynier wydziału Fizyki Politech-niki Warszawskiej. Od 2002 posługuję się Linuksem. Prowadzę firmę zajmującą się instalacją Linuksa na serwery i desktopy. Administruję własnymi serwerami Debian, Gentoo i Opensuse. Udzielam porad doty-czących Linuksa, testuję dostępne na ryn-ku oprogramowanie, także piszę skrypty oraz strony internetowe. Od 2004 do 2008 prowadziłem szkolenia w Szkole Linuxa.Kontakt z autorem: [email protected]

O autorze

Page 47: Linux 05 2009 PL
Page 48: Linux 05 2009 PL

SprzętLinux na urządzeniach mobilnych

48 maj 2009

SprzętLinux na urządzeniach mobilnych

49www.lpmagazine.org

a

utor

zy@

lpmag

azine

.org

Linux na urządzeniach mobilnychWiększości osób Linux kojarzy się co najwyżej z systemem na komputery klasy PC, co i tak jest dobrym punktem widzenia wobec tych, którzy Linuksa widzą jedynie przez pryzmat zastosowań serwerowych. Osoby te zdziwią się więc informacją, że Linux na dobre rozgościł się w urządzeniach mobilnych, takich jak PDA czy smartfony. W artykule postaram się przedstawić wybrane modele smartfonów pracujących pod kontrolą Linuksa oraz dystrybucje Linuksa na urządzenia mobilne.

Grzegorz Madajczak

Przeciętny użytkownik telefonu komórkowego nie zaprząta sobie głowy tak nieistotnym drobia-zgiem, jakim jest system operacyjny pod kontro-lą, którego działa jego telefon. Jednocześnie wie-

lu użytkowników Linuksa zapewne bardzo zdziwiłoby się, gdyby dowiedziałoby się, że ich komóra działa na właśnie Linuksie. Wbrew powszechnemu wyobrażeniu wiele mul-timedialnych nowoczesnych aparatów, zaliczanych do gru-py smartfonów (Ramka Co to jest smartfon), działa na odpo-wiednio spreparowanej dystrybucji Linuksa.

Dlaczego LinuxW przeciągu kilku ostatnich lat rynek smartfonów systema-tycznie wzrastał na wartości, osiągając w trzecim kwartale 2008 roku rekordowo wysoki pułap – prawie 40 mln USD, co oznaczało ponad 27% wzrost w porównaniu do tego same-go okresu poprzedniego roku. Jednocześnie szacuje się, że ry-nek ten do końca 2010 roku wzrośnie niemal dwukrotnie. Pro-gnozy analityków finansowych przewidują, że liczba sprzeda-nych smartfonów może być wyższa niż tradycyjnych PC-ów, co oznacza, że torcik smartfonów jest dość duży i warto w nie-go inwestować. Każdy bowiem będzie mógł coś dla siebie z

niego wykroić. Jednym ze sposobów ukrojenia większego ka-wałka jest redukcja kosztów poniesionych na produkcję sprze-dawanego asortymentu. Część firm produkujących omawia-ne urządzenia podjęło decyzję o opracowaniu własnego sys-temu operacyjnego dla produkowanych przez siebie aparatów, co uniezależni ich od kaprysów zewnętrznych firm sprzedają-cych software. Bardzo dobrze zrozumiała to firma Apple opra-cowując zmodyfikowaną wersję MacOS X na potrzeby iPone-'ów i iPodów Touch, dzięki czemu uniezależniła się od innych firm, zachowała kontrolę nad rozwojem systemu i oprogramo-wania dla niego przeznaczonego, co przyniosło dodatkowe zy-ski. Model ten, reprezentowany szczególnie za pośrednictwem Apple AppStore, zaczął być powielany przez innych produ-centów systemów mobilnych.

Motorola jako jedna z pierwszych zrozumiała, iż Linux jest bardzo dobrym materiałem na tworzenie nowego systemu na potrzeby smartfonów. Przede wszystkim, w większości przy-padków jest za darmo, a narzędzia do pracy nad systemem są powszechnie dostępne. Dodatkowym atutem są rzesze entuzja-stów skupionych w środowiskach zainteresowanych danym te-matem, pracujących nad elementami systemu, oprogramowa-niem i testujących nowe oprogramowanie. Przede wszystkim

Page 49: Linux 05 2009 PL

SprzętLinux na urządzeniach mobilnych

48 maj 2009

SprzętLinux na urządzeniach mobilnych

49www.lpmagazine.org

powinienem jednak napisać, że największym atutem Linuksa są jego niemalże nieograniczone możliwości. Prawie ten sam Linux znajduje się zarówno w telefonie, palmtopie, telewizorze, czy nagrywarce DVD, jak i w komputerze i w samo-locie. Archimedes powiedział: Dajcie mi punkt podporu, a poruszę Ziemię, ja zaś strawestuję to powiedzenie i napiszę – Dajcie mi hackera i urządzenie, ja uruchomię na nim Linuksa.

Właśnie ta wszechstronność w połączeniu z niskimi kosztami sprawiła, że Linux stał się ide-alnym kandydatem do budowania nowego sys-temu operacyjnego na urządzenia mobilne.

Nieco historiiPierwsze próby zastosowania Linuksa jako sys-temu operacyjnego urządzeń, które możemy za-liczyć do telefonów, mają miejsce w 1999 ro-ku. Wtedy to gigant (jak na tamte czasy), fir-ma Ericsson rozpoczęła prace nad urządzeniem określanym roboczo symbolem HS210 o na-zwie Cordless Screen Phone (Rysunek 1). Pro-totyp tego urządzenia został zaprezentowany na targach CeBIT w 2000 roku. W założeniu mia-ło to być domowe bezprzewodowe urządzenie do korzystania z Internetu, wyposażone dodat-kowo w funkcję rozmów telefonicznych. Całość pracowała pod kontrolą procesora w architektu-rze StrongAMR, taktowanego 200 MHz zega-rem, przy współudziale 32 MB pamięci DRAM oraz 32 MB pamięci typu Flash. Urządzenie to składało się z dwóch części – bazy, oraz prze-nośnej części z dotykowym ekranem, pomiędzy którymi komunikacja odbywała się za pośred-nictwem raczkującego jeszcze wtedy standardu Bluetooth. Ericsson zastosował w tym przypad-ku własne rozwiązania, pozwalające na zwięk-szenie zasięgu transmisji z 10 do 100 m, co by-ło jak na tamte czasy bardzo dobrym wynikiem. HS210 łączył się z Internetem przy użyciu wbu-dowanego modemu analogowego lub modemu DSL. Ericsson do prac nad oprogramowaniem dla tej hybrydy zaprosił firmy RedHat, która do-starczyła wbudowaną wersję Linuksa, Trolltech z ich środowiskiem graficznym QT/Embedded, a także firmę Opera, dostarczającą przeglądar-ki internetowej. Niestety HS210 nigdy nie prze-

kroczył bariery prac konceptualnych i nie został przekazany do produkcji seryjnej.

Motorola rządziTak naprawdę pierwszym telefonem komór-kowym z Linuksem, który został wprowadzo-ny do masowej produkcji i sprzedaży, jest Mo-torola A760 (Rysunek 2). Model ten trafił na ry-nek chiński w lutym 2003 roku. Od tego mo-mentu Motorola stała się niekłamanym lide-rem, jeśli chodzi o komercyjne, seryjne zasto-sowanie Linuksa jako platformy systemowej w multimedialnych telefonach komórkowych. Pi-kanterii dodaje fakt, iż Motorola jest jednym z członków założycieli inicjatywy rozwoju syste-mu Symbian – najpoważniejszego, obok Win-dows CE, konkurenta Linuksa w branży syste-mów wbudowanych.

Motorola A760 jak ta tamte czasy była za-awansowanym technologicznie połączeniem PDA z telefonem – czyli czymś, co obecnie jest standardem i nazywa się smartfonem. A760 była dwuzakresowym telefonem (GSM 900/1800), z dotykowym kolorowym wyświetlaczu ciekłokry-stalicznym, o rozdzielczości 320x240 Px. Dodat-kowo telefon ten wyposażony był w kamerę CIF z matrycą o rozdzielczości 352 x 288 Px. Tele-fon komunikował się z innymi urządzeniami po-przez port Bluetooth, IrDA oraz port RS-233. Ca-łość pracowała pod kontrolą 206 MHz procesora i 32 MB pamięci. Telefon ten oferował wszystko, w co powinien być wyposażony nowoczesny apa-rat – dzwonki MP3, odtwarzacz wideo, obsługę MMS. Funkcje PDA spełniało dość bogato wbu-dowane oprogramowanie PIM oraz klient e-mail.

Linia A76x telefonów Motorola została od-świeżona rok później w postaci modelu A768, przeznaczonego dla wymagających klientów rynku chińskiego. W porównaniu do poprzedni-ka model ten wyposażony został w 96 MB pa-mięci (z czego 56 MB dostępnych dla użytkow-nika), a także w moduł rozpoznawania pisma od-ręcznego (język angielski i chiński). Ostatni z tej linii – model A780 (Rysunek 3) był prawdzi-wym przebojem, utwierdzającym firmę Moto-rola w słuszności co do postawienia na Linuksa. Model A780 zaopatrzony w mocniejszy w sto-

sunku do poprzedników procesor Intel XScale PXA271 taktowany 312 MHz zegarem (w archi-tekturze ARM) oraz 48 MB pamięci wbudowa-nej oraz dodatkowo 48 MB na wymiennych kar-tach pamięci typu TransFlash. Dodatkowo apa-rat ten posiadał 1,3 MPx kamerę oraz wbudowa-ny układ nawigacji GPS. Ponadto Motorola po raz pierwszy wprowadziła do tego telefonu złą-cze mini-USB, które służyło zarówno do trans-misji danych, jak i ładowania. Pozwolę sobie na małą dygresję w tym miejscu – większość czoło-wych producentów komórek do tej pory nie mo-gą zrobić tego, co zrobiła Motorola – ujednoli-cić wtyczki do ładowarek. Na całe szczęście Ko-misja Europejska nakazała, aby po 2012 roku wszystkie komórki ładowane były przez złącze mini-USB. Motorola w tym względzie jest daw-na do przodu przed wszystkimi. Wracając jednak do A780, telefon ten w porównaniu do poprzed-ników wprowadzono na inne rynki niż tylko Chi-ny, gdzie znalazł szerokie grono nabywców.

Mniej więcej w tym samym czasie Motorola wypuściła drugą linię telefonów, które w założe-niu miały być kombajnami multimedialnymi, te-

Nie ma precyzyjnej definicji tego urządzenia, jednak wiele osób podświadomie czuje, ja-kie urządzenia można obdarzyć tym określeniem. Za Wikipedią podam, że jest to urządze-nie mobilne łączące w sobie wiele funkcji. Poza podstawowym zadaniem – wykonywania połączeń głosowych (oraz wysyłania/odbierania SMSów, MMSów), urządzenie to posiada funkcje odtwarzacza multimedialnego, aparatu fotograficznego (kamery wideo), a zwłasz-cza spełnia rolę PDA (Portable Digital Assistant). Smartfony charakteryzują się ponadto systemem operacyjnym umożliwiającym modyfikację (wprowadzanie, usuwanie) oprogra-mowania.

Co to jest smartfon

Rysunek 1. Pierwszy „telefon” pod kontrolą Linuksa – Cordless Screen Phone HS210 firmy Ericsson

Rysunek 2. Pierwszy prawdziwy smartfon pod kon-trolą Linuksa – Motorola A760

Page 50: Linux 05 2009 PL

50

SprzętLinux na urządzeniach mobilnych

maj 2009 51

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

lefonami nastawionymi na rozrywkę – głównie odtwarzanie muzyki. Pierwszym przedstawicie-lem tej linii był telefon E680 (Rysunek 4). Tele-fon ten, również pracujący pod kontrolą Linuk-sa, wyposażony był w wysokiej jakości ekran o rozdzielczości 240x320 Px, głośniki stereo, 1 GB wbudowanej pamięci, którą można było do-datkowo rozszerzyć dzięki slotowi dla kart Secu-reDigital, a także kamerę VGA z ośmiokrotnym powiększeniem cyfrowym. Nowinką w tym mo-delu był wbudowany odtwarzacz RealPlayer oraz radio FM, co nadawało mu multimedialny charakter. Motorola E680 dostępna była głównie na rynku azjatyckim. Niedługo później Motorola wypuściła na rynek azjatycki odświeżoną wersję tego aparatu – model E680i (Rysunek 5). Literka i w nazwie kodowej modelu pochodziła od sło-wa improved, co w tym przypadku polegało na zwiększeniu pamięci do 2 GB. Istotną zmianą w stosunku do pierwowzoru było zastąpienie od-twarzacza RealPlayer OpenSource-ową wersją tego samego – odtwarzaczem Helix.

Motorola ze swoimi telefonami z Linuksem na pokładzie nie była wyspą na oceanie szczę-śliwości. Konkurencja w tej branży jest bardzo ostra i kto nie idzie do przodu, ten ginie. Przykła-dem na to może być na przykład Ericsson – nie-gdyś czołowy producent telefonów, dziś nieist-niejąca w tej branży firma (dział telefonii ko-

mórkowej został kupiony przez koncern Sony). Dlatego też oprócz opisanych wyżej telefonów muzycznych E680 i E680i, na rynku amerykań-skim Motorola wypuściła telefony z linii ROKR. Pierwszy ROKR E1 zbudowany został na bazie modelu E398. Model ten nie działał pod kontro-lą Linuksa, więc nie będziemy specjalnie zaprzą-tali sobie nim głowy. Ważne jest jednak to, że zo-stał wyposażony w dostarczony przez Apple od-twarzacz iTunes, dzięki czemu telefon ten mógł pełnić funkcję iPoda. Motorola nie zapomnia-ła jednak o użytkownikach, którzy nie posiada-ją iTunes na swoim PC-cie. Dla nich Motorola wypuściła model ROKR E2 (Rysunek 6), któ-ry posiadał tradycyjny odtwarzacz MP3, a syste-mem operacyjnym tego modelu był oczywiście Linux. Model ten wyróżniał się jeszcze jedną ce-chą – posiadał nowy interfejs graficzny, który za-debiutował w modelu A910 (działającym rów-nież pod kontrolą Linuksa). Interfejs ten nadal jest wykorzystywany w telefonach Motoro-li. Starsze linuksowe modele wykorzystywały środowisko EZX, nowe natomiast – Chamele-on UI (Rysunek 7), które nadal bazowało na sil-niku graficznym QT/Embedded dostarczanym przez Trolltech.

Jak widać z pewnością z powyższych przy-kładów Motorola bardzo dużą wagę przywią-zywała do rynków azjatyckich. W obszarze tym

panuje szczególnie ostra konkurencja i szcze-gólnie szybki postęp technologiczny. Nie bez przyczyny właśnie w Chinach Motorola umie-ściła swoje laboratorium badawczo-rozwojowe, skąd pochodzą telefony wyposażone w Linuk-

Rysunek 3. Ostatnia Motorola z linii 76x – A780 Rysunek 4. Ostatnia Motorola z linii 76x – A780

Rysunek 5. Następca Motoroli E680 – model E680i

Rysunek 6. Motorola ROKR E2 – alternatywa dla iPoda z odtwarzaczem iTunes

Rysunek 7. Nowe środowisko Chameleon UI w ROKR E2

Wyświetlacze OLED (Organic Light-Emitting Diode) oparte są na technologii diod elektro-luminescencyjnych (LED) wytwarzanych ze związków organicznych. Wyświetlacz OLED składa się z kilku kolejnych warstw: anody, warstwy przewodzącej, organicznej warstwy emisyjnej oraz katody. Przyłożenie napięcia do OLED powoduje przepływ elektronów od katody do anody przez warstwę emisyjną, co powoduje wzbudzenie emisji światła.

Wyświetlacze OLED

Page 51: Linux 05 2009 PL

50

SprzętLinux na urządzeniach mobilnych

maj 2009 51

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

sa. Dlatego też w tym samym roku, gdy w USA ukazał się aparat ROKR E2, na rynku azjatyc-kim wprowadzono do sprzedaży nową hybry-dę telefon/PDA – model E690, będący równo-cześnie połączeniem popularnej linii A76x oraz modelu E680 (Rysunek 9). Ostatecznie mo-del ten otrzymał nazwę ROKR E6. Motorola ROKR E6 (a dokładniej rzecz ujmując MO-TOROKR E6) była nowoczesnym smartfonem wyposażonym w duży wyświetlacz dotykowy 262K QVGA TFT, kamerę o 2 MPx matrycy, slot dla kart MMC/SD oraz wszystko to co po-winien mieć normalny telefon. Należy rów-nież przypomnieć, że telefon ten, podobnie jak wszystkie inne smartfony Motoroli, wyposażo-ny był w moduł rozpoznawania pisma odręcz-nego w języku chińskim i angielskim. Tej drob-nostki nie dorobiło się wiele innych PDA (poza Palmami) czy innych smartfonów.

Linia ROKR była dalej reprezentowana przez przedstawicieli obsługiwanych przez sys-tem Linux, np. MOTOROKR E8. Nowinką w tym modelu był interfejs MMI (Man-Machi-ne-Interface), który polega na możliwości zmia-ny interfejsu (układu klawiszy) telefonu w zależ-ności od aktualnej funkcji (Rysunek 8). Następ-cą tego telefonu jest model MOTOROKR EM30 (także wyposażony w interfejs MMI), a także je-go uboższa (tańsza) wersja z rozsuwaną obudo-wą MOTOROKR EM35 (bez interfejsu MMI).

W branży telefonów muzycznych produko-wanych przez Motorolę prawdziwym przebojem okazał się model MOTOROKR Z6 (Rysunek 10), wprowadzający do rodzinki Motoroli opar-tej na Linuksie sporo nowości. Pierwsza z nich to typ aparatu. Model ten był pierwszą komór-ką na Linuksie z rozsuwaną obudową. Najważ-niejszą jednak zmianą było zastosowanie nowe-

go skalowalnego procesora i.MX31L w archi-tekturze ARM, taktowanego zegarem o zmien-nej częstotliwości od 532 do 665MHz. Zmiana ta podyktowana była między innymi lepszym wsparciem dla nowych formatów kodowania multimediów. MOTOROKR Z6 obsługiwał bo-wiem ponad 200 nowych formatów związanych z Windows Media Player. Jest to więc pierwsze urządzenie pracujące pod kontrolą Linuksa, któ-re posiadało pełne wsparcie dla multimedialnych formatów obsługiwanych przez WMP 11, a tak-że zabezpieczeń praw autorskich Janus DRM. Zmiana procesora z kolei pociągnęła za sobą zmianę dotychczasowego jądra systemowego z serii 2.40 na nowe – 2.6.10. Model ten, dzięki zmianie procesora, wspierał także nową usługę mobilnej telewizji przez sieć WiFi – V-Cast. Ko-lejną nowością w tym modelu była implemen-tacja K-JAVA – wirtualnej maszyny JAVA prze-znaczonej dla urządzeń z systemem wbudowa-nym, dostarczonej przez firmę SUN.

Motorola nie zasypuje gruszek w popiele, pozostawiając nawet najbardziej udane modele bez zmian. Każdego roku ukazują się ulepszone wersje poprzednich hitów. Przykładem na to mo-

Rysunek 8. MOTOROKR E8 – pierwsza Motorola z interfejsem MMI

Rysunek 9. MOTOROKR E6

Rysunek 10. MOTOROKR Z6 – Motorola z syste-mem po zmianach

MontaVista to amerykańska firma specjalizującej się w tworzeniu dystrybucji Linuksa – sys-temów operacyjnych czasu rzeczywistego przeznaczonych dla szerokiego zakresu urzą-dzeń z wbudowanym systemem. W dystrybucję tę wyposażone są produkty wielu znanych firm, takich jak np.: NEC, D-Link, Panasonic, Yamaha i inne. Najbardziej znanym dewelo-perem tej dystrybucji (i pracownikiem firmy MontaVista w latach 2002-2003) jest hacker Robert Love, znany z aktywnego udziału w pracach nad rozwojem jądra Linuksa, środowi-ska graficznego Gnome i wielu innych projektów. On to wniósł do MontaVista (bazującej na nieistniejącej już dystrybucji HardLinux) wiele poprawek właśnie w zakresie jądra systemo-wego, które to później pozostały w upublicznionym kodzie jądra. W 2008 roku ilość kodu wprowadzonego przez MontaVista do powszechnie dostępnego kodu jądra Linuksa sięga-ła 1.2%, co czyniło tę firmę dziewiątym co do wielkości korporacyjnym udziałowcem prac nad kernelem. Tak więc można powiedzieć, że MontaVista w pewnym stopniu przyczyniła się do rozwoju Linuksa. Obecnie dystrybucja lub samo jądro systemowe z firmy MontaVista znajduje się w 90% wszystkich smartfonów pracujących pod kontrolą Linuksa.

Firma MontaVista

Page 52: Linux 05 2009 PL

52

SprzętLinux na urządzeniach mobilnych

maj 2009 53

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

że być model MOTOZINE ZN5 (Rysunek 11). Ten czterozakresowy aparat został wyposażony w 2,4 calowy wyświetlacz TFT o rozdzielczości QVGA, obsługę sieci WiFi oraz opisany powy-żej interfejs MMI. Jednak największym atutem tego telefonu jest aparat cyfrowy, w który zo-stał wyposażony – z 5 MPx matrycą dostarczo-ną przez firmę KODAK. Dodatkowo ZN5 posia-da wysokiej jakości ksenonową lampę błyskową, autofokus i bardzo krótki czas reakcji. Połączenie to sprawia, że ZN5 jest połączeniem komórki z wysokiej jakości kompaktowym aparatem cyfro-wym. Wszystko to zaś pod kontrolą systemu ope-racyjnego Linux.

Równie ciekawą propozycją, w porówna-niu do powyżej opisanych, jest model MOTO U9 (Rysunek 12). Cechą charakterystyczną tej komórki jest specyficzny design – obudowa z klapką, w zaokrąglonym kształcie i intrygują-cych kolorach. Ciekawym rozwiązaniem za-stosowanym w tym telefonie jest wyświetlacz OLED (Organic Light Emitting Diode – wię-

cej na ten temat w Ramce Wyświetlacze OLED) umieszczony na zewnętrznej obudowie telefonu. Telefon ten również obsługuje kodeki charakte-rystyczne dla WMP 11.

Jedną z nowszych propozycji firmy Motoro-la jest telefon Motorola Krave ZN4 wyposażony w 2,8 calowy dotykowy ekran o rozdzielczości 240x400 Px (Rysunek 13), który operuje się pal-cem. Charakterystycznym dla tego modelu ele-mentem jest półprzezroczysta klapka wyposa-żone w strefy dotykowe, umożliwiające szybki dostęp do wybranych funkcji. Telefon ten obsłu-guje standard mobilnej telewizji V-Cast. Jednak najciekawszym elementem tego modelu jest od-mienna dystrybucja Linuksa, którą zainstalowa-no w tym modelu – nic innego jak Android.

Większość pisanych powyżej modeli tele-fonów nie trafiła do Polski oficjalnymi kanała-mi. Są one jednak do zdobycia dzięki szerokie-mu gronu miłośników produktów tej marki spro-wadzających do naszego kraju najlepsze mode-le. Jednak jedna z komórek Motoroli z systemem operacyjnym Linux zdobyła uznanie nie tylko na szeroko pojętym rynku europejskim, lecz nawet w Polsce. Mam na myśli Motorolę RAZR V8 (Rysunek 14). Model ten – z klapką – wyposa-żony jest w zewnętrzny dotykowy wyświetlacz oraz 480MB lub 2 GB wewnętrznej pamięci. Model ten zachwycał przede wszystkim perfek-cyjnym wykonaniem – metalową obudową oraz wyświetlaczami pokrytymi szkłem. Atrakcyjno-ści przydaje mu również łatwy w obsłudze, intu-icyjny system operacyjny Linux.

Dystrybucje MotoroliSystem operacyjny Linux na wybranych mode-lach komórek firmy Motorola gości już od kilku-

nastu lat. Wiele się w tym czasie zmieniło – za-równo w zakresie sprzętu, jak i oprogramowania. Pierwsze telefony Motorola z Linuksem wypo-sażone były w dystrybucję EZX, która zawierała jądro systemowe o zamkniętym kodzie, pocho-dzące z firmy MontaVista (Ramka Firma Mon-taVista) oraz silnika graficznego Qt/Embedded dostarczonego przez Trolltech. Dodatkowo Mo-torola dostarczyła własne biblioteki – zarówno w zakresie sterowników, jak i środowiska graficz-nego (również o niejawnym kodzie). W skład dystrybucji EZX wchodziło więcej zamknięte-go oprogramowania: przede wszystkim oprogra-mowanie odpowiedzialne za podstawową funk-cjonalność – korzystanie z połączeń głosowych, a także oprogramowanie PIM, odtwarzacz Real-Player, przeglądarka internetowa Opera, opro-gramowanie do nawigacji CoPilot oraz wirtual-na maszynę JAVA – wtedy jeszcze o zamknię-tym kodzie. Ponadto w telefonach z EZX wystę-pował specyficzny rodzaj portu mini-USB EMU (Enhaced Mini USB). Jego niezwykłość polega-ła na połączeniu wielu funkcji w jednym porcie, tj: transmisji danych w standardzie USB, port USB host, serial port, transmisja sygnału au-dio stereo (słuchawki stereo muzyczne), trans-misja dźwięku audio mono (proste zestawy słu-chawkowe), ładowanie akumulatora telefonu, a także port zestawu samochodowego. Ten dość skomplikowany koktajl obsługiwany był rów-nież za pomocą zamkniętych sterowników do-starczonych przez Motorolę. Jednocześnie na-leży mieć świadomość, że dystrybucja EZX za-wierała wiele elementów o otwartym kodzie, np. zasadnicza część kernela, a także niektóre spe-cjalistyczne sterowniki (np. obsługa GPRS, czy ekranu dotykowego). Ponadto cały kod kompi-

Rysunek 11. MOTOZINE ZN5 – telefon powstały we współpracy z firmą Kodak

Rysunek 12. MOTO U9 – ciekawy design i wyświe-tlacz OLED na obudowie

Rysunek 13. Motorola Krave ZN4 – pierwsza Moto-rola z Androidem

Rysunek 14. Motorola RAZR V8 – popularny w Pol-sce model działający pod kontrolą Linuksa

Page 53: Linux 05 2009 PL

52

SprzętLinux na urządzeniach mobilnych

maj 2009 53

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

lowany był przy użyciu standardowych biblio-tek gcc i glibc.

Firma Motorola popełniła jednak zasadniczy błąd nie udostępniając zestawu narzędzi dewelo-perskich do tworzenia aplikacji dla telefonów z systemem Linux, zachęcając w zamian do ko-rzystania z API J2ME. Tak się jednak nie stało. W odpowiedzi na brak otwartych narzędzi dewe-loperskich, społeczność sympatyków telefonów Motorola z Linuksem powołała do życia w 2005 roku projekt OpenEZX, który miał na celu stwo-rzenie dystrybucji, który zastąpi oryginalny sys-tem. Cele OpenEZX były następujące:

• zbieranie i publikowanie informacji na te-mat sprzętu i oprogramowania telefonów Motorola z systemem EZX;

• przeportowanie wszystkich sterowników z jądra 2.4.20 do bieżącego jądra z linii 2.6.x;

• ostatecznie – dostarczenie firmware te-lefonów, które będzie w 100% oparte na otwartym kodzie i jednocześnie całkowi-cie działające.

Ostatni cel został podzielony na dwa etapy. Pierwszy ma na celu stworzenie kodu jądra Li-nuksa. Później zaś przyjdzie czas na pracę nad oprogramowaniem przestrzeni użytkownika. Obecne prace skupiają się nad trzema mode-lami Motoroli: A780, E680 oraz E680i, które w przyszłości posłużą jako odskocznia do now-szych telefonów. Aktualny stan pracy, pomimo wytężonej pracy deweloperów i stałego postę-pu, pozostawia jeszcze wiele do życzenia, także OpenEZX nie może być używany zamiennie z oryginalnym systemem – projekt ten nadal jest we wczesnej fazie rozwojowej. Należy jednak pogratulować deweloperom OpenEZX zapału, gdyż projekt ten nie jest w żaden sposób wspie-

rany przez Motorolę, a nadal systematycznie się rozwija.

Mniej więcej w 2005 roku Motorola zro-zumiała, że nie da się dalej tworzyć wydajne-go oprogramowania dla nowoczesnych telefo-nów bazując na starzejących się technologiach. Dlatego też po raz pierwszy w telefonie MO-TOROKR Z6 zastosowała całkiem nowy sys-tem operacyjny nazwany L-J (od Linux-JAVA) lub częściej MotoMAGX, który, jak już wcze-śniej wspomniałem przy okazji opisywania tego telefonu, zawierał jądro 2.6.10 (ponownie dostar-czone przez MontaVista) oraz oryginalną, dostar-czaną przez Sun wirtualną maszynę JAVA spe-cjalnie przygotowaną dla urządzeń z systemem wbudowanym. Ponownie za środowisko graficz-ne odpowiadały biblioteki Qt/Embedded, lecz w odświeżonej wersji. Razem z nowym systemem Motorola stworzyła portal opensource.motoro-la.com, mający na celu promowanie Wolnego

Rysunek 15. Schemat obrazujący architekturę systemu ALP 3.0

������������������������������

������

��������������

�����������

�������������

��������

��������

��������������

���������

��������

����

����������

�������������

������������

������������

�������������

������

������������

��������

��������

�����

����

�������

�����������������

��������������������������������������

�����������������������

�������������

���������

������������

����

����

�������

������������������

���������

������

����������

�����������

������

������

��������������

�������

��������

���������������

�������

��������

��������

����������

����������������

���������������

������

��������

���

���������

���������

��������������

��������

���������

��������

�����������������

���������

����������

������������

�����������

��������

����������

��������

�������������

����������������

��� ��������������

��������

�������

��������

��������������

���������

���������

���

���������

���������

����������

�������

����������

�������

��������

��������������������

���������

���������

������

����

������

�������

��������

������

������

����

�����������

�������

�������

������

������������

��������

�������

�������� ���������������

����������

��������

����������

�������������

����������������

��������

�������������������������������������

�������������������������

���������������

����������������

�����������

���������������

�����������������

������������

����������

������������� �����������

����������������

������������������

���������������

��� ��� �����������������������

����������������������

��������������

�������������������������������������������������������

����������� ������ ����������� ������������������������� ������������

����������

������

������������

��������

Page 54: Linux 05 2009 PL

54

SprzętLinux na urządzeniach mobilnych

maj 2009 55

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

Oprogramowania, a także wypuściła narzędzia deweloperskie potrzebne do tworzenia oprogra-mowania dla tego systemu – MOTODEV Stu-dio. Różne wersje tego programu umożliwia-ją tworzenie aplikacji dla systemów Linux, jak i Symbian UIQ, a także w dla K-JAVA. Kolej-na wersja MOTODEV Studio dostarcza narzędzi do tworzenia aplikacji w postaci wigetów siecio-wych. Narzędzia te powstały na bazie OpenSour-ce'owego projektu IDE Eclipse.

System MotoMAGX nie był jednak w peł-ni otwartym systemem, choćby ze względu na jądro dostarczone przez firmę MontaVista, któ-re zawierało zamknięte sterowniki. Motorola dą-żąc więc do całkowitego otwarcia kodu swoje-go oprogramowania, w 2007 roku wraz z firma-mi NEC, NTT DOCOMO, Panasonic, Samsung oraz Vodafone, powołała do życia fundację Li-Mo (od Linux Mobile), która miała na celu stwo-rzenie w pełni otwartego systemu operacyjnego bazującego na Linuksie (nie tylko opracowanie standardów), przeznaczonego dla telefonów ko-mórkowych. Z czasem do fundacji dołączyły in-ne firmy robiące interesy na rynku telefonii ko-mórkowej – operator Orange, SK Telecom, a tak-że firma ACCES – właściciel systemu operacyj-nego PalmOS, który od dłuższego czasu praco-wał nad własną wersją dystrybucji Linuksa dla urządzeń z systemem wbudowanym (WebOS). Fundacja opracowała gotowy system operacyjny, który wykorzystany został na dzień dzisiejszy w ponad trzydziestu modelach telefonów komórko-wych trzech różnych firm (NEC, Panasonic oraz oczywiście Motorola). Innowacyjność LiMo w stosunku do poprzednich systemów wykorzysty-

wanych przez Motorolę polegała między innymi na całkowitej rezygnacji z zamkniętego kodu. W zamian stosowane są w pełni otwarte i powszech-nie dostępne rozwiązania. Kernel pochodzi oczy-wiście z linii 2.6 – bezpośrednio z projektu jądra dla architektury ARM, zostało uzupełnione jed-nak dodatkowymi sterownikami, często mają-cymi otwarte pochodzenie. Przykładem tu mo-że być obsługa Bluetooth – zaimplementowana w systemie dzięki oprogramowaniu pochodzące-mu z projektów Bluez oraz OpenOBEX.

Generalnie rzecz ujmując, wizja LiMo po-lega na maksymalnym skupieniu się na war-stwie pośredniczącej systemu, pozostawiając rozwój jądra środowisku OpenSource, a war-stwę aplikacji firmom będącym członkami fun-dacji. Podejście takie jest uzasadniane chęcią uniknięcia konfliktów na tle biznesowym. In-aczej mówiąc, firmy wchodzące w skład fun-dacji LiMo, nie chcąc wchodzić sobie w para-dę, wspólnie pracują nad rozwiązaniami, któ-re przysłużą się wszystkim, nie przeszkadzając robić samodzielnych interesów.

Na ostatnim kongresie Mobile World Con-gress fundacja LiMo zaprezentowała najnow-szą wersję swojego systemu oznaczonego sym-bolem R2. Jednocześnie firma Access – jeden z członków założycieli LiMo, zaprezentowa-ła trzecią wersję swojego systemu ALP (Access Linux Platform – ALP 3.0) będącego implemen-tacją założeń LiMo (Rysunek 15). ALP-3.0 jest nowoczesną dystrybucją Linuksa występują-cą w dwóch odmianach – dla smartfonów oraz urządzeń typu PDA. System ten oferuje wspar-cie dla wszystkich obecnie obowiązujących stan-

dardów w telefonii mobilnej, a także dla takich usług jak obsługa GPS/A-GPS. Zaimplemento-wano w nim obsługę ekranu dotykowego za po-mocą palca, jak i rysika, a także obsługę klawia-tury. ALP-3.0 obsługuje również akcelerometr oraz czujnik zbliżenia. System ten posiada za-awansowane funkcje PIM, pełną obsługę wielo-rakich standardów multimedialnych (w tym tych z Windows). Wszystko to pracuje wykorzystu-jąc biblioteki GTK+ oraz wiele innych OpenSo-urce-owych rozwiązań, np. takich jak biblioteki BlueZ i OpenObex czy silnik baz banych SQLite. Na stronach internetowych firmy Access zapre-zentowano liczne zdjęcia oraz filmy prezentujące możliwości tej platformy. Trzeba przyznać, że ro-bią wrażenie. Szczególną uwagę należy zwrócić na przeglądarkę internetową wchodzącą w skład ALP-3.0 – NetBrowser 3.5. Zgodnie ze specyfi-kacją obsługuje ona wszystkie popularne standar-dy spotykane na stronach internetowych, łącznie z obsługą Flash. Niestety nie maiałem możliwo-ści nigdy zetknąć się z tym produktem. Moje do-świadczenia zakończyły się na NetBrowser 3.1na platformie PalmOS. Niestety, przeglądarka ta nie zrobiła na mnie dużego wrażenia. Mam nadzieję, że pomimo nieznacznej zmiany numeracji, prze-glądarka NetBrowser z APL zmieniła się diame-tralnie. W przeciwnym przypadku całość skaza-na jest na porażkę.

Nie tylko MotorolaZ powyższego tekstu wydawałoby się, że jedy-nym graczem na rynku smartfonów działających pod kontrola Linuksa jest Motorola. Nic bardziej błędnego. Jak wspomniałem wcześniej, w skład fundacji LiMo weszły jeszcze inne firmy produ-kujące sprzęt – Panasonic, Samsung oraz mniej

Rysunek 16. Telefon HTC G1 (źródło: Wikipedia) Rysunek 17. Zrzut ekranowy z aplikacji AndroidMarket

Page 55: Linux 05 2009 PL

54

SprzętLinux na urządzeniach mobilnych

maj 2009 55

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

znana (lecz obecna) na rynku polskim firma NEC. Wszyscy ci producenci wyprodukowa-li telefony, które sprzedawane są przez japoń-skiego operatora telefonii komórkowej (i innych usług mobilnych, np. telewizji) – DoCoMo.

Przodownikiem okazuje się jednak fir-ma Samsung, która z powodzeniem od kilku lat wypuszcza na rynek (niestety, nie europej-ski) smartfony pracujące pod kontrolą Linuksa – SCH-i819, SGH-i858, SGH-i859. Telefony te (poza i859) pracują pod kontrolą dystrybucji Prizm 2.5, będącej dziełem koreańskiej firmy Mizi Research (oddział firmy WindRiver). Cie-kawostką tej dystrybucji jest to, że jej środowi-sko graficzne oparte jest na serwerze X-ów Ti-nyX, w połączeniu z QT/Embedded. W 2007 oku Mizi Research wypuściła nową wersję swojej dystrybucji – Prizm 3.0, która znalazła zastosowania w telefonie Samsung SGH-i859. W dystrybucji tej całkowicie porzucono QT/Embedded na rzecz środowiska GTK+.

Pod kontrolą Linuksa działa zdecydowanie więcej smartfonów niż te zaprezentowane powy-żej. Wszystkie one jednak są absolutnie nie do zdobycia w Polsce. Jedynym wyjątkiem są tele-fony OpenMoko – powstałe w ramach projektu o tej samej nazwie, o którym będę pisał w dalszej części artykułu. Telefony te są jednak bardziej narzędziem do pracy dla deweloperów chcących tworzyć oprogramowanie dla mobilnego Linuk-sa niż codziennym aparatem telefonicznym.

Android – Google jest wszędzieKolejnym aparatem telefonicznym pracującym pod kontrolą Linuksa jest HTC G1 z systemem operacyjnym Android. Gdybym w artykule tym nie wspomniał o projekcie Android, popełnił-

bym ciężki grzech zaniedbania. Android bo-wiem, niezależnie od tego, czy nam się to po-doba, czy nie (są bowiem różne opinie na temat tego projektu), dał Linuksowi na smartfonach mocnego kopniaka wybijając Linuksa daleko do przodu. Innym Linuksom na urządzenia mo-bilne pozostało jedynie gonić ten projekt. Stało się tak między innymi za sprawą mentora pro-jektu – firmy Google, która wyłożyła niewy-obrażalnie duże pieniądze na ten cel.

Sam aparat – HTC G1 (a właściwie HTC Dream) jest pierwszym urządzeniem seryjnie produkowanym, na którym pierwotnie zainsta-lowano system Android (Rysunek 16). Po raz pierwszy telefon ten został wprowadzony do sprzedaży w 2008 roku w sieci T-Mobile. Jest to pięciozakresowy telefon wyposażony w 3,2-ca-lowy dotykowy wyświetlacz o rozdzielczości 320x480 Px (180 ppi) oraz zminiaturyzowaną pełną klawiaturę w standardzie QWERTY. Tele-fon ten wyposażony jest w procesor Qualcomm MSM7201A ARM11 o częstotliwości 528MHz oraz 192 MB pamięci DDR SDRAM, oraz 256 MB pamięci Flash, którą można rozbudować maksymalnie do 8 GB za pomocą kart mikro-SD (w zestawie z telefonem znajduje się karta 1 GB lub 2 GB w UK). Ponadto telefon ten obsługuje Bluetooth 2.0 oraz sieci bezprzewodowe w stan-dardzie 802.11 b/g. Z dodatkowego wyposażenia G1 zawiera kamerę 3,2 MPx z autofokusem, in-terfejs A-GPS, dwa akcelerometry oraz czujnik zbliżenia i natężenia światła. Telefon ten pracuje pod kontrolą systemu Android w wersji 1.1

Historia systemu Android rozpoczęła się w 2005 roku, kiedy to Google kupiło niewielką fir-mę Android Inc., tworzącą oprogramowanie dla urządzeń mobilnych. Współzałożyciel tej firmy, jednocześnie pracownik Google, po wykupieniu firmy na jej bazie utworzył zespół, którego ce-lem miało być opracowanie systemu operacyjne-go dla urządzeń mobilnych opartego na Linuk-sie. Ważną datą w historii systemu Android jest 5 listopada 2007 roku, kiedy to założono Open Handset Alliance – konsorcjum z następujący-mi członkami-założycieami: Google, HTC, In-tel, Motorola, Qualcomm, T-Mobile, Sprint Ne-xtel oraz NVIDIA. Przewodnim celem OHA był rozwój otwartych standardów dla telefonii mo-bilnej. W tym samym czasie po raz pierwszy za-prezentowano nową platformę systemową An-droid. Tydzień później po raz pierwszy opubliko-wano SDK dla systemu Android, w skład które-go wchodziły narzędzia programistyczne, doku-mentacje, emulator systemu oraz wtyczka do je-dynego obsługiwanego IDE – Eclipse w wersji 3.2. Pomimo wielu skarg programistów, pierwsze aplikacje na platformę Android pojawiły się w ty-dzień po opublikowaniu IDE. Nikogo chyba nie zdziwi fakt, że pierwszym programem była gra – Wąż. Jednocześnie Google ogłosiło konkurs na najbardziej innowacyjne rozwiązanie progra-mistyczne dla systemu Android, w którym na na-grody przeznaczono aż 10 mln dolarów. Do dnia zakończenia konkursu – w kwietniu 2008, do Google wpłynęło ponad półtora tysiąca aplikacji ze 170 krajów. Wśród 50 prac finałowych 10 ze-

Rysunek 18. Smartfon Neo FreeRunner działający pod kontrolą OpenMoko (tu 2007.1) Rysunek 19. Architektura FSO

��������������������������������

���������������

����� ����� ����������� ���� ���

������ ��� ��� ���������� ������

����������������

������������� ��� ���������

���������� ������� �������

������������������

Page 56: Linux 05 2009 PL

56

SprzętLinux na urządzeniach mobilnych

maj 2009 57

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

społów otrzymało nagrody po 275 tys. USD, 10 zespołów – po 100 tys USD.

Aplikacje tworzone dla Android pisane są w języku JAVA, jednak nie są w systemie uru-chamiane za pomocą wirtualnej maszyny JA-VA, lecz wirtualnej maszyny Davlik. Co to ta-kiego? To nic innego jak odpowiednio spreparo-wana JVM okrojona przez zespół tworzący An-droid na potrzeby tego konkretnego systemu. W trakcie tworzenia aplikacji dla systemu Android kod źródłowy, powstały w Eclipse, kompilowa-ny jest przy zastosowaniu klasycznego kompi-latora JAVA (program javac). Następnie binar-ne klasy (pliki .class w JAVA) oraz pakiety jar zawierające takie pliki za pomocą narzędzia dx przekształcane są do kodu binarnego Davlik, za-pisanego w plikach o rozszerzeniu dex. Brak kla-sycznej JVM dla JAVA ME programiści Andro-ida tłumaczyli lepszym zarządzaniem zasobami mobilnego urządzenia przez maszynę w porów-naniu do klasycznej JVM. Krążą jednak plotki, że prawdziwą przyczyną był brak zgody Google na licencję, na podstawie której rozpowszech-niana była JVM ME. Podsumowując, można powiedzieć, że aplikacje pisane dla systemu An-droid wykorzystują API dostarczone przez de-weloperów Android. Napisane są w języku JA-VA, a wykonywane za pośrednictwem wirtual-nej maszyny Davlik.

Aplikacje napisane dla Android można roz-powszechniać za pomocą AndroidMarket – plat-formy rozpowszechniania programów, powstałej w odpowiedzi na AppStore (Rysunek 17). Oby-dwa przedsięwzięcia jednak więcej dzieli niż łą-czy. Największą różnicą jest to, że każdy dewe-loper może przesłać swoją aplikacje do Android-Market. Aplikacja ta w żaden sposób nie jest we-ryfikowana – pod względem bezpieczeństwa czy sprawności działania itp. Z jednej strony jest to niesamowita zaleta wobec AppStore, gdzie na-wet bardzo dobre aplikacje nie mają szansy za-istnieć, bo są niezgodne z polityką Apple. Z dru-giej zaś strony w AppStore nie pojawiła się do-

tychczas aplikacja, która narażałaby na niebez-pieczeństwo dane użytkownika. Sytuacja taka miała miejsce w przypadku programu Memo-ryUp Personal z AndroidMarket. Program, któ-ry miał służyć zwiększeniu wydajności telefonu, w rzeczywistości kasował wszelkie zapisane na nim dane. W AppStore taka sytuacja jest nie do pomyślenia... W sieci znalazłem również donie-sienia na temat niezbyt ciekawych poczynań An-droidMarket wobec darmowych odpowiedników płatnych aplikacji – są one zwyczajnie usuwane. Przykładem na to może być program Gadudro-id – program obsługujący sieć Gadu-Gadu. Po wprowadzeniu płatnego programu – ta darmo-wa została usunięta. W AppStore takie rzeczy się nie dzieją... Jedyną rzeczą, która przemawia zde-cydowanie na korzyść AndroidMarket jest moż-liwość zwrotu zakupionego programu w ciągu 24 h od zakupu. Dzięki temu każdy ma możliwość przekonania się, czy aplikacja, za którą zapłacił, na pewno mu się podoba. W AppStore taka moż-liwość jest nie do pomyślenia... Użytkownik po-dejmując decyzje o zakupie programu skazany jest jedynie na opinie zamieszczone przez innych kupujących. Jak dla mnie jest to mało wiarygod-ne źródło informacji. Sytuację ratują jedynie apli-kacje w wersji lite i full.

System Android ma zapewne tyle samo przeciwników co i zwolenników. Głównym za-rzutem jest zastosowanie Davlik VM zamiast JVM, gdyż zmniejsza to przenośność aplikacji JAVA – te przygotowane dla Android mogą być uruchamiane tylko na tej platformie. Rozwiąza-nie to dziwi o tyle, że na wielu innych mobilnych platformach (Symbian, Windows Mobile, a na-wet Linux) mobilna wersja JVM doskonale się

sprawdza. To nie jest jednak jedyna przyczyna krytyki systemu Android. Platformie tej zarzuca się między innymi niepełną zgodność ze standar-dami OpenSource. Przede wszystkim część sys-temu Android nadal pozostaje zamknięta (kod własnościowy), w tym fragmenty wirtualnej ma-szyny Davlik oraz biblioteki GUI – Skia. Ponad-to oprogramowanie dla Android musi być pisane tylko w Javie i wykonywane za pośrednictwem wirtualnej maszyny Davlik, przez co programi-ści nie mają dostępu do niższych warstw API. Ponadto programiści Android unikają jakichkol-wiek rozwiązań, które pozwoliłyby pracować te-mu systemowi w trybie serwera. Niemożliwe jest więc połączenie się z Androidem przez ssh (kie-dyś był telnet, lecz i tą możliwość usunięto) czy http. Brak zdalnego dostępu do powłoki w syste-mie pochodzącym od Linuksa mocno zdumiewa. Nawet Apple, które mocno broni swoich praw do oprogramowania, a dla MacOS na iPhone czy iPod Touch powstał serwer OpenSSH – co praw-da do instalacji przez Jailbareake, ale zawsze. Ta-kie ograniczenia mocno podważają wiarygod-ność systemu Android.

OpenMoko – przede wszystkim wolnośćJak wcześniej pisałem, Android miał być Open-Source-owym systemem na urządzenia mobilne. Co z tego wyszło – sam Czytelniku już wiesz... Zupełnie inaczej rzecz przedstawia się z plat-formą OpenMoko. Jest to projekt mający na ce-lu stworzenie systemu operacyjnego oraz opro-gramowania na urządzenia mobilne całkowicie zgodnego ze standardami OpenSource. Podstawą działania projektu OpenMoko jest smartfon Neo

• http://kandalaya.org/Docs/A760.html – szczegółowe informacje na temat współpracy A760 z Linuksem;

• http://www.motorola.com – strona firmy Motorola. Źródło zdjęć opisywanych telefonów Motorola i informacji na temat telefonów;

• http://www.mvista.com – strona firmy MontaVista;• https://opensource.motorola.com – strona projektu OpenSource Motorola;• http://developer.motorola.com/docstools/motodevstudio – strona projektu MOTODEV

Studio;• http://www.limofoundation.org – adres witryny internetowej fundacji LiMo;• http://alp.access-company.com – witryna firmy Access;• http://www.android.com – oficjalna witryna systemu Android;• http://googleandroid.blox.pl/html – ciekawy blog w języku polskim na temat Google

G1 i systemu Android;• http://www.androidal.pl – polski portal poświęcony systemowi Android;• http://www.openmoko.com – strona firmy OpenMoko, gdzie można dowiedzieć się

więcej na temat telefonu Neo FreeRunner;• http://www.openmoko.org – strona projektu dystrybucji OpenMoko;• http://www.freesmartphone.org/ – strona projektu FSO;• http://www.tuxbrain.com/fdom_en.html – strona projektu FDOM.

W Sieci

Rysunek 20. Smartfon Pam Pre

Page 57: Linux 05 2009 PL

56

SprzętLinux na urządzeniach mobilnych

maj 2009 57

SprzętLinux na urządzeniach mobilnych

www.lpmagazine.org

FreeRunner (Rysunek 18). Telefon ten wyróżnia przede wszystkim niespotykana gdzie indziej sty-listyka: owalny kształt z otworem w dolnej czę-ści. FreeRunnera cechuje ponadto duży 2,8'' do-tykowy wyświetlacz o rozdzielczości 480x640 Px (VGA), co jest w tej klasie telefonów raczej nie-spotykanym zjawiskiem. Urządzenie pracuje pod kontrolą procesora ARM9 @ 400 MHz ze wspar-ciem dla akceleracji grafiki 2D/3D przy udziale 128MB pamięci SDRAM oraz 256MB NAND Flash, która może być rozszerzona za pomocą kart mikro-SD. Ponadto Neo FreeRunner wypo-sażony jest w interfejs sieci Wi-Fi (802.1 1b/g), AGPS, Bluetooth 2.0, a także akcelerometr.

Telefon ten charakteryzuje się pełną otwar-tością. Wraz z zakupionym urządzeniem dostaje-my pełną specyfikację sprzętu, a także zainstalo-waną oficjalną dystrybucję OpenMoko. Dystry-bucja ta jest jednak jedną z wielu, które powstały z przeznaczeniem na ten telefon. Pierwsza wersja – OM – 2007.1 – została obecnie całkowicie za-rzucona. Jej kolejna odsłona OM 2007.2 znajduje się standardowo na telefonie FreeRunner. Jej in-terfejs został zaprojektowany tak, aby mógł być obsługiwany za pomocą palca. Jako środowi-sko graficzne OM 2007.2 wykorzystuje biblio-teki GTK+ pochodzące z projektu Gnome mobi-le. Kolejna wersja tej dystrybucji została opubli-kowana w sierpniu 2008 roku (oznaczona nume-rem 2008.8). Interfejs użytkownika wykorzystu-je biblioteki Qtopia działające pod kontrolą ser-wera X-ów, z możliwością uruchomienia aplika-cji napisanych z zastosowaniem bibliotek GTK+. Wersja ta charakteryzuje się wieloma zmianami w stosunku do poprzedniego wydania. Wprowa-dza między innymi graficzny instalator aplikacji czy możliwość zmian tematów graficznych. Za-uważone w tej dystrybucji błędy po części zosta-ły usunięte w kolejnym wydaniu opatrzonym nu-merem 2008.9 oraz 2008.12.

Kolejną dystrybucją działającą na FreeRun-nerze jest FSO. Skrót ten pochodzi od nazwy pro-jektu freesmartphone.org. Zastosowanie FSO na FreeRunnerze jest przykładem podziału pracy nad dystrybucją Linuksa. Deweloperzy skupie-ni wokół OpenMoko zajmują się pracami nad interfejsem użytkownika, zaś deweloperzy FSO – warstwą pośrednią systemu (Rysunek 19). Po-szczególne wersje FSO wydawane są w postaci punktów milowych (milestone) – różnie w zależ-ności od realizacji zamierzonych celów. Ostatnie wydanie – milestone 5 – opublikowane zostało w lutym 2009 roku. Pod koniec marca tego roku planuje się wydanie kolejnej edycji FSO.

Produktem będącym kompilacją OM oraz FSO jest SHR (Stable Hybrid Release). SHR jest projektem środowiska skupionego wokół projektów OpenMoko oraz FSO. Różnica po-między FSO a SHR polega na tym, iż FSO bę-

dzie wiecznie rozwijającym się projektem, któ-rego celem jest stworzenie jak najlepszej war-stwy pośredniej systemu. SHR natomiast ma na celu stworzenie kompletnego stabilnego śro-dowiska pozwalającego na pełne korzystanie z funkcji oferowanych przez aparat Neo FreeRun-ner. Tak więc wydaje się, że najbardziej oczywi-stym wyborem będzie dla przeciętnego użyt-kownika zastosowanie SHR.

Kolejną dystrybucją przeznaczoną na tę platformę jest FDOM (Fat and Dirty OpenMo-ko). Dystrybucja ta bazuje na bieżącym wyda-niu dystrybucji OM, do której dołączono licz-ne poprawki i aplikacje zaproponowane przez użytkowników i deweloperów OM.

Poza powyżej opisanymi dystrybucjami, na FreeRunnera powstało wiele innych dystrybucji, w tym portów dystrybucji znanych z PC-tów, np. Debian czy Gentoo. Możliwa jest również insta-lacja opisanej powyżej dystrybucji Android.

Palm rusza do bojuNa sam koniec chciałbym zaprezentować jed-no z nowszych urządzeń pracujących pod kon-tolą Linuksa – smartfon Palm Pre, którego pre-miera odbyła się na ostatnim kongresie Mobile World Congress (Rysunek 20). Telefon ten od razu został okrzyknięty kolejnym iPhone kil-lerem – jak każdy nowy smartfon z dotyko-wym ekranem, nieco przypominającym iPho-ne'a, wyznaczającego obecnie trend w tym seg-mencie rynku. Jednak obydwa urządzenia bar-dzo wiele dzieli. Przede wszystkim Palm Pre posiada wszystkie te funkcje, których zabra-kło w iPhone'ie: możliwość pracy programów w tle, funkcja kopiuj/wklej, pełna obsługa stan-dardu Bluetooth, funkcja modemu czy wreszcie banalna obsługa MMS-ów. Nie zabrakło nato-miast w Palm Pre funkcji, na które patent ma Apple, np. wyświetlacz dotykowy multitouch, który w Palm działa nieco inaczej, lecz w rze-czywistości jest tym samym. Dodatkowym atu-tem w Palm Pre jest wysuwana klawiatura w standardzie QWERTY.

Urządzenie to działa pod kontrolą systemu operacyjnego WebOS powstałego na bazie Li-nuksa – dzieła firmy Access, co jak dla mnie jest wyśmienitą rekomendacją. Firma ta stworzyła opisany wcześniej system ALP 3.0, a także jest właścicielem praw do systemów PalmOS. Z za-powiedzi wiem, że WebOS odziedziczył po Pal-mOS najlepsze jego cechy – dynamiczne zarzą-dzanie pamięcią, wielowątkowość. Dzięki inno-wacyjnym rozwiązaniom w PalmOS programy działały zdecydowanie szybciej niż na window-sowych odpowiednikach, nie mówiąc już o nie-mal natychmiastowym ich uruchamianiu. Zasa-da działania GUI w WebOS na Palm Pre opie-ra się na wykorzystaniu HTML i AJAX. Pul-

pit jest więc formą strony internetowej, napisa-ną we wspominaych technologiach. Rozwiąza-nie to ma swoje zalety i wady. Niewątpliwą zale-tą jest JavaScript – język znany i sprawdzony o bardzo dużym potencjale (zwłaszcza w połącze-niu z XML w AJAX), pozwalający na tworzenie szybkich, niezawodnych aplikacji. Język ten jest na tyle łatwy, że pozwoli to na tworzenie apli-kacji niemal każdemu, zwłaszcza jeżeli WebOS dostarczy dobre API. Wadą powyższego rozwią-zania są same wady JavaScript – przede wszyst-kim jest język interpretowany, słabo zoriento-wany obiektowo, co może utrudniać pisanie dla WebOS skomplikowanych aplikacji. Telefon ten ma być wprowadzony do sprzedaży w drugiej połowie roku, więc Palm ma jeszcze trochę cza-su, aby usprawnić swój produkt. Ja w każdym razie już nie mogę się doczekać.

PodsumowanieMam nadzieję, że udało mi się przedstawić możliwości, jakie daje Linux zastosowany na smartfonach w roli systemu operacyjnego. Po-ziom zaprezentowanych urządzeń, a także sys-temów operacyjnych, jest bardzo zróżnicowa-ny – od systemów będących w fazie rozwojo-wej do gotowych w pełni działających rozwią-zań. Tak więc pytanie, czy Linux może być sto-sowany na urządzeniach mobilnych jest całko-wicie bezzasadne, gdyż stan ten w tej chwi-li ma już miejsce, co postarałem przedstawić się w tym artykule. Zamiast tego chciałbym na sam koniec postawić pytanie, które wypły-nęło zaraz na początku artykułu – co przecięt-ny Kowalski, nie programista, lecz szary użyt-kownik, ma z tego, że Linux steruje jego smart-fonem? Możnaby odpowiedzieć, że nic nie ma, co byłoby bardzo błędnym podejściem. Prze-ciętny użytkownik korzysta bowiem poprzez ruch OpenSource i ostrą konkurencję wymu-szającą ciągły postęp oprogramowania – i co za tym idzie, sprzętu. W konsekwencji oznacza to, że Kowalski za niższą cenę otrzymuje lepszy produkt. Chyba już tylko z tego powodu, kupu-jąc nową komórę, warto wybrać tę – działającą pod kontrolą Linuksa.

Grzegorz Madajczak jest z wykształcenia le-karzem weterynarii i mikrobiologiem. Linuk-sem i ogólnym oprogramowaniem OpenSo-urce pasjonuje się od 2001 roku. Na co dzień używa Linuksa zarówno w pracy, jak i w do-mu. Jego ulubione dystrybucje to Gentoo i Slackware.Kontakt z autorem: [email protected]

O autorze

Page 58: Linux 05 2009 PL

SprzętLinux kontra iPod

58 maj 2009

SprzętLinux kontra iPod

59www.lpmagazine.org

a

utor

zy@

lpmag

azine

.org

Linux kontra iPodCodziennie chodząc po ulicach każdego z miast Polski, Europy i świata, niemalże na każdym kroku spotyka się ludzi słuchających muzyki przez charakterystyczne białe słuchawki. Wielu z nich należy do wielkiej rodziny posiadaczy iPoda. Ja sam do nich należę, więc poniższy artykuł – o wzajemnych relacjach Linuksa i iPodów będzie - wybitnie subiektywny.

Grzegorz Madajczak

Pomimo tak znacznej liczby użytkowników iPodów firma Apple ma w głębokim poważaniu tą część społeczności użytkowników odtwarzaczy Apple, która nie chce lub nie może używać PC-tów z Win-

dowsem lub Maców. Do prawidłowego działania urządzenia te bowiem wymagają zainstalowanego na komputerze programu iTunes, który dotychczas nie powstał w wersji na Linuksa. Po-dejście to dziwi mnie bardzo, gdyż przeportowanie z MacOS (potomek Unixa) na Linuxa nie powinno stanowić problemów. Władze Apple nie chcą jednak nawet słyszeć o takim rozwiąza-niu. Nie stanowi to jednak przeszkody dla miłośników iPodów i Linuksa, powstało bowiem wiele projektów, których zadaniem jest albo zastąpienie iTunes alternatywnym linuksowym pro-gramem, albo nawet uruchomienie Linuksa na iPodzie.

Alternatywny firmwarePrzeciętny iPod to nic innego jak wyspecjalizowany mini-kom-puter, nastawiony na odtwarzanie multimediów. Działa on pod kontrolą wbudowanego systemu operacyjnego – firmware, co oznacza, że może być ono (z mniejszym lub większym trudem) zastąpione innym, alternatywnym firmware. W tym też celu powstał projekt iPodLinux, mający na celu stworzenie alterna-

tywnego dla oryginalnego, dostarczonego przez Apple, firmwa-re, opartego oczywiście na Linuksie. Projekt ten wspiera wy-brane modele iPodów. Niestety, nawet w przypadku najlepiej wspieranych iPodów Classic nie udało się uzyskać pełnej ob-sługi sprzętowej. Niezależnie od modelu i generacji iPoda, pro-jektowi iPodLinux nie udało się dodać do budowanego firmwa-re zarządzania zasilaniem z możliwością trybu uśpienia.

Projekt ten całkowicie nie wspiera iPodów Nano od drugiej generacji włącznie, co spowodowane jest zmianami w sposobie szyfrowania firmware, wprowadzonymi przez Apple. Rozszy-frowanie firmware jest procesem niezbędnym, gdyż prace nad obsługą sprzętową iPodów w znacznej mierze opierają się na technice reverse engineering – inżynierii wstecznej (Ramka). Niezależnie od opisywanego projektu powstała inicjatywa, ma-jąca na celu zebranie maksymalnej ilości danych na temat iPo-dów Nano, w celu stworzenia alternatywnego firmware. Projekt iPodLinux nie zajmuje się również iPhonem oraz iPodem touch, wskazując, że alternatywne oprogramowanie na tych urządze-niach może być instalowane poprzez zdjęcie zabezpieczeń me-todą Jailbreake.

Projekt iPodLinux korzysta z jądra systemowego w wer-sji 2.4.24 pochodzącego z projektu μClinux. Ponadto w ramach

iPod Linux

Page 59: Linux 05 2009 PL

SprzętLinux kontra iPod

58 maj 2009

SprzętLinux kontra iPod

59www.lpmagazine.org

projektu iPodLinux rozwijany jest podprojekt GUI o nazwie Podzilla, działającego pod kontrolą silnika graficznego Hotdog. iPodLinux wykorzy-stuje również alternatywny bootloader, który po-zwala na wybór systemu do uruchomienia. Dzię-ki temu na iPodzie nadal możemy mieć zainstalo-wany oryginalny firmware Apple, iPodLinux, czy każde inne firmware, np. RoxBox (Rysunek 1).

Proces instalacji iPodLinuksa jest zróżni-cowany w zależności od tego, czy będzie odby-wał się za pośrednictwem komputera z systemem Windows, czy z systemem MacOS. Różnice te wynikają z obsługi systemów plików przez oba OSy. iPodLinux wymaga bowiem do działania systemu plików wspieranego przez Linuksa. W przypadku instalacji za pośrednictwem Windows, pamięć Flash iPoda dzielona jest na partycję z systemem plików FAT32 oraz partycję bardziej odpowiednią dla Linuksa – czyli ext2 lub ext3. Partycja FAT32 wykorzystywana jest jako po-średnik do instalacji oraz miejsce przechowywa-nia danych, plików muzycznych. Firmware iPo-dLinux zlokalizowane jest na właściwej partycji sformatowanej w systemie ext2/ext3. W przypad-ku instalacji z użyciem MacOSa, pamięć iPoda podzielona jest ponownie na dwie partycje – obie sformatowane w systemie HFS+. Dalsze etapy in-stalacji na systemie Linux i Windows przebiegają z wykorzystaniem graficznego instalatora.

Oprócz projektu iPodLinux dostępne jest przynajmniej jeszcze jedno alternatywne firmwa-re na wybrane modele iPodów – RoxBox. Firm-ware ten swój początek wzięło z prac nad alter-natywnym OpenSource-owym firmware dla od-twarzaczy plików muzycznych Archos. RoxBox nie jest dystrybucją Linuksa, lecz odrębnym sys-temem, jednak również spełniającym założenia OpenSource, dlatego więc warto powiedzieć na jego temat kilka słów. Z czasem rodzina obsługi-wanych odtwarzaczy zaczęła wzrastać, obejmu-jąc również niektóre z iPodów. Podobnie jak w przypadku iPodLinuksa, RoxBox nie obsługuje odtwarzaczy Nano 2 i nowszej generacji, iPod Touch oraz iPhonów. W systemach Windows i MacOS instalacja RoxBox na tych odtwarza-czach odbywa się za pomocą graficznego insta-latora. Niesamowitą zaletą firmware RoxBox jest możliwość stosowania tematów, które w ciekawy sposób potrafią diametralnie zmienić wygląd od-twarzacza (Rysunek 2).

W poprzednich akapitach tego artykułu wspomniałem, iż deweloperzy projektu iPodLi-nux nie zamierzają w najbliższym czasie wspie-rać iPodów Touch i iPhone'ów, zalecając stoso-wanie Jailbreake. Mimo wszystko w sieci zna-leźć można kilka niezależnych projektów ma-jący na celu stworzenie dystrybucji Linuksa na iPhona. Dlaczego bowiem nie możnaby było uruchomić Linuksa na iPhonie? Przyjemna wi-zja. Zadaniu temu mają zamiar sprostać dewe-loperzy projektu iPhoneLinux. Projekt ten na dzień dzisiejszy jest w bardzo wczesnej fazie rozwojowej. Z diagramu przedstawionego na stronie projektu wynika, iż na razie udało się je-dynie uruchomić system na iPhonie, bez obsłu-gi większości jego komponentów, jak na przy-kład funkcję ekranu dotykowego. Pomimo bar-dzo wczesnej fazy rozwoju projektu należy po-chwalić jego twórców, gdyż nie ma co liczyć na to, aby uzyskali oni kiedykolwiek wsparcie po-ważniejszych (finansowo) instytucji, co przy-śpieszyłoby prace. Więcej, w przypadku powo-dzenia projektu należy spodziewać się sankcji ze strony Apple, które na pewno na zgodzi się na alternatywny system na ich sztandarowym pro-dukcie. Jak na razie użytkownikom iPhone'ów, a także iPodów Touch pozostało łamanie zabez-pieczeń metodą Jailbreake.

Jailbreake – włamanie do więzienia?Przygotowanie alternatywnego firmware dla pro-stych odtwarzaczy iPod – zwłaszcza tych starszej generacji - z pewnością jest projektem, który ska-zany jest na sukces, czego dowodzi przykład opi-sanego również projektu RoxBox. Nieco inaczej wygląda sprawa z iPhonem czy iPodem Touch. Na dzień dzisiejszy marne są szanse, aby udało się uruchomić jakikolwiek funkcjonalny system na tych urządzeniach. Nie należy się tym jednak specjalnie martwić, gdyż deweloperzy z projektu Dev-Team opracowali system Jailbreake, który pozwala na złamanie zabezpieczeń systemu Ma-cOS w iPhonie lub iPodzie Touch. Złamanie tych zabezpieczeń konieczne jest, aby uzyskać dostęp do systemu plików hackowanego urządzenia. To zaś umożliwi instalację oprogramowania dostęp-nego poza osławionym iTunes AppStore.

Nie trzeba być geniuszem, aby domyśleć się, że nie podoba się to Apple... Przez długi czas kwestia jailbreakowania iPhona/iPoda Touch by-ła ze strony prawnej kwestią bardzo dyskusyjną. Jedna ze stron twierdziła, że proces ten – łamią-cy zabezpieczenia systemu – co najwyżej pozba-wia użytkownika gwarancji. Z drugiej zaś strony dowodzono, że Jailbreake umożliwia jego użyt-kownikom nie tylko łamanie zabezpieczeń so-

Rysunek 1. Bootloader w systemie iPodLinux

Rysunek 2. Wygląd jednego z tematów RoxBox na iPodzie

Rysunek 3. iTunes 8 w Ubuntu przez Wine. iTunes 8 w Ubuntu poprzez Wine

Page 60: Linux 05 2009 PL

60

SprzętLinux kontra iPod

maj 2009 61www.lpmagazine.org

SprzętLinux kontra iPod

ftwarowych systemu, lecz także do zdejmowania blokady SIM-Lock, a także umożliwia instalację pirackiego oprogramowania – w tym kradzione-go z iTunes AppStore – co z pewnością nie było legalne. Podsumowując, przez długi czas istnia-ło przekonanie, że sam Jailbreake nie jest niele-galny. Dopiero jego użycie niezgodnie z prawem sprawiało, że stawał się on nielegalny.

Na przełomie stycznia/lutego 2009 roku Ap-ple wytoczyła na jailbreakowiczów ciężką artyle-rię. Opublikowany w tym czasie raport Copyright Office (CO), powstały na zamówienie Apple, ana-lizuje sytuację prawną jailbreakowania powołu-jąc się na obowiązujące w USA prawo – Digital Millennium Copyright Act (DMCA). Raport ten stwierdza, że modyfikacja systemu w ramach jail-breakowania jest nielegalna, ale pod pewnymi wa-runkami... Przede wszystkim umowa licencyjna iPhone/Ipod Touch zakazuje modyfikacji jakiej-kolwiek części systemu operacyjnego tych urzą-dzeń. Jednak legalność tego zapisu została podwa-żona we wspomnianym raporcie. Nie zmienia to jednak faktu, iż akceptując umowę licencyjną zga-dzamy się na jej warunki. Ważną przyczyną nie-legalności procesu łamania zabezpieczeń jest fakt, że użytkownik końcowy nie dokonuje tych mody-fikacji samodzielnie, lecz korzysta z oprogramo-wania stworzonego przez osoby trzecie. DMCA dopuszcza zaś samodzielną modyfikację opro-gramowania – na własne potrzeby. Kolejnym ar-gumentem CO przeciwko Jailbreake było stwier-dzenie, iż proces ten powoduje zwiększoną ilość uszkodzeń iPhonów, przez co naraża firmę Apple na nieuzasadnione koszty związane z serwisowa-niem takiego sprzętu. Jednak najważniejszą przy-czyną stwierdzenia nielegalności tego procesu jest sytuacja, o której pisałem już wcześniej – Jailbre-

ake umożliwia instalację nielegalnego oprogramo-wania, przez co naraża na straty finansowe nie ty-ko dystrybutora oprogramowania, które podlega kradzieży, lecz także twórców – właścicieli praw do tego oprogramowania. Powyższe argumenty są jedynie nieznacznym wyrywkiem wspomnianego wyżej raportu, w którym CO ostatecznie stwierdza nielegalność modyfikacji OSa iPhona poprzez ja-ilbreakowanie. Złamanie przepisów DMCA w tym zakresie powoduje możliwość ukarania oso-bę popełniającą takie wykroczenie i naraża na karę grzywny w wysokości do 2500 USD oraz pozba-wienia wolności do pięciu lat.

Na całe szczęście DMCA jest prawem obo-wiązującym w USA, nie zaś w Polsce czy Euro-pie, co sprawia, że na razie Jailbreake jest u nas legalny (choć przyznam, sprzeczny moralnie). Myślę również, że sytuacja ta nie powinna w Eu-ropie ulec zmianie ze względu na odmienne po-dejście do praw autorskich w EU. Przykładem na te różnice była sytuacja z patentami w zakresie oprogramowania – w USA przepisy takie obo-wiązują, pozwalając na bzdurne patentowanie pomysłów w zakresie oprogramowania kompu-terowego. W Europie zaś, między innymi dzię-ki stanowczemu sprzeciwowi Polski, patenty na oprogramowanie nie obowiązują. Cieszmy się więc jeilbreakowanymi iPhonami/iPodami To-uch i dodatkowym oprogramowaniem instalo-wanym przez program Cyndia.

Ja osobiście uważam, że miałem i mam nie-zbywalne prawo do jailbreakowania uczciwie za-kupionego iPoda Touch. Odtwarzacz ten kupiłem jeszcze ze starą wersją (1.4) oprogramowania i wkrótce po zakupie zapłaciłem za upgrade syste-mu do wersji 2.x. Od czasu do czasu zdarza mi się kupić jakiś program w iTunes AppStore. Jedno-

cześnie korzystam z legalnego oprogramowania zainstalowanego przez Cyndia. Przede wszystkim jednak iPoda jailbreakowałem, aby zainstalować na nim serwer SSH. To zaś daje mi możliwość ko-rzystania z iPoda pod Linuksem, między innymi dzięki ominięciu konieczności posiadania iTunes.

Alternatywa dla iTunesCo prawda posiadam MacBooka z iTunes, lecz nie przeszkadza mi to chcieć korzystać z iPoda pod Linuksem. Niestety, pomimo apelu użyt-kowników Linuksa wysłanego do Apple, firma ta nie zamierza stworzyć wersji iTunes dla tego sys-temu. Niezależni deweloperzy starają się rozwią-zać ten problem dwiema drogami: poprzez próby instalacji windowsowej wersji programu pod Li-nuksem lub poprzez stworzenie alternatywnego oprogramowania. Postaram się teraz przedstawić oba podejścia. Od razu jednak uprzedzam, że wy-niki powyższych starań nie są zachęcające.

Pierwszym sposobem rozwiązania problemu niekompatybilności iTunes z Linuksem jest próba zmuszenia działania tego programu za pośrednic-twem Wine. Przeglądając bazę danych aplikacji obsługiwanych przez Wine, iTunes w wersji 8.x uzyskało status srebrny, co oznacza, że zainstalo-wana aplikacja powinna działać z błędami, któ-re jednak nie powinny wpływać na jej normalne użytkowanie. Zaleca się w tym celu instalację Wi-ne w wersji min. 1.0 oraz iTunes w wersji 8.x. Po-nadto należy tak skonfigurować program (z uży-ciem programu Winecfg), aby emulował on sys-tem Windows XP. Na Gentoo z jądrem 2.6.28-he-lium0 i Wine-1.12 niestety nie udało mi się te-go dokonać. Również instalując Wine w niższej,

Technika inżynierii wstecznej (programowa-nia zwrotnego, ang. reverse engineering) to proces badania produktu (także oprogra-mowania) w celu ustalenia, jak on dokład-nie działa, a także w jaki sposób został wy-konany. Proces ten zazwyczaj prowadzony jest w celu zdobycia informacji niezbędnych do skonstruowania odpowiednika. Inżynieria wsteczna oprogramowania może być stoso-wana w celu zapewnienia obsługi nieudoku-mentowanym standardom zapisu, protoko-łom komunikacyjnym czy też urządzeniom peryferyjnym. Procesu tego, w przypadku oprogramowania, dokonuje się z zastoso-waniem deasemblacji i dekompilacji – czyli przekształcania kodu maszynowego na kod zrozumiały dla człowieka. Legalność pro-gramowania wstecznego podlega dyskusji, a wielu krajach jest niezgodna z prawem.

Inżynieria odwrotna (za Wikipedia)

Rysunek 4. Program GtkPod

Page 61: Linux 05 2009 PL

60

SprzętLinux kontra iPod

maj 2009 61www.lpmagazine.org

SprzętLinux kontra iPod

jak i wyższej, a także różne wersje iTunes ( z li-nii 6.x, 7.x a także 8.x) nie udało mi się doprowa-dzić do poprawnej instalacji tego programu. Do-piero dłuższe poszukiwania w sieci wykazały, iż na standardowej instalacji Wine niemożliwa jest instalacja iTunes. Istnieje jednak opis, jak tego do-konać wraz z niezbędnymi łatkami na kod źródło-wy Wine. Na stronie http://www.huanix.com/ opi-sany jest szczegółowo ten proces, a także dostęp-ne są łatki na Wine i jądro systemowe oraz skryp-ty automatyzujące proces instalacji. Wadą opisy-wanego rozwiązania jest jednak jego ograniczenie tylko do jednej dystrybucji – Ubuntu. Zawarty tam skrypt (Wine-116-itunes-no-devices.sh ) automa-tyzuje proces łatania, konfiguracji i instalacji Wi-ne 1.16 (wersja rozwojowa), a następnie instalacji iTunes 8.01. Proces ten przeprowadzony na Ubun-tu kończy się pomyślnie. Jednak zgodnie z ostrze-żeniami twórcy wspomnianych wyżej łatek do Wine i skryptu automatyzującego instalację, tak zainstalowany program nie wykrywa podłączenia iPhone'a, a także iPoda Touch. Problem ten wyni-ka z nieprawidłowej obsługi USB przez Wine. Tak więc w stosunku do tych dwóch urządzeń funkcjo-nalność tak zainstalowanego programu iTunes jest zerowa. Spodziewam się jednak, iż już wkrótce błędy te zostaną usunięte, pozwalając na bezpro-blemową instalację iTunes poprzez Wine.

Póki co, należy szukać innych rozwiązań pro-blemu niezgodności iTunes i Linuksa. Najlepszym sposobem jest instalacja alternatywnego oprogra-mowania. Wbrew pozorom istnieje spory wybór w tym zakresie. Większość z nich korzysta z bi-blioteki libgpod, która powstała jako część projek-tu GtkPod – programu do obsługi iPodów napisa-nego z użyciem bibliotek GTK+. Program ten po-trafi całkowicie zastąpić iTunes w zakresie zarzą-dzania utworami muzycznymi i innymi mediami zgromadzonymi na iPodzie. Poza normalnymi czynnościami związanymi z zarządzaniem media-mi zgromadzonymi w odtwarzaczu, GtkPod ofe-ruje również wiele dodatkowych funkcji. Jedną z nich jest możliwość prostego i zaawansowanego filtrowania, jak również wyszukiwania utworów z możliwością masowej modyfikacji tagów ID3. GtkPod może być użyty również do zainicjowa-nia iPoda – co może być zwłaszcza wykorzystane w sytuacji, gdy nie mamy dostępu do komputera z Windows i zainstalowanym iTunes.

W przypadku większości wersji iPodów pro-gram nie wymaga jakichkolwiek czynności kon-figuracyjnych. Jedynie w przypadku iPoda To-uch, a także iPhone'a wymagane jest wprowadze-nie pewnych modyfikacji. Związane jest to z bra-kiem pełnej obsługi obu urządzeń przez bibliote-kę libgpod – działają jedynie w trybie tylko do odczytu i nie łączą się z programem przez kabel USB, a przez sieć WiFi za pośrednictwem SSH. W celu podłączenia tych urządzeń wymagane jest

włączenie obsługi systemu plików w przestrzeni użytkownika (moduł FUSE), a także instalacja programu sshfs (systemu plików przez SSH). Po spełnieniu powyższych zależności należy zamon-tować urządzenie powyższym poleceniem:

# sshfs -o allow_other root@IP_iPoda:

/var/mobile/Media /mnt/ipod

Następnie należy podłączyć iPoda/iPhona do USB i wydać polecenie:

# lsusb -v | grep -i iSerial

Powyższe polecenie pozwoli odczytać GU-ID urządzenia w systemie – pierwszych 16 cyfr

w pierwszej linijce wyświetlonego komunika-tu. Wartość GUID należy zapisać w pliku /var/mobile/Media/iTunesControl/Device/SysInfo na podłączonym iPodzie/iPhone'ie. Standardowo fol-der Device i plik SysInfo nie istnieją, należy więc stworzyć właściwy folder i plik w strukturze kata-logów iPoda (Listing 1). Czynności te pozwolą na dalsze bezproblemowe korzystanie z iPoda To-uch i iPhone'a w opisywanych programach. Pomi-mo spadku szybkości transmisji związanej z reali-zacją połączenia za pośrednictwem sieci WiFi za-miast kabla USB, jest to moim zdaniem wygodne rozwiązanie, którego brak w oryginalnym iTunes. Przypominam jednak, że do przeprowadzenia po-wyższych czynności wymagane jest złamanie za-bezpieczeń systemu metodą Jailbreake z instala-

Rysunek 6. Program Banshee

Rysunek 5. Amarok obsługujący iPoda

Page 62: Linux 05 2009 PL

62

SprzętLinux kontra iPod

maj 2009 63www.lpmagazine.org

SprzętLinux kontra iPod

cją SSH. W systemie Linux istnieje znaczny wy-bór aplikacji obsługujących iPody. Kolejny, któ-ry chciałbym przedstawić, to Amarok – znany kombajn muzyczny przeznaczony dla środowi-ska KDE. Program ten również pozwala na peł-ne zarządzanie plikami muzycznymi na iPodzie, np. ich synchronizację z komputerem (Rysunek 4). W celu podłączenia iPoda do Amaroka nale-ży z Menu Ustawienia wybrać pozycję Konfigu-racja Amarok. Następnie z otwartego panelu kon-figuracyjnego należy wybrać pozycję Media. Je-śli podłączone urządzenie nie istnieje wśród wy-świetlonych na liście, można spróbować ponow-nie je wykryć lub dodać ręcznie. Po zamknięciu

okna dialogowego, w głównym oknie programu tuż pod paskiem narzędziowym znajduje się roz-wijana lista wszystkich przenośnych odtwarza-czy muzycznych dodanych do programu. Wystar-czy wybrać właściwe, lub jeśli lista zawiera tylko jeden element – iPoda, należy nacisnąć przycisk połącz. Na liście utworów muzycznych po lewej stronie ukaże się zawartość podłączonego iPoda. W przypadku odtwarzacza Amarok i iPodów To-uch oraz iPhone'ów z firmware 2.x należy doko-nać pewnej modyfikacji ustawień systemowych iPoda/iPhona, związanych z nieprawidłową obsłu-gą bazy iTunesDB w wersji 4. Aby ominąć ta nie-dogodność, w pliku /System/Library/Lockdown/

Checkpoint.xml w Podzie/iPhonie należy odnaleźć klucz DBVersion i zmienić jego wartość z 4 na 2. Po restarcie urządzenia i ponownym podłączeniu do Amaroka wszystko będzie działało bezproble-mowo. Na koniec dodam, że obie opisane powy-żej modyfikacje nie wpływają w żaden sposób na normalne użytkowanie odtwarzaczy z programem iTunes i każdym innym.

Ciekawym rozwiązaniem programu multi-medialnego – kombajnu mającego jak najbardziej zastąpić iTunes – jest odtwarzacz Banshee (Ry-sunek 6), wykorzystujący biblioteki GTK+. Jako silnik odtwarzający dźwięk program ten wyko-rzystuje mikser gstreamer – znany ze środowiska Gnome. Ta więc osoby pracujące na KDE chcąc zainstalować Banshee muszą być przygotowane na konieczność instalacji dużej liczby dodatko-wych programów w celu spełnienia zależności. Program ten dzięki bibliotece libgpod oraz od-powiedniej wtyczce standardowo wchodzącej w skład programu, potrafi obsługiwać iPody z ogra-niczeniami wspomnianymi powyżej. Moim oso-bistym zdaniem, osoby pracujące w środowisku KDE powinny unikać tego programu, ze względu na znaczne zależności miksera gstreamer, a także mniejszą intuicyjność w porównaniu do Amaro-ka. Aby być sprawiedliwym, muszę dodać, iż pro-gram ten z kolei jest dobrym rozwiązaniem dla osób pracujących w Gnome.

Dla osób pracujących w środowisku Gno-me niemal naturalnym programem do zarządza-nia plikami muzycznymi iPoda zdaje się być pro-gram RythmBox (Rysunek 7). Podobnie do opi-sanych uprzednio programów, RythmBox auto-matycznie rozpoznaje iPoda i, podobnie do in-nych opisanych w tym artykule programów, ko-rzysta on z bblioteki libgpod. Konfiguracja Ry-thmBox do pracy z iPodem sprowadza się do po-dania ścieżki dostępu do folderu, w którym iPod będzie automatycznie ładowany. Dalsza praca z tym programem nie odbiega od tej w innych opi-sywanych powyżej programach.

Kolejnym programem obsługującym iPody pod Linuksem jest SongBird (Rysunek 8) – pro-gram powstały w ramach prac projektu Mozilla. Program ten wygląda ciekawie, do obsługi iPo-dów również używa biblioteki libgpod oraz wła-

Rysunek 8. Program Songbird

Rysunek 7. Program RythmBox

Listing 1. Niezbędne modyfikacje w systemie iPhone'a/iPoda Touch, aby urządzenia te działały z GtkPod i Amarok # mkdir /mnt/ipod/var/mobile/Media/

iTunesControl/Device

# touch /mnt/ipod/var/mobile/Media/

iTunesControl/Device/SysInfo

# echo '1234567890123456' >>

/mnt/ipod/var/mobile/Media/

iTunesControl/Device/SysInfo

Page 63: Linux 05 2009 PL

62

SprzętLinux kontra iPod

maj 2009 63www.lpmagazine.org

SprzętLinux kontra iPod

snej wtyczki. Muszę jednak przyznać, iż nie uda-ło mi się podłączyć do tego programu iPoda To-uch ani nawet iPoda Nano w dystrybucji Gen-too, Ubuntu i SuSe. Dlatego nie będę się nad nim więcej rozwodził.

Ostateczne rozwiązanieW przypadkach gdy nie mamy możliwości sko-rzystania z opisanych powyżej programów, np. w przypadku posiadania iPhone'a/iPoda Touch, za-wsze istnieje możliwość obejścia problemów try-bu tylko do zapisu poprzez zainstalowanie na od-twarzaczu alternatywnego programu odtwarzają-cego multimedia. W Cyndii jest przynajmniej kil-ka takich programów, np. MPlayer czy VLC. Po instalacji tych programów dodajemy do odtwarza-cza pliki muzyczne, playlisty w miejsca wskazane przez twórców programów, poprzez łącze kana-łem SSH, jak opisałem to powyżej. Niestety, roz-wiązanie to sprawia, że nie będziemy mieli możli-wości słuchania muzyki za pomocą oryginalnego programu iTunes zainstalowanego na urządzeniu, co jest moim zdaniem wielką stratą. Jednak, jak się nie ma co się lubi, to się lubi co się ma...

Kodowanie plików dla iPodaProgramy do zarządzania plikami muzyczny-mi i odtwarzania muzyki to jedno. Drugie – trze-ba przygotować sobie wcześniej te pliki. Ipody pod tym względem nie są specjalnie wymagające – obsługują większość dostępnych formatów ko-dowania plików muzycznych: MP3, WAV. Jednak głównym kodekiem stosowanym przez iTunes i preferowanym przez iPody jest AAC (16 do 320 kb/s). Oczywiście najłatwiej w systemie Linux jest kodować pliki muzyczne do formatu mp3, lecz również format AAC nie powinien sprawić pro-blemu. W tym celu należy zainstalować odpo-wiednie kodeki. Do dyspozycji mamy OpenSour-ceową wersję kodeka AAC – FAAC dostępnego w ramach projektu FAAD2. Odpowiednie pakiety z pewnością znajdą się w każdej dystrybucji.

Ja osobiście najbardziej lubię stary ale sprawdzony sposób – pracę w konsoli, jednak dla osób, które preferują tryb okienkowy proponuję dwa programy. Pierwszy z nich to znany użyt-kownikom KDE KAudioCreator – program stan-dardowo wchodzący w skład tego środowiska w ramach pakietu kdeultimedia. Program ten me-nu Ustawienia, Konfiguracja: KAudioCreator, w zakładce Program kodujący daje możliwość wy-boru kodeka, który chcemy zastosować do prze-kształcenia zripowanego pliku wav do pożądane-go formatu. Jeśli poprzestajemy na mp3, wystar-czy wybrać pozycję MP3 i zatwierdzić wybór przyciskiem OK. Jeśli jednak chcemy ambitnie tworzyć pliki m4a, to należy troszeczkę zmienić ustawienia programu – dodać nowy program ko-dujący. W tym celu należy kliknąć przycisk Do-daj, a w okienku konfiguracyjnym podać nastę-pujące informacje: Nazwa: AAC (lub inna), Li-nia poleceń: faac -b 128 --title %{title} --comment %{comment} --artist %{artist}

--album %{albumtitle} --year %{year}

--track %{number} --genre %{genre} -w

-o %o %f. Po zatwierdzeniu zmian w polu ścież-ka należy wpisać konfigurację ścieżki, do prze-chowywanych plików, np.: ~/Moja Muzyka/

%{albumartist}/%{albumtitle}/%{number}

- %{title}.%{extension}. Jeśli komuś spra-wia kłopoty posługiwanie się znacznikami KAu-dioCreatora, może posłużyć się wygodnym asy-stentem. Niestety program ten nie ma możliwo-ści pobierania okładek – trzeba je dodawać ręcz-nie. Ja aby nieco zautomatyzować ten proces, do-datkowo do podanej linii poleceń dodaję para-metr --cover-art ze ścieżką dostępu do grafiki *.jpg z okładką. W tym celu ponownie posługu-ję się znacznikami programu. Pobrany z interne-tu plik z okładką zapisuję w folderze docelowym w pliku o nazwie cover.jpg. Paramer ten wy-gląda więc następująco: --cover-art ~/Moja

Muzyka/%{albumartist}/%{albumtitle}/

cover.jpg. Osobom pracującym w środowisku

graficznym GNOME bardziej będzie odpowiadał program Grip – stary ale bardzo dobry program do zgrywania płyt CD. Program ten oczywiście również można przystosować do współpracy z kodekiem faac. W tym też celu wybieramy za-kładkę Config, a następnie Encode i Encoders. Z rozwijanej listy wybieramy pozycję Other, a po-lach tekstowych poniżej wpisujemy właściwe in-formacje: ścieżkę dostępu do programu (standar-dowo jest to: /usr/bin/faac), parametry enko-dera: -b 128 --title %d --artist %A --al-bum %d --year %y –track %t --genre %g

-w -o %o %f. W ostatnim polu podajemy zasa-dę tworzenia nazw kodowanych plików, zgodnie z poprzednim wzorcem.

Wykorzystując enkoder faac można tworzyć pliki *.m4a dla iPoda we wszystkich opisanych wcześniej programach zarządzających multime-diami w systemie, jeśli tylko dają one możliwość zgrywania płyt i konfiguracji programów stoso-wanych w tym celu. Z pewnością na prowadze-nie wysuwa się w tym względzie wspomniany uprzednio program RythmBox ze swoimi znacz-nymi opcjami konfiguracyjnymi.

Nieco trudniej sprawa przedstawia się z pli-kami video. Te iPody, które obsługują Video, są pod tym względem zdecydowanie bardziej re-strykcyjne w porównaniu do plików muzycz-nych. Zasadniczo jedynym zalecanym kode-kiem video jest H.264, będący częścią standardu MPEG-4, nazywany inaczej AVC (Advanced Vi-deo Codec). Patent na to rozwiązanie posiada fir-ma Apple, lecz na szczęście powstał jego otwar-ty odpowiednik – kodek x264. Najlepszym spo-sobem użycia tego kodeka jest zastosowanie pro-gramu HandBrake (www.handbrake.fr) – GUI dla wielu kodeków, które zostało zoptymalizowane w ten sposób, aby w możliwie najłatwiejszy sposób ripować i kodować filmy zoptymalizowane dla iPodów, co zostało zrealizowane między innymi poprzez zastosowanie gotowych schematów ko-dowania przeznaczonych dla konkretnych urzą-dzeń – w tym różnych iPodów. Alternatywnie do HandBrake można zastosować program MEnco-der – używany z linii poleceń lub poprzez jeden z wielu GUI, które powstay do obsługi tego urzą-dzenia.

Grzegorz Madajczak jest z wykształcenia le-karzem weterynarii i mikrobiologiem. Linuk-sem i ogólnym oprogramowaniem Open-Source pasjonuje się od 2001 roku. Na co dzień używa Linuksa zarówno w pracy, jak i w domu. Jego ulubione dystrybucje to Gen-too i Slackware.Kontakt z autorem: [email protected]

O autorze

• http://www.iPodLinux.org – strona projektu dystrybucji Linuksa na iPoda;• http://www.rockbox.org – strona OpenSource'owego systemu RoxBox;• http://home.gna.org/linux4nano – strona projektu iPodNano;• http://iphonelinux.org – projekt instalacji Linuksa na iPhone'ie;• http://www.vimeo.com/2373142 – wideo demonstrujące działanie Linuksa na iPhone'ie;• http://blog.iphone-dev.org – strona Dev-Teamu – twórców Jeilbreaka;• http://www.eff.org/deeplinks/2009/02/apple-says-jailbreaking-illegal – artykuł w języku

angielskim na temat legalności Jailbreake;• http://www.copyright.gov/1201/2008/responses/apple-inc-31.pdf – stanowisko

amerykańskiego urzędu zajmującego się prawem autorskim w sprawie Jailbreake;• http://www.huanix.com – strona, gdzie można znaleźć opisane oprogramowanie w

zakresie instalacji iTunes na Linuksie;• http://www.gtkpod.org – strona projektu GtkPod.

W Sieci

Page 64: Linux 05 2009 PL

SprzętMobilny Linux

64 maj 2009

SprzętMobilny Linux

65www.lpmagazine.org

lin

ux@

softw

are.

com

.pl

Mobilny LinuxNa podstawie raportu Embedded Software Market Intelligence, 23% ankietowanych wykorzystywało systemy typu Open Source w swoich projektach – w tym 18% z nich system Linux.

Purnima Singh

Rynek urządzeń mobilnych powoli odchodzi od modelu telefonu komórkowego służącego do prowadzenia rozmów głosowych oraz tworze-nia wiadomości tekstowych typu SMS. Telefon

komórkowy staje się obecnie urządzeniem przenośnym, mo-bilnym komputerem, którego możliwości obliczeniowe bar-dzo szybko wzrastają. Występują jednak pewne ogranicze-nia, wynikające właśnie z jego mobilności – są to: klawiatu-ra oraz ekran, których rozmiary lub po prostu obecność nie jest oczywista. Poniżej przedstawionych jest kilka projek-tów opartych o platformę Linux, a także pewne wnioski, któ-re się nasuwają.

Kategoryzacja rynkuLinux jako platforma systemowa dla urządzeń przenośnych dzielony jest na trzy kategorie. Pierwszą z nich jest segment użytkowników urządzeń osobistych, takich jak telefony komór-kowe oraz PDA (ang. Personal Digital Assistant). Drugim seg-mentem są urządzenia przypominające komputery typu Laptop, posiadające dużo mniejsze rozmiary, np. Asus EEE, MSI Wind itp. Trzecim segmentem są urządzenia wbudowane w różnego rodzaju maszyny użytkowe, takie jak samochody osobowe.

Generalnie rzecz ujmując, w pierwszym segmencie plat-forma Linux ma poważnego konkurenta – platformę Java w wersji mobilnej. Szacuje się, że profil MIDP dostępny jest już na kilku miliardach urządzeń na całym świecie. Drugi segment, czyli urządzenia pod nazwą Netbook, to konku-rencja na równym poziomie pomiędzy systemem firmy Mi-crosoft a platformą Linux. Trzeci segment jest zróżnicowa-ny ze względu na dużą różnorodność zastosowanych archi-tektur sprzętowych.

Poniższe zestawienie odnosi się głównie do pierwsze-go segmentu, czyli do urządzeń charakteryzujących się nie-wielkimi rozmiarami (podobnymi lub będącymi telefona-mi komórkowymi), zasilaniem głównie z baterii akumula-torowej oraz posiadającymi niezbyt duże możliwości obli-czeniowe.

MontaVista MobilinuxPromowany jako najbardziej zaawansowany mobilny sys-tem w oparciu o platformę Linux. Szacuje się, że obecnie około 35 milionów telefonów i innych urządzeń mobilnych pracuje pod kontrolą systemu Mobilinux. Fakt ten czyni system Mobilinux najbardziej rozpowszechnioną dystrybu-

Page 65: Linux 05 2009 PL

SprzętMobilny Linux

64 maj 2009

SprzętMobilny Linux

65www.lpmagazine.org

cją platformy Linux w świecie urządzeń prze-nośnych.

Głównymi atutami MontaVista Mobili-nux jest niski pobór mocy oraz duża szybkość uruchamiania. Mobilinux posiada wbudowany MicroSELinux (ang. Micro Security-Enhan-ced Linux), odpowiadający za restrykcyjną po-litykę bezpieczeństwa. Posiada obsługę Blueto-oth, Wi-Fi, a także Jazelle DBX Java. Pierw-sza wersja systemu pojawiła się na rynku w ro-ku 2005.

OpenMokoJest to projekt platformy przeznaczonej dla telefonów typu SmartPhone. W praktyce jest to platforma systemu Linux z jądrem serii 2.6 wraz z dodatkowym oprogramowaniem. Urządzenia, które są obecnie sprzedawa-ne z zainstalowanym systemem to telefony Neo1973 oraz Neo FreeRunner tajwańskiej firmy FIC. Ten ostatni posiada ekran o para-metrach 43x58 mm, 128 MB SDRAM oraz kartę pamięci 256 MB, a ponadto Bluetooth i bezprzewodowy dostęp do sieci 802.11b/g. Telefon pracuje pod kontrolą procesora ARM o częstotliwości 400 Mhz.

Najnowsza wersja systemu, to Om 2008.8. Umożliwia ona prowadzenie rozmów, tworze-nie wiadomości SMS, dostęp do Wi-Fi oraz Bluetooth. Dodatkowo możemy korzystać z książki telefonicznej, terminala systemowe-go, przeglądarki internetowej, klienta poczty elektronicznej oraz odtwarzacza multimediów. Wśród dostępnych środowisk uruchomienio-wych mamy Java w wersji Jalimo a także Py-thon, Mono (.NET) oraz Ruby.

AndroidProdukt konsorcjum Open Handset Allian-ce przewodzonej przez Google. W 2005 roku firma Google kupiła przedsiębiorstwo Andro-id Inc., które zajmowało się przygotowywa-niem systemu Linux dla urządzeń mobilnych. W 2007 roku opublikowano zestaw programi-styczny Android SDK, w którego skład wcho-dzą podstawowe narzędzia do tworzenia opro-gramowania na platformę Android.

W Polsce Android dostępny jest w tele-fonie HTC Dream, znanym jako Era G1 (G1 dostępny jest od 23 września 2008 w sie-ci T-Mobile). Posiada on dotykowy wyświe-tlacz o przekątnej 81 mm, procesor ARM o częstotliwości 528 MHz oraz 192 MB pa-mięci SDRAM. Android jako system opera-cyjny umożliwia generowanie grafiki 3D w oparciu o bibliotekę OpenGL ES, prowadze-nie rozmów, tworzenie wiadomości SMS oraz MMS. Posiada także środowisko uruchomie-niowe Java.

Główną wadą systemu Android jest war-stwa abstrakcji, która uniemożliwia dostęp do wszystkich opcji urządzenia, przez co cała plat-forma nie w jest w pełni otwarta. Ponadto kwe-stie licencyjne prowadzą do braku całkowitej kompatybilności z platformami J2SE oraz, co dużo bardziej istotne, J2ME.

Wind River Systems Inc.Firma założona w 1981 roku w USA, zatrud-niająca ponad 1500 pracowników. Od 2004 ro-ku współpracowała z firmą Red Hat pod ką-tem przygotowania dystrybucji systemu Linux pracującego pod kontrolą urządzeń wbudowa-nych. Pierwsza wersja systemu ukazała się w 2005 roku, jednak wkrótce potem współpraca dobiegła końca.

Wind River opracowało własną dystrybu-cję o nazwie Wind River Linux w oparciu o jądro 2.6.21, która obsługuję wiele architek-tur sprzętowych, m.in. x86, ARM oraz PPC. W 2008 roku firma współpracowała z Intel i BMW, przygotowując platformę opartą o Li-nux mającą działać w systemach kontroli w sa-mochodach osobowych.

Ubuntu MID EditionNajpopularniejsza dystrybucja Linux w wersji na komputery osobiste, wchodzi na rynek urzą-dzeń przenośnych. Firma Canonical promuje skrót MID (ang. Mobile Internet Device) jako ogólne określenie urządzeń z ekranem o prze-kątnej od 10 do 17 cm, fizyczną lub ekrano-wą klawiaturą, obsługą Wi-Fi, 3G, Bluetooth, GPS oraz WiMAX. Urządzenie MID powinno posiadać ponadto pamięć nieulotną od 2 do 8 GB, obsługę OpenGL, USB, kamery, mikrofo-ny oraz słuchawki.

Jak więc widać, MID nie jest telefonem komórkowym, a małych rozmiarów kompute-rem przenośnym (raczej jego standardem), któ-ry działając pod kontrolą Ubuntu MID Edition będzie pobierał mniejsze ilości energii oraz bę-dzie dostosowany do mniejszego ekranu. Ni-weluje to z pewnością problematykę kompa-tybilności architektury, która w tego rodza-ju urządzeniach zazwyczaj wiele się nie różni od większych komputerów x86 lub PPC. Do-datkowo projekt jest sponsorowany przez fir-mę Intel.

Pozostałe projektyTak samo jak w świecie dystrybucji systemu Linux przeznaczonych dla komputerów stacjo-narnych bądź przenośnych typu Laptop, tak w przypadku urządzeń typu telefony komórkowe obserwujemy podobną tendencję - dystrybucji jest coraz więcej. Oczywiście nie zawsze idzie za tym jakość.

Z pewnością należy tutaj wspomnieć o pro-jektach: Azingo Mobile Platform, ACCESS Li-nux Platform, Purple Labs Linux, LiMo Fo-undation, Palm webOS, Maemo Platform, a la Mobile Convergent Linux Solution, Eli-nOS, Unison OS, OpenWrt, uCLinux i praw-dopodobnie wielu innych, które obecnie dopie-ro powstają.

Na szczególną uwagę z racji rozmachu działania zasługują: ACCESS Linux Platform, Palm webOS (z racji popularności rozwią-zań typu Palm), LiMo Foundation oraz Ma-emo Platform.

Java MEPlatforma Java Micro Edition to obecnie naj-bardziej popularny zestaw programistyczny dostępny na największej liczbie telefonów komórkowych. Platforma ta jest ze wzglę-du na swoją dużą standaryzację, uniwersalna dla każdego obsługiwanego urządzenia. Jest ponadto używana nie tylko w telefonach ko-mórkowych, ale także w urządzaniach typu PDA, telewizorach, drukarkach itd. Java ME zawiera zestaw klas, które w okrojony spo-sób odpowiadają zestawowi Standard Edi-tion. Micro Edition dzieli się na profile i kon-figuracje, które odpowiadają za dokładne do-pasowanie do urządzeń docelowych oraz ich zastosowań.

Rysunek 1. Telefon Neo1973 firmy FIC z platformą OpenMoko

Page 66: Linux 05 2009 PL

66 maj 2009

SprzętMobilny Linux

Za pomocą Micro Edition można two-rzyć aplikacje z formularzami wprowadza-nia danych, programy graficzne 2D oraz w pewnym stopniu 3D. Dostępne jest także wykorzystanie baz danych w postaci mecha-nizmu RMS. ME umożliwia dostęp do inter-fejsów Bluetooth, kamery i aparatu fotogra-ficznego, odtwarzania plików dźwiękowych w tym także MP3, MIDI i WAV oraz ręcz-nie generowanych dźwięków. Dostępne jest także odtwarzanie plików MPEG. Możliwo-ści więc są bardzo duże w porównaniu do systemu Linux, który posiadając maszynę wirtualną Java Standard Edition, także po-trafi uruchamiać aplikacji napisane pod tą platformę.

KonkluzjeWarto się zastanowić nad sensownością mo-delu biznesowego urządzeń z wbudowanym systemem Linux. Jak wiemy, zbyt duża cen-tralizacja działań nigdy nie przynosi oczeki-wanych efektów i jest źródłem zagrożeń. Po-nadto im więcej funkcji oprogramowanie po-siada, tym większe ryzyko, że któraś z nich zawiedzie albo będzie podatna na działa-nia osób, które nie zawsze działają zgodnie z prawem.

Większa ilość opcji na pewno przyda się osobom, które uwielbiają gadżety – mowa tutaj o urządzeniach osobistych, takich jak telefony komórkowe, które obecnie przestają być tylko telefonami, a stają się multimedialnym centrum

rozrywki. Podobnie rzecz się ma w przypadku urządzeń wbudowanych w maszyny, jakimi są dla przykładu samochody osobowe. Nawigacja GPS pod kontrolą Linux – tak, system kontro-li trakcji – nie.

Niezbyt przekonujący jest również mo-del marketingowy firm, które z systemu Li-nux tworzą specyficzne dystrybucje na po-trzeby różnego rodzaju mniej lub bardziej kompatybilnych urządzeń. Z drugiej jednak strony, dostępność oprogramowania, stan-dardowych interfejsów programistycznych i wielu innych opcji w systemie Linux jest dość atrakcyjnym zestawem dla potencjal-nego, nieco bardziej zaawansowanego, użyt-kownika takiego urządzenia. Branża wciąż się rozwija, a w ostatnich 2 latach widzimy zdecydowany wzrost zainteresowania syste-mem Linux implementowanym do urządzeń mobilnych.

Nieco mniejsze zainteresowanie wyka-zują producenci urządzeń, które mogą ob-sługiwać system Linux. Dlatego też powstają konsorcja, stowarzyszenia oraz wyspecyfiko-wane firmy, które pośredniczą pomiędzy pro-ducentami sprzętu a twórcami oprogramowa-nia. Dostarczają oni skompilowane i zopty-malizowane jądro systemowe pod kątem da-nych urządzeń, zestaw narzędzi w postaci SDK, a także dużą dawkę często zbędnej ide-ologii, która sprawia, że platforma Linux go-ści w urządzeniach mobilnych.

Kolejną i zarazem ostatnią poruszaną tu-taj kwestią jest problematyka platformy Ja-va. Co posiada Linux, czego nie ma Java w wersji mobilnej? Nie ma wielu rzeczy, jed-nak czy ze względu na ograniczenia sprzę-towe jest to aż tak bardzo zauważalne – ra-czej nie. Pierwszym pytaniem, które należy sobie zadać jest, co tak na prawdę użytkow-nik potrzebuje. Czy telefonu do wykonywa-nia połączeń, tworzenia wiadomości teksto-wych, zarządzania kontaktami, odtwarzania multimediów oraz gier 2D i 3D? Jeśli tak, to dlaczego nie skorzystać z potencjału kil-ku miliardów urządzeń z dostępną platfor-mą Java?

Purnima Singh. Niezależny konsultant branży IT/Telecomm oraz kierownik pro-jektów. Posiada wykształcenie informa-tyczne. Interesuje się finansami i podró-żami dookoła świata. Zna wiele języków, co ułatwia jej kontakt z klientami i współ-pracownikami.

O autorze

Rysunek 3. Ubuntu MID Edition

Rysunek 2. Telefon G1 z platformą Android

Page 67: Linux 05 2009 PL

Księgozbiór

67

Recenzje książek

www.lpmagazine.org

Niedawno zainstalowałem na jednym z firmowych serwerów system operacyjny SLES w wersji 10. Nie miał on zapew-niać żadnych usług dla pracowników firmy, a jedynie służyć mi jako platforma do instalacji testowej pewnego komer-cyjnego oprogramowania. SLES jak na razie nie sprawia problemów, ale i tak przy nadarzającej się okazji sięgnąłem po

książką „SUSE Linux Enterprise Server. Administracja usługami serwera. Księga Eksperta”, aby poznać go lepiej.Krótki wstęp przeczytałem w całości, bo to mimo wszystko dobrze przypomnieć sobie, jak powstała ta dystrybucja Linuksa i kto za nią teraz od-

powiada. Część instalacyjną tylko przejrzałem, bo miałem to już za sobą, ale z uznaniem zauważyłem, że autorzy, Kazimierz Lal, Tomasz Rak i Sewe-ryn Kościółek, przedstawili zarówno interfejs graficzny, jak również tekstowy, instalatora. Dla osób, które wcześniej nie miały styczności z tym syste-mem, będzie to nieoceniona pomoc, gdyż cały proces instalacji i wstępnej konfiguracji został przedstawiony bardzo szczegółowo. Moją uwagę zwró-cił jeszcze opis dotyczący usługi katalogowej LDAP oraz centrum autoryzacji (CA), jak również wsparcia dla Kerberosa oraz domeny Windows NT. Są to rzadko poruszane tematy, gdyż poradniki instalacyjne SUSE najczęściej dotyczą jego wykorzystania w domu, a nie w firmie. Rozczarowała mnie trochę sekcja dotyczącą uzyskiwania dostępu do Internetu za pomocą łącz typu DSL, gdyż gdybym był abonentem takiej usługi, przedstawione infor-macje byłyby najprawdopodobniej niewystarczające – brakowało konkretnego przykładu. Najbardziej zainteresowała mnie część druga, która przede wszystkim zawierała informacje o usługach sieciowych, które można uruchomić na SLES-ie. Dla celów prezentacji poszczególnych technologii przy-gotowano testową sieć lokalną z dwoma komputerami – serwerem i klientem. W rezultacie wszystkie opisy takich usług, jak DNS, DHCP, WWW, LDAP, NIS, NFS czy poczty elektronicznej, miały charakter mocno praktyczny, co jest bardzo dobrą stroną publikacji. Każdy istotny aspekt jest ilu-strowany zrzutką ekranową albo listingiem. Niektóre fragmenty wzbogaciły moją wiedzę i bardzo mnie to cieszy – czas spędzony przy książce mo-gę uznać za dobrze wykorzystany. Zabrakło mi jedynie opisu pakietu Quagga, odpowiedzialnego za protokoły rutingu dynamicznego, o którym wspo-mnieli autorzy. Najwidoczniej nie można mieć wszystkiego. Ostatnią część książki poświęcono bezpieczeństwu, dodatkowej konfiguracji i optymali-zacji systemu, automatycznej instalacji, dodawaniu drukarki, serwerom internetowym oraz kopii zapasowej, ale w mojej opinii były to już zbędne te-maty, tak jakby na siłę. Godne uwagi mogą okazać się jeszcze dodatki w książce, ale i one mnie nie zainteresowały.

Do książki dołączana jest płyta DVD z 60-dniowa wersją systemu operacyjnego SLES w wersji 10. Bardzo dobre uzupełnienie, wręcz niezbęd-ne.Publikacja spodobała mi się i mogę ją polecić wszystkim użytkownikom SUSE, którzy chcieliby wykorzystać ten system jako serwer w firmie. Jak się okazało, nadal posiadam poprzednią książkę tych samych autorów, a dotyczącą znacznie starszej wersji systemu – SuSE 7.2.

Krzysztof Krawczyk

SUSE Linux Enterprise Server. Administracja usługami serwera. Księga ekspertaAutor: Kazimierz Lal, Tomasz Rak, Seweryn KościółekTłumaczenie: Zbigniew SzalbotSeria: Fundamenty informatykiWydawnictwo HelionISBN: 978-83-246-0582-8Ocena: 4

Zacznijmy od tego, że książka została napisana dla osób, które miały już styczność z programowaniem, a właściwie – zna-ją już jakiś język programowania. „Linux. Niezbędnik programisty” pozwala wejść na wyższy poziom wtajemniczenia. Jest tutaj mowa między innymi o elastyczności kodu, jego wydajności oraz bezbłędności. Poruszono także kwestię do-boru środowiska programistycznego, systemów kontroli wersji, co bardzo ułatwia zarządzanie kodem, a także sposoby zwiększające wydajność. John Fusco jest doświadczonym programistą i ma świadomość, że programowanie nie jest je-dynie „klepaniem kodu”, ale czymś więcej. Pomaga więc dobrać nam w sposób perfekcyjny narzędzia pracy, by ułatwić

nam pracę, dzięki czemu będzie wygodniej i bardziej elastycznie. Własnoręczne przygotowanie środowiska pracy może zająć nam wiele czasu, gdyż sami musielibyśmy przetestować poszczególne narzędzia. W książce mamy wyłożoną całą wiedzę i doświadczenie autora.

Czego się dowiemy? Poznamy sposoby zarządzania pakietami w Linuksie, sposoby pobierania i instalacji oprogramowania, narzędzi programi-stycznych. Poza tym poznamy także przebieg procesu kompilacji, błędy i komunikaty kompilatorów. Dzięki tej wiedzy będziemy mogli tworzyć skryp-ty ułatwiające kompilację. Omówiono tutaj także edytory Vim i Emacs, bez faworyzowania żadnego z nich. Książka pomoże nam także poznać sto-sunkowo dogłębnie systemy kontroli wersji. Jednymi z najciekawszych rozdziałów moim zdaniem są te, które traktują o jądrze Linuksa. Omówiono zasady jego funkcjonowania, sposób działania procesów, komunikację między nimi. Następnie, bardzo często porusza się kwestię wydajności i me-tod diagnozowania problemów z oprogramowaniem. Podsumowując, książka opisuje następujące zagadnienia: zdobywanie i instalacja oprogramowa-nia open source, proces kompilacji kodu źródłowego, zarządzanie pakietami w różnych dystrybucjach, interpretacja komunikatów o błędach i ostrze-żeń, edytory plików tekstowych, wykorzystanie systemów kontroli wersji, funkcjonowanie jądra systemu operacyjnego Linux, wykorzystanie proce-sów, komunikacja między procesami, diagnozowanie problemów z komunikacją pomiędzy procesami, zwiększanie wydajności tworzonych rozwią-zań, wykrywanie problemów w napisanym oprogramowaniu.„Linux. Niezbędnik programisty” napisano bardzo zrozumiałym językiem, jednak wy-maga ona już pewnej wiedzy z dziedziny programowania. Polecam ją osobom, które chcą poszerzyć swoją wiedzę i poprawić wydajność swojej pra-cy, a także wydajność swoich programów.

Roger Zacharczyk

Linux. Niezbędnik programistyAutor: John FuscoISBN: 978-83-246-1485-1Wydawnictwo HelionOcena: 5

Page 68: Linux 05 2009 PL

ProgramowanieAndroid, czyli Linux na komórki

68 maj 2009

ProgramowanieAndroid, czyli Linux na komórki

69www.lpmagazine.org

lin

ux@

softw

are.

com

.pl

Android, czyli Linux na komórkiOd kilku lat system Linux nieustannie zyskuje na popularności. Przyszłe lata także rysują się bardzo obiecująco, ponieważ system ten może znaleźć uznanie wśród użytkowników netbook'ów, gdyż względem konkurencyjnego system Windows Linux oferuje lepszą wydajność na mniej zaawansowanych platformach sprzętowych. Również na komputerach normalnych użytkowników Linux gości coraz częściej. Jest jednakże jeszcze jeden typ urządzeń, gdzie Linux również zyskuje dużą popularność – są to telefony komórkowe.

Marek Sawerwain

Na obecną chwilę mamy dwa ogólnie dostęp-ne rozwiązania dla telefonów komórkowych. Pierwszym systemem, obecnym już od pew-nego czasu, jest OpenMoko oraz telefon Neo

FreeRunner. Natomiast drugi system, wspierany przez Go-ogle, to Android wraz z telefonem G1. Jednakże warto od razu zaznaczyć, że Android to system operacyjny i można go uruchomić również na telefonie Neo FreeRunner.

Godne uwagi są obydwa systemy. Ponieważ jednak ra-my artykułu są ograniczone, dlatego też postaramy się poka-zać zalety tylko systemu Android. Skupimy się na podstawo-wych zagadnieniach, które należy opanować, aby rozpocząć tworzenie własnych aplikacji, w ramach tego systemu.

Instalacja SDK w środowisku EclipsePierwsza czynność to uzyskanie pakietu dla programistów, czyli tzw. Software Development Kit (w skrócie SDK). Pa-kiet ten dla systemu Linux ściągamy ze strony systemu An-droid, naturalnie w wersji dla Linux'a. Aktualnie dostępna wersja w momencie tworzenia tego artykułu to „1.1_r1”, a pełna nazwa pliku to: android-sdk-linux_x86-1.1_r1.zip. Można oczywiście stosować SDK bez żadnych do-

datkowych narzędzi, jednak na początku przygody z Andro-idem ułatwienia są jak najbardziej na miejscu. Dlatego naj-lepiej korzystać ze środowiska Eclipse. Pakiet SDK dla sys-temu Android znakomicie integruje się z tym bardzo popu-larnym środowiskiem do tworzenia aplikacji.

Rysunek 1. Nowy projekt dla systemu Android

Page 69: Linux 05 2009 PL

ProgramowanieAndroid, czyli Linux na komórki

68 maj 2009

ProgramowanieAndroid, czyli Linux na komórki

69www.lpmagazine.org

Najpopularniejsze dystrybucje, takie jak Ubuntu czy Fedora Core, oferują pakiety z Ec-lipsem, więc instalacja środowiska Eclipse jest bardzo łatwa. Samo SDK trzeba zainstalować samodzielnie, co nie jest jednak zbyt trudne. Przed rozpoczęciem instalacji środowiska Ec-lipse w przypadku sześćdziesięcioczterobito-wego środowiska należy się upewnić, czy ma-my zainstalowane biblioteki do obsługi pro-gramów trzydziestodwubitowych. W przypad-ku Ubuntu, aby spełnić ten warunek, wystarczy wydać polecenie:

apt-get install ia32-libs

Koniecznie trzeba także zainstalować Javę, w następujący sposób:

apt-get install sun-java6-bin

Do wygodnej pracy w Eclipse potrzebna jest wtyczka o nazwie ADT. Wtyczka ta współpra-cuje z wersją 3.3 albo 3.4. Wybieramy nową wersję 3.4 o kodowej nazwie Ganymede. In-stalacja wtyczki wymaga dodania nowego re-pozytorium, a nowe repozytorium dodamy po-przez menu Help. Następnie trzeba wybrać „Software Updates...”. W oknie, które się po-jawi, wybieramy zakładkę Available Software, a następnie przycisk „Add Site...”. W nowym oknie dialogowym wpisujemy adres potrzeb-nego repozytorium: http://dl-ssl.google.com/android/eclipse/

Można też skorzystać z protokołu https, jeśli zależy nam na szyfrowanym połącze-niu. Po dołączeniu nowego repozytorium, w zakładce Available Software pojawi się no-we repozytorium powiązane z wtyczką ADT, a w nim nowy element Developer Tools i dwie nowe opcje: Android Development Tools oraz Android Editors, które trzeba zainstalować w środowisku Eclipse. Po kilku chwilach odpo-wiednie wtyczki oraz potrzebne zależności zo-staną samodzielnie zainstalowane. Nie wolno zapomnieć o ponownym uruchomieniu środo-wiska Eclipse.

Wtyczka ADT nie zastępuje SDK, a tyl-ko ułatwia współpracę z pakietem SDK, dla-tego po ściągnięciu archiwum SDK należy je rozpakować. Archiwum jest w formacie ZIP. W środowisku Eclipse należy naturalnie po-dać ścieżkę do katalogu, w którym rozpako-wane zostało archiwum. Należy przejść do menu Windows, a następnie do opcji Preferen-ces. W oknie, które się pokazało, powinna być widoczna opcja Android. Po jej wskazaniu zo-baczymy pole edycyjne o nazwie SDK Loca-tion. Do tego pola należy wpisać ścieżkę do-stępu do SDK.

Coś łatwego na początekNajkrótszy program z gatunku „Witaj Świe-cie!” w przypadku SDK dla systemu Android napiszemy nie dotykając klawiatury. Po utwo-rzeniu projektu w Eclipse, podstawowy wyge-nerowany kod aplikacji realizuje dokładnie to zadanie. Listing 1, a dokładniej pierwszy frag-ment, to kod źródłowy aplikacji, jaka powsta-je samodzielnie w momencie utworzenia no-wego projektu.

Mamy jedną klasę dziedziczącą z klasy Activity (podstawowa klasa dla aplikacji w systemie Android) oraz metodę o nazwie on-Create, która zgodnie z nazwą jest wywoły-wana po załadowaniu aplikacji i jest odpowie-dzialna za utworzenie potrzebnych obiektów.

W metodzie tej wywołujemy ponownie me-todę onCreate, jednak jest to metoda z dzie-dziczonej klasy.

Jak widać w pierwszej części Listingu 1 nie tworzymy nowych obiektów, gdyż korzy-stamy z wygenerowanych zasobów. Plik z za-sobami posiada nazwę main.xml, znajdziemy go w katalogu res, a następnie w katalogu lay-out. Natomiast komunikat, który wyświetla-my, znajduje się w innym pliku string.html, plik ten znajduje się w katalogu values. Je-śli chcemy zmienić ten komunikat, to trze-ba zmienić wartość zasobu o nazwie Hel-loMessage. Nie możemy zmienić wartości ciągu znaków na poziomie edycji pliku ma-in.xml, gdyż w tym pliku opisujemy tylko za-

Listing 1. Najkrótszy program w Androidzie wyświetlający komunikatpackage com.example.AndT1;

import android.app.Activity;

import android.os.Bundle;

public class AndST1 extends Activity {

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

}

}

Nieco zmieniona metoda onCreate:

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

TextView tv = new TextView(this);

tv.setText("Witaj Świecie !!!!");

setContentView(tv);

}

Rysunek 2. Program z listą miast w środowisku Eclipse oraz uruchomiony na emulatorze telefonu

Page 70: Linux 05 2009 PL

70

ProgramowanieAndroid, czyli Linux na komórki

maj 2009 71www.lpmagazine.org

ProgramowanieAndroid, czyli Linux na komórki

wartość interfejsu. Tego typu rozdział na po-czątku wydaje się utrudnieniem, jednakże z drugiej strony wymusza, aby dokładnie roz-ważyć elementy interfejsu użytkownika i po-prawnie określić niezbędne zasoby, co w przy-padku systemu, który ma ograniczone zasoby, jest bardzo ważnym aspektem.

Istotnym jest fakt, iż wymienione pliki są plikami w formacie XML, które możemy edy-tować na dwa sposoby. Pierwszy to skorzy-stać z możliwości środowiska Eclipse, oferu-jącego dostęp do edytorów wizualnych. Drugi sposób to bezpośrednia edycja plików XML.

Zwróćmy uwagę na to, iż gdy tworzymy in-terfejs użytkownika bądź dowolne inne zaso-by, np.: rysunki, to dostęp do poszczególnych zasobów jest możliwy dzięki identyfikatorom tworzonym samodzielnie przez Eclipsa. Defi-nicje tych identyfikatorów znajdują się w pli-ku R.java. Dostępne są trzy podstawowe typy zasobów: rysunki, kontrolki albo ogólnie wid-gety do budowy interfejsu użytkownika oraz wartość, np.: liczby, ciągi znaków.

Jeśli jednak z pewnych powodów chce-my samodzielnie utworzyć interfejs, to może-my w metodzie onCreate utworzyć odpowied-

ni obiekt, np.: TextView , odpowiedzialny za wyświetlanie tekstu. To zadanie realizuje dru-gi fragment znajdujący się na Listingu 1. W ty-powy sposób dla Javy tworzymy nowy obiekt, a za pomocą metody setText ustalamy zawartość kontrolki. Następnie, jak w oryginalnym przy-kładzie, za pomocą metody setContentView określamy podstawowy widget aplikacji.

Drugie słowo o interfejsieAndroid został wyposażony w dość bogatą bibliotekę kontrolek (widgetów) do tworze-nia aplikacji. Mamy naturalnie przyciski, po-la edycyjne, a także różnego rodzaju widge-ty do pozycjonowania innych widgetów, np.: LinearLayout. Ten typ kontrolki rozmiesz-cza poszczególne widgety w sposób linio-wy, jeden za drugim. Innym dostępnym spo-sobem rozmieszczania kontrolek jest tabela: TableLayout. Widgety tym razem będą roz-mieszczane w tabeli, w poszczególnych wier-szach. Do dyspozycji są jeszcze trzy inne wid-gety: AbsoluteLayout, FrameLayout, Rela-tiveLayout.

Istnieją także dodatkowe kontrolki, np.: DigitalClock, czyli zegar cyfrowy, i podob-nie AnalogClock. Autorzy systemu zadbali o kontrolki ułatwiające, np.: wprowadzenie daty DatePicker, czasu TimePicker czy kontrol-kę odpowiedzialną za utworzenie galerii, np.: zdjęć – Gallery.

Wielką zasługą autorów Androida jest rów-nież uproszczenie API. Stało się to możliwe również dzięki Javie. Android oferuje spory za-sób widgetów, a autorzy systemu zadbali o ła-twość użytkowania poszczególnych klas. Do-brym przykładem będzie zademonstrowanie np.: listy wyboru. Utworzymy pole edycyjne, gdzie użytkownik może podać nazwę miasta. Wpro-wadzimy także przykładową listę miast; po wpi-saniu początkowych liter nazwy miasta z listy system będzie samodzielnie podpowiadał na-zwę pasującego miasta bądź też pasujące nazwy miast do pierwszych podanych liter.

Listing 2 zawiera najważniejsze dla nas fragmenty kodu źródłowego, jednakże w pierwszej kolejności trzeba zadbać o inter-fejs użytkownika. Możliwości są dwie: może-my zbudować interfejs za pomocą edytora do-stępnego w Eclipse. Używamy widgetu Line-arLayout do poziomowania trzech widgetów. Pierwszy to TextView. Będzie on pełnić funk-cję etykiety, dlatego we własności Text wpi-sujemy słowo „Miasto”. Następny widget to AutocompleteTextView, w przypadku tego widgetu zmieniamy także identyfikator (wła-sność Id) na „@+id/CityEdit”, przy czym właściwa nazwa widgetu to CityEdit. Ostatni widget to DigitalClock. Korzystając z edy-

Listing 2. Tworzenie uzupełnienia dla pola edycyjnegostatic final String[] CITIES = new String[] {

"Skwierzyna", "Skwierzynka",

"Zielona Góra", "Warszawa",

"Gorzów Wlkp.", "Gorzów Wielkopolski",

"Gorzów Śląski", "Gdańsk" };

public void onCreate(Bundle savedInstanceState) {

super.onCreate(savedInstanceState);

setContentView(R.layout.main);

ArrayAdapter<String> adapter = new ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_item_1line, CITIES);

AutoCompleteTextView textView = (AutoCompleteTextView) findViewById(R

.id.CityEdit);

textView.setAdapter(adapter);

};

Listing 3. Plik XML opisujący interfejs przykładu z listą miast<?xml version="1.0" encoding="utf-8"?>

<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"

android:orientation="vertical"

android:layout_width="fill_parent"

android:layout_height="fill_parent">

<TextView

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:text="Miasto" />

<AutoCompleteTextView android:id="@+id/CityEdit"

android:layout_width="fill_parent"

android:layout_height="wrap_content"/>

<DigitalClock android:id="@+id/DigitalClock"

android:layout_width="wrap_content"

android:layout_height="wrap_content"

android:layout_gravity="center_horizontal">

</DigitalClock>

</LinearLayout>

Page 71: Linux 05 2009 PL

70

ProgramowanieAndroid, czyli Linux na komórki

maj 2009 71www.lpmagazine.org

ProgramowanieAndroid, czyli Linux na komórki

tora możemy go wypośrodkować na ekranie, zmieniając własność Layout gravity na center_horizontal.

Edycję interfejsu można również wyko-nać edytując plik XML. Listing 3 zawiera kompletny opis interfejsu z naszego przykła-du. Tworzenie interfejsu poprzez edycję pli-ku XML jest wbrew pozorom równie wygod-ne, co znajdzie potwierdzenie w następnym przykładzie, gdzie będziemy tworzyć kalkula-tor. Tworzenie opisu XML interfejsu jest nie-wątpliwie podobne do edycji plików HTML. Znacznik LinearLayout w naszym przykła-dzie zawiera trzy pozostałe znaczniki, repre-zentujące potrzebne nam widgety.

Po przygotowaniu interfejsu musimy wpro-wadzić kilka zmian w kodzie źródłowym. Li-sting 2 zawiera najważniejsze fragmenty kodu. Pierwszy element to lista miast. Tworzymy zwy-kłą tablicę o nazwie CITIES, dodajmy w typo-wy dla Javy sposób. Tablica ta staje się argumen-tem obiektu adaptera, który wykorzystuje wybu-dowany zasób reprezentujący rozwijaną listę:

ArrayAdapter<String> adapter = new

ArrayAdapter<String>(this,

android.R.layout.simple_dropdown_

item_1line,

CITIES);

Następna linia kodu demonstruje, w jaki spo-sób uzyskać wskazanie na obiekt interfejsu. Korzystamy z metody findViewById, której podajemy za argument stałą wygenerowaną samodzielnie przez środowisko Eclipse.

AutoCompleteTextView textView =

(AutoCompleteTextView) findViewById(R.

id.CityEdit);

Podłączenie adaptera to zadanie bardzo łatwe; wykorzystujemy tylko metodę setAdapter:

textView.setAdapter(adapter);

Jak widać, uzyskanie takiego zachowania, które jest niewątpliwie bardzo przydatne dla użytkownika, jest bardzo łatwe. Wystarczą do-słownie trzy linie kodu.

Lepszy, choć nieco brzydszy kalkulatorOpracowanie bardziej przydatnej aplikacji, np.: kalkulatora z funkcjami niedostępnymi we wbudowanym kalkulatorze, wbrew pozorom nie zabierze nam wiele czasu. Rozpoczniemy od utworzenia interfejsu użytkownika.

Dane do obliczeń będą wprowadzane przez trzy pola edycyjne. W odróżnieniu od innych

Wymiary G1 telefonu to 55,7x117,7x17,1 mm, a waga to 158g. Trzeba pamiętać, iż te-lefon Google'a posiada klawiaturę. Wymiary telefonu Freerunner są bardzo podobne: 120,7 x 62 x 18,5 mm, ale sam telefon jest lżejszy, bo waży 133g.Podobne różnice dotyczą ekranu, telefon Neo Freerunner posiada wyświetlacz o roz-dzielczości 480x640 o wielkości 2.8 cala. Wyświetlacz telefonu Google'a oferuje niższą rozdzielczość 480x320, ale sam wyświetlacz jest większy, 3.2 cala.Naturalnie obydwa telefony współpracują z podstawowymi typami sieci jak: GSM, GPRS, EDGE, przy czym trzeba przyznać, że G1 oferuje w tym zakresie większe możliwości. Telefon G1 posiada także aparat, którego pozbawiony jest telefon Neo Freerunner. Waż-nym aspektem jest też dostępna pamięć. Freerunner posiada 128MB pamięci RAM oraz 256MB NAND Flash, czyli tzw. pamięci ROM. Procesor to Samsung 2442B o częstotli-wości pracy 400Mhz bądź 500Mhz.Telefon Google posiada więcej pamięci RAM, bo 192 MB RAM, ale wielkość pamięci ROM jest taka sama. Procesor jest nieco inny, bo Qualcomm MSM7201A o wyższej czę-stotliwości pracy 528 Mhz. Jednakże obydwa procesory posługują się tym samym pod-zbiorem instrukcji zgodnej z architekturą ARM.Obydwa telefony posiadają odbiornik GPS, przy czym trzeba koniecznie wspomnieć, że telefon Google'a oferuje dostęp do usług Google'a, min. do mapy, co w połączeniu z GPS daje bardzo interesujące narzędzie.Obydwa telefony oferują dostęp do kart pamięci, jednak ostatecznie to Neo Freerun-ner oferuje większą elastyczność. W tym telefonie bez kłopotu można zainstalować dowolne oprogramowanie, zarówno system OpenMoko albo Android, a nawet wyspe-cjalizowaną dystrybucję Debiana. Obydwa telefony mają też zasadniczą wadę: dłu-gość pracy baterii. Jeśli używamy intensywnie aplikacji czy np. odbiornika GPS, to może się okazać, że telefony na baterii będą pracować tylko od pięciu do sześciu go-dzin.

Możliwości telefonów G1 oraz Neo Freerunner

Po naciśnięciu kombinacji klawiszy CTRL-N pokaże się okno, gdzie wybieramy typ pro-jektu. Po prawidłowej instalacji wtyczki ADT oraz wcześniejszym wskazaniu położenia pakietu SDK, zobaczymy, iż mamy do dyspozycji folder Android. Folder ten zawiera tyl-ko jedną opcję – Android Project, więc to ten typ projektu wybierzemy. Pokaże się no-we okno, gdzie należy uzupełnić cztery pola. Pierwsze pole to: Project Name, czyli na-zwa całego projektu. Następne pole to Package name, czyli nazwa pakietu. W przypad-ku naszego pierwszego przykładu wpisujemy: com.example.AndT1. Trzecie istotne po-le to nazwa klasy naszej aplikacji Activity name, w naszym projekcie podaliśmy AndT1. Czwarte pole natomiast to nazwa aplikacji (Application Name), i w przeciwieństwie do poprzednich pól nazwa powinna być opisowa, gdyż wartość tego pola będzie widocz-na dla użytkownika.Jeśli chcemy uruchomić projekt, to należy skorzystać z emulatora telefonu, który jest do-stępny w pakiecie SDK. Skorzystanie z emulatora to również znakomita okazja, aby zo-rientować się, co oferuje telefon Google. Jednak my, jak na razie, chcemy uruchomić na-szą aplikację, dlatego z menu Run wybieramy opcję Run configurations.... Pokaże się okno dialogowe, gdzie trzeba wybrać opcję Android Application, a w polu Project wybrać pro-jekt z aplikacją do uruchomienia. Istotna jest również zakładka Target, gdzie możemy okre-ślić wielkość ekranu, a także szybkość dostępu do sieci. Wbrew pozorom jest to ważne, gdy chcemy testować np.: aplikacje sieciowe i ich zachowanie w bardziej naturalnych wa-runkach, np.: w sieci GPRS czy EDGE. Istotny jest jeszcze sposób uruchomienia aplikacji. Po uruchomieniu emulatora należy na wirtualnym telefonie wybrać ikonę Home (domek), co uruchomi aplikację. Aby uruchomić nową wersję tworzonej aplikacji nie trzeba zamykać emulatora, tylko używaną przez nas aplikację, a w Eclipse ponownie uruchomić projekto-waną aplikację.

Nowy projekt oraz uruchamianie aplikacji

Page 72: Linux 05 2009 PL

72

ProgramowanieAndroid, czyli Linux na komórki

maj 2009 73www.lpmagazine.org

ProgramowanieAndroid, czyli Linux na komórki

kalkulatorów, będziemy dane wprowadzać do oddzielnych pól, np.: podczas dodawania w pierwszym argumencie znajdzie się pierw-sza wartość, natomiast drugi argument natu-ralnie zostanie umieszczony w drugim polu. W przypadku dodawania trzecie pole nie bę-dzie wykorzystywane, jednakże wynik zosta-nie umieszczony w czwartym polu, ponieważ trzy pierwsze pola to pola argumentów dla po-

zostałych funkcji oferowanych przez nasz kal-kulator. Funkcja, która w pełni wykorzysta trzy pola argumentów, to funkcja PowerMod, czyli tzw. potęgowanie modularne.

Listing 4 przedstawia fragmenty pliku XML, który opisuje interfejs kalkulatora. Ko-rzystamy z dwóch kontrolek rozmieszczają-cych inne widgety. Pierwszy widget to Liner-Layout , zawierający inny widget, a mianowi-

cie TableLayout. Poszczególne kontrolki znaj-dują się w tej drugiej kontrolce. Naturalnie są to wymienione wcześniej pola edycyjne oraz przyciski odpowiedzialne za obliczenia. Jed-nak pola edycyjne podane są bezpośrednio, bez żadnych dodatkowych znaczników.

Inaczej postępujemy w przypadku przy-cisków; stosujemy dodatkowy znacznik: Ta-bleRow. To powoduje, że poszczególne przy-ciski ułożą się w postacie tabelki tak jak jest to widoczne na Rysunku 3.

W przypadku kontrolek typu TextView zmieniamy wartość własności layout_width z wrap_content na fill_parent. Spowoduje to, że kontrolki będą rozciągnięte na całą sze-rokość ekranu telefonu.

Po przygotowaniu interfejsu użytkownika możemy przystąpić do pisania kodu. W pierw-szej kolejności należy zadeklarować obiekty re-prezentujące przyciski czy pola edycyjne, np.:

protected Button PlusBTN;

protected EditText DigitEdit_F1;

Uzyskanie odniesienia do konkretnego widge-tu uzyskamy za pomocą findViewById. Musi-my także pamiętać o wykonaniu konwersji na potrzebny typ:

PlusBTN = (Button) findViewById(R.id.

PlusBTN);

DigitEdit_F1 = (EditText) findViewById

(R.id.DigitText_F1);

Następny etap to podłączenie obsługi zdarzeń. Nas będzie interesować zdarzenie onClick dla przycisków, np.:

PlusBTN.setOnClickListener( PlusBTN_

OnClick );

Listing 5 zawiera obsługę zdarzenia OnClick dla przycisku sumy oraz potęgowania modularnego. W obydwu przypadkach w pierwszej kolejności sprawdzamy, czy pola edycyjne nie są puste. Je-śli ten warunek jest spełniony, to przechodzimy do obliczeń. Odczytujemy ciągi znaków i doko-nujemy konwersji na odpowiednie typy danych oraz sumujemy liczby. W przypadku potęgowa-nia modularnego korzystamy z metody modPow klasy BigInterger. Jednakże każdy, kto two-

Listing 4. Fragmenty opisu interfejsu naszego kalkulatora<LinearLayout android:layout_height="wrap_content" xmlns:android="http:

//schemas.android.com/apk/res/android" android:layout_width="fill_parent"

android:id="@+id/LinearLayout">

<TableLayout android:id="@+id/TableLayout01" android:layout_height="wrap_

content" android:layout_width="fill_parent">

<EditText android:id="@+id/DigitText_F1" android:singleLine="true"

android:layout_height="wrap_content" android:layout_width="fill_parent"></

EditText>

<EditText android:id="@+id/DigitText_F2" android:layout_height="wrap_

content" android:layout_width="fill_parent"></EditText>

<EditText android:id="@+id/DigitText_F3" android:layout_height="wrap_

content" android:layout_width="fill_parent"></EditText>

<TableRow android:id="@+id/TableRow04" android:layout_width="wrap_content"

android:layout_height="wrap_content">

<Button android:id="@+id/PlusBTN" android:layout_height="wrap_content"

android:text="+" android:layout_width="fill_parent"></Button>

...

</TableRow>

<TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content"

android:layout_height="wrap_content">

<Button android:id="@+id/SinBTN" android:layout_height="wrap_content"

android:text="Sin" android:layout_width="fill_parent"></Button>

</TableRow>

<TableRow android:id="@+id/TableRow05" android:layout_width="wrap_content"

android:layout_height="wrap_content">

<Button android:id="@+id/ModBTN" android:layout_height="wrap_content"

android:text="Mod" android:layout_width="fill_parent"></Button>

</TableRow>

<EditText android:id="@+id/DigitText_F_OUT" android:layout_height="wrap_

content" android:layout_width="fill_parent"></EditText>

<TextView android:id="@+id/PrgTitle" android:layout_height="wrap_content"

android:layout_width="fill_parent" android:layout_gravity="center_vertical"

android:text="Nieco inny kalkulator V.0.5a"></TextView></TableLayout>

</LinearLayout>

Na płycie DVD znajdują się wykorzystywa-ne biblioteki, kod źródłowy programu oraz wszystkie listingi z artykułu.

Na płycie DVD

Page 73: Linux 05 2009 PL

72

ProgramowanieAndroid, czyli Linux na komórki

maj 2009 73www.lpmagazine.org

ProgramowanieAndroid, czyli Linux na komórki

rzy programy w Javie, od razu zauważył, iż kod zaprezentowany na Listingu 5 niczym szczegól-nym nie zaskakuje. To spostrzeżenie wbrew po-zorom stanowi o dużej zalecie Androida. Sprzęt, na których działa ten system, pozwala na two-rzenie programów bez uciekania się różnego ro-dzaju sztuczek. Starsze modele telefonów nie pozwalały na np.: korzystanie z liczb zmienno-przecinkowych, a korzystanie z klasy BigInte-ger nie było możliwe.

PodsumowanieAndroid oferuje dostęp także do innych funkcji telefonu. Będą nimi np.: GPS, akcelerometry czy wspomniane mapy Google. Ograniczone miejsce nie pozwala niestety, nawet pobieżne, przedstawić innych możliwości API. Jednakże nawet zaprezentowane w artykule proste przy-kłady pokazują, iż tworzenie nowego oprogra-mowania dla Androida jest procesem dość wy-godnym. Dołączony emulator oraz dobre zinte-growanie SDK z Eclipsem pomaga i niewątpli-wie ułatwia tworzenie nowych aplikacji.

Miejmy nadzieję, że Android jako projekt OpenSource spowoduje, iż więcej telefonów bę-dzie wykorzystywać jądro systemu Linux, a osta-tecznie to my użytkownicy będziemy mieli dostęp do bardziej wyrafinowanych programów oraz te-lefonów, które nie będą tylko i wyłącznie urządze-niem do prowadzenia rozmów telefonicznych. Je-śli pojawi się potrzeba posiadania wyspecjalizo-wanej aplikacji, to będzie ją można samodzielnie opracować i wgrać do własnego telefonu.

Listing 5. Obsługa operacji sumy oraz potęgowania modularnego

private Button.OnClickListener PlusBTN_OnClick = new

Button.OnClickListener() {

public void onClick(View v) {

if(DigitEdit_F1.getText().toString() != "" && igitEdit_

F2.getText().toString() != "") {

double f1=Float.valueOf(DigitEdit_F1.getText().toString());

double f2=Float.valueOf(DigitEdit_F2.getText().toString());

double ff=f1+f2;

DigitEdit_F_OUT.setText(String.valueOf(ff));

}

}

};

private Button.OnClickListener PowerModBTN_OnClick = new

Button.OnClickListener() {

public void onClick(View v) {

if(DigitEdit_F1.getText().toString() != "" && DigitEdit_

F2.getText().toString() != "" && DigitEdit_F3.getText().toString() != "") {

BigInteger f1 = new BigInteger ( DigitEdit_

F1.getText().toString() );

BigInteger f2 = new BigInteger ( DigitEdit_

F2.getText().toString() );

BigInteger f3 = new BigInteger ( DigitEdit_

F3.getText().toString() );

BigInteger ff = f1.modPow(f2, f3);

DigitEdit_F_OUT.setText( String.valueOf(ff) );

}

}

};

Autor zajmuje się tworzeniem oprogramo-wania systemów Windows oraz Linux. Za-interesowania: teoria języków programo-wania oraz dobra literatura.Kontakt z autorem: [email protected].

O autorze

Rysunek 3. Kalkulator w Elipse oraz w emulatorze

• http://www.android.com – podstawowa strona dotycząca systemu Android;

• http://developer.android.com/ – informacje dla programistów, czyli tzw. SDK;

• http://www.eclipse.org/ – środowisko Eclipse;

• http://www.openmoko.comOpenMoko – pierwszy system z Linux'em dla telefonów komórkowych;

• http://www.openmoko.org – materiały dla programistów związane z OpenMoko.

W Sieci

Page 74: Linux 05 2009 PL

RecenzjeTeeworlds

74 maj 2009

RecenzjeTeeworlds

75www.lpmagazine.org

TeeworldsMaciej Mroziński

Każdy, kto spędza przy grach kom-puterowych chociaż trochę wię-cej czasu niż tak naprawdę po-winien, doskonale wie, iż rzad-

ko się zdarza, aby gra miała grywalność plasują-cą ją powyżej średniej gatunku. Na szczęście tak właśnie jest w przypadku Teeworlds, niewielkie-go rozmiarowo projektu, który zdążył zyskać so-bie ogromną popularność i setki oddanych gra-czy. Co złożyło się na ogromną popularność opi-sywanego tytułu? Miła oku grafika, prostota i in-tuicyjność, czy może coś jeszcze? Spójrzmy.

Teeworlds, dawniej znana pod nazwą Te-ewars, jak piszą autorzy, jest sieciową strzelan-ką w stylu retro. Szczerze mówiąc nie wiem, czy określenie gry epitetem retro nie jest tutaj lekką przesadą. W tym bowiem przypadku odnosi się ono wyłącznie do wykorzystania w grze grafi-ki dwuwymiarowej, która to cieszy się niesłab-nącą popularnością wśród otwartych produkcji. Zaś jeśli mowa o nurcie Indie Games, przeży-wa prawdziwy renesans. Co by jednak nie mó-wić, dwuwymiarowość jest i będzie kojarzona z grami z dawnych lat. Na dobrą sprawę wszystkie nowe gry, nawet komercyjne hity w stylu World of Goo, można z racji zastosowania w nich dwu-wymiaru (zwłaszcza połączonego z widokiem z boku) podciągnąć pod określenie retro. Podty-tuł gry – Jumping the gun – ma dać graczom do zrozumienia, że rozgrywka w Teeworlds jest nie-wiarygodnie szybka. Zwrot ten bowiem to nic in-nego jak angielski idiom opisujący sytuację, gdy zawodnik rozpocznie bieg przed gwizdkiem star-towym, lub jakąkolwiek inną, w której coś zosta-ło wykonane zbyt szybko. Ile w tym prawdy, każ-dy może ocenić na własną rękę. Mnie tempo gry szczególnie nie zaskoczyło. Tym bardziej, że jeśli wziąć pod uwagę przebieg profesjonalnych me-czy w grach takich jak Quake, tempo gry w Te-eworlds jest przeciętne, oczywiście wszystko za-leży od tego, kto z kim walczy.

Po uruchomieniu przywita nas nowator-sko pomyślane, bardzo wygodne w użyciu me-nu. Pierwszym zaskoczeniem był dla mnie jego rozmiar; otóż składa się ono przede wszystkim z okna głównego i pięciu zakładek u góry ekranu. Trzy pierwsze, Internet, LAN oraz Favorites to nic innego jak kryteria wyszukiwania serwerów

w sieci. Odpowiednio, w zakładce Internet znaj-dziemy wszystkie działające w Internecie serwe-ry gry, w LAN wyłącznie te postawione w obrę-bie sieci lokalnej do której należymy, natomiast Favorites wyświetli tylko te, które ręcznie ozna-czyliśmy i dodaliśmy do tej listy. Czwarta zakład-ka, Demos, pokaże wszystkie zapisane nagrania pojedynków. Ostatnia zaś, Settings, jak łatwo się domyśleć przeniesie nas do rozmaitych ustawień gry, podzielonych na: Player, Controls, Graphics i Sound. Opcje wchodzące w skład grupy Player umożliwiają nam podstawową konfigurację na-szej postaci, jak również kilku innych opcji. Kon-figuracja postaci to m.in. wybranie ksywki, skór-ki oraz pomniejsze opcje jak: włączenie lub wy-łączenie dynamicznie poruszającej się kamery, automatycznej zmiany broni po jej zebraniu oraz wyświetlania nazw graczy. Wybierając skórkę dla naszej postaci należy pamiętać, że domyślne skórki możemy dodatkowo modyfikować ręcz-nie ustawiając kolor tułowia oraz stóp. Każdy modyfikowalny za pomocą trzech suwaków. Ko-lejna grupa, Controls, daje nam możliwość zmia-ny domyślnie wykorzystywanych w grze klawi-szy. Graphics to z kolei opcje graficzne, takie jak: wysoki poziom detali, obsługa tekstur w wyższej rozdzielczości, ewentualna kompresja tychże, przełączanie się pomiędzy wyświetlaniem peł-noekranowym a oknem, V-Sync, oraz możliwość zmiany kolorów interfejsu użytkownika, również za pomocą suwaków. Ostatnia podgrupa, Sounds, umożliwia graczowi włączenie bądź wyłączenie dźwięków w grze, wyciszenie ich, gdy okno gry jest nieaktywne, wybranie częstotliwości próbko-wania dźwięku oraz dostosowanie poziomu gło-śności. Oprócz dotychczas wymienionych, na sa-mym końcu jest jeszcze niby-zakładka Quit, za pomocą której opuszczamy grę. Kapitalnym po-mysłem jest zastosowanie podobnego menu rów-nież podczas rozgrywki. Otóż naciskając klawisz [Esc] podczas gry zobaczymy wyłącznie same górne zakładki, co prawda nieco inne niż w menu głównym i w postaci nierozwiniętej; tym samym jednak nie zasłaniające nam ekranu gry. Zapyta-cie pewnie, co jest takiego nowatorskiego w me-nu Teeworlds? Odpowiedź brzmi: jego rozmiar i prostota. Zastosowano w nim bardzo uproszczo-ny, wręcz minimalistyczny interfejs, zaś wszyst-

kie opcje rozłożone zostały tak, że pogubienie się w nich jest praktycznie niemożliwe.

Przejdźmy jednak do właściwej rozgryw-ki. Rozpocznę od przedstawienia dostępnego uzbrojenia, w którego skład wchodzi: młotek, pistolet, dubeltówka, granatnik, karabin oraz ka-tana. Nie radzę szukać tutaj urozmaiceń w stylu alternatywnych trybów strzelania, ponieważ Wa-sze poszukiwania spełzną na niczym. Nie zna-czy to wcale, iż korzystanie z dostępnych narzę-dzi walki nie daje radości. Rozpocznę od broni podstawowej, czyli młotka. Zadaje on niewiel-kie obrażenia i sprawdza się wyłącznie w ata-ku na przeciwnika, z którym mamy bezpośredni kontakt. Pistolet jest pierwszą bronią korzystają-cą z amunicji, a co za tym idzie możemy z nie-go korzystać w ograniczonym zakresie. Co istot-ne, w Teeworlds spotkamy się z inną niż w ty-powych strzelankach pojemnością magazyn-ku, identyczną dla każdej z dostępnych w grze broni z wyjątkiem ograniczonej czasowo kata-ny. Otóż z każdej broni możemy oddać dziesięć strzałów, nie uświadczymy też porozrzucanych dookoła paczek z amunicją. Jedynym sposobem jej uzupełnienia jest odczekanie na ponowne po-jawienie się i zebranie oręża. Naboje do pistole-tu wyróżniają się spośród innych broni tym, że powoli się regenerują. Wynika to z faktu, iż pi-stolet jest drugą, obok młotka, bronią podstawo-wą, tym samym nie możemy znaleźć go na ma-pie, aby uzupełnić amunicję. Posiada on jeszcze jedną cechę, której nie uświadczymy u pozosta-łych pukawek; mam tutaj na myśli szybkość ko-lejnych ataków. Tylko w przypadku tej broni ma-my na nią wpływ, zależny od szybkości wciska-nia klawisza odpowiedzialnego za atak. Dubel-tówka nie różni się od swoich koleżanek, które mamy przyjemność spotkać w podobnych pro-dukcjach. Również tutaj posiada spory rozrzut i strzela kilkoma nabojami jednocześnie, co tyl-ko cieszy, bo każdy strzał liczony jest pojedyn-czo. Kolejna broń – granatnik – jest niczym in-nym jak tutejszym odpowiednikiem rakietnicy. Nie znaczy to oczywiście, że pociski z granat-nika lecą przed siebie wbrew prawom grawita-cji aż napotkają najbliższą ścianę lub przeciwni-ka. Granaty polecą tylko na określoną odległość, a grawitacja zadziała nie tak, jak powinna. Nie-

Page 75: Linux 05 2009 PL

RecenzjeTeeworlds

74 maj 2009

RecenzjeTeeworlds

75www.lpmagazine.org

których prawdopodobnie zastanowi, co wobec znaczących różnic łączy tą broń z wszelkiej ma-ści rakietnicami. Po pierwsze siła, wyróżniająca granatnik spośród całego arsenału oraz możli-wość wykonywania granade-jumpów, równie skutecznych co rocket-jumpy w podobnych ty-tułach. Ostatnią z powszechnie dostępnych broni jest karabin; aby nie było niedomówień, chodzi tutaj o karabinek snajperski. Pierwsze skojarze-nie po wzięciu go w łapki to Railgun z Quake III Arena. Drugie skojarzenie, po oddaniu pierwsze-go strzału, jest dokładnie takie same, z dwoma różnicami. Promień, którym strzela Teeworlds'o-wa snajperka, jeśli zamiast w przeciwnika trafi w ścianę, jeden raz się od niej odbije pod kątem za-leżnym od tego, jak ułoży się on względem jej powierzchni. Druga różnica polega na ograni-czeniu jego długości; tym samym, gdy spudłu-jemy nie trafi on w znacznie oddaloną ścianę, a skończy się gdzieś pomiędzy. Z racji zastosowa-nia grafiki dwuwymiarowej i oglądania gry z bo-ku nie mamy możliwości korzystania z przybli-żania charakterystycznego dla snajperek w in-nych tego typu grach; nic dziwnego, tutaj nie znalazłoby to po prostu zastosowania. Katana stanowi swego rodzaju przedmiot specjalny, a że jest on jednocześnie bronią, tak wyszło. Wbrew pozorom nie jest ona wyłącznie znacznie silniej-szym odpowiednikiem bazowego młotka. Cechą szczególną jest w jej przypadku sposób, w jaki wyprowadzany jest atak. Po wduszeniu klawisza odpowiedzialnego za cios nasza postać błyska-wicznie poruszy się w wybranym kierunku (fa-ni serii Dragonball i Worms z pewnością zrozu-mieją o co chodzi) zadając obrażenia przeciwni-kom stojącym nam na drodze.

Również w kwestii trybów rozgrywki auto-rzy postawili wyłącznie na pozycje dobrze zna-ne ogółowi graczy. Standardowo dostępne są tyl-ko trzy: Deathmatch (DM), Team Deathmatch (TDM) oraz Capture the Flag (CTF). Death-match to jeden z najstarszych trybów gry we wszystkich niemalże strzelankach sieciowych. Aby wygrać, musimy jako pierwsi uzyskać wy-maganą liczbę fragów. Dla wyjaśnienia dodam, że pod pojęciem frag rozumiemy po prostu zabi-cie jednego z przeciwników. Team Deathmatch to drużynowa odmiana tego pierwszego. Różni-ca polega na tym, że nie walczymy już na zasa-dach każdy przeciw każdemu, a w zespołach. Ta z dwóch drużyn, która jako pierwsza uzyska wy-maganą liczbę fragów, wygrywa. Kolejnym ze-społowym trybem gry jest Capture the Flag. Tu-taj też mamy dwie drużyny i ,co istotne, dwie ba-zy. W centrum każdej z nich znajduje się flaga ze-społu. Walczymy na punkty, natomiast aby tako-we zdobyć, należy wykraść flagę przeciwnika i zanieść ją do tej znajdującej się u nas. Niezwykle ważna jest tutaj współpraca wszystkich człon-

ków grupy, ponieważ wydobycie flagi drużyny przeciwnej to jedno, trzeba jeszcze pilnować, aby i naszej nikt nie wyniósł. Znaczy, czy trze-ba? Przecież najwięcej emocji jest właśnie wtedy, gdy dobiegamy do własnej bazy, a... flagi brak; wtedy pozostaje bacznie rozglądać się dooko-ła i tak dogadać z kolegami, aby np. jeden osła-niał nas, drugi natomiast, niczym filmowy Ram-bo, szturmem wkroczył na teren wroga i odebrał co nasze. Wspomniałem na początku akapitu, iż wymienione dotychczas tryby to zestaw standar-dowy. Jak przystało na popularną grę sieciową, również Teeworlds doczekał się pokaźnej licz-by modów oferujących m.in. dodatkowe moż-

liwości zabawy. Nie będę dokładnie opisywał wszystkich dostępnych trybów z prostego powo-du; jest ich zbyt wiele i z racji ograniczonej licz-by stron na recenzję po prostu nie jestem w sta-nie wystarczająco szczegółowo wszystkich opi-sać. Pozwolę sobie jednak wymienić te, do któ-rych udało mi się dotrzeć. Należą do nich: Space-ball, Bombing, Conquest (CONQ), Damage sco-re game (DMG), Domination (DOM), Double Domination (DDOM), Flyway Capture The Flag (fCTF), Hammer Party Death Match (HpDM), Hammer Party Team Death Match (HpTDM), Hammer Party Capture the Flag (HpCTF), Ra-ce, Hammer Party Race (HpRACE), Run, In-

Rysunek 1. Bajeczna pastelowa grafika na długo pozostaje w pamięci

Rysunek 2. Mroczny ninja bez problemów dostrzega swą ofiarę

Page 76: Linux 05 2009 PL

76

RecenzjeTeeworlds

maj 2009 77

RecenzjeTeeworlds

www.lpmagazine.org

stagib Death Match (iDM), Instagib Team De-ath Match (iTDM), Instagib Capture the Flag (iCTF), Jump 'n Run Death Match (jnrDM), Jump 'n Run Team Death Match (jnrTDM), Knockout tournament (K.O.), Rocket Party De-ath Match (RpDM), Rocket Party Team Death Match (RpTDM), Rocket Party Capture the Flag (RpCTF), Teespace Death Match (spaceDM), Te-espace Team Death Match (spaceTDM) oraz Su-rvival (SUR). Jak sądzę, Spaceball oraz Bombing korzystają z tego samego moda – Ball, zoriento-wanego na rozgrywkach zbliżonych do popular-nych dyscyplin sportowych. Co ciekawe, gracze posiadający własne serwery przy wykorzystaniu

moda Ball zdołali już stworzyć kilka dodatko-wych trybów, takich jak Basketball (koszyków-ka) czy Table Tennis (Tenis stołowy). Dla wyja-śnienia, Spaceball oraz Bombing przypominają nic innego jak po prostu piłkę nożną. Osiągnięto to umieszczając na planszy granat pełniący rolę piłki, podobnie ma się sprawa z innymi dyscypli-nami sportu, które możemy spotkać w Teeworlds. Tryby Domination oraz Double Domination, nie-obce miłośnikom serii Unreal Tournament, pole-gają na utrzymaniu kontroli nad kilkoma punk-tami na mapie. Tryby z rodziny (...) Party, od-powiednio Hammer Party (...) oraz Rocket Par-ty (…), mogę omówić jedynie na podstawie wła-

snych przypuszczeń, gdyż nie miałem okazji za-grać na serwerach dla nich przeznaczonych, a na stronie Wiki projektu nie zostały opisane. Domy-ślam się jednak, że chodzi po prostu o ogranicze-nie arsenału grających wyłącznie do jednej broni, odpowiednio: młotka lub granatnika. Race i Run to tryby wyścigowe, jednak zupełnie różne. Oba niezwykle istotne na scenie Teeworlds, zwłasz-cza dla graczy myślących o grze na poważnie w szeregach jednego z aktywnych klanów; nie-zależnie od tego, jaki tryb gry ich interesuje. Wy-nika to z prostego faktu, umożliwiają one profe-sjonalne przeszkolenie w sprawnym poruszaniu się w grze. Gracze dobrze radzący sobie na ma-pach przygotowanych tak dla trybu Race, jak i Run mają większe szanse w każdym z pozosta-łych; są po prostu szybsi i dostają się dokładnie tam, gdzie chcieli. Tak więc, bez dwóch zdań warto się nimi zainteresować. Co zaś tyczy się trybów z przedrostkiem Instagib, różnią się one od swoich pierwowzorów tym, że jedyną bronią gracza jest karabin. Nadal nie mogę się przyzwy-czaić, że ktoś nie nazwał tej broni po prostu snaj-perką czy Railem. Broń w tego rodzaju pojedyn-kach jest zmodyfikowana, wystarczy jeden cel-ny strzał, aby pozbawić przeciwnika życia. Czy-ni to rozgrywkę znacznie bardziej emocjonują-cą. Z jednej strony, posiadając tak silną broń, je-śli gramy powiedzmy w trybie Capture the Flag, znacznie łatwiej obronić bazę przed słabo zorga-nizowanym nieprzyjacielem, z drugiej zaś proszę sobie tylko wyobrazić, jak czulibyście się, gdyby po pokonaniu kilku nieprzyjaciół, zaraz po zła-paniu w łapki flagi drużyny przeciwnej, ktoś zni-weczył cały trud jednym celnym kliknięciem. Jak mówię, emocji nie brakuje.

W jednym z pierwszych akapitów odnio-słem się do podtytułu Teeworlds, mianowicie Jumping the gun. Proponuję uznać za sprawę drugorzędną to, czy gra jest niezwykle szybka, czy też nie i skupić się na tym, co ma ją takową uczynić, tj. na sposobie poruszania się po paste-lowo pomalowanych mapach. Przyjemnym za-skoczeniem dla niektórych może być domyśl-ne przypisanie klawiszy kierunkowych zgodnie z panującym już, nie czarujmy się, od kilku lat z okładem, standardem, w myśl którego porusza-my się korzystając z klawiszy W, S, A i D , a nie jak dawniej, strzałek. Dobry to wybór, oszczę-dzający setkom tysięcy graczy na świecie kil-ku sekund, które musieliby poświęcić na zmia-nę domyślnych ustawień. Przejdźmy jednak da-lej, do haka (ang. hook). Osoby obcujące na co dzień ze strzelankami znają narzędzie o nazwie Grappling hook, stosowane w wielu popular-nych grach FPP. Hak, z którego korzystać bę-dziemy w opisywanym tytule, bazuje na tym sa-mym pomyśle, chociaż jest o wiele częściej sto-sowany. Nie sposób wyobrazić sobie poruszanie

Rysunek 3. Menu główne z listą aktywnych serwerów

Rysunek 4. Zabrał flagę i wesoły

Page 77: Linux 05 2009 PL

76

RecenzjeTeeworlds

maj 2009 77

RecenzjeTeeworlds

www.lpmagazine.org

się po mapie bez jego wykorzystania, z kilku po-wodów. Po pierwsze, nie dostaniemy się samo-pas w większość miejsc. Po drugie, będziemy poruszać się niesamowicie wolno. Po trzecie, na które składają się dwa poprzednie punkty, sta-niemy się mięsem armatnim, do którego co zło-śliwsi walić będą jak do, nie przymierzając, stra-cha na wróble beztrosko stojącego na otwartym polu. Tak więc pierwszą rzeczą, której będziemy się musieli nauczyć po rozpoczęciu gry, jest opa-nowanie podstawowych zasad korzystania z te-go niezwykle przydatnego narzędzia. Spróbu-ję pokrótce omówić zasadę jego działania. Otóż domyślnie przypisany do prawego klawisza my-szy hak może zostać wystrzelony w dowolnym kierunku, jeśli trafi na powierzchnię, której mo-że się uczepić, nasza postać sama zacznie prze-suwać się w kierunku punktu wbicia. Trzeba Wam wiedzieć, że korzystanie z haka nie kon-fliktuje jakkolwiek z posługiwaniem się różne-go rodzaju orężem. Nierzadko zdarza się spotkać graczy, którzy w grach zespołowych uczepieni sufitu pełnią rolę żywych wieżyczek. Warto pa-miętać, że sprawne korzystanie z tego narzędzia obejmuje nie tylko celne wybranie miejsca za-czepienia, przynajmniej niejednorazowe. Z jed-nego punktu bowiem przejść możemy dalej, do drugiego i następnych. Tak właśnie dostawać się będziecie w wyżej położone miejsca. Ostatnią funkcją haka jest nabieranie prędkości. Polega ona na takim wycelowaniu ostrzem, aby przesu-wając się w kierunku punktu wbicia nasza postać zaczęła przyspieszać. Zwykle gracze podskaku-ją, celują w ziemię przed sobą, po czym robią to jeszcze kilkakrotnie. Autorzy oddali do dyspo-zycji gracza jeszcze jedno: podwójny skok. Tu-taj sprawa przedstawia się banalnie prosto. Bę-dąc w powietrzu naciskamy klawisz odpowie-dzialny za skok, wtedy nasza postać odbije się od powietrza umożliwiając uniknięcie wymie-rzonego w nas granatu czy zdobycie wyżej po-łożonego terenu.

Od strony audiowizualnej gra prezentuje się znakomicie. Kreskówkowa grafika przesycona pastelowymi kolorami nikogo, jak sądzę, nie od-rzuci od ekranu. Nawet jeśli nie przepadamy za taką paletą barw, przyznać należy, iż poszczegól-ne obrazki tworzące świat gry wykonane zostały bardzo przyzwoicie i naprawdę robią dobre wra-żenie. W kwestii oprawy dźwiękowej jest dobrze, i na tym musimy poprzestać. Tak się bowiem składa, że oprócz kilku dźwięków gracz słyszy niewiele; nie uświadczymy tutaj żadnej melodii, ani w menu, ani podczas rozgrywki. Już widzę, jak niektórzy kręcą nosem, lub, co sprytniejsi, szykują ulubioną playlistę. Sądzę że jeśli aż tak brakuje im w grze muzyki, jest to dobrym posu-nięciem. Z mojej strony dodam, iż ciężko spo-dziewać się po grze, która jakby nie patrzeć aspi-

ruje do miana gry umożliwiającej rozgrywanie meczy na profesjonalnym poziomie, aby przy-kładała wagę do oprawy muzycznej. Bo tak na-prawdę czy grając w gry takie jak Quake, Unre-al lub którykolwiek z ich otwartych odpowiedni-ków bądź klonów mamy włączoną muzykę? Nie wiem jak Wy, ale ja zwykle rezygnuję z tej moż-liwości. Muzyka zwyczajnie przeszkadza w grze, no chyba że dla relaksu mierzymy się z botami. To co innego. Jak widać również na tym polu, Te-eworlds prezentuje się całkiem nieźle, to co sły-szymy nie drażni uszu, a to co część graczy i tak wycisza, zostało pominięte. Może to i dobrze.

Czas na krótkie podsumowanie. Całość zo-stała wykonana nad wyraz pracowicie i rzetel-nie. Mówię zarówno o przejrzystości gry oraz interfejsu, jak i o oprawie audiowizualnej. Za-stosowanie w grze sprawdzonych rozwiązań można poczytywać tylko za plus: tak bronie, jak i tryby rozgrywki gwarantują rozrywkę na dłu-gie wieczory. Jeśli uznamy, że jest ich zbyt ma-ło, to nic nie stoi na przeszkodzie, aby dołączyć do któregoś z serwerów uzbrojonych w co cie-kawsze mody. Odnośnie samych modów do-dać należy, że oprócz tych oferujących nowe try-by gry są i mniejsze, dodające np. znane z se-rii Unreal Tournament określenia Killing Spree i podobne, stosownie do tego, jak poczyna sobie gracz w czasie walki. Grafika i oprawa dźwięko-wa nie pozostawiają niesmaku, wręcz przeciw-nie, naprawdę pozytywnie zaskakują. Gra po-siada sporą liczbę serwerów oraz aktywną spo-łeczność, która na bieżąco tworzy nowe skórki dla postaci, mapy, mody i tym podobne; znajdu-je ona swój wyraz także w kilku aktywnych fo-rach poświęconych samej grze czy też niektó-rym tylko jej modyfikacjom. Dodatkowym plu-sem jest dołączony do gry edytor map, z braku miejsca w tej recenzji nieomówiony. Aktywuje-my go korzystając z kombinacji klawiszy [Ctrl] + [Shift] + [E]. Jeśli napotkamy problemy przy jego obsłudze, to w Internecie łatwo znajdzie-my poradniki wyjaśniające podstawy. Pozostaje mi już tylko zachęcić do sięgnięcia po grę. Jeśli macie chwilę wolnego czasu, aby pobrać te kil-ka megabajtów – ponieważ tyle właśnie zajmuje Teeworlds – zachęcam. Gra odróżnia się zauwa-żalnie od innych strzelanek dostępnych m.in. na systemy linuksowe i chociażby z tego względu zasługuje na uwagę. Nawet jeżeli długo przy niej nie zabawicie, z pewnością zapoznacie się z jed-ną z ciekawszych pozycji wśród otwartych gier sieciowych.

Teeworlds dostępny jest na systemy z rodzi-ny Windows, GNU/Linux oraz MacOS X. Jak w przypadku wielu otwartych tytułów, możemy zdecydować, czy pobierzemy wersję binarną, czy też pokusimy się o kompilację źródeł. W pierw-szym przypadku cała procedura jest niezwykle

prosta. Otóż ze strony projektu znajdującej się pod adresem http://www.teeworlds.com pobiera-my archiwum .tar.gz (~5.2mb dla wersji 0.5.1), następnie rozpakowujemy i wykonujemy plik o nazwie teeworlds. Jeżeli natomiast zainteresu-jemy się kompilacją (przydatną chociażby, gdy chcemy postawić serwer korzystający z określo-nego moda, gdyż są one dostępne również jako łatki na źródła) najpierw będziemy musieli za-opatrzyć się w system budowy Bam. Możemy go pobrać że strony http://teeworlds.com/trac/bam w postaci archiwym .tar.gz albo .zip (~160kb). Pobierzemy również paczkę ze źródłami gry (~6mb) dostępnymi, podobnie jak wersja binar-na, na stronie projektu. Bam do poprawnej kom-pilacji, jak podają autorzy, potrzebuje jedynie GCC i pthreads. Aby natomiast kompilacja sa-mej gry przebiegła pomyślnie, będziemy mu-sieli spełnić następujące zależności: python, al-sa (asound), gl, glu oraz x11. Proces budowy przebiega następująco, zakładając, że w katalo-gu znajdują się osobno katalogi ze źródłami sys-temu budowy (nazwijmy go bam) i gry (nazwij-my go teeworlds-wersja-src): najpierw wcho-dzimy do katalogu bam i wydajemy polecenie ./make_unix.sh. Następnie zaś udajemy się do katalogu ze źródłami Teeworlds i w zależności od tego co chcemy skompilować, wydajemy właści-we polecenia. Chcąc skompilować wszystko wy-konujemy ../bam/src/bam release, gdy zaś interesuje nas sam serwer ../bam/src/bam se-rver_release.

Ocena gry: 4+/5

Za:

• bardzo przyjemna dla oka grafika;• prostota i przejrzystość interfejsu;• skromna, ale z dbałością wykonana

oprawa dźwiękowa;• spora ilość aktywnych serwerów;• mnogość dodatkowych trybów gry i róż-

nego rodzaju modyfikacji;• dołączony edytor map.

Przeciw:

• brak

Za i przeciw

Od kilku lat, codzienny, domowy użytkow-nik GNU/Linuksa. Entuzjasta rozwiązań al-ternatywnych i wolnego oprogramowania.Kontakt z autorem: [email protected]

O autorze

Page 78: Linux 05 2009 PL

Klub PRO

CPU-Service A. i Z. Maryniak spółka jawnaWarszawska 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

ARAKS PBUPolecamy oprogramowanie ERPFinansowo-Księgowe, Kadry-Płace, Faktu-ry, Środki trwałe. Zapewniamy: dostosowanie programów do potrzeb firmy,

Wdrożenia, doradztwo i serwis, outsourcing IT.www.araks.pl

INFOTEX SP.J Śmietanowski i Wsp.Dystrybutor XP Unlimited - Serwer Terminali dla Windows XP i VISTA. Umożliwia łączenie się z dowolnego klienta Windows, Linux z wyko-rzystaniem protokołu RDP. Cena wersji Classic dla 5 użytkowników - 112€, dla nieograniczonej liczby - 235€. Ponadto oferujemy opiekę serwi-sową i aplikacje internetowe na zamówienie.http://www.infotex.com.pl

BetaSoft Sp. z o.o.Jesteśmy producentem systemu eDokumenty realizującego wymagania systemów DMS i CRM. System działa na platformach Linux oraz Windows i należy do grupy najnowocześniejszych aplikacji webowych działających w technologii AJAX. System zintegrowany jest z OpenOffice i Word oraz wieloma systemami FK. www.edokumenty.euwww.betasoft.pl

Invoicer Madar MobileTo darmowy program do fakturowania przez przeglądarkę. Umożliwia: wystawianie, ewi-dencję i wydruk faktury VAT, rachunków, wy-stawianie PZ, WZ, WDT i WNT a także reje-strację wpłat i kontrolę niezapłaconych. PROWADŹ FIRMĘ ZDALNIE, MOBILNIE I NIEZALEŻNIE OD SYSTEMU OPERA-CYJNEGO.http://www.invoicer.pl

Page 79: Linux 05 2009 PL

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

Systemy bankowe, ISOF HEUTHES istnieje na rynku od 1989 r. Obok systemów informatycznych dla banków, ofe-ruje nowoczesne oprogramowanie do obsługi firm. System ISOF jest udostępniany klientom w trybie SaaS lub licencji. Pracuje na platfor-mie Linux i zawiera m.in. takie moduły jak CRM, DMS, Magazyn, Sprzedaż, Logistyka oraz Rachunkowość. http://www.isof.pl

OFERTA SKIEROWANA DO FIRMJeż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:[email protected] tel. 22 427 36 91

WSISiZ w WarszawieINFORMATYKA ZARZĄDZANIEstudia 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

TTS Company Sp. z o.o.Sprzedaż i dystrybucja oprogramowania kom-puterowego. Import programów na zamówie-nie. Ponad 200 producentów w standardowej ofercie. Chcesz kupić oprogramowanie i nie możesz znaleźć polskiego dostawcy? Skon-taktuj się z nami – sprowadzimy nawet pojedyn-cze licencje.www.OprogramowanieKomputerowe.pl

Wyższa Szkoła InformatykiInformatyka, 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

Page 80: Linux 05 2009 PL

Kontakt 1. Telefon+48 22 877 20 80 2. Fax+48 22 877 20 70 2. [email protected]

3. AdresEuroPress Polska Sp. z o.o.ul. Jana Kazimierza 46/5401-248 Warszawa

Roczna prenumerata

tylko199 Linux+DVD jest przeznaczony dla początkujących i zaawansowanych 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ściami 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 Początkujących, Dla Programistów i Sprzęt. Oprócz nich, w każdym wydaniu znajdują się informacje dotyczące typowego użycia Linuksa: bezpieczeństwa, multimediów, narzędzi naukowych, programowania czy poczty elektronicznej.

,-UWAGA!

Zmiana danych kontaktowych

Page 81: Linux 05 2009 PL

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 877 20 70lub listownie na adres: EuroPress Polska Sp. z o.o.ul. Jana Kazimierza 46/5401-248 WarszawaPolskaE-Mail: [email protected]

Przyjmujemy też zamównienia telefoniczne:00 48 22 877 20 80

Jeżeli chcesz się dowiedzieć o formach płatności, wejdź na stronę:www.europress.pl lub napisz na e-mail: [email protected]

Prenumerujesz – zyskujeszl oszczędność pieniędzy l szybka dostawa l prezentyl 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* 199PLN

□ automatyczne przedłużenie prenumeraty

* W lipcu i sierpniu ukazuje się jeden łączony wakacyjny numer

Zadzwoń+48 22 877 20 80

lubzamów

mailowo!

Page 82: Linux 05 2009 PL

W numerze tym planujemy zamieścić między innymi następujące artykuły:

Numer w sprzedaży od 18 maja!

Głównym tematem numeru czerwcowego Linux+ DVD będzie

Aktualne informacje o najbliższym numerze: http://lpmagazine.orgRedakcja zastrzega sobie możliwość zmiany zawartości pisma.

Grafika i DTP

• „Hurtowa” obróbka fotografii• Analiza obrazu z wykorzystaniem ImageJ• Beamer – profesjonalne prezentacje• Inkscape, efekty graficzne• ImageMagick

Page 83: Linux 05 2009 PL
Page 84: Linux 05 2009 PL