Download: Spolecznosc_Projekty
Transkrypt
Download: Spolecznosc_Projekty
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 projektów – że chwilami trudno ocenić, które narzędzie najlepiej odpowiada naszym potrzebom. My wybieramy dla Was to, co jest najważniejsze i najciekawsze. ARTUR SKURA Subversion ków, wersjonowania katalogów itp. Subversion, jak na następcę CVS przystało, jest pozbawiony tych wad, umożliwiając m.in. wersjonowanie metadanych. Subversion nie jest narzędziem, którego zwykły użytkownik będzie używał na co dzień. Mimo że ogromna większość otwartych projektów korzysta z jakiegoś systemu kontroli wersji, dla użytkowników przygotowane są zazwyczaj wersje źródłowe i binarne, tworzone na podstawie plików zgromadzonych w repozytorium danego systemu. Trudno jednak przecenić znaczenie tego faktu dla deweloperów korzystających do tej pory z CVS. W Polsce jednym z pierwszych polskich projektów, który zaczął korzystać z Subversion jest PLD (PLD Linux Distribution[2]). Czy wiąże się to z jakimiś ograniczeniami? „CVS ma jedną rzecz ,której jeszcze nie ma subversion – blokowanie zasobów. Zazwyczaj nie jest to potrzebne, jednak Rysunek 1:Prosty edytor tekstu, jeden z przykładów dołączanych do niektóre narzędzia Free Pascala, pokazujących jak używać modułu oCrt. Rozwijany od 2000 roku system kontroli wersji, Subversion[1], ukazał się w długo oczekiwanej wersji 1.0. Celem projektu jest zastąpienie wysłużonego, choć najpopularniejszego dotąd w świecie Wolnego Oprogramowania systemu kontroli wersji, CVS (Concurrent Version System). Zaletą CVS, oprócz sporej popularności, jest względna prostota protokołu oraz łatwość instalacji i użytkowania. Po pewnym czasie pracy z CVS wychodzą jednak na jaw wady systemu, takie jak ignorowanie zmian nazw pli- 102 Kwiecień 2004 www.linux-magazine.pl współpracujące z systemami kontroli wersji tego wymagają” – mówi Arkadiusz Miśkiewicz z PLD. „Jedną z podstawowych zalet Subversion jest to, że znając CVS zna się i Subversion, ponieważ z punktu widzenia użytkownika różnic w używaniu poleceń (cvs i svn) jest niewiele. Wystarczy przeczytać fragment podręcznika dotyczący różnic między cvs, a svn. Jednak najistotniejsza i najwspanialsza rzecz to wersjonowanie całymi seriami zmian – tzn. nie każdy plik jest wersjonowany osobno, tylko całe drzewo. Dzięki temu można użyć podpolecenia diff dla danej wersji i zobaczyć całą serię zmian, zazwyczaj dotyczącą jednego problemu. W przypadku CVS trzeba było obchodzić problem, szukając różnic według daty zamiast według wersji. Niezwykle użyteczne jest też wersjonowanie katalogów – można je usuwać, przenosić itp. Reszta funkcjonalności według mnie nie różni się zbytnio od tej występującej w CVS”. Free Pascal Free Pascal[3] jest kolejnym interesującym projektem, który jednak nie wydaje się być wystarczająco doceniony. Jest to bowiem bodaj najlepsze wieloplatformowe środowisko programistyczne służące do tworzenia oprogramowania w języku Pascal. Dzisiejszy Pascal znacznie różni się od te- Projekty go, który skrytykowano w słynnym dokułania systemowe odpowiedzialne np. za zapis mencie „Dlaczego Pascal nie jest moim ului odczyt z dysku, zmianę czasu, nawiązywanie połączeń itd. Najczęściej modyfikowanie bionym językiem programowania”. Jest to któregokolwiek z nich nie jest potrzebne, szczególnie prawdziwe w odniesieniu do immoże tylko sprowadzić problemy. Zdarzają plementacji Free Pascal, która umożliwia się jednak sytuacje, kiedy jest to najszybszy, m.in. zwracanie tablic jako rezultatów funka czasem jedyny sposób rozwiązania problecji, co przydałoby się np. Delphi i Kyliksowi. mu. I wtedy właśnie z pomocą przychodzi Jest to niezwykle potężny język, atrakcyjny Subterfugue, które pozwala niemal dowolnie również ze względów bezpieczeństwa: znaczmodyfikować wywołania systemowe. nie trudniej w nim popełnić błąd, który Co można dzięki temu osiągnąć? Dla mógłby wywołać przepełnienie bufora, niż większości użytkowników przykłady zastow tradycyjnie stosowanym języku C. sowań Subterfugue mogą się wydać zupełRozwijany od jedenastu lat projekt osiąnie nieprzydatne, jest to jednak raj dla gnął stadium dojrzałości. Kompilator sam tych, którzy chcą eksperymentować z włajest napisany w Pascalu, można więc go użyć snym systemem, bądź też osiągnąć nietypodo kompilacji Free Pascala. Wśród obsługiwanych platform znajduje się DOS, Windows (od Win32s po XP), Linux, OS/2, Solaris, BeOS, QNX i systemy *BSD. Jest w dużej mierze zgodny z Turbo Pascalem 7.0 zarówno na poziomie języka, jak i dołączonych bibliotek. A skoro o bibliotekach mowa – Free Pascal ma się czym pochwalić. Z witryny projektu możemy pobrać moduły umożliwiające współpracę z większością popularnych bibliotek – do kompresji (zlib, gzip), tworzenia graficznych interfejsów użytkownika (GTK+, Forms, GGI), pracy w trybie tekstowym (ncurses, oCrt), przetwarzania wyraRysunek 2: Irrlicht potrafi importować mapy Quake 3. żeń regularnych, tworzenia aplikacji sieciowych i wiele, wiele innych. we rezultaty. Możemy na przykład wprowaOd wielu lat Pascal ma swoje ustalone dzić dodatkowe opóźnienie do każdego wymiejsce w dydaktyce. Rola Free Pascala jest wołania, czego rezultatem będzie widoczne tu szczególnie istotna, jako że darmowy chaspowolnienie pracy systemu. Możemy dorakter projektu umożliwia uczniom i nauczywolnie manipulować danymi przekazywacielom swobodne tworzenie aplikacji, bez nymi i zwracanymi przez wywołania. Możeuiszczania opłat licencyjnych. Być może pomy dokładnie śledzić działanie programu, winni się nim zainteresować również zawopodobnie jak robi to strace, podejmując dowi programiści, jako że wydajność kodu określone działanie, kiedy zostaną spełniogenerowanego przez kompilator w niczym ne dane warunki. Możemy blokować różne nie ustępuje GCC, w wielu wypadkach prowywołania systemowe, np. te związane z obgramy pisze się szybciej, mniej jest też możsługą sieci. Reasumując: możemy niemal liwości popełnienia potencjalnych błędów, całkowicie zmienić zachowanie całego sysktóre mogłyby być fatalne w skutkach. temu bez ingerencji w samo jądro -- ogranicza nas jedynie wyobraźnia. Subterfugue jak dotąd działa jedynie na Subterfugue Linuksie. Podobnie jak Fenris[5], narzędzie Subterfugue[4] jest narzędziem nietypowym do analizy programów binarnych, pozostaje – nie można go określić jednym słowem, czy znane jedynie wąskiej grupie osób zainterenawet przypisać do określonej kategorii aplisowanych głębszym poznaniem funkcjonokacji. Program pozwala bowiem modyfikowania systemu operacyjnego. Warto je więc wać wywołania systemowe dla uruchamiapolecić tym, którzy chcą dowiedzieć się więnych procesów. Co to oznacza? cej o tym, jak działa Linux. W jądrze Linuksa zdefiniowane są wywo- SPOŁECZNOŚĆ Linux Virtul Server Project Linux Virtual Server Project[6], znany również jako konteksty bezpieczeństwa dla systemu Linux, jest jednym z najbardziej interesujących projektów linuksowych, które pojawiły się w ciągu ostatnich kilku lat. Większość użytkowników Linuksa zna oprogramowanie, takie jak VMware, Bochs czy Plex, umożliwiające uruchamianie kopii niektórych systemów operacyjnych m.in. w Linuksie. Z kolei User Mode Linux umożliwia uruchamianie różnych jąder Linuksa w przestrzeni użytkownika. Projekty te są niezwykle użyteczne i popularne, jednak ich największym problemem jest wydajność – z oczywistych względów systemy uruchamiane na innym systemie działają wolniej niż uruchomione na samym sprzęcie. Twórcy projektu serwerów wirtualnych dla Linuksa poszli inną drogą: zamiast tworzyć środowisko emulacyjne, w którym byłaby uruchamiana kolejna kopia systemu, zdecydowali się zmodyfikować część wywołań systemowych tak, by całe środowisko zachowywało się dokładnie tak, jakby składało się z wielu serwerów. Tak więc, mimo że każdy z serwerów wirtualnych uruchamianych w systemie zachowuje się jak serwer fizyczny, w praktyce nie ponosi się prawie żadnych dodatkowych kosztów związanych z wydajnością. Jest to doskonałe rozwiązanie dla tych, którzy potrzebują kilku działających serwerów spełniających różne funkcje, oszczędzamy bowiem nie tylko na wydajności – dzięki dowiązaniom do plików możliwe jest współdzielenie części dysków należących do serwerów wirtualnych opartych na tej samej dystrybucji. Dołączone narzędzia umożliwiają również automatyczną aktualizację pakietów na wszystkich serwerach znajdujących się na danym komputerze, co znacznie ułatwia pracę administratora. Linux Virtual Server Project składa się z dwóch elementów: łaty nakładanej na jądro Linuksa oraz zestawu narzędzi wspomagających tworzenie i administrację serwerami wirtualnymi. Utworzenie nowego serwera jest niezwykle proste – wystarczy podać jego nazwę i numer IP, a program sam pobierze niezbędne pakiety (z systemu macierzystego czy z sieci) i skonfiguruje nowy serwer. Administratorowi takiego serwera www.linux-magazine.pl Kwiecień 2004 103 SPOŁECZNOŚĆ Projekty Irrlicht korzysta zarówmożna ograniczać prawa za no z OpenGL, jak i z Dipomocą możliwości (caparect3D. Obsługuje animabilities) wbudowanych w jącję postaci, którymi można dro Linuksa. Dzięki temu nie tylko dowolnie poruadministrator serwera wirszać, ale i manipulować potualnego z efektywnym wierzchnią nałożonych na identyfikatorem użytkowninie tekstur. Prawdziwie ka równym 0 nie może wyimponująco wygląda zekonywać pewnych czynnostaw dostępnych efektów ści administracyjnych, któspecjalnych, obejmujących re może przeprowadzić adm.in. mapowanie środowiministrator serwera fizyczskowe, mapy świetlne nego. W praktyce oznacza i efekty cząsteczek. to, że dostawcy usług interCzym jednak byłaby sanetowych mogą oferować ma biblioteka do tworzeswoim klientom kompletne nia gier, w której nie dałośrodowisko serwerowe, łączby się wykorzystać rezulnie z prawami administratatów pracy w innych aplitora niezbędnymi do instakacjach? Przy dzisiejszym lacji i konfiguracji wszystRysunek 3: Efekty specjalne, które można uzyskać dzięki Irrlicht, robią duże stanie zaawansowania kich aplikacji, nie ryzykuwrażenie. technologii tworzenia gier jąc jednocześnie naruszenia trudno sobie wyobrazić napisanie gry zupełbezpieczeństwa innych serwerów wirtualCzy warto używać Firebirda, skoro manie od zera. Irrlicht obsługuje więc import nych znajdujących się na danym komputemy do dyspozycji inne dobre systemy bazopopularnych formatów, takich jak pliki rze, które dzięki modyfikacji wywołań sysdanowe Open Source, takie jak PostreSQL, obiektowe Maji, 3D Studio, Milkshape, plitemowych zostały całkowicie oddzielone SapDB czy MySQL? Jest to z pewnością ki poziomów Quake 3 i obiektów Quake 2, (na poziomie systemu plików, komunikacji bardzo dobre rozwiązanie dla obecnych jak również obiektów DirectX. Możemy międzyprocesowej i sieci). klientów Borlanda, którzy korzystają z prowięc stworzyć obiekt 3D pod Linuksem, np. Jak to możliwe, by tak interesujący produktów tej firmy. Jednym z głównych celów w darmowej wersji True Space działającej jekt umykał do tej pory uwadze zarówno Firebirda jest zapewnienie wstecznej zgodpod Wine, następnie zapisać jako obiekt Diprasy branżowej, jak i wielu użytkowniności z InterBase tak, by przynajmniej rectX i wykorzystać w grze. Rzecz jasna imków, potencjalnie zainteresowanych tego w najbliższej przyszłości można było wyport nie ogranicza się tylko do obiektów typu rozwiązaniem? Podobny mechanizm, mieniać instalacje oparte na InterBase na trójwymiarowych, znacznie dłuższa jest lista który zostanie udostępniony w najnowszej, serwery Firebird. Warto więc pamiętać formatów tekstur obsługiwanych przez bidziesiątej wersji sytemu operacyjnego Solao tym produkcie przy planowaniu rozwiąbliotekę. ris (tzw. strefy), i jest reklamowany jako zań, w których ważnym elementem są sysNa główniej witrynie projektu dostępne niezwykła innowacja, w Linuksie istnieje temy bazodanowe Borlanda. jest demo, dzięki któremu można się zapood dwóch lat! Jest mało znany, ponieważ znać z niezwykłymi możliwościami tej binie stanowi oficjalnej części jądra – i jest to Irrlicht blioteki, obecnie w wersji 0.6. Nie pozostaje jedyny powód. Zapewne w przyszłości, kieNiewiele projektów wygląda tak obiecująnic innego, jak tylko zachęcić do zapoznania dy uczestnikom projektu uda się wywalco i nęci tak interesującym plikiem demonsię z tym obiecującym projektem, mającym czyć włączenie go do głównej gałęzi, sytustracyjnym jak Irrlicht[8]. Jest to biblioteka szanse stać się de facto standardem przy twoacja ulegnie zmianie. służąca do tworzenia gier trójwymiarowych. rzeniu przenośnych gier. Takich bibliotek powstało mnóstwo, jednak ■ poziom, który udało się osiągnąć Irrlicht, Firebird jest naprawdę imponujący. W 2000 roku Borland udostępnił na licenINFO Jedną z podstawowych zalet Irrlicht jest cji Open Source silnik bazodanowy znany [1] Subversion: http://subversion.tigris.org jej przenośność. Oznacza to, że możemy pijako InterBase 6.0. Ponieważ polityka [2] PLD Linux Distribution: sać grę dla Windows całkowicie na Linuksie Borlanda byłą pełna wewnętrznej sprzeczhttp://pld-linux.org – Windows będziemy potrzebowali jedynie ności w stosunku do Open Source i firmie [3] Free Pascal: http://www.freepascal.org do kompilacji (którą, nawiasem mówić, możnigdy nie udało się zdefiniować jasnej, [4] Subterfugue: http://www.sourceforge.net/ na przeprowadzić przy pomocy darmowego konsekwentnej polityki w stosunku do teprojects/subterfugue/ mingw32). Irrlicht to bowiem nie tylko silgo zjawiska, stosunkowo szybko na pod[5] Fenris: http://lcamtuf.coredump.cx/ nik 3D, ale i zestaw mechanizmów pozwalastawie udostępnionego kodu utworzono [6] Vserver: http://www.linux-vserver.org/ jących tworzyć własne interfejsy użytkowninowy projekt, znany obecnie jako Fireka i obsługiwać inną funkcjonalność obecną bird[7]. Wersja 1.5, która ukazała się pod [7] Firebird: http://www.firebirdsql.org/ w grach. To jednak dopiero początek możlikoniec lutego, to przepisanie kolejnej por[8] Irrlicht: http://irrlicht.sourceforge.net/ wości biblioteki. cji kodu i usunięcie wielu błędów. 104 Kwiecień 2004 www.linux-magazine.pl