System operacyjny :: Narzędzia shell'owe :: Narzędzi programistyczne i skryptowe :: Środowisko graficzne :: Menażery plików, emulatory terminali, aplety menu :: Edytory tekstu :: Systemy DTP :: Pakiety biurowe i ich składniki :: Programy komunikacyjne :: Przeglądarki, odtwarzacze i edytory multimedialne :: Nagrywanie CD i DVD :: Cała reszta :: Debian ...

Baza przydatnych programów

W artykule tym postaram się omówić najważniejsze grupy programów komputerowych, będę również odwoływał się do konkretnych ich przedstawicieli. Przy wyborze przedstawicieli podstawowymi kryteriami były: wolność danego programu (musi być Free Software), popularność (musiałem mieć z nim doczynienia) oraz to czy mi przypadł do gustu (nie mogę go nie lubić; programy które szczególnie przypadły mi do gustu wyróżnione są pogrubieniem). Zachęcam też do odwiedzenia Katalogu Wolnego Oprogramowania na stronach FSF, Listy Programów FLOSS na stronach Wikipedii oraz Linux Software, a także4 zbioru programów i skryptów dla KDE: kde-apps.org.

System operacyjny

Najważniejszym elementem oprogramowania każdego komputera jest system operacyjny. System operacyjny jest tym elementem który pośredniczy między sprzętem a oprogramowaniem i często realizuje wiele funkcji w imieniu tego drugiego. W jego skład (prócz jądra i wchodzą też podstawowe programy użytkowe, o których jednak w następnych punktach.

Najprostszym stosowanym do dzisiaj systemem operacyjnym jest Disk Operation System, czyli znany DOS, odradzający się ostatnio pod postacią FreeDOS'a. Jest to jednoużytkownikowy, jednozadaniowy (niekiedy może być to ogromną zaletą) mały system operacyjny o bardzo niskich wymaganiach sprzętowych. W związku ze swoją specyfiką system ten nie jest obecnie popularny, jednak jest bardzo użyteczny w specyficznych zastosowaniach.

Trochę po przeciwnej stronie plasują się Unix'owate systemy operacyjne takie jak GNU/Linux czy też *BSD, są to wielużytkownikowe, wielozadaniowe systemy operacyjne, posiadające większe (ale nadal nie duże) wymagania systemowe. Są to popularne systemy ogólnego przeznaczenia - stosowane zarówno jako serwery sieciowe, komputery biurowe, domowe i profesjonalne maszyny multimedialne.

  • Linux - znany system operacyjny ... a tak naprawdę tylko jądro ...
  • FreeBSD - system z rodziny BSD
  • NetBSD - kolejny system z rodziny BSD
  • OpenBSD - i jeszcze jeden system z rodziny BSD
  • FreeDOS - wolna wersja DOS'a, binarnie zgodna z tymi które co poniektórzy jeszcze pamiętają ...
  • HaikuOS - znany również jako OpenBeOS wolny odpowiednik BeOS'a, niestety ciągle nie gotowy ...
  • Syllable
  • AtheOS
  • wine - implementacja API Windows dla środowiska X11
  • bochs, qemu - emulatory komputera PC

Narzędzia shell'owe

Podstawowym elementem każdego systemu operacyjnego (oczywiście poza samym jądrem i elementami mu towarzyszącymi ...) jest interpretator poleceń (na ogół ten główny działa w trybie tekstowym, ale nawet jeżeli nie to tekstowy jest zawsze do naszej dyspozycji ...) - shell. Najpopularniejszym tekstowym shell'em jest bash (podobnie jak pdksh oraz BSD'owski ash wywodzi się od sh, w odróżnieniu od shell'i wywodzących się z csh). Shell interpretuje komendy wprowadzane przez użytkownika, wykonuje programy a nawet jest skryptowym językiem programowania umożliwiającym automatyzację wielu czynności.

Wiele z podstawowych funkcji realizowanych jest przez niezależne polecenia (ich postać na ogół nie odróżnia się od komend wbudowanych w shell'a). Do takich należą zbiory podstawowych użytków tekstowych (grep, sed, less, czy textutils w skład którego wchodzą między innymi: wc, uniq, sort) i plikowych (fileutils w skład którego wchodzą między innymi: ls, cp, ln, mkdir, rm).

  • Bash - chyba najbardziej rozbudowana powłoka tekstowa ...
  • zsh - shell o składni typu sh przeznaczony głównie do pracy interaktywnej, posiada bogate i wygodne opcje konfiguracyjne
  • ipython - interaktywny shell pythona przeznaczony głównie do debugowania ale dobrze sprawdzający się jako shell systemowy, zobacz ipython @ dug
  • pdksh - kolejny shell wywodzący się z sh
  • tcsh - znany shell "typu C"
  • Midnight Commander - pełnoekranowy manager plików
  • o programach-komendach więcej w dokumencie: podstawowe polecenia Unix'a

Narzędzi programistyczne i skryptowe

Ważnym elementem są kompilatory (gcc), oraz interpretatory języków skryptowych (gawk, perl, php, python). Umożliwiają one tworzenie programów ze źródeł jak i uruchamianie programów tworzony w językach skryptowych. Język awk jest szczególnie przydatnym narzędziem przetwarzania plików tekstowych i jako taki mógłbybyć zaliczony do opisywanych użytków tekstowych.

Środowisko graficzne

Ważnym elementem każdego popularnego (w sensie grupy docelowej, a nie rzeczywistej popularności) systemu operacyjnego jest środowisko graficzne. Prawie zawsze następuje rozdzielenie samego silnika graficznego (obsługującego wyświetlanie tak jak xFree, czy X.org) od graficznego odpowiednika opisywanego powyżej shell'a (tworzącego przyjazne użytkownikowi środowisko do uruchamiania programów i zarządzania plikami ale również odpowiedzialnego za zarządzanie oknami), takiego jak Gnome, KDE (obydwa zawierają bogactwo dodatkowego oprogramowania - managery plików, przeglądarki WWW, edytory, klienci poczty, ...), bardzo konfigurowalnego Enlightenment oraz mających zdecydowanie mniejsze wymagania niż dwa pierwsze Window Maker, czy XFce.

W tym miejscu trzeba też wspomnieć o graficznych interfejsach i odpowiednikach podstawowych narzędzi tekstowych (takich jak archiwizery).

Menażery plików, emulatory terminali, aplety menu

Swego rodzaju odpowiednikami shelli dla środowiska graficznego są menażery plików, emulatory konsol oraz różnego rodzaju panele, aplety, systemy menu działające na pulpicie

  • konqueror - standardowy menażer plików w KDE, obsługuje wiele protokołów dostępu do plików (np. sftp)
  • tuxcmd - rozbudowany manager plików
  • Krusader - kolejny manager plików
  • KRename - narzędzie do zmieniania nazw plikół
  • konsole - standardowy emulator terminala w KDE
  • aterm - inny popularny emulator terminala

Edytory tekstu

Kolejną bardzo ważną grupą programów są wszelkiego rodzaju edytory tekstu, zarówno te działające w trybie tekstowym jak Vim i jego klony, Emacs, Pico, jak i te proste notatniki trybu graficznego (Kedit, ...) aż do rozbudowanych procesorów tekstu wchodzących w skład pakietów biurowych (i omawianych w tamtej części). Oprócz wprowadzania i poprawiania tekstu posiadają one wiele ułatwiających życie funkcji - począwszy od zawijania linijek, poprzez kolorowanie składnia, automatyzację wcięć w kodzie, ... .

  • Vim (warto zwrócić uwagę na wiele interesujących skryptów/pluginów ...)
  • Emacs
  • XEmacs
  • vile - czyli próba pogodzenia vi i emacs'a
  • programy wchodzące w skład pakietów takich jak KDE (KWrite), GNOME, OpenOffice, ...

Systemy DTP

Są to systemy umożliwiające przygotowanie publikacji zawierającej sformatowany tekst (w tym często wyrażenia matematyczne, ...), połączony z elementami graficznymi, tabelami, ... czyli tego wszystkiego co widzimy w książkach, czasopismach i gazetach. Tu również istnieje szeroka pula programów począwszy od systemów wyłącznie przetwarzających podane mu zwykłe pliki tekstowe (z odpowiednimi komendami sterującymi) oraz pliki graficzne w gotową publikację (słynny system TeX i jego rozwinięcie LaTeX) aż do systemów stanowiących zintegrowane środowisko do przygotowania publikacji (Scribus). Co ważne oba te rozwiązania mają istotne zalety - wygoda czystych plików tekstowych oraz wygoda zintegrowanego graficznego środowiska programu.

  • LaTeX - jedno z najpopularniejszych rozwinięć TeX'a
  • Scribus - graficzne środowisko DTP
  • pdfedit - edytor plików PDF
  • flpsed - edytor umożliwiający dodanie dodatkowego tekstu do plików ps
  • Xpdf - przeglądarka pdf'ów oraz zestaw narzędzi do ich obsługi (np. pdftotext -enc UTF-8 -nopgbrk input.pdf przekonwertuje pdf na text czy też pdftops konwertujący PDF do PostScriptu)
  • kpdf - przeglądarka pdf'ów dla KDE
  • ghostscript - system obsługi PostScriptu i zastaw narzędzi do plików postscriptowych (m.in. ps2pdf, ps2ps, gs, ...)
  • psutils - zastaw narzędzi do plików postscriptowych (m.in. pstops, umożliwiający wraz narzędziami z innych pakietów np przeskalowanie strony A4 z pliku pdf do formatu A3 - pdftops $f.pdf - | pstops -w 420mm -h 297mm -p A3 0@1.4142 | ps2pdf -sPAPERSIZE=a3 - $f-A3.pdf)
  • GV - przeglądarka plików ps i pdf
  • evince - przeglądarka PS/PDF
  • fbgs - konsolowa oparta na framebuferze przeglądarka PS/PDF
  • SVP - konsolowa (nie wymagająca X'ów) przeglądarka PDF

Pakiety biurowe i ich składniki

Kolejną grupą programów operujących głównie na tekście są tak zwane pakiety biurowe, w ich skład wchodzi przedewszystkich procesor tekstu (edytor o rozbudowanych opcjach formatowania oraz operujący głównie na własnym formacie pliku, obsługuje eksport i import z formatów obcych - AbiWord) oraz arkusz kalkulacyjny (program który wykonuje operacje matematyczne, statystyczne, na komórkach tabeli, która jest podstawą jego działania - Gnumeric), programy te niemal zawsze funkcjonują w trybie graficznym (ale są wyjątki). Oprócz tych programów często znajdziemy edytory grafiki i programy do tworzenia prezentacji. W śród pakietów biurowych należy wymienić takie jak: OpenOffice i lżejszy Koffice będący częścią KDE.

Programy komunikacyjne

Bardzo ważną w dzisiejszych czasach grupą programów są programy odpowiedzialne za komunikację ze światem zewnętrznym.

  • o programach do komunikacji z wykorzystaniem sieci komputerowych (zarówno po stronie serwera jak i klienta) piszę w artykule usługi sieciowe
  • tvtime - program do oglądania telewizji
  • xawtv - program do oglądania telewizji (inne programy z tego zestawu pozwolą na słuchanie radia, czytanie telegazety, ...)
  • alev - softwarowy dekoder i przeglądarka teletekstu
  • MythTV - kombajn do obsługi tunera)
  • xawdecode (XdTV), fftv
  • gradio - graficzny interfejs do sterowania tunerem radiowym
  • GQradio - graficzny interfejs do sterowania tunerem radiowym
  • fmtools - tekstowy interfejs do słuchania radia

Przeglądarki, odtwarzacze i edytory multimedialne

  • o programach do obsługi multimediów, w tym grafiki (zarówno odtwarzania jak i edycji) piszę w artykule multimedia

Nagrywanie CD i DVD

Dość istotną grupą programów są aplikacje umożliwiające zapis na dyskach optycznych (CD-R(W), DVD+-R(W), ...).

  • K3b - graficzny program do obsługi nagrywania CD i DVD
  • Cdrecord - tekstowy program do nagrywania CD
  • Cdrdao - tekstowy program do nagrywania CD
  • wodim - zestaw programów umożliwiających zapis plików na CD/DVD ... wykorzystywany m.in. przez podawane powyżej nakładki graficzne
  • UDFtool - zestaw programów umożliwiających zapis pakietowy na CD/DVD ... szczegóły poniżej
  • DeVeDe - tworzenie DVD-video

Współcześnie (w odróżnieniu od stanu z przed kilku lat) programy te nie wymagają emulacji SCSI gdy wykorzystywany jest sprzęt IDE. Przedstawiam także przepis na zapis pakietowy (UDF):

	# przygotowanie płytki
	cdrwtool -d /dev/cdrom -q
	pktsetup cdrom /dev/cdrom
	mkudffs --utf8 /dev/pktcdvd/cdrom
	
	# montowanie płytki
	pktsetup cdrom /dev/cdrom
	mount -t udf -o rw,noatime /dev/pktcdvd/cdrom /cdrom
	chmod o+w /cdrom
	
	#teraz możemy pisać i czytać
	
	# odmontowywanie płytki
	umount /cdrom
	pktsetup -d cdrom
	eject /dev/cdrom

Płytę także można montować normalnie (tylko do odczytu) w standardowy sposób przy czym podać należy jako system plików udf - w /etc/fstab można wpisać udf,iso9660. Można także bawić się z zapisem gołych danych na płycie (np. pliku tar). Zobacz też: Packet Writing on CDRW and DVDRW media

Cała reszta

Oprócz programów dających się zaliczyć do wspomnianych grup istnieje bardzo wiele oprogramowania specjalistycznego, żeby wspomnieć choćby edytory schematów elektronicznych takie jak gEDA-graf, oprogramowanie do symulacji i obliczeń naukowych, ... . No i w końcu gry, ale to już temat na osobny artykuł ...

  • shfs - montowanie systemu plików SFTP
  • sshfs - montowanie systemu plików SFTP poprzez fuse
  • ajaxterm, anyterm - terminal przez WWW
  • hdparm - ustawienia i pomiary prędkości dysków twardych (np. opcja -S ustawia czas po jakim usypiany jest dysk)
  • wake-on-lan - budzenie przez sieć LAN ("wake on lan")
  • (x)mbmon - monitorowanie parametrów pracy płyty głównej
  • konwert - program do konwersji różnych kodowań (w tym Quoted-Printable, rtf, stratnej konwersji na asci, ...)
  • mewencode - program (stanowiący część pakieu narzędzi dodatkowych dla kilenta pocztowego Mew) do obsługi kodowań mime (w tym Quoted-Printable, base64)
  • qprint - program do kodowania i dekodowania "Quoted-Printable"
  • base64 - program do kodowania i dekodowania base64
  • rsync - program do synchronizacji plików i drzew katalogów przez sieć
  • Visual Binary Diff (VBinDiff) - wizualne porównywanie plików binarnych
  • xosd - informacje OSD pod X'serwerem
  • GNUPlot - program do tworzenia wykresów ...
  • plotutils
  • LabPlot - system analizy danych (wykresy, dopasowania) zgodny z Origin
  • yacas - obliczenia algebraiczne
  • maxima - obliczenia algebraiczne
  • Octave - system obliczeniowy dobrze kompatybilny z MatLabem
  • StarDict - wielojęzyczny słownik
  • recordMyDesktop - nagrywanie filmu z naszego ekranu
  • Griffith - katalogowanie płyt z filmami
  • partimage - tworzenie i przywracanie obrazów partycji
  • clonezilla - sieciowe (z obsługa multicastu) tworzenie i przywracanie obrazów partycji
  • Kvkbd - wirtualna klawiatura
  • KLDraw - modelowanie LEGO
  • KLatexFormula - programik do edycji formuł LaTeX'owych
  • Date Calculator - kalkulator dat
  • Calenculator - kalkulator dat

Debian ...

Debian jest to wolny system operacyjny, zawierający bardzo dużo oprogramowania, od innych dystrybucji odróżnia go położenie bardzo dużego nacisku na kwestie wolności poszczególnych składników oraz posiadanie wersji opartych na różnych jądrach (Linux, Hurd, BSD). W standardowej dystrybucji znajdziemy większość opisywanych wyżej programów. Należy jednak zwrócić uwagę iż w pojedynczej paczce .deb może być kilka programów (np. procmail zawiera formail; w takich wypadkach przydatna jest wyszukiwarka wewnątrz pakietowa - http://packages.debian.org/, gdyż komendy włączające program są na ogół zgodne z jego nazwą ...), jak również jeden pakiet może być podzielony na bardzo wiele paczek .deb na ogół (ale nie zawsze) powiązanych zależnościami (np. KDE). Jednak niektórych wymienionych wyżej programów (cinelerra) nie ma (jeszcze ...) w oficjalnej dystrybucji, stosownych paczek warto dodać do /etc/apt/sources.list:

##      aktualizacje dla wersji stabilnych
deb http://security.debian.org/ etch/updates main
deb http://volatile.debian.org/debian-volatile etch/volatile main

##      avidemux, transcode, mjpegtools, ...
deb http://www.debian-multimedia.org sid main
deb-src http://www.debian-multimedia.org sid main

##      cinelerra, ...
deb http://www.kiberpipa.org/~minmax/cinelerra/builds/sid/ ./

##      wine OFFICIAL
deb http://wine.sourceforge.net/apt/ binary/

Innych paczek *.deb wartio także poszukać w bardzo dużej bazie nieoficjalnych pakietów - apt-get.org. Warto także zwrócić uwagę na snapshot.debian.net przechowujący starsze wersje pakietów (może być bardzo przydatny gdy używając Sid'a dorobimy się zabugowanej wersji kluczowego dla nas pakietu).


Copyright (c) 1999-2008, Robert Paciorek (http://www.opcode.eu.org/), BSD-type license


Redystrybucja wersji źródłowych i wynikowych, po lub bez dokonywania modyfikacji JEST DOZWOLONA, pod warunkiem zachowania niniejszej informacji o prawach autorskich. Autor NIE ponosi JAKIEJKOLWIEK odpowiedzialności za skutki użytkowania tego dokumentu/programu oraz za wykorzystanie zawartych tu informacji.

This program is free software. Redistribution and use in source and binary forms, with or without modification, ARE PERMITTED provided save this copyright notice. This document/program is distributed WITHOUT any warranty, use at YOUR own risk.

Valid XHTML 1.1 Dokument ten (URL: http://www.opcode.eu.org/oprogramowanie_uztkowe) należy do serwisu OpCode. Autorem tej strony jest Robert Paciorek, wszelkie uwagi proszę kierować na adres e-mail serwisu: webmaster@opcode.eu.org.
Data ostatniej modyfikacji artykulu: 2008-07-16 01:27:38 (UTC) (data ta może być zafałszowana niemerytorycznymi modyfikacjami artykułu).