# Linux: Podstawowe informacje o systemie

## Autor: Michael K. Johnson, <johnsonm@redhat.com>
v4.14, 1 września 1998
Wersja polska: Tomasz 'tsca' Sienicki, <tsca@edb.dk>
v1.02, 10 grudnia 2001

Dokument niniejszy zawiera podstawowe wiadomości o systemie operacyjnym Linux, opis jego możliwości i wymagań, oraz odnośniki do odpowiednich zasobów.

## 1. Wprowadzenie do Linuksa

Linux jest całkowicie darmowym systemem operacyjnym zgodnym ze standardem POSIX, z rozszerzeniami SYSV i BSD (to znaczy, że wygląda jak Unix, ale nie jest oparty o jego kod). Dostępna jest zarówno jego skompilowana wersja, jak i kod źródłowy. Prawa autorskie do Linuksa należą do Linusa Torvaldsa (<torvalds@transmeta.com>) oraz osób współtworzących kod. Linux jest rozpowszechniany za darmo na warunkach określonych w licencji GNU. Treść tej licencji dołączana jest do pakietu ze źródłami systemu, można się z nią również zapoznać pod adresem ftp://prep.ai.mit.edu/pub/gnu/COPYING. (Od tłumacza: tłumaczenie licencji GPL na język polski znajduje się pod adresem http://www.linux.org.pl/gpl.php.)

Linux jako taki to tylko jądro systemu operacyjnego, część odpowiedzialna za obsługę sprzętu, zarządzanie plikami, procesami, itd. Dopiero odpowiednie zestawienie jądra ze zbiorem programów użytkowych i aplikacji tworzy całość systemu operacyjnego. Takie zestawienie nazywa się dystrybucją. Słowo Linux, chociaż tak naprawdę oznacza tylko jądro, używane jest powszechnie -- i poprawnie! -- w znaczeniu ,,system operacyjny oparty na jądrze Linuksa''. Zwięzły opis poszczególnych dystrybucji znajduje się w Distributions-HOWTO. Żadna z tych dystrybucji nie jest ,,oficjalnym Linuksem''.

