SPOŁECZNOŚĆ
Projekty
Przegląd najciekawszych projektów Open Source
Projekty pod lupą
Obecnie mamy do dyspozycji tak
wiele wolnego oprogramowania –
narzędzi, aplikacji, różnych projek-
tów – że chwilami trudno ocenić,
które narzędzie najlepiej odpowia-
da naszym potrzebom. My wybiera-
my dla Was to, co jest najważniej-
sze i najciekawsze.
ARTUR SKURA
Subversion
ków, wersjonowania katalogów itp. Subver-
współpracujące z systemami kontroli wersji
Rozwijany od 2000 roku system kontroli
sion, jak na następcę CVS przystało, jest
tego wymagają” – mówi Arkadiusz Miśkie-
wersji, Subversion[1], ukazał się w długo
pozbawiony tych wad, umożliwiając m.in.
wicz z PLD. „Jedną z podstawowych zalet
oczekiwanej wersji 1.0. Celem projektu jest
wersjonowanie metadanych.
Subversion jest to, że znając CVS zna się
zastąpienie wysłużonego, choć najpopular-
Subversion nie jest narzędziem, którego
i Subversion, ponieważ z punktu widzenia
niejszego dotąd w świecie Wolnego Opro-
zwykły użytkownik będzie używał na co
użytkownika różnic w używaniu poleceń (cvs
gramowania systemu kontroli wersji, CVS
dzień. Mimo że ogromna większość otwartych
i svn) jest niewiele. Wystarczy przeczytać
(Concurrent Version System). Zaletą CVS,
projektów korzysta z jakiegoś systemu kontro-
fragment podręcznika dotyczący różnic mię-
oprócz sporej popularności, jest względna
li wersji, dla użytkowników przygotowane są
dzy cvs, a svn.
prostota protokołu oraz łatwość instalacji
zazwyczaj wersje źródłowe i binarne, tworzo-
Jednak najistotniejsza i najwspanialsza
i użytkowania. Po pewnym czasie pracy
ne na podstawie plików zgromadzonych w re-
rzecz to wersjonowanie całymi seriami zmian
z CVS wychodzą jednak na jaw wady syste-
pozytorium danego systemu. Trudno jednak
– tzn. nie każdy plik jest wersjonowany osob-
mu, takie jak ignorowanie zmian nazw pli-
przecenić znaczenie tego faktu dla dewelope-
no, tylko całe drzewo. Dzięki temu można
rów korzystających
użyć podpolecenia diff dla danej wersji i zo-
do tej pory z CVS.
baczyć całą serię zmian, zazwyczaj dotyczącą
W Polsce jednym
jednego problemu. W przypadku CVS trzeba
z pierwszych pol-
było obchodzić problem, szukając różnic we-
skich projektów, któ-
dług daty zamiast według wersji. Niezwykle
ry zaczął korzystać
użyteczne jest też wersjonowanie katalogów
z
Subversion jest
– można je usuwać, przenosić itp. Reszta
PLD (PLD Linux
funkcjonalności według mnie nie różni się
Distribution[2]). Czy
zbytnio od tej występującej w CVS”.
wiąże się to z jakimiś
ograniczeniami?
Free Pascal
„CVS ma jedną rzecz
Free Pascal[3] jest kolejnym interesującym
,której jeszcze nie ma
projektem, który jednak nie wydaje się być
subversion – bloko-
wystarczająco doceniony. Jest to bowiem bo-
wanie zasobów. Za-
daj najlepsze wieloplatformowe środowisko
zwyczaj nie jest to
programistyczne służące do tworzenia opro-
Rysunek 1:Prosty edytor tekstu, jeden z przykładów dołączanych do potrzebne, jednak
gramowania w języku Pascal.
Free Pascala, pokazujących jak używać modułu oCrt.
niektóre narzędzia
Dzisiejszy Pascal znacznie różni się od te-
102
Kwiecień 2004
www.linux-magazine.pl
Projekty
SPOŁECZNOŚĆ
go, który skrytykowano w słynnym doku-
łania systemowe odpowiedzialne np. za zapis
Linux Virtul Server Project
mencie „Dlaczego Pascal nie jest moim ulu-
i odczyt z dysku, zmianę czasu, nawiązywa-
Linux Virtual Server Project[6], znany rów-
bionym językiem programowania”. Jest to
nie połączeń itd. Najczęściej modyfikowanie
nież jako konteksty bezpieczeństwa dla sys-
szczególnie prawdziwe w odniesieniu do im-
któregokolwiek z nich nie jest potrzebne,
temu Linux, jest jednym z najbardziej inte-
plementacji Free Pascal, która umożliwia
może tylko sprowadzić problemy. Zdarzają
resujących projektów linuksowych, które po-
m.in. zwracanie tablic jako rezultatów funk-
się jednak sytuacje, kiedy jest to najszybszy,
jawiły się w ciągu ostatnich kilku lat.
cji, co przydałoby się np. Delphi i Kyliksowi.
a czasem jedyny sposób rozwiązania proble-
Większość użytkowników Linuksa zna
Jest to niezwykle potężny język, atrakcyjny
mu. I wtedy właśnie z pomocą przychodzi
oprogramowanie, takie jak VMware, Bochs
również ze względów bezpieczeństwa: znacz-
Subterfugue, które pozwala niemal dowolnie
czy Plex, umożliwiające uruchamianie kopii
nie trudniej w nim popełnić błąd, który
modyfikować wywołania systemowe.
niektórych systemów operacyjnych m.in.
mógłby wywołać przepełnienie bufora, niż
Co można dzięki temu osiągnąć? Dla
w Linuksie. Z kolei User Mode Linux umoż-
w tradycyjnie stosowanym języku C.
większości użytkowników przykłady zasto-
liwia uruchamianie różnych jąder Linuksa
Rozwijany od jedenastu lat projekt osią-
sowań Subterfugue mogą się wydać zupeł-
w przestrzeni użytkownika. Projekty te są
gnął stadium dojrzałości. Kompilator sam
nie nieprzydatne, jest to jednak raj dla
niezwykle użyteczne i popularne, jednak ich
jest napisany w Pascalu, można więc go użyć
tych, którzy chcą eksperymentować z wła-
największym problemem jest wydajność –
do kompilacji Free Pascala. Wśród obsługi-
snym systemem, bądź też osiągnąć nietypo-
z oczywistych względów systemy uruchamia-
wanych platform znajduje się
ne na innym systemie działają
DOS, Windows (od Win32s po
wolniej niż uruchomione na sa-
XP), Linux, OS/2, Solaris, Be-
mym sprzęcie.
OS, QNX i systemy *BSD. Jest
Twórcy projektu serwerów
w dużej mierze zgodny z Turbo
wirtualnych dla Linuksa poszli
Pascalem 7.0 zarówno na pozio-
inną drogą: zamiast tworzyć
mie języka, jak i dołączonych bi-
środowisko emulacyjne, w któ-
bliotek. A skoro o bibliotekach
rym byłaby uruchamiana kolej-
mowa – Free Pascal ma się czym
na kopia systemu, zdecydowali
pochwalić. Z witryny projektu
się zmodyfikować część wywo-
możemy pobrać moduły umożli-
łań systemowych tak, by całe
wiające współpracę z większo-
środowisko zachowywało się
ścią popularnych bibliotek – do
dokładnie tak, jakby składało
kompresji (zlib, gzip), tworzenia
się z wielu serwerów. Tak więc,
graficznych interfejsów użyt-
mimo że każdy z serwerów wir-
kownika (GTK+, Forms, GGI),
tualnych uruchamianych w sys-
pracy w trybie tekstowym (ncur-
temie zachowuje się jak serwer
ses, oCrt), przetwarzania wyra-
Rysunek 2: Irrlicht potrafi importować mapy Quake 3.
fizyczny, w praktyce nie ponosi
żeń regularnych, tworzenia apli-
się prawie żadnych dodatko-
kacji sieciowych i wiele, wiele innych.
we rezultaty. Możemy na przykład wprowa-
wych kosztów związanych z wydajnością.
Od wielu lat Pascal ma swoje ustalone
dzić dodatkowe opóźnienie do każdego wy-
Jest to doskonałe rozwiązanie dla tych,
miejsce w dydaktyce. Rola Free Pascala jest
wołania, czego rezultatem będzie widoczne
którzy potrzebują kilku działających serwe-
tu szczególnie istotna, jako że darmowy cha-
spowolnienie pracy systemu. Możemy do-
rów spełniających różne funkcje, oszczę-
rakter projektu umożliwia uczniom i nauczy-
wolnie manipulować danymi przekazywa-
dzamy bowiem nie tylko na wydajności –
cielom swobodne tworzenie aplikacji, bez
nymi i zwracanymi przez wywołania. Może-
dzięki dowiązaniom do plików możliwe jest
uiszczania opłat licencyjnych. Być może po-
my dokładnie śledzić działanie programu,
współdzielenie części dysków należących
winni się nim zainteresować również zawo-
podobnie jak robi to strace, podejmując
do serwerów wirtualnych opartych na tej
dowi programiści, jako że wydajność kodu
określone działanie, kiedy zostaną spełnio-
samej dystrybucji. Dołączone narzędzia
generowanego przez kompilator w niczym
ne dane warunki. Możemy blokować różne
umożliwiają również automatyczną aktu-
nie ustępuje GCC, w wielu wypadkach pro-
wywołania systemowe, np. te związane z ob-
alizację pakietów na wszystkich serwerach
gramy pisze się szybciej, mniej jest też moż-
sługą sieci. Reasumując: możemy niemal
znajdujących się na danym komputerze, co
liwości popełnienia potencjalnych błędów,
całkowicie zmienić zachowanie całego sys-
znacznie ułatwia pracę administratora.
które mogłyby być fatalne w skutkach.
temu bez ingerencji w samo jądro -- ograni-
Linux Virtual Server Project składa się
cza nas jedynie wyobraźnia.
z dwóch elementów: łaty nakładanej na ją-
Subterfugue
Subterfugue jak dotąd działa jedynie na
dro Linuksa oraz zestawu narzędzi wspoma-
Subterfugue[4] jest narzędziem nietypowym
Linuksie. Podobnie jak Fenris[5], narzędzie
gających tworzenie i administrację serwera-
– nie można go określić jednym słowem, czy
do analizy programów binarnych, pozostaje
mi wirtualnymi. Utworzenie nowego serwe-
nawet przypisać do określonej kategorii apli-
znane jedynie wąskiej grupie osób zaintere-
ra jest niezwykle proste – wystarczy podać
kacji. Program pozwala bowiem modyfiko-
sowanych głębszym poznaniem funkcjono-
jego nazwę i numer IP, a program sam po-
wać wywołania systemowe dla uruchamia-
wania systemu operacyjnego. Warto je więc
bierze niezbędne pakiety (z systemu macie-
nych procesów. Co to oznacza?
polecić tym, którzy chcą dowiedzieć się wię-
rzystego czy z sieci) i skonfiguruje nowy ser-
W jądrze Linuksa zdefiniowane są wywo-
cej o tym, jak działa Linux.
wer. Administratorowi takiego serwera
www.linux-magazine.pl
Kwiecień 2004
103
SPOŁECZNOŚĆ
Projekty
można ograniczać prawa za
Irrlicht korzysta zarów-
pomocą możliwości (capa-
no z OpenGL, jak i z Di-
bilities) wbudowanych w ją-
rect3D. Obsługuje anima-
dro Linuksa. Dzięki temu
cję postaci, którymi można
administrator serwera wir-
nie tylko dowolnie poru-
tualnego z
efektywnym
szać, ale i manipulować po-
identyfikatorem użytkowni-
wierzchnią nałożonych na
ka równym 0 nie może wy-
nie tekstur. Prawdziwie
konywać pewnych czynno-
imponująco wygląda ze-
ści administracyjnych, któ-
staw dostępnych efektów
re może przeprowadzić ad-
specjalnych, obejmujących
ministrator serwera fizycz-
m.in. mapowanie środowi-
nego. W praktyce oznacza
skowe, mapy świetlne
to, że dostawcy usług inter-
i efekty cząsteczek.
netowych mogą oferować
Czym jednak byłaby sa-
swoim klientom kompletne
ma biblioteka do tworze-
środowisko serwerowe, łącz-
nia gier, w której nie dało-
nie z prawami administra-
by się wykorzystać rezul-
tora niezbędnymi do insta-
tatów pracy w innych apli-
lacji i konfiguracji wszyst-
Rysunek 3: Efekty specjalne, które można uzyskać dzięki Irrlicht, robią duże kacjach? Przy dzisiejszym
kich aplikacji, nie ryzyku-
wrażenie.
stanie
zaawansowania
jąc jednocześnie naruszenia
technologii tworzenia gier
bezpieczeństwa innych serwerów wirtual-
Czy warto używać Firebirda, skoro ma-
trudno sobie wyobrazić napisanie gry zupeł-
nych znajdujących się na danym kompute-
my do dyspozycji inne dobre systemy bazo-
nie od zera. Irrlicht obsługuje więc import
rze, które dzięki modyfikacji wywołań sys-
danowe Open Source, takie jak PostreSQL,
popularnych formatów, takich jak pliki
temowych zostały całkowicie oddzielone
SapDB czy MySQL? Jest to z pewnością
obiektowe Maji, 3D Studio, Milkshape, pli-
(na poziomie systemu plików, komunikacji
bardzo dobre rozwiązanie dla obecnych
ki poziomów Quake 3 i obiektów Quake 2,
międzyprocesowej i sieci).
klientów Borlanda, którzy korzystają z pro-
jak również obiektów DirectX. Możemy
Jak to możliwe, by tak interesujący pro-
duktów tej firmy. Jednym z głównych celów
więc stworzyć obiekt 3D pod Linuksem, np.
jekt umykał do tej pory uwadze zarówno
Firebirda jest zapewnienie wstecznej zgod-
w darmowej wersji True Space działającej
prasy branżowej, jak i wielu użytkowni-
ności z InterBase tak, by przynajmniej
pod Wine, następnie zapisać jako obiekt Di-
ków, potencjalnie zainteresowanych tego
w najbliższej przyszłości można było wy-
rectX i wykorzystać w grze. Rzecz jasna im-
typu rozwiązaniem? Podobny mechanizm,
mieniać instalacje oparte na InterBase na
port nie ogranicza się tylko do obiektów
który zostanie udostępniony w najnowszej,
serwery Firebird. Warto więc pamiętać
trójwymiarowych, znacznie dłuższa jest lista
dziesiątej wersji sytemu operacyjnego Sola-
o tym produkcie przy planowaniu rozwią-
formatów tekstur obsługiwanych przez bi-
ris (tzw. strefy), i jest reklamowany jako
zań, w których ważnym elementem są sys-
bliotekę.
niezwykła innowacja, w Linuksie istnieje
temy bazodanowe Borlanda.
Na główniej witrynie projektu dostępne
od dwóch lat! Jest mało znany, ponieważ
jest demo, dzięki któremu można się zapo-
nie stanowi oficjalnej części jądra – i jest to
Irrlicht
znać z niezwykłymi możliwościami tej bi-
jedyny powód. Zapewne w przyszłości, kie-
Niewiele projektów wygląda tak obiecują-
blioteki, obecnie w wersji 0.6. Nie pozostaje
dy uczestnikom projektu uda się wywal-
co i nęci tak interesującym plikiem demon-
nic innego, jak tylko zachęcić do zapoznania
czyć włączenie go do głównej gałęzi, sytu-
stracyjnym jak Irrlicht[8]. Jest to biblioteka
się z tym obiecującym projektem, mającym
acja ulegnie zmianie.
służąca do tworzenia gier trójwymiarowych.
szanse stać się de facto standardem przy two-
Takich bibliotek powstało mnóstwo, jednak
rzeniu przenośnych gier.
■
Firebird
poziom, który udało się osiągnąć Irrlicht,
W 2000 roku Borland udostępnił na licen-
jest naprawdę imponujący.
INFO
cji Open Source silnik bazodanowy znany
Jedną z podstawowych zalet Irrlicht jest
[1] Subversion: http://subversion.tigris.org
jako InterBase 6.0. Ponieważ polityka
jej przenośność. Oznacza to, że możemy pi-
[2] PLD Linux Distribution:
Borlanda byłą pełna wewnętrznej sprzecz-
sać grę dla Windows całkowicie na Linuksie
http://pld-linux.org
ności w stosunku do Open Source i firmie
– Windows będziemy potrzebowali jedynie
nigdy nie udało się zdefiniować jasnej,
do kompilacji (którą, nawiasem mówić, moż-
[3] Free Pascal: http://www.freepascal.org
konsekwentnej polityki w stosunku do te-
na przeprowadzić przy pomocy darmowego
[4] Subterfugue: http://www.sourceforge.net/
go zjawiska, stosunkowo szybko na pod-
mingw32). Irrlicht to bowiem nie tylko sil-
projects/subterfugue/
stawie udostępnionego kodu utworzono
nik 3D, ale i zestaw mechanizmów pozwala-
[5] Fenris: http://lcamtuf.coredump.cx/
nowy projekt, znany obecnie jako Fire-
jących tworzyć własne interfejsy użytkowni-
[6] Vserver: http://www.linux-vserver.org/
bird[7]. Wersja 1.5, która ukazała się pod
ka i obsługiwać inną funkcjonalność obecną
[7] Firebird: http://www.firebirdsql.org/
koniec lutego, to przepisanie kolejnej por-
w grach. To jednak dopiero początek możli-
[8] Irrlicht: http://irrlicht.sourceforge.net/
cji kodu i usunięcie wielu błędów.
wości biblioteki.
104
Kwiecień 2004
www.linux-magazine.pl