01 1 (2)








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 101
r11 01
2570 01
introligators4[02] z2 01 n
Biuletyn 01 12 2014
beetelvoiceXL?? 01
01
2007 01 Web Building the Aptana Free Developer Environment for Ajax
9 01 07 drzewa binarne
01 In der Vergangenheit ein geteiltes Land Lehrerkommentar
L Sprague De Camp Novaria 01 The Fallible Fiend
tam 01 c4yf3aey7qcte73qcpk4awpowae4en5ggim26ti
01 Przedmowa

więcej podobnych podstron