Linux nie jest oprogramowaniem ,,public domain'' ani ,,shareware''. Jest to system darmowy, a powszechnie używanymi terminami są freeware lub oprogramowanie wolnodostępne (Open Source Software[tm], zob. http://www.opensource.org (od tłumacza: informacje nt. Open Source po polsku znajdują się pod adresem http://www.opensourcepl.org)). Rozdawnictwo i sprzedaż kopii Linuksa dozwolone są pod warunkiem jednoczesnego udostępnienia kodu źródłowego. W przypadku wprowadzenia własnych modyfikacji do kodu prawnie wymagane jest udostępnienie również źródeł owych modyfikacji. Szczegóły zawarte są w licencji GNU.

Linux jest wolnodostępny i takim pozostanie. Ze względu na naturę licencji GPL, o którą ten system jest oparty, nielegalne byłoby tworzenie go w inny sposób. Zwróć uwagę, że ,,wolnodostępny'' oznacza dostępność kodu źródłowego, a nie po prostu darmowość; dozwolone jest bowiem rozpowszechnianie Linuksa za pieniądze. Jedynym warunkiem jest udostępnianie z nim jego kodu źródłowego. To oczywiście uogólnienie; jeśli interesują Cię szczegóły, zapoznaj się z treścią licencji GPL.

Linux działa na komputerach 386/486/Pentium wyposażonych w szyny ISA, EISA, PCI i VLB. IBM-owska magistrala MCA nie jest najlepiej obsługiwana przez jądra 2.0.x i wcześniejsze, sytuacja zmieniła się jednak w wersji 2.1.x i kolejnych, zob. http://glycerine.itsmm.uni.edu/mca.

Istnieje wersja dla procesorów Motorola 680x0 (chodzi o komputery takie jak Amigi, Atari i VME), która działa już całkiem dobrze. Wersja ta pracuje na Motoroli 68020 z MMU, na 68030, 68040, 68050, wymaga też FPU. Działa już X Window System i sieć. Zob. news:comp.os.linux.m68k.

Linux działa dobrze również na procesorach Alpha DECa. Obecnie wspierane są takie platformy, jak "Jensen", "NoName", "Cabriolet", "Universal Desktop Box" (Multia) i inne. Zob. http://www.azstarnet.com/~axplinux/FAQ.html.

Wspierane są też SPARCi Suna (większość maszyn sun4c, sun4m i sun4u; rozwijane wsparcie dla sun4). Obecnie jedyną dostępną na SPARC dystrybucją jest Red Hat. Zob. http://www.redhat.com/support/docs/rhl-sparc/.

Aktywnie tworzona jest wersja na PowerPC (w tym PowerMac (Nubus i PCI), Motorola, IBM i Be). Zob. http://www.cs.nmt.edu/~linuxppc/ i http://www.linuxppc.org/.

Wersje na inne maszyny (również MIPS (zob. http://linus.linux.sgi.com i http://lena.fnet.fr/) i ARM) są na różnych etapach rozwoju; nie oczekuj zbyt wiele. Jeśli możesz zaangażować się w rozwój tych wersji, z pewnością znajdziesz współpracowników.

Rozwój Linuksa przekroczył już etap testowania; wersja 1.0 ukazała się 14 marca 1994. System nie jest wolny od błędów, a w trakcie pracy na nim na pewno pojawią się w nim i zostaną usunięte kolejne niedoskonałości. Linux rozwijany jest w sposób ,,otwarty'' -- wszystkie kolejne wersje, niezależnie od tego, czy można je uznać za ,,gotowe'', czy nie, są udostępniane użytkownikom. Informacja o stabilności kolejnych wersji zawarta jest w ich numerze: wersje n.x.y gdzie x jest liczbą parzystą są wersjami stabilnymi, a zwiększanie się liczby y oznaka kolejne poprawki (np. wersje 1.2.2 i 1.2.3 różnią się od siebie tylko ilością wprowadzonych poprawek, a nie możliwościami). Wersje n.x.y gdzie x jest liczbą nieparzystą są wersjami testowymi wypuszczanymi dla osób pracujących nad ich rozwojem; mogą być niestabilne i wieszać się, stale też zwiększają się ich możliwości. Gdy bieżąca wersja rozwojowa jądra zostaje uznana za stabilną, zostaje ona ,,zamrażana'' jako kolejna wersja stabilna, a rozwijana wersja otrzymuje nowy numer.

Większość wersji jądra, i stabilnych i rozwojowych, jest raczej godna zaufania; ,,stabilna'' oznacza w tym kontekście dodatkowo ,,powoli zmieniająca się''. Można używać którejkolwiek z tych wersji, jeśli działa ona zgodnie z oczekiwaniami (chyba, że koniecznie chcesz mieć wersję najnowszą). Na przykład pochodząca z 1992 roku wersja 0.97p1 bezproblemowo używana była na pewnym serwerze przez 136 dni bez przerwy (a działałaby pewnie dłużej, gdyby operator koparki przypadkowo nie uszkodził transformatora). Znane są przypadki ciągłego używania Linuksa przez ponad rok, wiadomo też o komputerze, na którym wg ostatnich wiadomości wersja 0.99p15s chodziła nieprzerwanie od 600 dni.

Obecną stabilną wersją jądra jest 2.0.35 (numer będzie się zmieniał w miarę dodawania nowych sterowników i wprowadzania poprawek), rozpoczęto też prace nad wersją 2.1.x. Pakiet z kodem źródłowym jądra Linuksa zawiera plik Documentation/Changes opisujący zmiany, o których należy wiedzieć przy zmienianiu używanej wersji na nowszą. Większość użytkowników Linuksa po prostu aktualizuje od czasu do czasu całą dystrybucję, a tym samym i jądro.

Jak już wspomniano, model rozwoju jądra Linuksa jest modelem otwartym i zdecentralizowanym (w przeciwieństwie do modelu stosowanego w przypadku rozwoju wielu innych rodzajów oprogramowania); oznacza to, że najnowsze wersje są zawsze udostępniane użytkownikom. Co za tym idzie, każda wersja posiadająca jakąś nową funkcjonalność zawiera błędy -- ale dzięki jej upublicznieniu błędy te są bardzo szybko (często w przeciągu godzin) wyłapywane i usuwane.

Natomiast zamknięty i scentralizowany model rozwoju oprogramowania oznacza, że tylko jedna osoba lub grupa pracuje nad projektem, a nowe wersje oprogramowania publikowane są tylko wtedy, gdy autorzy uznadzą je za wolne od błędów. Powoduje to często znaczne wydłużenie się czasu oczekiwania na nową wersję i na poprawki błędów oraz generalnie wolniejszy rozwój. Najnowsze wersje takiego oprogramowania są czasem wyższej jakości niż wersje oprogramowania tworzonego w sposób otwarty, ceną jednak jest znaczne spowolnienie rozwoju.

Oba w/w modele rozwoju oprogramowania omówione i zanalizowane zostały w The Cathedral and the Bazaar Erica Raymonda; zob. http://sagan.earthspace.net/~esr/writings/cathedral-bazaar/.

1 września 1998 ostatnią stabilną wersją jądra jest 2.0.35, a wersją rozwojową 2.1.119.

## 2. Możliwości Linuksa

- wielozadaniowość (można uruchamiać wiele programów naraz),
- obsługa wielu użytkowników na tej samej maszynie w tym samym czasie (bez licencji wielostanowiskowych!),
- wieloplatformowość (Linux działa pod wieloma platformami, nie tylko pod Intelowską),
- wieloprocesorowość (obsługa SMP (wieloprzetwarzania symetrycznego) na platformach Intel i SPARC (prace nad wsparciem dla kolejnych platform trwają); Linux używany jest w wymagających wieloprzetwarzania zastosowaniach, np. w systemach Beowulf (zob. http://cesdis.gsfc.nasa.gov/linux-web/beowulf/beowulf.html) i opartym na SPARC superkomuterze Fujitsu AP1000+),
- wielowątkowość (jądro obsługuje wiele niezależnych wątków w pojedynczej przestrzeni przydzielonej procesowi pamięci),
- działanie w trybie chronionym 386,
- międzyprocesowa ochrona pamięci (dzięki czemu niemożliwa jest sytuacja, w której jeden program powoduje pad całego systemu),
- ładowanie kodu wykonywalnego na żądanie (tzn. czytanie tylko tej części programu, która jest rzeczywiście wykorzystywana),
- współdzielenie pamięci między procesami (tzn. że wiele programów może korzystać z tego samego obszaru pamięci. Gdy dany program zapisuje coś w zapełnionej już stronie pamięci, zawartość tej strony (4 KB) kopiowana jest przedtem gdzie indziej. Proces ten nazywa się copy-on-write i ma dwie zalety: zwiększa szybkość i zmniejsza zużycie pamięci),
- pamięć wirtualna stronicująca (a nie składająca całe procesy) na dysk (na osobną partycję, do pliku, lub i tu i tu, z możliwością dynamicznego dodawania kolejnych obszarów wymiany (tak się to nadal nazywa). Jednocześnie w użyciu może być ogółem 16 128-megabajtowych (a w nowszych jądrach dwugigabajtowych) obszarów wymiany; w ten sposób teoretycznie można utworzyć funkcjonalny obszar wymiany do wielkości 2GB. Zwiększenie tego limitu jest proste -- sprowadza się do zmiany kilku linijek w kodzie źródłowym),
- zgrupowanie puli pamięci przydzielonej programom i dyskowej pamięci podręcznej (cache); dzięki czemu cała wolna pamięć może być użyta jako pamięć podręczna. Ilość pamięci podręcznej zmniejsza się podczas wykonywania dużych programów,
- dynamicznie zlinkowane biblioteki dzielone (DLL) oraz, oczywiście, biblioteki zlinkowane statycznie
- zrzuty pamięci (core dumps) umożliwiające ,,pośmiertną'' analizę programów za pomocą debuggera,
- wysoka zgodność z POSIX, SYSV, BSD na poziomie źródeł,
- poprzez zgodny z iBCS2 moduł emulacji wysoka zgodność na poziomie binarnym z SCO, SVR3 i SVR4,
- dostępność całego kodu źródłowego, w tym całego jądra i wszystkich sterowników, narzędzi i programów; wszystko to wolno bez ograniczeń rozpowszechniać. Wiele komercyjnych programów dostępnych dla Linuksa dostarczanych jest bez kodu źródłowego, ale wszystko, co było wolnodostępne (w tym cały system operacyjny) wolnodostępne pozostało,
- zgodna z POSIX kontrola procesów,
- pseudoterminale (pty),
- emulacja numerycznego koprocesora 387 w jądrze, co odciąża programy z konieczności wykonywania tej emulacji. W ten sposób wszystkie komputery pracujące pod kontrolą systemu Linux ,,mają'' koprocesor. Oczywiście jeśli komputer naprawdę posiada koprocesor, to będzie on użyty; w takim przypadku można skompilować jądro wyłączając obsługę 387: zaowocuje to niewielkim zyskiem pamięci.
- wsparcie dla wielu narodowych i zindywidualizowanych klawiatur, łatwo dodawać nowe definicje klawiatury dynamicznie,
- do 64 dynamicznie tworzonych wirtualnych konsol, co oznacza wiele niezależnych sesji obsługiwanych jednocześnie przy tej samej fizycznej konsoli. Między sesjami można przełączać się za pomocą dowolnie zdefiniowanej kombinacji klawiszy (niezależnej od karty graficznej),
- wsparcie dla powszechnie używanych systemów plików, takich jak np. minix, Henix, wszystkie systemy V. Własny zaawansowany system plików (do 4 TB, nazwy plików do 255 znaków),
- bezproblemowy dostęp do partycji MS-DOS i OS/2. Dzięki specjalnemu systemowi plików użycie partycji MS-DOS nie wymaga żadnych dodatkowych sztuczek, dostęp doń nie różni się oprócz ograniczeń w nazwach i prawach plików od dostępu do normalnego uniksowego systemu plików. Aktualnie nie są obsługiwane kompresowane partycje MS-DOS 6 (ale jest na to łata). System VFAT (tj. Windows 9x/NT) obsługiwany jest od jądra 2.0 wzwyż.
- specjalny system plików (UMSDOS) umożliwiający instalację Linuksa na partycji DOS,
- wsparcie (tylko odczyt) systemu plików HPFS-2 z OS/2 2.1,
- obsługa HFS (systemu plików Macintosha) jako moduł,
- możliwość czytania wszystkich standardowych formatów CD-ROM-ów,
- wsparcie protokołu sieciowego TCP/IP, w tym ftp, telnet, NFS, itd.,
- serwer Appletalk,
- klient i serwer Netware,
- klient i serwer Lan Manager/Windows Native (SMB),
- wiele protokołów sieciowych: podstawowe protokoły dostępne w najnowszych rozwojowych wersjach jądra to: TCP, IPv4, IPv6, AX.25, X.25, IPX, DDP (Appletalk), Netrom i inne. Stabilne wersje jądra zawierają m.in. protokoły TCP, IPv4, IPX, DDP i AX.25.

## 3. Zagadnienia sprzętowe

## 3.1 Minimalne wymagania sprzętowe

Prawdopodobnie najuboższą konfiguracją sprzętową umożliwiającą uruchomienie Linuksa jest 386SX/16, 1 MB RAM, stacja dysków 1.44 lub 1.2 MB, którakolwiek ze wspieranych kart graficznych (+ oczywiście klawiatura, monitor, itd). Taki sprzęt pozwoli na uruchomienie systemu i sprawdzenie, czy w ogóle działa on na tym komputerze; nie da się jednak na czymś takim wykonywać żadnej sensownej pracy. Omówienie minimalnych konfiguracji znajdziesz pod adresem http://rsphy1.anu.edu.au/~gpg109/mem.html.

Żeby móc cokolwiek zrobić potrzeba trochę miejsca na dysku twardym. 5 do 10 MB powinno wystarczyć na bardzo prostą instalację (zawierającą tylko podstawowe polecenia systemowe i może jedną lub dwie proste aplikacje -- np. program terminala). Taki system jest jednak bardzo ograniczony i niewygodny, zajmuje bowiem prawie całe dostępne miejsce -- chyba, że zainstalowane aplikacje są naprawdę małe. Generalnie nadaje się tylko do celów testowych, i przechwałek na temat niewielkich wymagań sprzętowych.

## 3.2 Zalecana konfiguracja sprzętowa

Jeśli zamierzasz uruchamiać wymagające dużej mocy obliczeniowej programy takie jak gcc, X, czy TeX, potrzebujesz procesora szybszego niż 386SX/16 -- chociaż cierpliwym i taki wystarczy.

W praktyce system bez X wymaga 4 MB, a z X 8 MB. Więcej niż 4 MB zalecane jest również w przypadku systemu obsługującego wielu użytkowników równocześnie, oraz systemu, pod którym jednocześnie będzie pracować kilka dużych programów (jak chociażby kompilacji). Oczywiście wszystko to będzie działać również przy mniejszej ilości pamięci; Linux wykorzysta w takim przypadku pamięć podręczną (powolną pamięć dyskową); jest to jednak tak wolne, że prawie nie da się tego używać. 16 MB znacząco ogranicza wykorzystanie pamięci dyskowej przy uruchomieniu wielu programów, a 32 MB przy normalnej pracy jednego użytkownika zazwyczaj całkowicie eliminuje problem. 64 i więcej MB zalecane jest przy jednoczesnym uruchamianiu wielu bardzo pamięciożernych aplikacji.

Wielkość wymaganej przestrzeni dyskowej zależy naturalnie od rodzaju instalowanego oprogramowania. Zwykły zestaw uniksowych narzędzi, powłok i programów do administrowania systemem swobodnie zmieści się na 10 MB -- zostanie nawet trochę miejsca na pliki użytkownika. System bardziej kompletny (np. Red Hat, Debian, czy inna dystrybucja) wymaga do 60 do 600 MB w zależności od instalowanych komponentów. Do tego dodać należy miejsce przeznaczone na pliki użytkowników. Przy dzisiejszych cenach twardych dysków nie ma sensu ryzykowanie, że nagle zabraknie miejsca. Warto więc nabyć dysk o pojemności co najmniej 2 GB, a lepiej 4 GB lub nawet więcej -- nie zmarnuje się, to pewne. Linux bezproblemowo obsługuje duże dyski twarde, np. popularne ostatnio dyski 11 GB na IDE i 18 GB na SCSI.

Jeśli chcesz/potrzebujesz/stać Cię na konfigurację lepszą od minimalnej, możesz rozszerzyć swój komputer o więcej pamięci, większy dysk twardy, szybszy procesor i inne urządzenia. Linux różni się tu bardzo od DOS-a, w którym rozszerzanie pamięci dawało umiarkowane zaledwie efekty -- w Linuksie różnica jest ogromna. Powodem jest oczywiście ograniczenie DOS-a do 640 Kb, ograniczenie, od którego Linux jest wolny.

## 3.3 Wspierany sprzęt

CPU (procesor):

  Wszystko, co może uruchomić programy w trybie chronionym 386. Wszystkie modele 386, 486, Pentium, Pentium Pro, Pentium II i ich klony powinny działać (286 i starsze być może będą któregoś dnia obsługiwane przez mniejsze jądro zwane ELKS, nie należy od niego jednak oczekiwać tych samych możliwości). Wersje dla procesorów 680x0 (dla x=2+zewnętrzna jednostka zarządzania pamięcią (MMU), 3, 4 lub 6) obsługujących komputery Amiga i Atari dostępne są na serwerze tsx-11.mit.edu w katalogu 680x0. Wspierane jest również wiele maszyn DEC Alpha, SPARC i PowerPC. Trwają prace nad wersjami dla architektur ARM, StrongARM i MIPS.

Magistrale:

  PCI, ISA, EISA i VLB. Obsługa MCA (głównie PS/2) jest jeszcze niekompletna (prace trwają, patrz wyżej). Linux wymaga od sprzętu więcej niż DOS, Windows, czy większość pozostałych systemów operacyjnych. Oznacza to, że pod kontrolą tych mniej wymagających systemów sprzęt może działać bezbłędnie, a pod Linuksem zawiedzie. Linux jest doskonałym testerem pamięci...

RAM (pamięć):

  Na platformach intelowskich do 1 GB; na platformach 64-bitowych więcej. Niektórzy (w tym Linus) zauważyli, że dodanie pamięci bez powiększenia bufora (cache) bardzo spowalnia ich komputer. Jeśli po rozszerzeniu pamięci zaobserwujesz podobne objawy, zwiększ cache. Niektóre komputery nie są w stanie zbuforować więcej niż określoną ilość pamięci (najczęściej jest to 64 MB), niezależnie od tego, ile fizycznie pamięci jest zainstalowane. Jest to spowodowane tym, że BIOS oryginalnie nie był przeznaczony do wykrywania pamięci ponad 64 MB. Jądra 2.1.x i nowsze automatycznie radzą sobie z takimi sytuacjami, natomiast jądra 2.0.35 i wcześniejsze wymagają podania im specjalnego parametru podczas inicjalizacji systemu.

Pamięci masowe:

  Obsługiwane są typowe dyski AT (EIDE, IDE, 16-bitowe kontrolery z MFM, RDD lub ESDI), jak również dyski SCSI, CD-ROMy na obsługiwanej karcie SCSI i typowe kontrolery XT (8-bitowe kontrolery z MFM lub RLL). Wspierane karty SCSI to: Advansys, seria Adaptec 1542, 1522, 1740, 27xx, i 29xx (z kilkoma wyjątkami), Buslogic MultiMaster i Flashpoint, kontrolery oparte o NCR53c8xx, kontrolery DPT, Qlogic ISP i FAS, Seagate ST-01 i ST-02, seria Future Domain TMC-88x (lub inne karty z kością TMC950), TMC1660/1680, Ultrastor 14F, 24F i34F, Western Digital wd7000, i inne. Obsługiwane są również pamięci taśmowe SCSI, QIC-02, i niektóre QIC-80. Obok CD-ROMów IDE i SCSI wspierany jest też szereg CD-ROMów o zastrzeżonej architekturze (są to m.in. Matsushita/Panasonic, Mitsumi, Sony, Soundblaster, Toshiba, ATAPI (EIDE), SCSI i inne). Informacje o konkretnych modelach znajdują się w Hardware Compatibility HOWTO. Wykazy te są i zawsze będą niekompletne. Bardziej aktualnych informacji dostarczają producenci dystrybucji.

Karty graficzne:

  Pracę w trybie tekstowym umożliwiają karty VGA, EGA, CGA, Hercules (i zgodne). Wyświetlać grafikę i pracować z X-Window można za pomocą (co najmniej) zwykłych kart VGA, niektórych Super-VGA (większość z kart bazujących na kości Tseng, Paradise i niektórych Tridentach), S3, 8514/A, ATI, Matrox, i Herculesa (używanym przez Linuksa serwerem X jest XFree86, co determinuje, które karty są obsługiwane. Pełna lista samych wspieranych kości zajmuje ponad stronę. Patrz http://www.XFree86.org/).

Sieć:

  Zbiór obsługiwanych kart sieciowych zawiera: 3COM 503/509/579/589/595/905 (501/505/507 są wspierane, ale nie polecane), AT&T GIS (neé NCR) WaveLAN, większość kart opartych o WD8390 lub WD80x3, NE1000/2000 i większość ich klonów, AC3200, Apricot 82596, AT1700, ATP, DE425/434/435/500, D-Link DE-600/620, DEPCA, DE100/101, DE200/201/202 Turbo, DE210, DE422, Cabletron E2100 (nie polecana), Intel EtherExpress (nie polecana), EtherExpress Pro, EtherExpress 100, DEC EtherWORKS 3, HP LAN, HP PCLAN/plus, większość kart opartych o AMD LANCE, NI5210, ni6510, SMC Ultra, DEC 21040 (tulip), Zenith Z-Note ethernet. Żadna z kart Zircom i Cabletron (oprócz E2100) nie jest obsługiwana, ponieważ producent odmówił udzielenia programistom odpowiednich informacji. Obsługa sieci światłowodowych: karty DEFxx DEC-a. Obsługa protokołu sieciowego Point-to-Point: PPP (zarówno dla urządzeń asynchronicznych (modemy), jak i połączeń synchronicznych (ISDN)), SLIP, CSLIP, PLIP. Ograniczona obsługa Token Ring.

Port szeregowy:

  Większość kart opartych o 16450 i 16550 UART, w tym AST Fourport, Usenet Serial Card II i inne. Wspierane inteligentne karty to: seria Cyclades Cyclom (wsparcie od producenta), seria Comtrol Rocketport (wsparcie od producenta), Stallion (większość kart: wsparcie od producenta), i Digi (niektóre karty: wsparcie od producenta). Obsługa ISDN, frame relay (tranzytu ramki) i łącza dzierżawionego.

Inny sprzęt:

  SoundBlaster, ProAudio Spectrum 16, Gravis Ultrasound, większość pozostałych kart dźwiękowych, większość (wszystkie?) rodzajów myszy (Microsoft, Logitech, PS/2), itd.

## 4. Niekompletny spis sportowanego i innego oprogramowania

Pod Linuksem dostępne są wersje większości podstawowych narzędzi i programów znanych z systemów uniksowych, w tym prawie całość oprogramowania opartego na licencji GNU i wiele pochodzących z różnych źródeł klientów X. Słowo `wersje' jest być może zbyt mocne, często bowiem dzięki zgodności Linuksa z normą POSIX programy te nie wymagają żadnych (lub prawie żadnych) modyfikacji do kompilacji pod tym systemem. Aplikacji nigdy za wiele; dla użytkowników i administratorów Linuksa pojawia się ich coraz więcej. Zapytaj producenta swojego ulubionego komercyjnego programu dla Unixa, czy wypuścił już jego wersję na Linuksa!

Poniżej znajduje się niekompletna lista oprogramowania działającego pod Linuksem:

Podstawowe komendy Unix-a:

  `ls`, `tr`, `sed`, `awk` itp, itd, (wymień którąś -- i zapewne będzie w Linuksie).

Narzędzia programistyczne:

  `gcc`, `gdb`, `make`, `bison`, `flex`, `perl`, `rcs`, `cvs`, `prof`.

Języki programowania i środowiska:

  C, C++, Objective C, Java, Modula-3, Modula-2, Oberon, Ada95, Pascal, Fortran, ML, scheme, Tcl/tk, Perl, Python, Common Lisp i wiele innych.

Środowiska graficzne:

  GNOME i KDE (desktopy), X11R6 (XFree86 3.x), X11R5 (XFree86 2.x), MGR.

Edytory:

  GNU Emacs, XEmacs, MicroEmacs, `jove`, ez, `epoch`, `elvis` (GNU vi), `vim`, `vile`, `joe`, `pico`, `jed` i inne.

Powłoki (szele):

  `bash` (zgodny z POSIX sh), `zsh` (zawiera tryb zgodności z `ksh`, `pdksh`, `tcsh`, `csh`, `rc`, `es`, `ash` (prawie całkowicie zgodna z sh powłoka używana jako `/bin/sh` w BSD), i wiele więcej.

Telekomunikacja:

  PPP, UUCP, SLIP, CSLIP, pełen zestaw narzędzi TCP/IP, `kermit`, `szrz`, `minicom`, `pcomm`, `xcomm`, `term` (pozwala na uruchamianie wielu powłok, przekierowywanie ruchu sieciowego i zdalną pracę pod X, a wszystko to na jednej linii telefonicznej), Seyon (popularny program komunikacyjny dla X), wiele pakietów do obsługi faksów i poczty głosowej (przy użyciu ZyXELa i innych modemów). Zdalna praca przez port szeregowy lub sieć też oczywiście jest możliwa.

Newsy i poczta:

  C-news, `innd`, `trn`, `nn`, `tin`, `smail`, `elm`, `mh`, `exmh`, `pine`, `mutt`, itd.

Procesory tekstu:

  TeX, `groff`, `doc`, `ez`, LyX, Lout, Linuxdoc-SGML, i inne.

Gry:

  Nethack, wiele Mud-ów, gier dla X-ów i mnóstwo innych. Jedną z gier jest przeglądanie gier dostępnych na tsx-11 i sunsite. :-)

Wszystkie te programy (a nie jest to nawet setna część dostępnego oprogramowania) są darmowe. Zwiększa się też dostępność oprogramowania komercyjnego; spytaj producenta swojego ulubionego komercyjnego programu o wersję dla Linuksa!

## 5. Kto używa Linuksa?

Linux jest dostępny za darmo, nie trzeba nigdzie rejestrować posiadanych i używanych kopii -- trudno jest więc stwierdzić, ilu ludzi używa tego systemu. Jednak faktem jest, że kilka firm utrzymuje się wyłącznie ze jego sprzedaży, a linuksowe grupy są jednym z najbardziej obleganych zakątków Usenetu -- użytkowników musi więc być miliony; trudno jednak o konkretne dane. Najlepsze badania rynku szacują obecnie tę liczbę na 7,5 do 11 milionów.

Odważny człowiek, Harald T. Alvestrand (`<Harald.T.Alvestrand@uninett.no>`), podjął ambitną próbę policzenia użytkowników Linuksa ,,sztuka po sztuce''. Jeśli chcesz zostać policzony, użyj formularzy dostępnych na stronach http://counter.li.org/ lub wyślij e-mail o jednym z dwóch tematów: `I use Linux at home` (,,używam Linuksa w domu'') lub `I use Linux at home and at work` (,,używam Linuksa w domu i w pracy'') na adres `linux-counter@uninett.no`. Honorowane są również zgłoszenia nieosobiste, o szczegóły pytaj autora projektu.

Harald wysyła co miesiąc aktualne statystyki na grupę comp.os.linux.misc. Informacje te są również dostępne na WWW: http://counter.li.org/.

## 6. Skąd wziąć Linuksa?

## 6.1 Anonimowy serwer FTP

Wolną od ograniczeń w dystrybucji dokumentację Linuksa znajdziesz na serwerze the Linux Documentation Project: ftp://sunsite.unc.edu/pub/Linux/docs/LDP/ i http://sunsite.unc.edu/LDP/. (Od tłumacza: polskie wersje dużej części umieszczonych tam dokumentów znajdują się na stronach JTZ: http://www.jtz.org.pl/.)

Po najświeższe wiadomości zajrzyj na grupę comp.os.linux.announce.

Linuksa ściągnąć można z (m.in.) następujących anonimowych serwerów ftp:

> `

>     Nazwa                          Adres IP         Katalog
>     =============================  ===============  ===============
>     tsx-11.mit.edu                 18.172.1.2       /pub/linux
>     sunsite.unc.edu                152.2.22.81      /pub/Linux
>     ftp.funet.fi                   128.214.248.6    /pub/Linux
>     net.tamu.edu                   128.194.177.1    /pub/linux
>     ftp.mcc.ac.uk                  130.88.203.12    /pub/linux
>     src.doc.ic.ac.uk               146.169.2.1      /packages/linux
>     fgb1.fgb.mw.tu-muenchen.de     129.187.200.1    /pub/linux
>     ftp.informatik.tu-muenchen.de  131.159.0.110    /pub/comp/os/linux
>     ftp.dfv.rwth-aachen.de         137.226.4.111    /pub/linux
>     ftp.informatik.rwth-aachen.de  137.226.225.3    /pub/Linux
>     ftp.Germany.EU.net             192.76.144.75    /pub/os/Linux
>     ftp.lip6.fr                    132.227.77.2     /pub/linux
>     ftp.uu.net                     137.39.1.9       /systems/unix/linux
>     wuarchive.wustl.edu            128.252.135.4    mirrors/linux
>     ftp.win.tue.nl                 131.155.70.100   /pub/linux
>     ftp.stack.urc.tue.nl           131.155.2.71     /pub/linux
>     srawgw.sra.co.jp               133.137.4.3      /pub/os/linux
>     cair.kaist.ac.kr                                /pub/Linux
>     ftp.denet.dk                   129.142.6.74     /pub/OS/linux
>     NCTUCCCA.edu.tw                140.111.1.10     /Operating-Systems/Linux
>     nic.switch.ch                  130.59.1.40      /mirror/linux
>     sunsite.cnlab-switch.ch        193.5.24.1       /mirror/linux
>     cnuce_arch.cnr.it              131.114.1.10     /pub/Linux
>     ftp.monash.edu.au              130.194.11.8     /pub/linux
>     ftp.dstc.edu.au                130.102.181.31   /pub/linux
>     ftp.sydutech.usyd.edu.au       129.78.192.2     /pub/linux

> `

`tsx-11.mit.edu` oraz `fgb1.fgb.mw.tu-muenchen.de` są oficjalnymi serwerami GCC.

Niektóre serwery są kopiami innych -- jeśli możesz, użyj najbliższego (sieciowo) sobie.

Co najmniej `sunsite.unc.edu` i `ftp.informatik.tu-muenchen.de` udostępniają usługę ftp przez e-mail. Więcej informacji pod adresami `ftpmail@sunsite.unc.edu` i `ftp@informatik.tu-muenchen.de`.

Jeśli czujesz się zagubiony, zajrzyj do Distribution-HOWTO, gdzie wymieniona jest część dystrybucji. W chwili obecnej, przynajmniej w USA, najpopularniejsze są Red Hat i Debian.

## 6.2 Płytki CD

Większość ludzi instaluje Linuksa z kompaktów. Dystrybucje rozrosły się do setek megabajtów oprogramowania; ściąganie tego przez modem 28.8 lub ISDN trwa dłuuugo.

Linuksa na płytce można nabyć na dwa sposoby: jako część archiwów FTP, albo bezpośrednio od producenta. Nabycie archiwów często umożliwia wybór dystrybucji, oznacza jednak również rezygnację ze wsparcia technicznego. Przy zakupie od producenta dystrybucji zazwyczaj wybrać nie można, oferowana jest za to jakaś forma wsparcia (najczęściej pomoc w instalacji).

## 6.3 Inne źródła

Istnieje więcej BBSów niż jest plików w dystrybucji Linuksa. Od czasu do czasu lista tych BBSów ogłaszana jest na grupie comp.os.linux.announce. Popytaj wśród przyjaciół i w LUGach (Grupach Użytkowników Linuksa), albo zamów którąś z komercyjnych dystrybucji (ich lista znajduje się w Linux distribution HOWTO dostępnym pod adresem http://sunsite.unc.edu/LDP/HOWTO/Distributions-HOWTO oraz w grupie comp.os.linux.announce).

(Od tłum.: w Polsce najłatwiejszą i najtańszą formą uzyskania Linuksa jest zakup jednego z czasopism komputerowych dołączających płytki z którąś z dystrybucji. O konkrety pytaj na grupie pl.comp.os.linux.)

## 7. Status prawny Linuksa

Chociaż Linux dostarczany jest z kompletnym kodem źródłowym, system ten nie jest własnością publiczną -- jest oprogramowaniem chronionym prawami autorskimi, dostępnym jednakże za darmo na warunkach licencji GPL -- tam też znajdziesz więcej informacji na ten temat. Działające pod Linuksem programy również chronione są odpowiednimi prawami autorskimi, chociaż wiele z nich także dostępnych jest na licencji GPL. X Window rozpowszechniany jest na licencji MIT X, a niektóre programy użytkowe na licencji BSD. W każdym razie dozwolone jest rozpowszechnianie oprogramowania dostępnego na serwerze FTP (inaczej nie byłoby go tam).

## 8. Bieżące informacje o Linuksie

Ponad cztery lata temu powstał miesięcznik Linux Journal. Skierowany jest do wszystkich użytkowników Linuksa, zawiera artykuły o różnym stopniu trudności. Prenumerata jednoroczna kosztuje 22 dolary w USA, 27 dolarów w Kanadzie i Meksyku, 32 dolary w pozostałych miejscach, płatne w dolarach USA. Prenumeratę zamawia się pocztą elektroniczną (subs@ssc.com), faksem (+1-206-782-7191), telefonicznie (+1-206-782-7733), lub pocztą tradycyjną (Linux Journal, PO Box 85867, Seattle, WA 98145-1867, USA). SSC udostępnia swój publiczny klucz PGP, kodując nim e-maila z zamówieniem prenumeraty bez strachu można podać numer swojej karty kredytowej. W/w klucz PGP uzyskuje się poleceniem `finger info@ssc.com` .

Istnieje szereg poświęconych Linuksowi grup oraz list dyskusyjnych. Linux FAQ zawiera więcej informacji o tych ostatnich (FAQ to znajduje się na wspomnianych serwerach FTP i w grupach dyskusyjnych).

Na moderowaną grupę comp.os.linux.announce wysyłane są ogłoszenia n/t Linuksa (nowe programy, poprawki, itd).

Na moderowaną grupę comp.os.linux.answers wysyłane są dokumenty FAQ (,,Najczęściej Zadawane Pytania''), HOWTO (,,Jak To Zrobić''), itp.

Niemoderowana grupa comp.os.linux.admin jest miejscem dyskusji o administrowaniu systemami linuksowymi.

Niemoderowana grupa comp.os.linux.development.system poświęcona jest rozwojowi jądra. Pytania dotyczące programów można tu zadawać wyłącznie, jeśli są one blisko powiązane z jądrem. Inne programistyczne zapytania kierować należy na grupę comp.unix, chyba, że dotyczą one konkretnych aplikacji. W takim przypadku właściwą grupą jest comp.os.linux.development.apps.

Niemoderowana grupa comp.os.linux.development.apps przeznaczona jest na dyskusje o rozwoju aplikacji dla Linuksa. Nie należy pytać tam, skąd takie aplikacje ściągnąć, nie jest to również miejsce na rozmowy o aplikacjach jeszcze nieistniejących.

Na grupę comp.os.linux.hardware wysyłać można pytania dot. działania sprzętu pod Linuksem.

Grupa comp.os.linux.networking poświęcona jest zagadnieniu rozwoju, działania i konfiguracji oprogramowania sieciowego pod Linuksem.

comp.os.linux.x zajmuje się systemem X Window.

Następczyni comp.os.linux, grupa comp.os.linux.misc, przeznaczona jest dla dyskusji na tematy niewymienione powyżej.

Powodem rozbicia comp.os.linux na podgrupy było zmniejszenie ruchu na grupie macierzystej, dlatego nie krospostuj między grupami comp.os.linux.*! Jedynym wyjątkiem jest wysłanie ogłoszenia do news:comp.os.linux.announce i którejś z niemoderowaych grup. Nie przestrzegając tej zasady narażasz się na niemiłe potraktowanie...

Źródłem wiadomości o Linuksie na WWW jest http://sunsite.unc.edu/LDP/.

## 9. Przyszłość

Od czasu jądra 1.0 wprowadzono do systemu istotne ulepszenia. Linux 1.2 miał krótszy czas dostępu do dysków, udoskonalone terminale, ulepszone zarządzanie pamięcią wirtualną, wsparcie dla wielu platform, quoty i inne. Linux 2.0 (obecna stabilna wersja) zawiera jeszcze więcej poprawek, włączając w to poprawki w szybkości działania, nowe protokoły sieciowe, jedną z najszybszych na świecie wersję TCP/IP i znacznie więcej. Linux 2.2 będzie jeszcze szybszy i będzie obsługiwał większą ilość protokołów sieciowych oraz urządzeń niż obecnie.

Jednak, mimo że kod źródłowy jądra to już ponad 3/4 miliona linii, wiele jeszcze zostało do napisania, w tym również dokumentacji. Jeśli chciałbyś pomóc w jej tworzeniu, zasubskrybuj listę dyskusyjną linux-doc@vger.rutgers.edu; wyślij na adres majordomo@vger.rutgers.edu list zawierający słowo ,,help'' w treści (NIE w temacie).

## 10. O tym dokumencie

Autor niniejszego dokumentu, Michael K. Johnson, <johnsonm@redhat.com> prosi o wszelkie, nawet drobne, uwagi; trudno bowiem stworzyć dobrą dokumentację całkowicie samemu.

Mniej-więcej bieżącą wersję tego tekstu znajdziesz zawsze pod adresem http://sunsite.unc.edu/LDP/.

## 10.1 Formalności

Znaki handlowe są własnością ich posiadaczy. Nie udziela się żadnych gwarancji co do informacji zawartych w niniejszym dokumencie. Użycie i rozpowszechnianie na własne ryzyko. Zawartość tego dokumentu jest własnością publiczną (public domain), bądź jednak uprzejmy i przy cytowaniu zaznacz autorstwo.

## 11. Od tłumacza

Przetłumaczyłem najnowszą dostępną wersję dokumentu. Niestety, w momencie, w którym to piszę, tekst oryginalny nie był uaktualniany od dwóch lat; biorąc pod uwagę szybki rozwój Linuksa, liczyć się należy z możliwością, że część informacji jest przestarzała. Na pewno jednak wszystkie zmiany w stanie faktycznym, które nastąpiły w przeciągu tych dwóch lat, są zmianami na lepsze. :-)

Wersja oryginalna dokumentu ("INFO-SHEET") znajduje się pod adresem http://sunsite.unc.edu/LDP/. Z polskimi tłumaczeniami pozostałych dokumentów HOWTO zapoznać się możesz pod adresem http://www.jtz.org.pl/.

Copyright for the translation:
(c) 2000, 2001 by Tomasz 'tsca' Sienicki, <tsca@edb.dk>