LINUX O systemie słów kilka Materiały przeznaczone wyłącznie do użytku wewnętrznego
1 Wprowadzenie Linux jest systemem operacyjnym dla komputerów kompatybilnych z IBM PC, czyli wyposażonych w procesory 386, 486, Pentium i inne 1. Został stworzony w początku lat dziewięćdziesiątych przez Linusa Torvaldsa, a dalej rozwijany wraz z programistami z całego świata. Jako system operacyjny jest ceniony za siłę i elastyczność. Większość systemów operacyjnych dla PC, powstała z myślą o małych komputerach osobistych, które dopiero ostatnio stały się bardziej uniwersalnymi maszynami. Takie systemy operacyjne są wciąż uaktualniane, by sprostać zmieniającym się możliwościom sprzętu PC. Natomiast Linux został stworzony w zupełnie odmiennym kontekście. Jest on wersją systemu operacyjnego Unix, który był używany przez dziesiątki lat na dużych komputerach i minikomputerach i jest aktualnie systemem dla stacji roboczych. Linux daje komputerowi klasy PC szybkość, wydajność i elastyczność systemu Unix, wykorzystując wszelkie możliwości, jakie mogą dać komputery osobiste. Linux daje to wszystko za wspaniałą cenę - jest darmowy. W odróżnieniu od oficjalnego systemu operacyjnego Unix, Linux jest rozpowszechniany za darmo na zasadach licencji GNU, określonej przez Free Software Foundation 2. Licencja ma zapewnić, że Linux pozostanie darmowy i zarazem zestandaryzowany, dlatego istnieje tylko jeden oficjalny Linux. Fakt, że Linux jest darmowy, skłania czasem ludzi do mniemania, że jest to coś gorszego niż profesjonalny system operacyjny. Linux jest w istocie rzeczy wersją Unixa dla PC. Aby naprawdę docenić Linuxa, trzeba zrozumieć szczególny kontekst, w jakim rozwinął się system operacyjny Unix. Unix, w przeciwieństwie do większości pozostałych systemów operacyjnych, został rozwinięty w środowisku badawczym i akademickim - na uniwersytetach i w ośrodkach badawczych. Jego rozwój to część rewolucji komputerowej i telekomunikacyjnej w ostatnich kilku dziesięcioleciach. Profesjonaliści komputerowi często rozwijali nowe technologie komputerowe na bazie Unixa, tak było z tymi rozwiniętymi na potrzeby Internetu. Mimo że jest to bardzo wymyślny system, został od początku stworzony tak, by być elastycznym. System Unix może być łatwo modyfikowany w celu stworzenia różnych wersji. Rzeczywiście, wielu różnych sprzedawców, jak IBM, Sun i Hawlett-Packard, oferuje różne oficjalne wersje Unixa. Ludzie wciągnięci w programy badawcze często tworzą własne wersje Unixa związane z ich szczególnymi wymaganiami. Ta wpisana w Unixa elastyczność w żaden sposób nie pomniejsza jego wartości. W istocie rzeczy świadczy to o odporności i pozwala na adaptowanie, w praktycznie dowolnym środowisku. Linux jest w zasadzie kolejna wersją Unixa - wersją dla PC. Jest rozwijany przez komputerowych profesjonalistów pracujących w podobnych środowiskach, co odzwierciedla sposób, w jaki były zwykle rozwijane wersje Unixa. Fakt, że Linux jest publicznie dostępny i darmowy, świadczy o tym, jak głębokie korzenie zapuścił Unix w instytucjach akademickich. 1 Do tej grupy należy także zaliczyć procesory Duron i Athlon firmy AMD, procesory firmy Cyrix i inne, których lista rozkazowa jest zgodna z listą linii procesorów 386-486-586. 2 Linux ma zastrzeżone prawa autorskie i nie jest oprogramowaniem ogólnie dostępnym (Public Domain), jednak licencja GNU sprawia, że może z niego korzystać każdy. 2
2 Linux i systemy operacyjne System operacyjny to program zarządzający sprzętem komputerowym i oprogramowaniem użytkownika. Systemy operacyjne zostały pierwotnie stworzone do wykonywania powtarzalnych zadań sprzętowych. Zadania te polegały na zarządzaniu plikami, uruchamianiu programów i przyjmowaniu poleceń użytkownika. Komunikacja użytkownika z systemem następuje poprzez tzw. interfejs użytkownika. Ten interfejs pozwala systemowi operacyjnemu na przyjmowanie i interpretowanie instrukcji wydanych przez użytkownika. Interfejs użytkownika systemu operacyjnego może być tak prosty, jak proste jest wprowadzanie poleceń w wierszu, lub tak złożony, jak wybieranie menu i ikon. System operacyjny zarządza również aplikacjami. Aby wykonać odpowiednie zadania, takie jak edycja dokumentu lub przeprowadzenie obliczeń, potrzebne są specyficzne aplikacje. Przykładem takiej aplikacji jest edytor. Edytor pozwala na edytowanie dokumentu, dokonywanie zmian i dodawanie nowego tekstu. Sam edytor jest programem składającym się z instrukcji wykonywanych przez komputer. Aby użyć programu, trzeba najpierw załadować go do pamięci komputera, a następnie muszą być wykonane jego instrukcje. System operacyjny steruje ładowaniem i wykonywaniem wszystkich programów, włącznie z aplikacjami. Zarządzanie plikami, zarządzanie programami i współdziałanie z użytkownikiem to tradycyjne cechy wspólne systemów operacyjnych. Linux, podobnie jak wszystkie wersje Unixa, ma dwie dodatkowe cechy. Jest systemem wielodostępnym i wielozadaniowym. Jako system wielozadaniowy, pozwala na wykonywanie kilku zadań w tym samym czasie - gdy jedno zadanie jest wykonywane, możliwa jest praca nad następnym. Jako system wielodostępny, pozwala na logowanie się do systemu kilku użytkowników w tym samym czasie, a każdy użytkownik współdziała z systemem poprzez swój własny terminal. Systemy operacyjne zostały pierwotnie zaprojektowane po to, by wykorzystać sprzęt w wydajny sposób. Gdy pojawiły się pierwsze komputery, ich możliwości były ograniczone i system operacyjny musiał wykonywać za nie większość zadań. W związku z tym systemy operacyjne zostały pomyślane jako systemy do obsługi sprzętu, a nie użytkownika, zatem były i mało elastyczne, wymuszając na użytkowniku, by sprostał żądaniom wydajnego sprzętu. Natomiast Linux, jako jedna z wersji Unixa, został stworzony, by być elastycznym. Linux ma tę samą elastyczność, z jaką został zaprojektowany Unix, elastyczność pochodzącą od badawczych początków Unixa. System operacyjny Unix został zaprojektowany przez Kena Thompsona w AT&T Bell Laboratories na przełomie lat sześćdziesiątych i siedemdziesiątych. Wprowadził wiele nowego w rozwój systemów operacyjnych. Pierwotnie Unix został stworzony jako system operacyjny dla badaczy. Jednym z głównych celów Thompsona było stworzenie systemu, który mógłby wspomóc badaczy w ich ciągle zmieniających się wymaganiach. Aby temu sprostać, Thompson zaprojektował system, który może działać z wieloma różnymi rodzajami zadań. Elastyczność stała się ważniejsza niż wydajność sprzętowa. Podobnie jak Unix, także Linux umożliwia wykonywanie wielu różnorodnych zadań, jakie może przed nim postawić dowolny użytkownik. Użytkownik Linuxa nie jest ograniczony do sztywnej interakcji z systemem operacyjnym. W zamian system operacyjny jest pomyślany tak, by oferował zestaw wysokowydajnych narzędzi, z których użytkownik może zrobić użytek. Ta filozofia zorientowana na użyt- 3
kownika oznacza, że można skonfigurować system tak, by zaspokoił specyficzne wymagania. Linux pozwala na to, by system operacyjny stał się środowiskiem operacyjnym. 3 Historia Linuxa i Unixa Historia Linuxa (jeżeli potraktujemy Linuxa jako wersję Unixa), rozpoczyna się pod koniec lat sześćdziesiątych. W 1968 roku zespół badaczy z Generał Electric, AT&T Bell Laboratories i Massachusetts Institute of Technology wykonał specjalny projekt badawczy dotyczący systemu operacyjnego nazwanego Multics. W Multicsie urzeczywistniono wiele nowych pomysłów dotyczących wielozadaniowości, zarządzania plikami i współdziałania z użytkownikiem. W 1969 roku Ken Thompson z AT&T Bell Laboratories stworzył system operacyjny Unix, włączając do niego wiele cech projektu badawczego Multics. Powiązał on wymagania środowiska badawczego z możliwością uruchamiania systemu na minikomputerach. Od początku Unix był wydajnym, wielodostępnym i wielozadaniowym systemem operacyjnym. System Unix szybko stał się popularny w Bell Labs. W 1970 roku Dennis Ritchie i Ken Thompson przepisali kod źródłowy systemu Unix w języku programowania C. Dennis Ritchie, jeden z pracowników Bell Labs, stworzył język programowania C tak, by był elastycznym narzędziem dla rozwoju oprogramowania 3. Język programowania C pozwolił Dennisowi Ritchiemu i Kenowi Thompsonowi na napisanie tylko jednej wersji systemu operacyjnego, która może być następnie kompilowana przez kompilator C na różnych komputerach. W ten sposób system operacyjny Unix stał się przenośny - mógł być uruchamiany na różnych komputerach z bardzo małymi lub w ogóle bez poprawek. Unix rozwijał się stopniowo - od pierwszej wersji stworzonej przez jednego człowieka, aż do standardowego oprogramowania rozpowszechnianego przez wielu różnych producentów, takich jak Novell czy IBM. Początkowo Unix był traktowany jako produkt dla celów badawczych. Pierwsza wersja Unixa została rozdana za darmo wydziałom informatyki wielu słynnych uniwersytetów. W 1972 roku Bell Labs rozpoczęły rozpowszechnianie oficjalnej wersji Unixa i udzielanie licencji na system różnym użytkownikom. Jednym z tych użytkowników był wydział informatyki Uniwersytetu Kalifornijskiego w Berkeley. W Berkeley dodano do systemu wiele nowych funkcji, które później stały się standardem. W 1975 roku w Berkeley wydano własną wersję Unixa, znaną pod nazwą Berkeley Software Distribution (BSD). Wersja BSD Unixa stała się głównym konkurentem wersji AT&T Bell Labs. Rozgałęziły się inne niezależnie wydane wersje Unixa. W 1980 roku firma Microsoft wydała wersję Unixa na PC i nazwała go Xenix, natomiast firma AT&T rozwinęła kilka badawczych wersji Unixa, a w 1982 roku wydała pierwszą wersję komercyjną, nazwaną System 3. Wersja ta została później zastąpiona przez System V, który stał się poważnym produktem komercyjnym mającym wsparcie techniczne. W tym samym czasie wersja BSD Unixa miała kilka wydań. Pod koniec lat siedemdziesiątych BSD Unix stał się przedmiotem projektu badawczego wykonywanego przez Department of Defense s Advanced Research Project Agency (DARPA). W wyniku tych 3 Jedną z zalet C jest to, że pozwala on na bezpośredni dostęp do architektury sprzętowej komputera przez uogólniony zestaw poleceń. Do momentu powstania języka C, systemy operacyjne musiały być specjalne przepisywane w językach asemblera charakterystycznych dla danego typu komputera i sprzętu. 4
prac w 1983 roku Berkeley wydało wydajną wersję Unixa nazwaną BSD wersja 4.2. Wersja ta zawierała wymyślny system zarządzania plikami oraz narzędzia sieciowe oparte na protokole TCP/IP, który to protokół w chwili obecnej stosowany jest w Internecie. BSD wersja 4.2 został szeroko rozpowszechniony i zaadaptowany przez wielu producentów, takich jak Sun Microsystems. Mnożenie się różnych wersji Unixa doprowadziło do zapotrzebowania na standard Unixa. Twórcy oprogramowania nie wiedzieli, na których wersjach Unixa będą działały ich programy. W połowie lat osiemdziesiątych powstały dwa konkurujące ze sobą standardy: jeden oparty na wersji Unixa AT&T, a drugi na wersji BSD. Dziś w księgarniach można znaleźć wiele różnych książek o jednej lub drugiej wersji Unixa. Jedne opisują System V, a inne skupiają się na BSD Unixie. AT&T przeniosła Unixa do nowej organizacji zwanej Unix System Laboratories, która mogła się skupić na rozwinięciu standardowego systemu, łączącego różne ważniejsze wersje Unixa. W 1991 roku Unix System Laboratories wydało System V wersja 4, który skupiał prawie wszystkie cechy Systemu V wersja 3, BSD wersja 4.3, SunOS i Xenixa. W odpowiedzi na System V wersja 4 kilka innych firm, takich jak IBM czy Hawlett-Packard, założyło Open Software Foundation (OSF), aby stworzyć swój własny standard Unixa. Od tego momentu były dwa komercyjne standardy Unixa: wersja OSF i System V wersja 4. W 1993 roku AT&T sprzedało swoje prawa do Unixa firmie Novell. Unix System Laboratories są w chwili obecnej częścią Novell UNIX System Group. Novell wydał własną wersję Unixa opartą na Systemie V wersja 4 i nazwaną UnixWare. UnixWare został stworzony z myślą o współpracy z systemem Novell Netware. W trakcie swojego długiego rozwoju Unix stał się dużym i wymagającym systemem operacyjnym, potrzebującym stacji roboczej lub minikomputera, by działać efektywnie. Niektóre wersje Unixa zostały stworzone pierwotnie dla środowiska stacji roboczych. SunOS został stworzony dla stacji roboczej Sun, a AIX dla stacji roboczych IBM. Jednak kiedy komputery osobiste stawały się coraz silniejsze, podjęto starania, by stworzyć wersję Unixa dla PC. Komercyjnymi wersjami Unixa stworzonymi dla komputerów PC kompatybilnych z IBM są Xenix i System V/386. AUX jest wersją Unixa działającą na Macintoshu. Unixa można znaleźć na prawie każdym typie komputera: stacjach roboczych, minikomputerach i nawet superkomputerach. Linux jest stworzony przede wszystkim dla komputerów osobistych wyposażonych w procesor firmy Intel. Został zapoczątkowany jako własny projekt studenta informatyki Linusa Torvaldsa z Uniwersytetu w Helsinkach. W tamtych czasach studenci korzystali z programu o nazwie Minix, który miał różne cechy Unixa. Minix został stworzony przez profesora Andrewa Tannebauma i rozpowszechniony przez Internet wśród studentów z całego świata. Zamiarem Linusa Torvaldsa było stworzenie wydajnej wersji PC Unixa dla użytkowników Minixa. Nazwał go Linux i w 1991 roku wydał wersję 0.11. Linux został szeroko rozpowszechniony przez Internet, a w następnych kilku latach inni programiści uszlachetnili i rozbudowali go, włączając większość cech i aplikacji odnajdywanych w standardowych systemach Unix. Wszystkie ważniejsze programy zarządzania oknami zostały przeniesione na Linuxa. Linux posiada wszystkie programy użytkowe dla Internetu, takie jak ftp, telnet i slip. Ma również pełny zestaw oprogramowania wspomagającego, takiego jak kompilatory i debugery C++. Mimo to system operacyjny Linux pozostał mały, stabilny i szybki. W najprostszej wersji może wydajnie pracować już na 5
4 MB pamięci RAM. Choć Linux został rozwinięty jako system darmowy i w otwartym środowisku Internetu, jest zgodny z oficjalnymi standardami unixowymi. W związku z mnożeniem się wersji Unixa w poprzednich dekadach, Institute of Electrical and Electronics Engineers (IEEE) rozwinął niezależny standard Unixa dla American National Standards Institute (ANSI). Ten nowy standard został nazwany Portable Operating System Interface for Computer Environments (POSIX). Standard definiuje, jak systemy unixowe powinny działać, określając takie szczegóły, jak wywołania systemowe i interfejsy. PO- SIX definiuje uniwersalny standard, do którego wszystkie wersje Unixa muszą należeć. Większość popularnych wersji Unixa jest w tej chwili zgodna ze standardem POSIX, natomiast Linux od początku był rozwijany tak, by był zgodny z tym standardem. 4 Linux - przegląd Podobnie jak Unix, Linux może być podzielony na cztery główne części: jądro, powłokę, system plików i programy użytkowe. Jądro jest programem, który uruchamia inne programy i zarządza urządzeniami, takimi jak dyski czy drukarki. Powłoką jest interfejsem użytkownika. Odbiera polecenia wydawane przez użytkownika i wysyła je do jądra w celu wykonania. System plików określa porządek, w jakim pliki są zachowane na urządzeniu takim jak dysk. Pliki są umieszczone w katalogach. Każdy katalog może zawierać dowolną liczbę podkatalogów, w których przechowywane są pliki. Jądro, powłoka i system plików stanowią razem podstawową strukturę systemu operacyjnego. Dzięki tym trzem elementom możliwe jest uruchamianie programów, zarządzanie plikami i współdziałanie z systemem. Ponadto Linux ma programy użytkowe, które zostały dołączone po to, by zapewnić standardowe cechy systemu. Programy użytkowe są specjalizowanymi programami, takimi jak edytory, kompilatory i programy komunikacyjne, które wykonują standardowe operacje. 4.1 Powłoki: Bourne a, Korna i C Powłoka zapewnia interfejs pomiędzy jądrem i użytkownikiem. Można ją opisać jako interpreter, ponieważ interpretuje polecenia wprowadzane przez użytkownika i przekazuje je do jądra. Interfejs powłoki jest bardzo prosty. Zwykle składa się z monitu, po którym wprowadza się polecenie i następnie wciska [ENTER]. Polecenie podaje się w wierszu, który jest często nazywany wierszem poleceń. Polecenia wprowadzane w wierszu poleceń mogą mieć różny stopień złożoności - od prostych do bardzo skomplikowanych. Jako alternatywę dla interfejsu wiersza poleceń Linux oferuje interfejs graficzny użytkownika (GUI - Graphics User Interface), zwany X-Windows, i mający kilka okienkowych programów zarządzania. Okienkowy program zarządzania działa tak jak interfejs graficzny Windows czy Macintosha. Składa się on z okien, ikon i menu, a wszystko jest zarządzane z użyciem myszy. Dwa najbardziej popularne dzisiaj okienkowe programy zarządzania to KDE i Gnome. Prócz nich istnieją inne, takie jak np. Free Virtual Window Manager (fvwm) i Open-Look window manager (olwm). Dostępny jest również Motif window manager, ale jest to produkt komercyjny, który trzeba nabyć oddzielnie. 6
Rys. 1. Jądro, powłoka i interfejs użytkownika Poza okienkowymi programami zarządzania istnieją również programy do zarządzania plikami i programami. Dostępnych jest kilka różnych programów zarządzających, a wielu sprzedawców Linuxa udostępnia własne. Na przykład Caldera Network Desktop dostarcza wymyślny manager plików i programów, co pozwala na proste operowanie ikonami i folderami katalogów. Mimo że okienkowy program zarządzania jest elastycznym i zaawansowanym interfejsem, jest on w istocie nakładką na powłokę. Okienkowy program zarządzania po prostu przekazuje otrzymywane polecenia powłoce. W rzeczywistości to powłoka interpretuje polecenie i przekazuje je do jądra. Na rysunku 1 pokazano związek powłoki i jądra oraz pozostałe elementy systemu. Powłoka robi więcej, niż tylko interpretowanie poleceń - udostępnia środowisko do konfigurowania systemu i programowania. Powłoka ma również swój własny język programowania, który pozwala na pisanie programów wykonujących polecenia Linuxa w skomplikowany sposób. Język programowania powłoki ma wiele cech normalnych języków programowania, na przykład pętle i odgałęzienia. Można stworzyć skomplikowane programy powłoki, które są tak wydajne jak aplikacje. Każdy użytkownik w systemie Linux ma swój własny interfejs lub powłokę. Użytkownicy mogą wykorzystywać swoją powłokę na własne potrzeby. Powłoka użytkownika działa bardziej jak środowisko operacyjne, którym użytkownik może sterować. Przez lata rozwinięto kilka różnych rodzajów powłok. Aktualnie istnieją trzy główne powłoki: Bourne a, Korna i C. Powłoka Bourne a została stworzona w Bell Labs na potrzeby Systemu V. Powłoka C została stworzona dla wersji BSD Unixa. Powłoka Korna jest późniejszym 7
rozwinięciem powłoki Bourne a. Aktualne wersje Unixa, włącznie z Linuxem, udostępniają wszystkie trzy powłoki, pozwalając użytkownikowi wybrać tę, którą lubi. Jednak Linux korzysta z wersji rozszerzonych lub public domain tych powłok: powłoki Bourne Again, powłoki TC i powłoki Public Domain Korn. Najczęsciej, kiedy uruchamiasz Linuxa, dostajesz powłokę Bourne Again, uaktualnioną wersję powłoki Bourne a. Z niej możesz przełączać się na inne powłoki wedle potrzeby. 4.2 Struktura plików: katalogi i pliki W Linuxie pliki są umieszczane w katalogach, podobnie jak ma to miejsce w DOSie. Jednak masz w nim większą kontrolę nad plikami. Cały system plików Linuxa jest jednym powiązanym ze sobą zbiorem katalogów, z których każdy zawiera pliki. Niektóre katalogi są standardowymi katalogami zarezerwowanymi do użytku przez system. Możesz tworzyć własne katalogi dla własnych plików równie prosto, jak przenosić pliki z jednego katalogu do drugiego. Możesz nawet przenieść całe drzewo katalogów i uwspólnić katalogi i pliki z innymi użytkownikami systemu. Linux pozwala również na ustawianie praw dostępu dla katalogów i plików. Rys. 2. Struktura katalogów i plików w Linuxie Katalogi każdego użytkownika są w rzeczywistości połączone z katalogami pozostałych użytkowników. Katalogi są ułożone w strukturę hierarchiczną drzewa, rozpoczynając od początkowego katalogu głównego (ang. root directory). Wszystkie pozostałe katalogi wychodzą od tego pierwszego katalogu głównego. Na rysunku 2 pokazano przykład takiej drzewiastej, hierarchicznej struktury katalogów. Możesz przemieszczać się w 8
systemie, wchodząc do katalogu, który jest dla Ciebie dostępny. To wzajemne powiązanie w strukturze plików umożliwia proste udostępnianie danych. Niektórzy użytkownicy mogą korzystać z tych samych plików. Linux jest systemem wielodostępnym, co oznacza, że kilku użytkowników może korzystać jednocześnie z tego samego systemu operacyjnego. Sam system operacyjny złożony jest z programów umieszczonych w specjalnych katalogach rozpoczynających się od katalogu głównego. Katalogi te są nazywane emphkatalogami systemowymi.na rysunku 2 katalogi systemowe są tymi poniżej katalogu głównego: etc, bin, usr i home 4. 4.3 Programy użytkowe: edytory, filtry i programy komunikacyjne Linux zawiera wiele programów użytkowych. Niektóre programy użytkowe wykonują proste operacje, inne są skomplikowanymi programami z własnym zestawem poleceń. Wiele z programów użytkowych można zaklasyfikować do jednej z trzech kategorii ogólnych: edytory, filtry i programy komunikacyjne. Oczywiście, nie wszystkie programy użytkowe pasują do tych kategorii. Istnieją również programy użytkowe wykonujące operacje na plikach lub zarządzające programami. Istnieje kilka standardowych edytorów dostępnych we wszystkich wersjach Unixa, włącznie z Linuxem: ed, ex, vi i emacs. Ed i ex to edytory wierszowe, natomiast vi i emacs to edytory pełnoekranowe. Wszystkie standardowe edytory zostały stworzone dla starszych, mniej wydajnych komputerów, które nie były w stanie obsługiwać pełnoekranowego ruchu kursora. Mimo że vi i emacs mają możliwość pracy pełnoekranowej, nie jest ona tak płynna i prosta, jak ma to miejsce w wielu obsługiwanych myszą procesorach tekstu. Ed i ex są edytorami wierszowymi wyświetlającymi i edytującymi tylko jeden wiersz. Nawet przy tych ograniczeniach edytory te są niezwykle efektywne. Mają ogromny zestaw poleceń, które mogą być łączone w celu wykonywania skomplikowanych operacji. Kolejny zestaw programów użytkowych to filtry. Filtr czyta, dane wejściowe przekazane przez użytkownika z pliku lub innego źródła, sprawdza i przetwarza, a następnie wyprowadza wynik. Istnieje wiele różnych typów filtrów. Niektóre wykorzystują polecenia edycji wiersza do wyprowadzenia przetworzonej wersji pliku. Inne przeszukują plik w poszukiwaniu wzorca i wyprowadzają tylko tę część danych, która pasuje do wzorca. Jeszcze inne wykonują operacje przetwarzania tekstu, wykrywając polecenia formatujące w pliku i wyprowadzając sformatowaną wersję pliku. Dane wejściowe dla filtru nie muszą być plikiem. Mogą to być dane wprowadzane przez użytkownika z klawiatury. Może to być również wynik działania innego filtru. Filtry mogą być łączone ze sobą, przez co wynik działania jednego filtru może stać się danymi wejściowymi dla innego filtru i tak dalej. Istnieje nawet możliwość programowania własnych filtrów. Linux zawiera również zestaw programów użytkowych pozwalających na komunikowanie się z innymi użytkownikami własnego systemu lub innych systemów. Jako system wielodostępny, Linux musi zapewniać kontakt pomiędzy wszystkimi użytkownikami. Podstawowa potrzeba monitorowania i podstawowa cecha współdzielenia struktury plików powodują, iż system poczty elektronicznej jest prosty w implementacji. Istnieje 4 Istnieje wiele innych katalogów systemowych, których struktura i przeznaczenie może byc nieco inne w róznych odmianach Unixa. 9
możliwość wysyłania i odbierania wiadomości pomiędzy użytkownikami systemu. Możesz nawet wysłać wiadomość rozgłoszeniową do kilku osób jednocześnie lub bezpośrednio połączyć się z innym użytkownikiem i nawiązać dialog w czasie rzeczywistym. Jedną z najważniejszych cech Linuxa, jak i innych systemów Unix, jest zestaw narzędzi internetowych. Internet został stworzony i rozwinięty na bazie systemów unixowych. Narzędzia internetowe, takie jak ftp i telnet, po raz pierwszy zostały zaimplementowane w wersji Unixa BSD. Darpanet, prekursor Internetu, miał za zadanie łączyć systemy Unix różnych uniwersytetów w całym kraju. Linux zawiera pełny zestaw narzędzi internetowych oraz takich, które zapewniają bezpośrednią łączność z Internetem, jak np. slip. Przeglądarki WWW, takie jak Mosaic, które zostały pierwotnie stworzone do używania w Unixie, także są dostępne w Linuxie. Niektórzy sprzedawcy Linuxa udostępniają własne przeglądarki WWW. W ostatnich latach został podjęty wysiłek rozszerzenia możliwości sieciowych Unixa. Novell pracował nad połączeniem UnixWare (swojej własnej wersji Unixa) z systemem Netware. Dystrybutor Linuxa RedHat rozszerzył Linuxa tak, by łatwiej było go łączyć z protokołami sieciowymi. Linux może dzisiaj w prosty sposób współpracować z Novell, Microsoft Networks i innymi serwerami sieciowymi, co pozwala na podłączanie systemów linuxowych do sieci. 5 Linux i źródła informacji w Internecie Linux został rozwinięty wspólnym wysiłkiem przez Internet. Żadna firma czy instytucja nie nadzoruje Linuxa. Rozwój jego elementów często ma miejsce wtedy, gdy użytkownicy Linuxa zdecydują się pracować wspólnie nad projektem. Skończona praca jest umieszczana na serwerze ftp w Internecie. Każdy użytkownik Linuxa może sobie ją stamtąd skopiować. Jednym z głównych serwerów ftp zawierających zarówno oprogramowanie, jak i dokumentację dla Linuxa, jest ftp.ibiblio.org 5 w katalogu /pub/linux. Polskim odpowiednikiem jest serwer ftp.icm.edu.pl i katalog /pub/linux. W dodatku na końcu opracowania, umieszczono adresy różnych serwerów WWW i ftp, z których można pobrać Linuxa, jego uaktualnienia oraz dokumentację. Większość oprogramowania dla Linuxa jest zastrzeżona przez licencję GNU, zarządzaną przez Free Software Foundation (często nazywa się je oprogramowaniem GNU). Oprogramowanie GNU jest rozpowszechniane za darmo z zastrzeżeniem, że będzie za darmo rozpowszechniane dalej. Aplikacje GNU zawierają wiele popularnych w Linuxie programów narzędziowych, takich jak kompilatory C, powłoki i edytory. Wiele innych aplikacji GNU jest dostępnych na różnych serwerach ftp w Internecie. Ostatnio więksi producenci oprogramowania również rozwijają linuxowe wersje swoich najpopularniejszych aplikacji. Dokumentacja dla Linuxa została również rozwinięta poprzez Internet. Większość aktualnie dostępnej dokumentacji dla Linuxa może być skopiowana z serwerów WWW i ftp w Internecie. Specjalny projekt, zwany Linux Documentation Project udostępnia pełny zestaw podręczników dla Linuxa na serwerze www.tldp.org. Dokumentacja zawiera przewodnik użytkownika, wstęp, przewodniki administratora i jest dostępna w postaci tekstowej, postscriptowej lub w postaci strony WWW. Krótsze wyjaśnienia możesz zna- 5 Kiedyś sunsite.unc.edu 10
leźć w tak zwanych dokumentach HOW-TO. Istnieją dokumenty HOW-TO dotyczące różnych tematów, takich jak instalacja, drukowanie czy poczta elektroniczna. Również wiele firm ma własne serwery WWW, na których umieszczono informacje o ich aplikacjach dla Linuxa. Uzupełnieniem serwerów WWW i ftp są listy dyskusyjne Usenet dotyczące Linuxa. Przez połączenie internetowe możesz mieć dostęp do tych list i komentarzy innych użytkowników Linuxa, a także mieć możliwość wysyłania własnych zapytań i odpowiedzi. Istnieje kilka grup dyskusyjnych Usenet dotyczących Linuxa, każda zaczyna się od comp.os.linux lub pl.comp.os.linux. 6 Dystrybucje Linuxa Chociaż istnieje tylko jedna standardowa wersja Linuxa, obecnie jest kilka różnych dystrybucji. Różne firmy i grupy stworzyły różne komplety Linuxa i oprogramowania dla niego. Każda firma czy grupa wydała następnie swój własny pakiet Linuxa na płytach CD-ROM, najczęsciej wraz z bogatą dokumentacją. Ostatnie wydania mogą zawierać uaktualnione wersje programów lub nowe oprogramowanie. Do bardziej popularnych dystrybucji należą RadHat, Mandrake, SuSE, Slackware i Debian. Ze stron WWW tych firm lub ich serwerów ftp, możliwe jest często pobranie obrazów płyt CD z aktualnymi wersjami dystrybycji (w formacie.iso). Na tychże stronach umieszczona jest również dokumentacja dotycząca konkretnej dystrybucji Linuxa. W większości, firmy zajmujące się dystrybucją Linuxa, oferują swoje pakiety oprogramowania w sprzedaży (np. poprzez Internet). Płaci się tutaj nie za Linuxa, który jest przecież objęty licencją GNU, ale za zebranie oprogramowania, nośniki, książkową dokumentację oraz serwis, do którego jest się uprawnionym po zakupie. Niniejsze opracowanie powstało w oparciu o książkę Richarda Petersena: Arkana - Linux 11
A Linux w Internecie Dystrybucje Linuxa: www.redhat.com www.mandrake.com www.suse.com www.debian.com www.debian.com www.pld.com.pl Linux na świecie: www.linux.org www.linux.com www.kernel.org Linux w Polsce: www.linuxfan.pl www.linux.gery.pl www.linuxpub.pl www.linuxnews.pl Archiwa ftp: ftp.ibiblio.org/pub/linux ftp.icm.edu.pl/pub/linux 12
Literatura [1] Mario Camou, John Goerzen, Aaron Van Couwenberghe: Debian Linux. Księga Eksperta, Helion, 2001. [2] Bill Ball: Caldera Linux 2.3, Helion, 2000. [3] Bill Ball: Linux, Helion, 1998. [4] Bill Ball: Poznaj Linux, Mikom, 1999. [5] Bill Ball: SuSE Linux 6.2-7.0, Helion, 2001. [6] Harold Davis: Po prostu Red Hat Linux 7.2, Helion, 2002. [7] Scott Hawkins: Linux. Polecenia, Robomatic, 2000. [8] Bill McCarty, Bartłomiej Kruk: Debian GNU/Linux, Helion, 2002. [9] Bill McCarty: Red Hat Linux, RM, 2000. [10] Jerzy Marczyński: Unix - użytkowanie i administrowanie, Helion, 1995. [11] Jerry Peek, Grace Todino, John Strang: UNIX. Wprowadzenie, RM, 2002. [12] Richard Petersen: Arkana - Linux, RM, 1997. [13] Ellen Siever: Linux - podręcznik użytkonika, RM, 1999. [14] Stefan Strobel, Thomas Uhl: Linux, WNT, 1997. [15] Matt Welsh, Matthias K. Dalheimer, Lar Kaufman: Linux, RM. 13