Rozdział 10. Programy użytkowe projektu GNU.DOC

(119 KB) Pobierz









Rozdział 10.
Programy użytkowe projektu GNU









E:\Moje dokumenty\HELION\Linux Unleashed\Indeks\10.DOC              193










Rozdzia³ 10. ¨ Programy użytkowe projektu GNU              207

Peter MacKinnon

W tym rozdziale:

u                                          Aktualnie dostępne oprogramowanie podlegające licencji GNU

 

Projekt GNU, założony i prowadzony przez Free Software Foundation (FSF), ma na celu zapewnienie darmowego oprogramowania (w formie kodu źródłowego) każdemu zainteresowanemu. Istnieje długi manifest, który wyjaśnia motywy takiej filantropii (za którą powinniśmy być naprawdę wdzięczni, ponieważ niektóre z tych programów są najlepsze w swojej klasie!). Jedną z głównych tez tego manifestu jest to, że wysokiej jakości oprogramowanie jest niezbędne do życia, podobnie jak jedzenie czy powietrze. Fakt, że oprogramowanie GNU jest rozprowadzane bezpłatnie, nie oznacza, że nie jest ono objęte prawami autorskimi. Głównym celem licencji GNU jest to, aby oprogramowanie pozostawało bezpłatne.

Jeśli chcesz dowiedzieć się czegoś więcej o FSF, możesz do nich napisać pod adres:

Free Software Foundation
675 Massachusetts Avenue
Cambridge, MA 02139.

Możesz również zamówić kopię ich biuletynu, wysyłając pocztą elektroniczną list do

 

gnu@prep.ai.mit.edu.

Dystrybucja Linuxa dołączona do tej książki zawiera praktycznie wszystkie programy GNU dostępne w tej chwili. Są one spakowane za pomocą programu archiwizującego tar, a następnie kompresora gzip (również objętego licencją GNU). Kompresor ten jest nieco wydajniejszy od standardowo używanego w UNIX-ie programu compress. Pliki skompresowane programem gzip mają rozszerzenie .gz, pochodzące z programu compress .Z. Program gzip radzi sobie z rozpakowywaniem obu typów plików.

W nazwie każdego ze skompresowanych plików zawarty jest numer wersji pakietu, by łatwo było zorientować się, która wersja jest „najświeższa”. Po rozpakowaniu program może zostać skompilowany i zainstalowany. Większość z nich posiada napisane w tym celu pliki makefile, obsługiwane przez program make.

Aktualnie dostępne oprogramowanie podlegające licencji GNU

Fundacja Free Software Foundation udostępniła do tej pory tak wiele oprogramowania, że nie sposób opisać każdą z aplikacji szczegółowo. Następne podrozdziały skrótowo opisują programy dołączone do tej wersji Linuxa. Są to krótkie podsumowania, oparte na informacjach pochodzących z GNU.

acm

acm jest sieciowym symulatorem walki powietrznej, przeznaczonym dla środowiska LAN. Pozwala rozprawić się z przeciwnikiem za pomocą pocisków powietrze-powietrze i karabinu. Działa pod kontrolą systemu X.

Autoconf

Autoconf generuje skrypty powłoki, które pozwalają automatycznie konfigurować pakiety z kodem źródłowym (takie jak dostarczane na licencji GNU) na podstawie pliku zawierającego dane o wymaganiach stawianych systemowi. Aby można było go używać, musi również być zainstalowany pakiet m4.

bash

Interpreter poleceń o nazwie bash jest rozszerzoną wersją interpretera Bourne Shell (stąd jego pełna nazwa – Bourne Again Shell). Oferuje on wiele rozszerzeń dostępnych w powłokach csh i ksh. Obsługuje także zarządzanie zadaniami, historię poleceń, oraz edycję wiersza poleceń w trybie edytorów vi i emacs. Dokładniejszy opis tego interpretera znajduje się w rozdziale 11. „bash”.

