Linux Alchemy
Linux
Alchemy
Historia
systemu Linux
Linux zaczął powstawać w 1991 roku. W wtedy to, jego autor Linus Torvalds
rozpoczął eksperymenty z systemem operacyjnym Minix. System ten pracował na
komputerach z procesorem i80286. Informacje o pracy Linusa, opublikowane przez
niego na liście dyskusyjnej spotkały się z dużym zainteresowaniem i wkrótce
nad Linuxem pracowała grupa ludzi. Znacznie przyspieszyło to rozwój systemu
nazwanego później Linux. Im bardziej system ten stawał się popularny, tym więcej
ludzi wspierało jego rozwój. Proces ten trwa do dziś, a liczbę użytkowników
Linuxa szacuje się obecnie na ponad 10 milionów.
Ogólne
informacje o systemie
Obecnie, system jest już bardzo
rozwinięty, uznany jest za stabilną platformę Unixową. Pod względem szybkości
dorównuje wielu komercyjnym systemom Unixowym, tworzonym od kilkunastu lub więcej
lat, a niektóre z nich nawet przewyższa szybkością. Wśród fachowców Linux
uchodzi za system lepszy pod względem szybkości, efektywności, stabilności i
co ważne w zastosowaniach Internetowych - bezpieczeństwa od
Windows NT.
Dystrybucje
Linux jako jądro systemu jest jednakowy dla wszystkich (z dokładnością do
wersji), natomiast Linux oraz towarzyszÄ…ce mu oprogramowanie nazywane jest
dystrybucją. Różne firmy i organizacje zajmują się sprzedawaniem Linuxa i
wiele z nich opracowało własne dystrybucje. Wyróżniamy generalnie dwa
rodzaje dystrybucji: komercyjne i niekomercyjne. Komercyjne (jak np. RedHat,
Caldera) zawierają oprócz oprogramowania darmowego (GNU, FreeWare) lub częściowo
darmowego (Shareware) także komercyjne oprogramowanie, jak np. pakiety typu
office, wydajne X serwery ze wsparciem dla najnowszego sprzętu, przeglądarki
internetowe, narzędzia programistyczne etc. Takie dystrybucje kosztują od
kilkudziesięciu do kilkuset dolarów. Ale są też dystrybucje niekomercyjne
jak np. Debian, Slackware tworzone przez ochotników lub dystrybutorów
darmowego oprogramowania. Także firmy wypuszczają wersje Linuxa nie zawierające
oprogramowania komercyjnego. Takie dystrybucje kosztujÄ… zazwyczaj od kilku do
kilkunastu dolarów. Jedna dystrybucja zajmuje od jednego do kilku CD-ROMów.
Numeracja
wersji jÄ…dra
Początkowa wersja jądra Linuxa miała numer 0.02. Po dwóch latach pracy
Linusa i jego pomocników powstała wersja 0.99 nastęnie 1.0 i tak aż do
1.2.13. Następna wersja jądra, miała już numer 2, gdyż była przełomowa w
rozwoju tego systemu.
Numeracja jądra Linuxa jest nieprzypadkowa. Numer składa się z trzech częci:
x.y.z. gdzie:
·
x to
numer wersji (major version number)
·
y to
numer podwesji (minor version number)
·
z to
numer rewizji (revision version number)
Wieloplatformowość
Linux, a wraz z nim prawie całe dostępne na niego oprogramowanie, jest dostępne
i rozwijane na wielu platformach sprzętowych. Procesory na których obecnie można
uruchomić Linuxa to:
·
i386 oraz
lepsze (obejmuje procesory Intela i386, i486, Pentium, Pentium MMX, Pentium Pro,
Pentium II) a także procesory kompatybilne z nimi, firm takich jak AMD, Cyrix i
inne.
·
Alpha
·
MIPS
(Silicon Graphics Indy)
·
Motorola
68k (czyli komputery Amiga, Atari TT, Atari Falcon i ich klony)
·
PowerPC
·
Sparc i
UltraSparc
·
HP
PA-RISC
·
Eksperymenty
prowadzone sÄ… np. z uruchamianiem Linuxa na konsolach do gier firmy Nintendo
:-)
·
Również
eksperymentalnie uruchamia siÄ™ okrojonÄ… wersjÄ™ Linuxa na procesorach 80286
(procesor ten nie umożliwia ochrony pamięci)
Moduły
W rozwoju wielu systemów operacyjnych daje się zauważyć trend ku
zmniejszaniu jądra systemu, poprzez usuwanie z niego rzeczy, które nie są tam
niezbędne. W przypadku Linuxa proces ten ma odzwierciedlenie w mechanizmie modułów.
To, co można zmodularyzować, to przykładowo sterowniki sprzętu, interfejsy
do innych systemów plików, loadery programów w innych formatach. Umieszczenie
części kodu w module powoduje, że kod ten będzie ładowany w razie potrzeby
i po pewnym czasie nie używania - usuwany z pamięci. Ponieważ pamięć
zaalokowana przez jądro nie podlega stronicowaniu, jest to jedyny sposób na
zwolnienie pamięci. Z używania modułów płyną też inne korzyści:
·
błąd w
module (np. niedawno stworzonym i nie przetestowanym) nie powoduje zawieszenia
systemu, a jedynie usunięcie modułu z pamięci;
·
można używać
kolidujących ze sobą sterowników bez konieczności restartowania systemu,
jedynie zmieniając moduły;
·
system
nie musi być obciążony detekcją sprzętu, która wykonywana jest przez zewnętrzny
program, współpracujący z modułami;
·
jÄ…dro
nie musi przechowywać sterowników wszystkich urządzeń, które mogą być dołączone
do komputera "na gorÄ…co", np. w notebookach;
·
programista
może wygodnie testować różne wersje sterowników nad którymi pracuje;
Współpraca
z innymi systemami
Linux potrafi współpracować z wieloma systemami na wiele sposobów.
Sieciowo, m.in.:
·
Może być
serwerem internetowym/intranetowym dla komputerów pracujących pod dowolnym
systemem operacyjnym;
·
Może
emulować Novell Netware w zakresie udostępniania klientom Netware plików i
drukarek;
·
Może być
klientem Netware;
·
Może być
serwerem plików i drukarek dla Windows 3.11/95/NT poprzez protokół SMB;
·
Może być
również klientem Windows;
·
Może współpracować
z Macintoshami i ich drukarkami poprzez protokół AppleTalk;
Wewnętrznie,
m.in.:
·
Może
bezpośrednio uruchamiać programy napisane w Javie;
·
Może
uruchamiać programy skompilowane w standardzie iBCS (np. Oracle 7 działa,
jakkolwiek producent nie oferuje wsparcia);
·
IstniejÄ…
działające emulatory systemu DOS (np. DOSEMU);
·
IstniejÄ…
działające emulatory systemu Windows (np. Wine, Wabi);
·
Istnieje
działający emulator Macintosha (Executor);
·
Potrafi
obsługiwać partycje innych systemów: FAT, FAT32, VFAT, NTFS (na razie tylko
odczyt) i jeszcze kilkanaście innych;
Kompilacja
jÄ…dra
Sprawdzenie
i ustawienia zależności między plikami:
#
make dep
JÄ…dro
do instalacji na dysku
#
make zImage
Gdy
jądro jest za duże
#
make bzImage
Instalacja
modułów
#
make modules
Kompilacja
#
make modules_install
Skompilowane jÄ…dro znajduje siÄ™ w katalogu:
/usr/src/linux/arch/i386/boot/zImage
Zmiana ustawien pod
nowy obraz kernela w Linux Loaderze
/etc/lilo.conf
image=/boot/nazwa_nowego_jÄ…dra
label=nowe_jÄ…dro
root=/dev/hdXX
read-only
Pliki
konfiguracyjne z katalogu /etc
/etc/bashrc
Plik
zawiera ustawienia niektórych zmiennych środowiskowych oraz synonimów wspólnych
dla wszystkich użytkowników.
/etc/crontab
Ten
plik zawiera instrukcje dla demona cron służącego do uruchamiania różnych
programów o ściśle określonych porach np. co piątek o północy.
Najpierw
ustawiane są potrzebne zmienne, takie jak ścieżka interpretatora poleceń
(SHELL), który ma być użyty do wykonania podanych dalej programów, ścieżki
dostępu do tych programów (PATH), ewentualnie także nazwa użytkownika, do którego
ma być wysyłana poczta będąca wynikiem wykonania podanych poleceń (MAILTO).
Następne linie opisują kiedy i jakie programy powinny być uruchamiane. Format
jest następujący:
minuty godzina dzień_miesiąca miesiąc dzień_tygodnia
program_do_wykonania
przy
czym znak '*' oznacza wykonanie o każdej dozwolonej wartości dla danego pola.
Np.
linia : " 30 2 * 12 7 /bin/fsck " oznacza że program fsck będzie
uruchamiany o godz. 2.30 w każdą niedzielę grudnia.
/etc/default/useradd
Plik
zawiera ustawienia domyślnych wartości dla programu useradd, są one pobierane
gdy nie poda się samemu niektórych parametrów, np. ścieżki interpretatora
poleceń.
/etc/fstab
Plik
zawiera statyczne informacje o różnych systemach plików przyłączonych do
systemu. Jest on czytany przez programy ale nie zmieniany. Administrator systemu
powinien dbać o uaktualnianie informacji zawartych tutaj. Każda linia ma postać:
s_block_dev mount_point fstype mntops freq passno
Kolejne
pola w każdej linii oznaczają:
s_block_dev
- specjalne urządzenie blokowe lub zdalny system plików, który ma zostać
przyłączony.
mount_point
- punkt przyłączenia danego systemu plików w drzewie katalogów.
fstype
- typ systemu plików, np. ext2 albo msdos.
mntops
- opcje używane przy przyłączaniu danego systemu plików.
freq
- parametr używany przez komendę dump.
passno
- parametr używany przez program fsck do ustalenia kolejności sprawdzania
systemów plików.
przykład:
/dev/hda1
/drives/ msdos 0 0 0
mówi
że twardy dysk hda1 będzie przyłączany w katalofu /drives i nie będzie
zrzucany ani sprawdzany przez progam fsck.
/etc/gettydefs
Plik
zawiera informacje używane przez program getty do ustawienia parametrów i
szybkości terminali, a także informacje o wyglądzie linii zachęty przy
rejestrowaniu się do systemu na danym terminalu. Dane są podawane następująco:
etykieta # parametry inicjalne # parametry końcowe # linia zachęty #
następna etykieta
gdzie
etykieta oznacza słowo, które jest porównywane z drugim argumentem gtty,
natomiast następna etykieta identyfikuje terminal, który powinien być użyty
przez gtty gdy użytkownik wciśnie <break> lub gdy nie da się
czytać
z wejścia.
/etc/group
Plik
zawiera informacje o grupach użytkowników w systemie. Każda linia jest
formatu:
identyfikator_grupy : zaszyfrowane_hasło : numer_grupy : lista_użytkowników
Jeśli
pole hasło jest puste oznacza to, że żadne dodatkowe hasło nie jest
potrzebne.
Przykład:
users::501:witek,kamil,dorota
/etc/inittab
Plik
opisuje co proces INIT powinien uruchamiać gdy system przechodzi na poszczególne
poziomy startu. Linie mają postać:
identyfikator : poziomy_startu : akcja : proces
'Identyfikator'
jest sekwencją max. do czterech znaków identyfikującą dane wejście w tym
pliku.
'Poziomy_startu'
podają listę poziomów, przy przejściu na które ma być uruchamiany dany
proces.
'Akcja'
opisuje akcję, która ma zostać podjęta, a 'proces' specyfikuje proces do
uruchomienia.
Przykład:
si::sysinit:/etc/rc.d/rc.sysinit
oznacza,
że przy inicjalizacji systemu uruchomiony będzie program /etc/rc.d/rc.sysinit.
/etc/issue
Plik
ten zawiera tekst wyświetlany przed linią zachęty w momencie rejestrowania się
do systemu. Zazwyczaj nie edytuje się go bezpośrednio tylko wypełnia w pliku
/etc/rc.d/rc.local .
/etc/motd
Zawartość
tego pliku jest wyświetlana zaraz po udanym zarejestrowaniu się do systemu
przed uruchomieniem interpretatora poleceń.
/etc/mtab
Plik
zawiera dane o aktualnie przyłączonych systemach plików. Są to wiadomości
zmieniane dynamicznie przez komendy mount i unmount. Format danych jest taki sam
jak w pliku /etc/fstab.
/etc/nologin
Obecność
tego pliku sprawia, że jedynie administrator może zostać wpuszczony do
systemu. Gdy ktoś inny spróbuje się zarejestrować zostanie mu wyświetlona
zawartość tego pliku i operacja zakończy się niepowodzeniem.
/etc/passwd
Plik
zawierający dane o użytkownikach systemu i ich hasłach. Informacja jest
podana następująco:
identyfikator : zaszyfrowane_hasło : numer_użytkownika : numer_grupy :
katalog_domowy : interpretator_poleceń
Hasła
są podane w postaci zaszyfrowanej, zaś znak '*' w miejscu hasła oznacza, że
ten użytkownik nie może zarejestrować się do systemu poprzez proces login.
Przykład:
witek:34s#$2gr*gf:505:501:/home/witek/:/bin/bash
Ze
względu na bezpieczeństwo zaszyfrowane hasła mogą być umieszczane w pliku
/etc/shadow, z prawami do czytania tylko dla administratora systemu, wówczas w
pliku /etc/passwd w ich miejsce umieszcza siÄ™ '*'.
/etc/profile
Plik
zawiera ustawienia zmiennych środowiskowych przy starcie systemu.
/etc/rc.d/init.d/
Katalog
zawierający skrypty uruchamiające i zatrzymujące poszczególne serwisy i
demony podczas przejść pomiędzy różnymi poziomami startu.
/etc/rc.d/rc
Skrypt
wykonywany przy zmianie poziomu startu systemu. Uruchamia wszystkie skrypty z
odpowiedniego katalogu /etc/rc.d/rcX.d, podając im parametr w zależności od
pierwszej litery w nazwie dowiązania: S oznacza, że skrypt ma uruchomić dany
serwis lub demona, zaś K znaczy, że serwis ten należy zamknąć.
/etc/rc.d/rcX.d/
Katalogi
zawierające dowiązania do tych skryptów z katalogu /etc/rc.d/init.d/, które
mają zostać uruchomione bąd? zatrzymane przy przejściu na konkretny poziom
startu systemu. X oznacza numer poziomu startu.
/etc/rc.d/rc.local
Skrypt
wykonywany jako ostatni przy starcie systemu. Może uruchamiać różne
dodatkowe procesy, poza tym zazwyczaj wypełnia na nowo plik /etc/issue.
/etc/rc.d/rc.sysinit
Skrypt
uruchamiany jedynie przy starcie systemu. Zawiera podstawowÄ… inicjalizacjÄ™
systemu, taką jak przyłączanie lokalnych i systemowych partycji, włączanie
ograniczeń dla użytkowników, ustawienie zegara systemowego czy załadowanie
modulów systemu.
/etc/securetty
Plik
zawierający nazwy terminali, z których administrator może się rejestrować
do systemu.
/etc/shells
Plik
zawierający pełne ścieżki dostępu do interpretatorów poleceń dostępnych
w systemie.
/etc/syslog.conf
Plik
konfiguracyjny programu syslogd podający gdzie mają być kierowane informacje
z różnych części systemu i demonów działających w tym systemie.
W
linii podane jest najpierw skąd i o jakim priorytecie informacje maja być
zapisywane, po czym podana jest pełna ścieżka do pliku, w którym te
informacje mają zostać zgromadzone. Zamiast ścieżki do pliku może tu być
ewentualnie podany adres innego komputera lub identyfikator użytkownika, który
miałby te informacje otrzymywać.
Konfiguracja
serwera Apatche
Konfiguracja
Standardowo pliki konfiguracyjne znajdujÄ… siÄ™ w katalogu conf:
-rw-r--r-- 1 129
kmem
1671 Jul 3 1996
access.conf-dist
-rw-r--r-- 1 129
kmem
5657 Jun 7 1996
httpd.conf-dist
-rw-r--r-- 1 129
kmem
2405 Jun 8 1996
mime.types
-rw-r--r-- 1 129
kmem
6914 Jun 13 1996 srm.conf-dist
Pliki
zawierają zbędną końcówkę -dist (ale warto je zachować, a poprawek
dokonywać w ich kopiach).
$ cp access.conf-dist access.conf
$ cp httpd.conf-dist httpd.conf
$ cp srm.conf-dist srm.conf
Główny
plik konfiguracyjny - httpd.conf. W pliku tym zmiany wymaga tylko jedna linijka:
ServerAdmin you@your.address
Tu
należy wpisać adres osoby zajmującej się serwerem; jest on wyświetlany
czasem przy komunikatach o błędach. Pozostałe pliki można na razie pozostawić
bez zmian (bądź w miarę potrzeb dokonać odpowiednich zmian). Aby móc
uruchomić serwer potrzebne są dokumenty HTML, które standardowo umieszcza się
w katalogu htdocs w głównym katalogu Apache'a.
Uruchomienie
Do
uruchomienia Apache'a potrzebne są uprawnienia roota (serwer WWW oczekuje połączeń
na porcie 80, a to wolno tylko programom uruchomionym przez roota). Zamiast
logować się na konto roota, można użyć polecenia sudo:
$ sudo /usr/local/etc/httpd/src/httpd
Teraz pozostaje tylko przetestować działający serwer. Jeśli komputer jest
podłączony do sieci, wystarczy w dowolnej przeglądarce wpisać adres URL:
http://adres.naszego.komputera
Na zakończenie warto dopisać odpowiednie polecenie do skryptów startowych
Linuxa, aby Apache uruchamiał się przy każdym starcie systemu. W przypadku
Slackware'a należy dopisać do pliku /etc/rc.d/rc.inet2 przed zakończeniem
pliku następujące komendy:
# Start the Apache httpd server.
+ to jest dopisane
if [ -f /usr/local/etc/httpd/src/httpd ]
+
then
+
echo -n " httpd"
+
/usr/local/etc/httpd/src/httpd
+
fi
echo
- te linijki były
# Done!
- na końcu pliku
W
przypadku innych dystrybucji (RedHat, Debian) pewnie będzie to inny plik. Po
następnym starcie Apache będzie gotów do pracy...
Konfiguracja
resolvera
W
pliku /etc/resolv.conf należy wpisać minimum dwa wiersze informacji (każdy
zaczyna się od słowa kluczowego):
nameserver
po
którym podaje się adres IP komputera, na którym uruchomiany jest program
named (może być więcej niż jeden wiersz deklarujący kolejne serwery),
domain
po
którym podajemy nazwę domniemanej domeny w której pracuje komputer; nazwa ta
będzie dodawana do wszystkich nazw komputerów, które nie są zakończone
kropkÄ… .
Różne
implementacje procedur resolvera pozwalają na wpisywanie różnych dodatkowych
informacji. Należy zwrócić uwagę, że resolver
to nie jest program, a raczej zestaw (biblioteka) podprogramów zawierający
funkcje pozwalające na translację adresów symbolicznych na numerycznie i
odwrotnie. Resolver może w swojej pracy (w zależności od konfiguracji)
korzystać z różnych źródeł informacji:
·
pliku
/etc/hosts,
·
systemów
NIS lub NIS+ (Network Information System) - zwany również pod nazwą yellow
pages,
·
nameserwera,
(bardzo
często w różnej kolejności i różnej konfiguracji).
Konfiguracja
demona
named
W przeciwieństwie do konfiguracji resolvera, konfiguracja
nameda odbywa się w kilku plikach. Pełny zbiór plików konfiguracyjnych to :
named.boot
zawiera ogólne parametry programu named oraz wskazuje źródło informacji,
z których budowana jest baza danych serwera.
named.ca
wskazuje na serwery domeny głównej
named.local
wykorzystywany przy translacji adresu pętli.
named.rev
plik strefy domeny odwrotnej, przyporządkowujący adresom IP nazwy hostów
named.hosts
plik strefy, przyporządkowujący nazwom hostów adresy IP
Wyszukiwarka
Podobne podstrony:
t informatyk12[01] 02 101r11 012570 01introligators4[02] z2 01 nBiuletyn 01 12 2014beetelvoiceXL?? 01012007 01 Web Building the Aptana Free Developer Environment for Ajax9 01 07 drzewa binarne01 In der Vergangenheit ein geteiltes Land LehrerkommentarL Sprague De Camp Novaria 01 The Fallible Fiendtam 01 c4yf3aey7qcte73qcpk4awpowae4en5ggim26ti01 Przedmowawięcej podobnych podstron