bc

bc to język programowania zorientowany na obliczenia algebraiczne. Może być używany w sposób interaktywny lub przy użyciu pliku wejściowego. Wersja GNU tego programu posiada składnię zbliżoną do języka C oraz kilka rozszerzeń w stosunku do pierwotnej wersji (nazwy zmiennych składające się z wielu znaków, słowo kluczowe else i pełna obsługa algebry Boole’a). W przeciwieństwie do wersji pierwotnej, nie wymaga programu dc, spełniającego funkcję kalkulatora.

BFD

Biblioteka BFD (ang. Binary File Description) pozwala programom operującym na plikach pośrednich .o (jak ld czy gdb) na obsługę różnych ich formatów. Zapewnia ona przenośny interfejs, tak że tylko BFD zna szczegóły danego formatu. Wszystkie programy używające BFD obsługują zarówno format a.out (domyślny format plików wykonywalnych generowanych przez kompilator C), jak i COFF.

Binutils

Binutils to kolekcja narzędzi dla programistów, takich jak ar, c++filt, demangle, gprof, ld, objcopy, objdump, ranlib, size, strings i strip. Wersja 2 jest napisana zupełnie od nowa i używa biblioteki BFD. Linker ld przy komunikatach o błędach dotyczących wielokrotnych definicji i niezdefiniowanych odniesień podaje również numery wierszy kodu źródłowego. Program nlmconv pozwala na konwersję plików pośrednich .o do formatu NLM (Novell NetWare Loadable Modules). Program objdump potrafi wyświetlić dane takie jak nazwy użytych symboli, z pliku w dowolnym formacie rozpoznawanym przez BFD.

Bison

Bison jest kompatybilny ze swym pierwowzorem – programem yacc. Potrafi on na podstawie zdefiniowanej gramatyki stworzyć interpreter języka formalnego w postaci programu w języku C.

Kompilator języka C

Wersja 2 kompilatora GNU C (gcc) obsługuje trzy języki: C, C++ oraz C z obiektami. Wybór języka zależy od rozszerzenia nazwy pliku zawierającego kod źródłowy lub opcji kompilatora. Biblioteki wymagane do uruchamiania programów w języku C z obiektami są rozprowadzane razem z gcc. Kompilator ten obsługuje w pełni standard ANSI C, tradycyjny język C oraz kilka rozszerzeń, jak np. funkcje zagnieżdżone czy nielokalne wywołania goto. Potrafi generować pliki pośrednie i informacje dla debuggera w wielu różnych formatach. Więcej na jego temat możesz dowiedzieć się z rozdziału 27. „Programowanie w języku C”.

Biblioteki dla języka C

Biblioteki GNU C obsługują standard ANSI C i dodają kilka własnych rozszerzeń. Przykładowo, biblioteka stdio pozwala zdefiniować nowe rodzaje strumieni używane z poleceniem printf.

Biblioteki dla języka C++

Biblioteki GNU C++ (libg++) to zbiór klas dla języka C++, nowa biblioteka iostream i narzędzia ułatwiające pracę z kompilatorem g++. Wśród klas można znaleźć na przykład implementacje liczb całkowitych o zwiększonej precyzji, ułamków, liczb zespolonych, a także łańcuchów znaków o zadanej długości. Istnieją też pliki zawierające prototypy, dzięki którym można generować często używane klasy kontenerów.

Calc

Calc to narzędzie matematyczne używane przez niektóre programy (jak np. Emacs). Może również służyć jako kalkulator, który ma takie zalety, jak wybór pomiędzy notacją algebraiczną lub odwrotną notacją polską (Reverse Polish Notation, RPN), funkcje logarytmiczne, trygonometryczne i finansowe, liczby zespolone, wektory, macierze, daty, czas, nieskończoności, zbiory, upraszczanie wyrażeń algebraicznych, różniczkowanie i całkowanie.

Chess

Chess to komputerowa wersja gry w szachy. Może być uruchomiona zarówno z interfejsem tekstowym (dzięki wykorzystaniu biblioteki curses), jak i graficznym (w systemie X). Zaimplementowano w niej wiele specjalistycznych algorytmów, również heurystycznych, co nie pozwoli wygrać nowicjuszowi.

CLISP

CLISP to implementacja języka Common Lisp, używanego powszechnie do programowania sztucznej inteligencji. Zawiera interpreter oraz kompilator, posiada również interfejs w dwóch wersjach językowych: angielskiej i niemieckiej. Wersję językową można wybrać w trakcie kompilacji programu.

Common Lisp

GNU Common Lisp (gcl) to kompilator i interpreter języka Common Lisp. Jest on w dużym stopniu przenośny, zadziwiająco wydajny i posiada debugger pracujący z interpretowanym kodem. gcl zawiera również narzędzia ułatwiające pisanie programów dla X, takie jak profiler i interfejs Xlib.

cpio

cpio to program, który kopiuje archiwa na dyski lub taśmy i z powrotem. Można go również użyć do kopiowania plików do większego archiwum lub do innych katalogów.

CVS

Concurrent Version System (CVS) służy do zarządzania wersjami kodu źródłowego powstającej aplikacji, gdy nad jej napisaniem pracuje wiele osób. Działa w połączeniu z programem RCS, który również służy do zarządzania kodem źródłowym.

dc

dc to kalkulator liczący w odwrotnej notacji polskiej. Może być używany interaktywnie lub za pomocą pliku wejściowego.

DejaGnu

DejaGnu to narzędzie służące do pisania skryptów testujących dowolny program. Zawiera

Nie znam polskiego odpowiednika słowa embeddable (o ile takowy w ogóle istnieje). 1. „osadzalny” usunąć 2. sprawdzić w Inecie pod hasłem DejaGNU

język skryptowy Tcl i pochodny język expect, służący do uruchamiania skryptów symulujących działania użytkownika.

Diffutils

Pakiet Diffutils zawiera programy służące do porównywania plików: diff, diff3, sdiff i cmp. Program diff rozprowadzany na licencji GNU porównuje pliki wiersz po wierszu, wyświetlając znalezione różnice w kilku formatach. Jest bardziej wydajny niż jego tradycyjna wersja.

ecc

ecc to program do korekcji błędów, oparty na algorytmie Reeda-Solomona. Potrafi skorygować trzy błędne bajty w bloku 255 – bajtowym, a wykryć znacznie więcej.

ed

ed to standardowy edytor tekstu, posiadający interfejs oparty na wierszu poleceń.

Elib

Jest to niewielka biblioteka funkcji w języku Lisp przeznaczona dla edytora Emacs, która potrafi między innymi obsługiwać dane o strukturze podwójnej listy.

GNU Emacs

GNU Emacs to druga implementacja bardzo popularnego edytora napisanego przez Richarda Stallmana. Emacs jest zintegrowany z językiem Lisp, mogącym służyć do rozszerzania możliwości tego programu. Posiada interfejs oparty na systemie X. Oprócz potężnego zestawu własnych poleceń, Emacs potrafi emulować inne edytory, takie jak vi czy EDT. Jeśli chcesz dowiedzieć się więcej o tym programie, zajrzyj do rozdziału 16. „Edytory tekstu: vi i emacs”.

GNU Emacs 19

Emacs 19 to wzbogacona wersja edytora Emacs, zawierająca poprawioną obsługę interfejsu X. Zapewnia dostęp do menedżera zasobów, obsługę RCS, zawiera także wiele nowszych wersji bibliotek. Emacs 19 pracuje zarówno pod kontrolą systemu X, jak i w trybie tekstowym.

es

es jest to interpreter poleceń oparty na rc. Obsługuje wyjątki oraz funkcje zwracające wartości inne niż liczby. Używa się go wygodnie zarówno w trybie interaktywnym, jak i w skryptach, głównie dlatego, że jego reguły są prostsze niż reguły języków wchodzących w skład powłok C Shell i Bourne Shell.

Fileutils

Fileutils to kolekcja standardowych (i nieco mniej standardowych) programów linuxowych służących do obsługi systemu plików. Zawiera m.in. programy chgrp, chmod, chown, cp, dd, df, dir, du, install, ln, ls, mkdir, mkfifo, mknod, mv, mvdir, rm, rmdir, touch i vdir.

find

Program find służy do wyszukiwania plików spełniających zadane kryteria i wykonywania na nich jakichś operacji; może być używany interaktywnie i za pomocą skryptów. Rozprowadzany jest wraz z programem xargs, który potrafi wykonać polecenie dla większej liczby plików.

finger

Program finger służy do wyświetlania informacji o jednym lub więcej użytkownikach Linuxa. Potrafi obsłużyć wiele komputerów połączonych w sieć, potrafi też przyjąć, że jeden z nich zawiera informacje o wszystkich użytkownikach. Dzięki temu zapytanie skierowane do dowolnego komputera zwraca pełną informację o użytkowniku. Oto przykładowy efekt wykonania polecenia finger:

# finger tparker@tpci.com
Login: tparker                                                                      Name: Tim Parker
Directory: /usr/tparker                                                        Shell: /bin/sh
On since Sat Jun 6 11:33 on tty02, idle 51 days 21:22 (messages off)
On since Sun Jun 7 15:42 on ttyp0, idle 0:02
On since Sat Jun 6 11:33 on ttyp1, idle 21 days 10:011
Mail last read Tue Jun 16 18:38:48 1998

Jak widać, ta wersja programu finger (wyniki jego działania różnią się w zależności od systemu operacyjnego i wersji) pokazuje informacje zawarte w pliku /etc/passwd (identyfikator, katalog domowy itd.) oraz informacje dotyczące ostatnich sesji.

flex

flex to zamiennik programu lex, który jest generatorem interpreterów języków formalnych. Wygenerowane przez program flex interpretery są bardziej wydajne, niż pochodzące z programu lex. flex potrafi również stworzyć odpowiedni kod w języku C.

Fontutils

Fontutils to pakiet używany do tworzenia czcionek dla programów Ghostscript i TeX. Zawiera również narzędzia do konwersji i kilka innych programów użytkowych. W jego skład wchodzą m.in. bpltobzr, bzrto, charspace, fontconvert, gsrenderfont, imageto, imgrotate, limn oraz xbfe.

gas

gas to asembler, tłumaczący kod źródłowy do postaci pliku pośredniego .o. Programy napisane w całości w asemblerze działają w różnych systemach operacyjnych, nie tylko w Linuxie.

gawk

Jest to program kompatybilny z awk, modyfikujący pliki zgodnie z zadanym wzorcem. Zawiera również kilka rozszerzeń nie spotykanych w innych implementacjach, na przykład awk czy nawk, funkcje do zmiany wielkości liter w znalezionym tekście. Dokładniejsze informacje znajdziesz w rozdziale 25. „gawk”.

gdb

gdb to debugger obsługiwany z wiersza poleceń. Pliki pośrednie i tablice symboli są wczytywane za pośrednictwem biblioteki BFD, co umożliwia wyszukiwanie błędów w programach zapisanych w różnych formatach. Inne zalety gdb to praca zdalna poprzez połączenie szeregowe lub TCP/IP oraz obsługa pułapek (przerwanie programu po spełnieniu zadanego warunku). Dostępna jest również wersja z interfejsem X, o nazwie xxgdb.

gdbm

Jest to biblioteka GNU zastępująca tradycyjne biblioteki służące do obsługi baz danych – dbm oraz ndbm. Implementuje bazy danych z wyszukiwaniem za pomocą tablic haszujących.

Ghostscript

...

Zgłoś jeśli naruszono regulamin