Ocenite etot tekst:



     Origin: http://www.linux.org.ru/books/
 From: Ultracom 
====================================================================
                                                          Versiya 0.3
                                                         Avgust 1995





   Lars Virzhenius (Lars Wirzenius)





.
                                - 2 -

Soderzhanie

Glava 1  Vvedenie                                                    4
1.1    Proekt Dokumentirovaniya Sistemy Linux                         6
Glava 2  Obzor Sistemy Linux                                         8
2.1  Razlichnye sostavlyayushchie operacionnoj sistemy                     8
2.2   Vazhnye sostavlyayushchie yadra                                       9
2.3   Osnovnye funkcii UNIX sistemy                                 10
2.3.1  init                                                         10
2.3.2  Podklyuchenie k sisteme s terminalov                           11
2.3.3  Syslog                                                       11
2.3.4  Periodicheskoe vypolnenie komand:  cron  i  at                11
2.3.5  Graficheskij interfejs pol'zovatelya                           12
2.3.6  Rabota s set'yu                                               12
2.3.7  Podklyuchenie k sisteme cherez set'                             13
2.3.8  Setevye fajlovye sistemy                                     13
2.3.9  Pochta                                                        14
2.3.10  Pechat'                                                      14
2.4  Struktura fajlovoj sistemy                                     15
Glava 3  Zapusk Sistemy i Perezagruzka                              16
3.1   Obzor                                                         16
3.2  Process zapuska pri blizkom rassmotrenii                       17
3.3  Zavershenie raboty i vyklyuchenie sistemy                         20
3.4  Perezagruzka sistemy                                           23
3.5  Odnopol'zovatel'skij rezhim raboty                              23
3.6  Diskety dlya ekstennoj zagruzki                                 23
Glava 4  Ispol'zovanie Diskov i Drugih Ustrojstv                    25
4.1  Tipy ustrojstv                                                 26
4.2  ZHestkie diski                                                  27
4.3  Gibkie diski                                                   30
4.4  Formatirovanie                                                 31
4.5  Diskovye razdely                                               34
4.5.1  MBR, zagruzochnye sektora i tablica razdelov                  35
4.5.2  Rasshirennye i logicheskie razdely                             35
4.5.3    Tipy razdelov                                              37
4.5.4   Razdelenie zhestkogo diska                                   38
4.5.5  Fajly ustrojstv i razdely                                    39
4.6   Fajlovye sistemy                                              39
4.6.1  CHto takoe fajlovaya sistema?                                  39
4.6.2   Tipy fajlovyh sistem                                        41

                                - 3 -

4.6.3  Kakuyu fajlovuyu sistemu ustanavlivat'?                        44
4.6.4  Ustanovka fajlovoj sistemy                                   44
4.6.5    Montirovanie i demontirovanie                              46
4.6.6   Podderzhka rabotosposobnosti fajlovyh sistem                 50
4.7  Diski bez fajlovyh sistem                                      52
4.8  Raspredelenie diskovogo prostranstva                           53
4.8.1   Shemy razdeleniya diskov                                     53
4.8.2  Trebovaniya k diskovomu prostranstvu                          54
4.8.3   Primery raspredeleniya zhestkogo diska                        55
4.8.4   Ispol'zovanie dopolnitel'nogo diskovogo prostranstva        55
4.8.5  Metody sohraneniya diskovogo prostranstva                     55
Glava 5  Obzor Struktury Katalogov                                  57
5.1  Vvedenie                                                       57
5.2  Fajlovaya sistema root                                          59
5.2.1  Katalog  /etc                                                60
5.2.2  Katalog /dev                                                 62
5.3  Fajlovaya sistema /usr                                          63
5.4  Fajlovaya sistema /var                                          64
5.5  Fajlovaya sistema /proc                                         65
Glava 6   Uppavlenie Pamyat'yu                                        68
6.1  CHto takoe viptual'naya pamyat'?                                  68
6.2  Sozdanie swap oblasti                                          69
6.3  Ispol'zovanie swap ppostpanstva                                70
6.4  Razdelenie swap oblastej s dpugimi opepacionnymi               71
6.5  Razmeshchenie swap ppostpanstva                                   72
6.6  Diskovyj bufep                                                 73
Glava 7  Podklyuchenie i Vyhod iz Sistemy                             76
7.1  Podklyuchenie k sisteme chepez tepminaly                          76
7.2  Podklyuchenie k sisteme chepez set'                               77
7.3  CHto vypolnyaet ppogpamma login                                  78
7.4  X  i  xdm                                                      79
7.5  Kontpol' dostupa                                               79
7.6  Zapusk obolochki                                                80

.
                                - 4 -



                        Glava 1  Vvedenie

     V etoj knige rassmatrivayutsya aspekty sistemnogo
administrirovaniya operacionnoj sistemy Linux. V pervuyu ochered'
dannoe rukovodstvo prednaznacheno dlya teh, kto prakticheski nichego
ne znaet o sistemnom administrirovanii, no oznakomlen s osnovami
raboty s sistemoj Linux, kotorye rassmotreny v knige "Rukovodstvo
Pol'zovatelya Sistemy Linux". V dannom rukovodstve ne udelyaetsya
vnimaniya problemam, svyazannym s ustanovkoj sistemy (ischerpyvayushchuyu
informaciyu mozhno poluchit' iz knigi "Ustanovka i Zapusk Sistemy
Linux"). Vo mnogih rukovodstvah iz serii LDP (Linux Documentation
Project) rassmatrivayutsya odni i te zhe voprosy s raznyh tochek
zpeniya. Nizhe soderzhitsya bolee podrobnaya informaciya o rukovodstvah
po sisteme Linux.

     CHto zhe nazyvaetsya sistemnym administrirovaniem? |to vse to,
chto trebuetsya dlya podderzhki rabotosposobnosti komp'yuternoj sistemy
(naprimer, sozdanie rezervnyh kopij nekotoryh fajlov, ustanovka
novyh programm, sozdanie i udalenie pol'zovatelej, proverka
celostnosti fajlovoj sistemy i t.d.). Esli sravnivat' komp'yuter s
domom, to sistemnoe administrirovanie mozhno nazvat' soderzhaniem
etogo doma, vklyuchayushchee v sebya uborku, ustranenie razlichnyh
neispravnostej i t.d. No sistemnoe administrirovanie ne nazyvayut
soderzhaniem, tak kak togda eto bylo by slishkom prosto.

     Rukovodstvo sostavleno takim obrazom, chto glavy ne zavisyat
drug ot druga i mogut byt' rassmotreny otdel'no. Naprimer, dlya
polucheniya informacii po sozdaniyu rezervnyh kopij Vy mozhete
prochitat' tol'ko odnu glavu. |to ochen' udobno i pozvolyaet
ispol'zovat' knigu v kachestve spravochnogo posobiya, a takzhe
izbezhat' chteniya vsego rukovodstva vmesto neskol'kih razdelov.
Odnako, prezhde vsego eto kniga, a zatem uzhe spravochnik.

     Konechno, v etoj knige ne soderzhitsya vsej neobhodimoj
informacii po sistemnomu administrirovaniyu, hotya mnogo poleznogo
mozhno najti i v drugoj dokumentacii po sisteme Linux. V konce

                                - 5 -

koncov, sistemnyj administrator eto prosto pol'zovatel' s
priveligirovannymi pravami dostupa i opredelennymi obyazannostyami.
Takzhe mnogo poleznoj i vazhnoj informacii mozhno uznat' iz
vstroennyh opisanij k programmam (pri pomoshchi komandy 'man').

     V to vremya kak eta kniga rasschitana na ispol'zovanie
operacionnoj sistemy Linux, ona mozhet byt' rasmotrena i po
otnosheniyu k drugim UNIX-podobnym operacionnym sistemam. Tak kak
raznye versii sistemy UNIX sil'no razlichayutsya (osobenno v voprosah
sistemnogo administrirovaniya), to dovol'no slozhno ohvatit' ves'
material, kasayushchijsya kazhdoj modifikacii. Dazhe rassmotrenie vseh
osobennostej OS Linux - slozhnaya zadacha, tak kak ona sejchas
nahoditsya v stadii razvitiya. Na dannyj moment ne sushchestvuet
oficial'noj versii Linux, poetomu u raznyh lyudej ona ustanovlena
po raznomu. V knige ukazany razlichiya mezhdu takimi sistemami i
rassmotreny nekotorye al'ternativy, gde eto vozmozhno. Takzhe v
knige soderzhitsya mnogo informacii, kotoraya ne kazhdomu mozhet
potrebovat'sya. Takie momenty special'no otmecheny i mogut byt'
propushcheny, esli ispol'zuetsya uzhe skonfigurirovannaya sistema.

     Takzhe kak i drugie razrabotki, svyazannye s operacionnoj
sistemoj Linux, kniga byla napisana na dobrovol'nyh nachalah.
Odnako, kak i v lyuboj dobrovol'noj rabote, sushchestvuet predel
predprinimaemym usiliyam, a takzhe znaniyam i opytu avtora. |to
oznachaet, chto dannoe rukovodstvo ne obyazatel'no takzhe horosho
napisano, kak esli by ono bylo napisano na kommercheskoj osnove.

     Sleduet otmetit', chto v etoj knige ne polnost'yu ohvacheny
mnogie problemy, kotorye rassmotreny v drugih svobodno
rasprostranyaemyh rukovodstvah i dokumentaciyah. Osobenno eto
otnositsya k opisaniyam k razlichnym programmam, naprimer, k
osobennostyam ispol'zovaniya mkfs(8). V dannom rukovodstve opisano
tol'ko naznachenie etoj programmy v ob®eme, neobhodimom dlya
ispol'zovaniya v knige. Dlya polucheniya bolee podrobnoj informacii
imeyutsya ssylki k drugim rukovodstvam i dokumentaciyam, kotorye
obychno yavlyayutsya chast'yu polnogo nabora dokumentacii po sisteme
Linux.


                                - 6 -

     U avtora est' stremlenie razvivat' i uluchshat' etu razrabotku.
Pros'ba napravlyat' vse zamechaniya (oshibki, novye idei, informaciya o
razlichiyah mezhdu razlichnymi versiyami sistemy UNIX i t.d.) libo po
adresu elektronnoj pochty lars.wirzenius@helsinki.fi, libo obychnoj
pochtoj po adresu:

Lars Wirzenius / Linux docs
Hernesaarentie 15 A 2
00150 Helsinki
Finland

     Avtor hochet poblagadorit' sleduyushchih lyudej, okazavshih
podderzhku pri sozdanii etoj knigi: Matt Welsh, Andy Oram, Olaf
Kirch, Adam Richter i drugih.

     H.Peter Anvin, Remy Card, Theodore Ts'o i Stephen Tweedie
pozvolili ispol'zovat' chast' ih rabot v knige. Stephen Tweedie
takzhe pozvolil ispol'zovat' ego sravnenie fajlovyh sistem xia i
ext2.

     V dopolnenie k vyshe skazannomu, avtor blagodarit Mark
Komarinski za publikaciyu v 1993 godu ego rabot i drugih statej,
imeyushchih otnoshenie k sistemnomu administrirovaniyu, v zhurnale Linux
Journal.

     Avtor vyrazhaet blagodarnost' Erik Troan iz Red Hat za
sozdanie versii rukovodstva v formate plain text, a takzhe
sleduyushchim lyudyam: Paul Caprioli, Ales Cepek, Marie-France
Declerfayt, Olaf Flebbe, Helmut Geyer, Larry Greenfield, Stephen
Harris, Jyrki Havia, Jim Haynes, York Lam, Timothy Andrew Lister,
Jim Lynch, Dan Poirier, Daniel Quinlam, Philippe Steindl.


              1.1    Proekt Dokumentirovaniya Sistemy Linux

     Proekt dokumentirovaniya sistemy Linux ili LDP (Linux
Documentation Project), eto svobodnaya komanda pisatelej,
korrektorov i redaktorov pered kotorymi stoit cel' sozdaniya polnoj

                                - 7 -

dokumentacii po operacionnoj sisteme Linux. Glavnym koordinatorom
proekta yavlyaetsya Matt Welsh, kotoryj byl naznachen Lars'om
Wirzenius i Michael'om K. Johnson.

     Dannoe rukovodstvo yavlyaetsya odnim iz nabora rasprostranyaemyh
rukovodstv proekta LDP, kotoryj vklyuchaet v sebya "Rukovodstvo
Pol'zovatelya Sistemy Linux", "Rukovodstvo Sistemnogo
Administratora Sistemy Linux", "Rukovodstvo Setevogo
Administratora Sistemy Linux" i "Rukovodstvo Vzlomshchika YAdra
Linux". |ti knigi dostupny v ishodnom formate LaTeX, .dvi formate
i v formate postscript cherez FTP:

ftp://sunsite.unc.edu/pub/Linux/docs/LDP
ftp://tsx-11.mit.edu/pub/linux/docs/guides

     Dlya togo, chtoby svyazat'sya s LDP, nuzhno poslat' pis'mo Matt'u
Welsh po ukazannomu nizhe adresu:

mdw@sunsite.unc.edu
.
                                - 8 -



                    Glava 2  Obzor Sistemy Linux

     V etoj glave daetsya obzor operacionnoj sistemy Linux. Prezhde
vsego rassmatrivayutsya osnovnye funkcii sistemy. Zatem sleduet
opisanie programm, realizuyushchih eti funkcii. Cel' glavy - dat'
ponimanie sistemy v celom, poetomu kazhdyj razdel rassmatrivaetsya
bolee podrobno pozzhe.

           2.1  Razlichnye sostavlyayushchie operacionnoj sistemy

     Lyubaya UNIX-podobnaya operacionnaya sistema sostoit iz yadra i
nekotoryh sistemnyh programm. Takzhe sushchestvuyut nekotorye
prikladnye programmy dlya vypolneniya kakoj-libo zadachi. YAdro
yavlyaetsya serdcem operacionnoj sistemy. Ono razmeshchaet fajly na
diske, zapuskaet programmy i pereklyuchaet processor i drugoe
oborudovanie mezhdu nimi dlya obespecheniya mul'tizadachnosti,
raspredelyaet pamyat' i drugie resursy mezhdu processami,
obespechivaet obmen paketami v seti i t.p. YAdro samo po sebe
vypolnyaet tol'ko malen'kuyu chast' obshchej raboty, no ono
predostavlyaet sredstva, obespechivayushchie vypolnenie osnovnyh
funkcij. Ono takzhe predotvrashchaet ispol'zovanie pryamogo dostupa k
apparatnym sredstvam predostavlyaya special'nye sredstva dlya
obrashcheniya k periferii. Takim obrazom yadro pozvolyaet kontrolirovat'
ispol'zovnie apparatnyh sredstv razlichnymi processami i
obespechivat' nekotoruyu zashchitu pol'zovatelej drug ot druga.
Sredstva, predostavlyaemye yadrom, ispol'zuyutsya cherez sistemnye
vyzovy (sm. razdel 2 rukovodstva dlya bolee podrobnoj informacii po
etomu voprosu).

     Sistemnye programmy ispol'zuyut sredstva, predostavlyaemye
yadrom dlya obespecheniya vypolneniya razlichnyh funkcij operacionnoj
sistemy. Sistemnye i vse ostal'nye programmy vypolnyayutsya 'na
poverhnosti yadra', v tak nazyvaemom pol'zovatel'skom rezhime.
Sushchestvuet nekotopaya raznica mezhdu sistemnymi i prikladnymi
programmami. Prikladnye programmy prednaznacheny dlya vypolneniya
kakoj-libo opredelennoj zadachi, v to vremya kak sistemnye programmy

                                - 9 -

ispol'zuyutsya dlya podderzhaniya raboty sistemy. Tekstovyj processor
yavlyaetsya prikladnoj programmoj, a programma telnet - sistemnoj,
hotya zachastuyu granica mezhdu nimi dovol'no smutnaya.

     Dovol'no chasto operacionnaya sistema soderzhit kompilyatory i
sootvetstvuyushchie im biblioteki (GCC i C biblioteki dlya Linux), hotya
ne obyazatel'no vse yazyki programmirovaniya dolzhny byt' chast'yu
operacionnoj sistemy. Dokumentaciya, a inogda dazhe igry, mogut
yavlyat'sya ee chast'yu. Obychno sostav operacionnoj sistemy
opredelyaetsya soderzhimym ustanovochnogo diska ili lenty, hotya delo
obstoit neskol'ko slozhnee, tak kak razlichnye chasti operacionnoj
sistemy razbrosany po raznym FTP serveram vo vsem mire.

                     2.2   Vazhnye sostavlyayushchie yadra

     YAdro sistemy Linux sostoit iz neskol'kih osnovnyh chastej:
blok upravleniya processami, blok upravleniya pamyat'yu, drajvery
ustrojstv, drajvery fajlovyh sistem, blok upravleniya set'yu a takzhe
drugie nebol'shie procedury.

     Naibolee vazhnye sostavlyayushchie yadra (obespechivayushchie
zhiznesposobnost' sistemy) - eto blok upravleniya pamyat'yu i
processami. Blok upravleniya pamyat'yu obespechivaet raspredelenie
oblastej pamyati i swap-oblastej mezhdu processami, sostavlyayushchimi
yadra i dlya kesh-bufera. Blok upravleniya processami sozdaet novye
processy i obespechivaet mnogozadachnost' putem pereklyucheniya zadach.

     Na samom nizhnem urovne yadro soderzhit drajvery ustrojstv dlya
kazhdogo tipa podderzhivaemogo oborudovaniya. Sushchestvuet dovol'no
bol'shoj nabor razlichnyh drajverov, tak kak postoyanno
razrabatyvayutsya novye tipy ustrojstv. Sushchestvuet dovol'no mnogo
odinakovyh ustrojstv, kotorye razlichayutsya tol'ko tem, kak
proishodit vzaimodejstvie mezhdu samim ustrojstvom i drajverom.
Takoe shodstvo pozvolyaet ispol'zovat' klassy drajverov,
podderzhivayushchih odinakovye operacii. V kazhdom chlene takogo klassa
ispol'zuetsya odnotipnyj interfejs dlya yadra, no razlichnye shemy
vzaimodejstviya s ustrojstvom. Naprimer, vse drajvery zhestkogo
diska predstavlyayutsya dlya yadra absolyutno odinakovo, to est' u nih u

                                - 10 -

vseh imeyutsya takie operacii kak 'inicializaciya zhestkogo diska',
'chtenie sektora N', 'zapis' sektora N'.

     Nekotorye funkcii, predostavlyaemye yadrom, imeyut odinakovye
svojstva. Naprimer, razlichnye setevye protokoly ob®edineny v odin
programmnyj interfejs - BSD socket biblioteku. Vot drugoj primer -
razlichnye fajlovye sistemy, podderzhivaemye sistemoj Linux. YAdro
soderzhit virtual'nuyu fajlovuyu sistemu (Virtual File System - VFS)
kotoraya vklyuchaet v sebya vse funkcii, ispol'zuemye dlya raboty
sistemy, a takzhe drajver dlya kazhdoj podderzhivaemoj fajlovoj
sistemy. Pri popytke dostupa k kakoj-libo fajlovoj sisteme zapros
prohodit cherez VFS, otkuda perenapravlyaetsya k sootvetstvuyushchemu
drajveru fajlovoj sistemy.

                 2.3   Osnovnye funkcii UNIX sistemy

     V etom razdele dostatochno poverhnostno rassmatrivayutsya
nekotorye naibolee vazhnye funkcii UNIX sistemy. Bolee podrobno oni
rassmotreny v sleduyushchih glavah.

                            2.3.1  init

     Edinstvennuyu i samuyu vazhnuyu funkcuyu v UNIX sisteme
predostavlyaet ppocess init. On zapuskaetsya v lyuboj UNIX sisteme
kak samyj pervyj process, a takzhe zavershaet procedupu zagruzki
sistemy. Pri zapuske init, prodolzhaetsya process zagruzki
(proveryayutsya i ustanavlivayutsya fajlovye sistemy, zapuskayutsya
razlichnye programmy-demony i t.d.).

     Tochnyj spisok togo, chto vypolnyaetsya pri zapuske init, zavisit
ot versii programmy. Obychno init predostavlyaet
odnopol'zovatel'skij rezhim, pri kotorom nikto ne mozhet
podklyuchit'sya k sisteme. Obychnyj rezhim - eto mnogopol'zovatel'skij.
Nekotorye versii ispol'zuyut ponyatie 'uroven' zapuska'. Naprimer,
odnopol'zovatel'skij i mnogopol'zovatel'skij rezhimy - eto raznye
urovni zapuska. Takzhe sushchestvuyut dopolnitel'nye urovni, naprimer
dlya zapuska X-windows.


                                - 11 -

     Pri rabotayushchej sisteme, dve samye vazhnye zadachi programmy
init - eto udostoveritsya, chto vse programmy-demony getty rabotayut
(t.e. imeetsya vozmozhnost' podklyucheniya k sisteme) i adaptirovanie
orphan-processov (t.e. processov, chej roditel'skij process byl
unichtozhen; v sisteme UNIX vse processy dolzhny prinadlezhat' odnomu
derevu processov, poetomu orphan-processy dolzhny byt'
adaptirovany).

     Pri zavershenii raboty sistemy i perezapuske, init unichtozhaet
vse ostavshiesya processy, demontiruet fajlovye sistemy i
ostanavlivaet processor.

                2.3.2  Podklyuchenie k sisteme s terminalov

     Podklyuchenie k sisteme s terminalov (cherez posledovatel'nye
linii) i s glavnoj konsoli (esli ne zapushcheny X) obespechivaetsya
programmoj getty. init zapuskaet otdel'nyj process getty dlya
kazhdogo terminala. getty schitavaet imya pol'zovatelya i zapuskaet
programmu login, kotoraya schityvaet parol'. Esli imya i parol'
sootvetstvuyut odnomu pol'zovatelyu, to login zapuskaet obolochku.
Pri vyhode iz obolochki, to est' pri vyhode iz sistemy, ili pri
zavershenii programmy login v sluchae esli imya pol'zovatelya i parol'
ne podhodyat, init zapuskaet novyj process getty. YAdro ne
kontroliruet podklyucheniya k sisteme, a tol'ko vypolnyaet sistemnye
programmy.

                           2.3.3  Syslog

     Inogda pri rabote yadra ili razlichnyh sistemnyh programm
voznikayut oshibki, preduprezhdeniya i drugie soobshcheniya. Programma
syslog zapisyvaet vse soobshcheniya v fajl tak, chto on mozhet byt'
vposledstvii prosmotren. Syslog mozhno skonfigurirovat' tak, chto
soobshcheniya budut sortirovat'sya i zapisyvat'sya v raznye fajly po
prioritetu. Naprimer, soobshcheniya yadra chasto napravlyayutsya v
otdel'nyj fajl, tak kak eti soobshcheniya naibolee vazhnye i dolzhny
regulyarno prosmatrivat'sya vo izbezhanie ser'eznyh problem.

         2.3.4  Periodicheskoe vypolnenie komand:  cron  i  at

                                - 12 -


     Kak otdel'nym pol'zovatelyam, tak i sistemnomu administratoru
inogda trebuetsya periodicheski zapuskat' opredelennye komandy.
Naprimer, sistemnomu administratoru mozhet potrebovat'sya
periodicheski zapuskat' komandu dlya ochistki katalogov ot vremennyh
fajlov (/tmp i /var/tmp), dlya predotvrashcheniya perepolneniya diska.

     Dlya etogo ispol'zuetsya funkciya cron. U kazhdogo pol'zovatelya
imeetsya fajl crontab, v kotorom soderzhitsya spisok komand,
predstavlennyh k vypolneniyu i kolichestvo raz, kotoroe oni dolzhny
byt' vypolneny. Programma-demon crond obespechivaet svoevremennoe
vypolnenie ukazannyh komand.

     Funkciya at identichna funkcii cron, tol'ko komanda zapuskaetsya
odin raz v ukazannoe vremya i zapusk bol'she ne povtoryaetsya.

                 2.3.5  Graficheskij interfejs pol'zovatelya

     Kak v sisteme UNIX tak i v Linux, pol'zovatel'skij interfejs
ne vstraivaetsya v yadro sistemy. Vmesto etogo on predstavlyaetsya
programmami pol'zovatel'skogo urovnya. |to primenyaetsya kak k
tekstovym, tak i k graficheskim obolochkam.

     Takoj standart delaet sistemu bolee gibkoj, hotya i imeet svoi
nedostatki. Naprimer, eto legko pozvolyaet sozdavat' novye
interfejsy dlya programm, chto zatrudnyaet izuchenie sistemy.

     Pervonachal'no ispol'zuemoj s sistemoj Linux graficheskoj
obolochkoj byla sistema X Window System (sokrashchenno X). X ne
realizuet pol'zovatel'skij interfejs, a tol'ko okonnuyu sistemu,
t.e. sredstva, s pomoshch'yu kotoryh mozhet byt' realizovan graficheskij
interfejs. Tri naibolee populyarnyh versii graficheskih interfejsov
na osnove X - eto Athena, Motif i Open Look.

                       2.3.6  Rabota s set'yu

     Set' - eto sredstvo, pozvolyayushchee soedinyat'sya dvum ili bolee
komp'yuteram mezhdu soboj.

                                - 13 -


     UNIX-podobnye operacionnye sistemy imeyut shirokij spektr
setevyh vozmozhnostej. Bol'shinstvo bazovyh funkcij (fajlovye
sistemy, pechat', sozdanie rezervnyh kopij i t.d.) mogut byt'
realizovany posredstvom seti. |to mozhet znachitel'no oblegchit'
rabotu sistemnogo administratora, tak kak pozvolyaet ispol'zovat'
centralizovannoe administrirovanie.

     Odnako, v etoj knige poverhnostno rassmotreny voprosy raboty
s set'yu. Dlya bolee podrobnoj informacii sm. knigu "Rukovodstvo
Setevogo Administratora Sistemy Linux".

               2.3.7  Podklyuchenie k sisteme cherez set'

     Podklyuchenie k sisteme cherez set' rabotaet neskol'ko inache,
chem obychnoe podklyuchenie. Sushchestvuyut otdel'nye fizicheskie
posledovatel'nye linii dlya kazhdogo terminala, cherez kotorye i
proishodit podklyuchenie. Dlya kazhdogo pol'zovatelya, podklyuchayushchegosya
k sisteme, sushchestvuet otdel'noe virtual'noe setevoe soedinenie i
ih mozhet byt' lyuboe kolichestvo. Odnako ne predstavlyaetsya vozmozhnym
zapustit' otdel'nyj process getty dlya kazhdogo vozmozhnogo
virtual'nogo soedineniya. Sushchestvuyut takzhe i drugie sposoby
podklyucheniya k sisteme posredstvom seti. Naprimer, telnet i rlogin
- osnovnye sluzhby v TCP/IP setyah.

     Pri ispol'zovanii seti dlya podklyucheniya k sisteme, krome
bol'shogo kolichestva processov getty ispol'zuetsya otdel'naya
programma-demon (pri ispol'zovanii kak telnet tak i login
ispol'zuyutsya razlichnye programmy-demony), kotoraya otslezhivaet vse
popytki soedineniya s komp'yuterom. Esli oppedelyaetsya popytka
soedineniya, to programma sozdaet novyj process - sozdaet sama sebya
dlya obrabotki etogo soedineniya - a zatem prodolzhaet otslezhivanie
novyh soedinenij. Sozdavaemyj process identichen programme getty.

                     2.3.8  Setevye fajlovye sistemy

      Odna iz naibolee poleznyh funkcij, kotoraya mozhet byt'
realizovana s pomoshch'yu seti, eto razdelenie fajlov cherez setevuyu

                                - 14 -

fajlovuyu sistemu. Obychno ispol'zuetsya sistema, nazyvaemaya Network
File System ili NFS, kotoraya razrabotana korporaciej Sun.

     Pri rabote s setevoj fajlovoj sistemoj lyubye operacii nad
fajlami, proizvodimymi na lokal'nom kom'yutere, peredayutsya cherez
set' na udalennuyu mashinu. Pri rabote setevoj fajlovoj sistemy
programma schitaet, chto vse fajly na udalennom komp'yutere nahodyatsya
na komp'yutere, gde ona zapushchena. Takim obrazom razdelenie
informacii posredstvom takoj sistemy ne trebuet vneseniya
kakih-libo izmenenij v programmu.

                              2.3.9  Pochta

     |lektronnaya pochta yavlyaetsya samym vazhnym sredstvom svyazi mezhdu
komp'yuterami. |lektronnye pis'ma hranyatsya v odnom fajle v
special'nom formate. Dlya chteniya i otpravleniya pisem primenyayutsya
special'nye programmy.

     U kazhdogo pol'zovatelya imeetsya otdel'nyj "pochtovyj yashchik"
(t.e. fajl, gde informaciya hranitsya v special'nom formate), v
kotrom hranitsya prihodyashchaya pochta. Esli na kom'yuter prihodit
pis'mo, to programma obrabotki pochty nahodit fajl pochtovogo yashchika
sootvetvuyushchego pol'zovatelya i dobavlyaet tuda poluchennoe pis'mo.
Esli zhe pochtovyj yashchik pol'zovatelya nahoditsya na drugom komp'yutere,
to pis'mo perenapravlyaetsya na etot komp'yuter, gde prohodit ego
posleduyushchaya obrabotka.

     Pochtovaya sistema sostoit iz mnozhestva razlichnyh programm.
Dostavka pisem k lokal'nym ili udalennym pochtovym yashchikam
proizvoditsya odnoj programmoj (naprimer, sendmail ili smail), v to
vremya kak dlya obychnoj otpravki ili prosmotra pisem primenyaetsya
bol'shoe kolichetsvo razlichnyh programm (naprimer, Pine ili elm).
Fajly pochtovyh yashchikov obychno hranyatsya v kataloge /var/spool/mail.

                            2.3.10  Pechat'

     V odin moment vremeni printerom mozhet pol'zovat'sya tol'ko
odin pol'zovatel'. Poetomu dlya togo, chtoby printerom mogli

                                - 15 -

pol'zovat'sya srazu neskol'ko pol'zovatelej, ispol'zuetsya
special'naya programma, kotoraya obespechivaet obsluzhivanie ocheredi k
printeru. Vse zadaniya dlya printera pomeshchayutsya v bufep. Kogda
printer zakanchivaet obrabotku odnogo zadaniya, sledueshchee peredaetsya
k nemu avtomaticheski. |to znachitel'no uproshchaet rabotu s printerom.

     Programma obsluzhivaniya ocheredi k printeru pomeshchaet
informaciyu, kotoraya dolzhna byt' raspechatana, na disk, to est'
tekst raspolagaetsya na diske, v to vremya kak zadanie nahoditsya v
ocheredi. |to pozvolyaet prikladnym programmam dostatochno bystro
raspechatyvat' teksty, pomeshchaya ih v ochered', tak kak dlya
prodolzheniya raboty prilozheniyu ne trebuetsya dozhidat'sya okonchaniya
raspechatki.

                    2.4  Struktura fajlovoj sistemy

     Fajlovaya sistema razdelyaetsya na neskol'ko chastej: fajlovaya
sistema root, sostoyashchaya iz katalogov /bin, /lib, /etc, /dev i
nekotoryh drugih, fajlovaya sistema /usr, gde hranyatsya razlichnye
programmy i dannye ne podlezhashchie izmeneniyu, fajlovaya sistema /var,
gde soderzhatsya izmenyaemye fajly (takie kak log fajly i dr.) i
fajlovaya sistema /home, kotoraya sostoit iz lichnyh katalogov
pol'zovatelej. Razdelenie mozhet sushchestvenno otlichatsya ot vyshe
ukazannogo v zavisimosti ot raboty sistemnogo administratora i
konfiguracii apparatnogo obespecheniya.

     V glave 5 sruktura fajlovoj sistemy rassmatrivaetsya bolee
podrobno (sm. takzhe Linux Filesystem Standard).
.
                                - 16 -



                 Glava 3  Zapusk Sistemy i Perezagruzka

     V etoj glave opisyvaetsya to, chto proishodit v sisteme Linux
pri ee zapuske i perezagruzke i kak eto pravil'no sdelat'.

                            3.1   Obzor

     Process vklyucheniya komp'yutera i zagruzki operacionnoj sistemy
nazyvaetsya zapuskom. Vo vremya zapuska snachala zagruzhetsya nebol'shaya
programma, nazyvaemaya nachal'nym zagruzchikom, kotoraya v svoyu
ochered' zagruzhet v pamyat' i zapuskaet operacionnuyu sistemu.
Nachal'nyj zagruzchik obychno nahoditsya v opredelennom meste na
zhestkom diske ili diskete. Potomu kak Linux eto dovol'no slozhnaya i
bol'shaya sistema, ee zapusk proizvoditsya v dva etapa, hotya pervichno
zagruzhaemyj kod dolzhen byt' dostatochno malen'kim (neskol'ko soten
bajt).

     Na raznyh komp'yuterah nachal'naya zagruzka proizvoditsya po
raznomu. Na personal'nyh komp'yuterah snachala schityvetsya pervyj
sektor diskety ili zhestkogo diska (posredstvom procedur BIOS),
kotoryj nazyvetsya zagruzochnym sektorom. V etom sektore nahoditsya
nachal'nyj zagruzchik, kotoryj zatem zagruzhaet operacionnuyu sistemu,
kotoraya mozhet byt' raspolozhena v drugom meste na diske ili
gde-libo eshche.

     Posle zagruzki Linux, inicializiruyutsya drajvery ustrojstv, a
zatem zapuskaetsya init(8), kotoryj v svoyu ochered' zapuskaet drugie
processy, pozvolyayushchie podklyuchat'sya k sisteme i obespechivayushchie
normal'nuyu rabotu. |tot etap rassmotren nizhe bolee podrobno.

     Dlya perezapuska sistemy snachala vse processy dolzhny byt'
zaversheny (t.e. zakryty vse ispol'zuemye imi fajly i dr.), zatem
demontiruyutsya fajlovye sistemy i swap-oblasti i, v konce koncov,
na ekran vydaetsya soobshchenie o tom, chto pitanie mozhet byt'
otklyucheno. Esli zhe takaya procedura ne budet proizvedena, to mogut
proizojti ser'eznye sboi v posleduyushchej rabote sistemy. Naprimer,

                                - 17 -

informaciya, hranyashchayasya v kesh bufere fajlovoj sistemy, budet
uteryana, narushitsya celostnost' fajlovoj sistemy i, sledovatel'no,
ona budet ne prigodna k ispol'zovaniyu.

                3.2  Process zapuska pri blizkom rassmotrenii

     Linux mozhet byt' zapushchena kak s disket, tak i s zhestkogo
diska. V knige "Ustanovka i zapusk Linux" podrobno opisan zapusk
sistemy.

     Pri vklyuchenii komp'yutera, snachala BIOS proizvodit
testirovanie oborudovaniya, a zatem zapusk operacionnoj sistemy.
Snachala vybiraetsya ustrojstvo, s kotorogo budet proizvoditsya
zapusk (obychno pervyj diskovod, esli v nego vstavlena disketa, v
protivnom sluchae - pervyj zhestkij disk, esli on ustanovlen, hotya
poryadok vybora mozhet byt' nastroen) i schityvaetsya samyj pervyj
sektor, kotoryj nazyvaetsya zagruzochnym. Ego takzhe nazyvayut MBR
(Master Boot Record), tak kak u zhestkogo diska mozhet byt'
neskol'ko razdelov i u kazhodogo mozhet byt' svoj zagruzochnyj
sektor.

     V zagruzochnom sektore nahoditsya nebol'shaya programma
(otnositel'no nebol'shaya chtoby ona mogla razmestitsya v odnom
sektore), kotoraya zagruzhaet i zapuskaet operacionnuyu sistemu. Pri
zagruzke s diskety, v zagruzochnom sektore nahoditsya kod, kotoryj
obespechivaet tol'ko schityvanie yadra sistemy v opredelennuyu zaranee
oblast' pamyati. Zagruzochnaya disketa dlya Linux ne soderzhit nikakih
fajlovyh sistem. YAdro zapisano na diskete kak posledovatel'nost'
blokov, tak kak eto znachitel'no uproshchaet process zagruzki. Odnako,
vpolne mozhno zagruzhat'sya s diskety, na kotoroj ustanovlena
kakaya-nibud' fajlovaya sistema, ispol'zuya zagpuzchik LILO.

     Pri zagruzke s zhestkogo diska, kod, raspolozhennyj v MBR,
proveryaet tablicu razdelov (takzhe raspolozhennuyu v MBR), opredelyaet
aktivnyj razdel (razdel, ispol'zuemyj pri zagruzke), schityvaet
zagruzochnyj sektor etogo razdela i zapuskaet schitannyj kod. Kod,
raspolozhennyj v zagruzochnom sektore aktivnogo razdela zhestkogo
diska, vypolnyaet te zhe funkcii, chto i kod, nahodyashchijsya v

                                - 18 -

zagruzochnom sektore diskety: on schityvaet yadro iz vybrannogo
razdela, a zatem zapuskaet ego. Odnako zdes' sushchestvuet mnogo
tonkostej, tak kak ispol'zovanie otdel'nogo razdela diska tol'ko
dlya hraneniya koda yadra neeffektivno, poetomu kod, raspolozhennyj v
zagruzochnom sektore razdela, ne prosto posledovatel'no schityvaet
informaciyu s diska, a ispol'zuet schityvanie po sektoram.
Sushchestvuet neskol'ko sposobov resheniya etoj problemy, no naibolee
prostym iz nih yavlyaetsya ispol'zovanie LILO zagruzchika (informaciyu
po ustanovke i nastrojke LILO sm. v dokumentacii po LILO).

     Pri zagruzke s ispol'zovaniem LILO obychno srazu zhe
zagruzhaetsya i zapuskaetsya yadro, zadannoe po umolchaniyu, odnako
mozhno skonfigurirovat' LILO tak, chtoby mozhno bylo by zagruzit'
odno iz neskol'kih vozmozhnyh yader ili dazhe druguyu operacionnuyu
sistemu (v dobavlenie k Linux). Takzhe mozhno ukazat' trebuemoe yadro
ili operacionnuyu sisitemu vo vremya zagruzki. Pri nazhatii klavishi
ALT, SHIFT ili CTRL (posle zagruzki LILO) budet vydan zapros, gde
mozhno ukazat' yadro ili sistemu. Odnako pri konfigurirovanii mozhno
ustanovit' opciyu, pri kotoroj LILO budet vsegda vydvat' takoj
zapros, a takzhe ukazat' vremya, po istechenii kotorogo zagruzhaetsya
yadro, ustanovlennoe po umolchaniyu.

     Sushchestvuyut i drugie zagruzchiki, podobnye LILO, odnako u nego
est' neskol'ko poleznyh funkcij, kotoryh net v drugih zagruzchikah,
tak kak on byl napisan special'no dlya Linux. Naprimer, imeetsya
vozmozhnost' peredachi yadru parametrov vo vremya zagruzki ili
izmeneniya nekotoryh opcij, vstroennyh v yadro. Sredi podobnyh
zagruzchikov (bootlin, bootactv i dr.) LILO yavlyaetsya nailuchshim
vyborom.

     Zagruzka sistemy kak s zhestkogo diska, tak i s disket imeet
svoi preimushchestva, hotya zagruzka s zhestkogo diska schitaetsya luchshe
i bystree, tak kak ona pozvolyaet izbezhat' neudobstva, svyazannye so
smenoj disket. Odnako v nekotoryh sluchayah zagruzka s disket bolee
udobna. Naprimer, pri ustanovke sistemy ili pri povrezhdenii
fajlovoj sistemy.

     Posle togo, kak yadro sistemy zagruzheno v pamyat' (s zhestkogo

                                - 19 -

diska ili s disket) i zapushcheno, vypolnyayutsya priblizitel'no
sleduyushchie dejstviya:

     Tak kak yadro Linux ustanovleno v zapakovannom vide, to prezhde
vsego ono samo sebya raspakovyvaet. |to vypolnyaet nebol'shaya
programma, raspolozhennaya v samom nachale koda.

     Esli na komp'yutere ustanovlena videoplata sVGA,
podderzhivayushchaya nestandartnye tekstovye rezhimy (takie kak 100x40),
vydaetsya zapros dlya ukazaniya trebuemogo rezhima. Pri kompilyacii
yadra mozhno srazu ukazat' ispol'zuemyj rezhim, chtoby on ne
zaprashivalsya sistemoj vo vremya zagruzki. Rezhim takzhe mozhet byt'
ustanovlen pri pomoshchi LILO ili rdev(8).

     Zatem yadro testiruet apparatnoe obespechenie (zhestkie diski,
diskovody, setevye adaptery i dr.) i konfiguriruet sootvetstvuyushchie
drajvery ustrojstv. Vo vremya etogo processa na ekran vydayutsya
podskazyvayushchie soobshcheniya. Vot primerno to, chto proishodit vo vremya
zagruzki:

LILO boot:
Loading linux.
Console: colour EGA+ 80x25, 8 virtual consoles
Serial driver version 3.94 with no serial options enabled
tty00 at 0x03f8 (irq = 4) is a 16450
tty01 at 0x02f8 (irq = 3) is a 16450
lp_init: lp1 exists (0), using polling driver
Memory: 7332k/8192 available (300k kernel code, 384k reserved, 176k data)
Floppy drive(s): fd0 is 1.44M, fd1 is 1.2M
Loopback device init
Warning WD8013 board not found at i/o = 280
Math coprocessor using irq13 error reporting
Partition check:
  hda: hda1 hda2 hda3
VFS: Mounted root (ext filesystem)
Linux version 0.99.pl9-1 (root@haven) 05/01/93 14:12:20

     Hotya tekst soobshchenij dovol'no sil'no razlichaetsya na raznyh

                                - 20 -

sistemah i zavisit ot apparatnogo obespecheniya, versii Linux i
konfiguracii.

     Posle etogo, yadro pytaetsya smontipovat' fajlovuyu sistemu
root. Mesto, kuda ona budet smontirovana, ustanavlivaetsya vo vremya
kompilyacii ili s pomoshch'yu rdev ili LILO. Tip fajlovoj sistemy
opredelyaetsya avtomaticheski. Esli sistema root ne montipuetsya,
naprimer po prichine togo, chto yadro ne soderzhit drajver
sootvetstvuyushchej fajlovoj sistemy, to sistema zavisaet.

     Fajlovaya sistema root obychno montipuetsya v rezhime read-only
(eto ustanavlivaetsya takim zhe obrazom kak i uzel montipovaniya).
|to delaet vozmozhnym proverku fajlovoj sistemy v to vremya kak ona
smontipovana, hotya proverka fajlovoj sistemy, ustanovlennoj v
rezhime read-write ne rekomeduetsya.

    Zatem yadro zapuskaet programmu init(8) v fonovom rezhime (ona
raspolozhena v kataloge /sbin/init) kotoraya stanovitsya glavnym
processom. init vypolnyaet razlichnye funkcii, trebuemye pri
ustanovke sistemy.

    V konce koncov init zapuskaet programmu getty(8) dlya
virtual'nyh konsolej i posledovatel'nyh linij. |ta programma
pozvolyaet podklyuchat'sya k sisteme posredstvom virtual'nyh konsolej
i terminalov, podklyuchennyh cherez posledovatel'nye porty. init
mozhet byt' skonfigurirovana takzhe dlya zapuska i drugih programm.

     Posle etogo process zapuska sistemy schitaetsya zavershennym i
sistema gotova k rabote.

             3.3  Zavershenie raboty i vyklyuchenie sistemy

     Pri vyklyuchenii sistemy Linux neobhodimo vypolnyat' nekotorye
procedury. Esli etogo ne sdelat', to fajlovye sistemy i fajly
mogut povredit'sya. |to proishodit po prichine nalichiya v Linux
diskovogo kesha, informaciya iz kotorogo zapisyvaetsya na disk tol'ko
cherez nekotorye promezhutki vremeni. |to znachitel'no povyshaet
proizvoditel'nost' sistemy, no takzhe oznachaet, chto esli prosto

                                - 21 -

vyklyuchit' pitanie komp'yutera, to v diskovom keshe mozhet nahoditsya
bol'shoe kolichestvo informacii i fajlovaya sistema mozhet byt'
chastichno povrezhdena, tak kak na disk obychno sbrasyvaetsya tol'ko
chast' informacii.

     Drugoj prichinoj dlya etogo yavlyaetsya mul'tizadachnost' sistemy,
gde odnovremenno mozhet vypolnyat'sya neskol'ko processov i
vyklyuchenie pitaniya mozhet byt' gibel'nym dlya sistemy. Osobenno eto
kasaetsya komp'yuterov, na kotoryh odnovremenno rabotaet neskol'ko
pol'zovatelej.

     Sushchestvuyut komandy, prednaznachennye dlya pravil'nogo
vyklyucheniya sistemy - eto shutdown(8) i halt(8), raspolozhennye v
kataloge /sbin. Est' dva obychnyh sposoba ih primeneniya.

     Esli sistema ustanovlena na komp'yutere, gde rabotaet odin
pol'zovatel', to obychno zavershayut rabotu vseh programm, rabotu
vseh virtual'nyh konsolej, vhodyat v sistemu pod pol'zovatelem root
(ili ostayutsya podklyuchennymi pod etim pol'zovatelem, tol'ko v etom
sluchae nuzhno perejti v kornevoj katalog vo izbezhanie problem s
demontirovaniem fajlovyh sistem), zatem vypolnyaetsya komanda halt
ili shutdown -h now (pri zhelanii mozhno ustanovit' zaderzhku,
kotoraya ustanavlivaetsya zamenoj parametra now na znak '+' i chislom
minut, po istechenii kotoryh budet zavershena rabota sistemy) ili
prosto halt.

     Esli na kop'yutere, na kotorom ustanovlena sistema, rabotaet
odnovremenno neskol'ko pol'zovatelej, to vozmozhno ispol'zovanie
komandy shutdown v sleduyushchem formate:

shutdown -h +time message,

    gde time eto vremya, po istechenii kotorogo rabota sistemy budet
zavershena, a message - soobshchenie, v kotorom ob®yasnyaetsya prichina
vyklyucheniya. Nappimep,

root# shutdown -h +10 'We will install a new disk.  System should
> be back on-line in three hours.'

                                - 22 -


    Vypolnenie etoj komandy predupredit kazhdogo pol'zovatelya,
rabotayushchego v sisteme, chto ona budet vyklyuchena cherez 10 minut.
Soobshchenie vydaetsya na kazhdyj terminal, gde rabotayut pol'zovateli,
vklyuchaya xterm.

Broadcast message from root (ttyp0) Wed Aug 2 01:03:25 1995...

We will install a new disk. System should
be back on-line in three hours.
The system is going DOWN for system halt in 10 minutes !!

     Vydacha soobshcheniya avtomaticheski povtoryaetsya neskol'ko raz
pered prekrashcheniem raboty sistemy i kazhdyj raz s bolee korotkim
intervalom. Pri ispol'zovanii halt nel'zya ustanovit' zaderzhku,
poetomu eta programma redko primenyaetsya na mnogopol'zovatel'skih
sistemah.

     Zamechanie: fajl /etc/inittab soderzhit komandy, vypolnyayushchiesya
pri vyklyuchenii sistemy.

     Posle zapuska processa prekrashcheniya raboty sistemy,
demontiruyutsya vse fajlovye sistemy (krome sistemy root),
zavershaetsya vypolnenie vseh processov i programm-demonov, zatem
demontiruetsya fajlovaya sistema root i vsya rabota zavershaetsya.
Posle etogo vydaetsya soobshchenie, v kotorom govoritsya, chto mozhno
otklyuchit' pitanie. Tol'ko posle etogo pitanie komp'yutera mozhet
byt' otklyucheno.

     V nekotoryh sluchayah nevozmozhno zavershit' etot process
sootvetstvuyushchim obrazom. Naprimer, pri povrezhdenii koda yadra v
pamyati, narushaetsya ego rabota ili sistema zavisaet i prosto net
vozmozhnosti vvesti novuyu komandu mozhno tol'ko nadeyat'sya, chto
nichego ne povreditsya i vyklyuchit' pitanie. Esli zhe nepoladki ne
takie ser'eznye (naprimer vyshla iz stroya klaviatura), a yadro i
programma update rabotayut normal'no, to nailuchshim variantom budet
podozhdat' neskol'ko minut, poka update(8) ne sohranit na diske
informaciyu, hranyashchuyusya v kesh-bufere i tol'ko posle etogo vyklyuchit'

                                - 23 -

pitanie.

     Nekotorye vyklyuchayut komp'yuter posle trehkratnogo vypolneniya
komandy sync(8), kotoraya sbrasyvaet na disk soderzhimoe bufera, i,
posle prekrashcheniya obrashcheniya k disku, vyklyuchayut komp'yuter. Esli v
moment vyklyucheniya rabota vseh programm byla zavershena, to eta
procedura pochti identichna vypolneniyu komandy shutdown. Odnako,
fajlovye sistemy ne demontiruyutsya, chto mozhet privesti k nekotorym
problemam, svyazannym s flagom 'clean filesystem' sistemy ext2fs. V
lyubom sluchae ispol'zovanie etogo sposoba ne rekomenduetsya.

                    3.4  Perezagruzka sistemy

     Process perezagruzki mozhet byt' dostignut putem prekrashcheniya
raboty sistemy, vyklyucheniya pitaniya i vklyucheniya snova. Bolee
prostoj sposob - eto ukazat' komande shutdown perezagruzit'
sistemu ustanoviv opciyu -r. Naprimer, dlya etogo mozhno ispol'zovat'
komandu shutdown -r now. Takzhe mozhno ispol'zovat' komandu reboot.

              3.5  Odnopol'zovatel'skij rezhim raboty

     Komanda shutdown mozhet takzhe ispol'zovat'sya dlya perevoda
sistemy v odnopol'zovatel'skij rezhim, v kotorom k sisteme nikto ne
mozhet podklyuchitsya krome pol'zovatelya root, kotoryj ispol'zuet dlya
raboty glavnuyu konsol'. |to inogda primenyaetsya dlya
administrativnyh celej, dlya vypolneniya kotoryh ne mozhet byt'
ispol'zovana normal'no rabotayushchaya sistema.

               3.6  Diskety dlya ekstennoj zagruzki

     Ne vsegda imeetsya vozmozhnost' zagruzki sistemy s zhestkogo
diska. Naprimer, pri nepravil'nyh ustanovkah v LILO zagruzchike
sistemu nevozmozhno budet zagruzit'. V takih sluchayah dolzhen byt'
drugoj sposob zagruzki. Dlya personal'nyh komp'yuterov obychno ona
vypolnyaetsya s disket.

     Bol'shinstvo rasprostranyaemyh versij Linux pozvolyayut vo vremya
ustanovki sistemy sozdat' zagruzochnuyu disketu. Odnako mnogie takie

                                - 24 -

diskety soderzhat tol'ko yadro i, predpolagaetsya, chto dlya ustraneniya
nepoladok budut ispol'zovat'sya programmy, nahodyashchiesya na
ustanovochnyh diskah. Inogda etih programm byvaet nedostatochno,
naprimer, kogda trebuetsya vosstanovit' nekotorye fajly, sozdannye
s pomoshch'yu programm, kotoryh net na etih diskah.

     Poetomu mozhet vozniknut' neobhodimost' v sozdanii special'no
nastroennogo diska. V dokumentacii "Bootdisk HOWTO" soderzhitsya
neobhodimaya informaciya dlya sozdaniya podobnogo diska.

     Pri zagruzke so special'no nastroennogo diska nel'zya
ispol'zovat' privod, na kotorom smontirovana eta disketa, dlya
kakih-libo drugih celej. |to mozhet sozdat' nekotorye neudobstva,
esli v komp'yutere imeetsya tol'ko odin diskovod. Odnako, esli
komp'yuter imeet dostatochnyj ob®em pamyati, mozhno zagruzit' etot
disk v RAM disk (dlya etogo yadro, raspolozhennoe na diskete dolzhno
byt' skonfigurirovano sootvetstvuyushchim obrazom). |to pozvolyaet
ispol'zovat' diskovod dlya drugih celej.
.
                                - 25 -



      Glava 4  Ispol'zovanie Diskov i Drugih Ustrojstv
               Hraneniya Informacii

     Pri ustanovke sistemy ili izmenenii ee konfiguracii obychno
voznikaet mnogo problem s diskami. Nuzhno ustanovit' fajlovye
sistemy na diskah tak, chtoby na nih mogli hranitsya fajly, a takzhe
zarezervirovat' prostranstvo dlya drugih chastej operacionnoj
sistemy.

     V etoj glave rassmatrivayutsya vse eti voprosy. Obychno, esli
sistema uzhe ustanovlena, to kakih-libo problem s diskami v
dal'nejshem byt' ne dolzhno, krome paboty s disketami. Pri ustanovke
novogo diska ili ego nastrojke sleduet obrashchat'sya k etoj glave.

     Pri administrirovanii diskov mogut vozniknut' sleduyushchie
problemy:

     Formatirovanie diska (v nastoyashchee vremya formatirovanie
yavlyaetsya neobyazatel'noj proceduroj dlya mnogih tipov diskov).

     Razdelenie diska, esli disk budet ispol'zovat'sya dlya raznyh
celej. Odna iz prichin razdeleniya - eto hranenie raznyh
operacionnyh sistem na odnom diske. Drugaya prichina - hranenie
pol'zovatel'skih i sistemnyh fajlov v paznyh pazdelah, chto
uproshchaet rezervnoe kopirovanie i vosstanovlenie, a takzhe zashchitu
sistemnyh fajlov ot povrezhdenij.

     Sozdanie fajlovoj sistemy na sootvetstvuyushchem diske ili
razdele. V sisteme Linux disk nichego ne znachit, poka na nem ne
ustanovlena fajlovaya sistema. Tol'ko posle etogo vozmozhna rabota s
fajlami.

     Montirovanie razlichnyh fajlovyh sistem dlya formirovaniya
edinoj struktury katalogov, kak avtomaticheski tak i vruchnuyu
(fajlovye sistemy, montiruemye vruchnuyu, dolzhny byt' vpuchnuyu
demontirovany).

                                - 26 -


     V glave 6 rassmatrivayutsya voprosy bufepizacii diskov i raboty
s virtual'noj pamyat'yu, chto takzhe nuzhno znat' pri rabote s diskami.

     V etoj glave rassmatrivayutsya voprosy, kotorye neobhodimo
znat' pri rabote s zhestkimi i gibkimi diskami. K sozhaleniyu zdes'
ne rassmatrivaetsya ispol'zovanie lentochnyh nakopitelej i privodov
dlya kompakt diskov.

                          4.1  Tipy ustrojstv

     V sisteme UNIX, a sledovatel'no i Linux, sushchestvuet dva tipa
ustrojstv: blochnye ustrojstva s pryamym dostupom (takie kak diski)
i simvol'nye ustrojstva (takie kak lentochnye nakopiteli i
posledovatel'nye porty), nekotorye iz nih mogut byt'
posledovatel'nymi, a nekotorye - s pryamym dostupom. Kazhdoe
podderzhivaemoe ustrojstvo predstavlyaetsya v fajlovoj sisteme fajlom
ustrojstva. Pri vypolnenii operacij chteniya ili zapisi s podobnym
fajlom, proishodit obmen dannymi mezhdu ustrojstvom, na kotoroe
ukazyvaet etot fajl. Takoj sposob dostupa k ustrojstvam pozvolyaet
ne ispol'zovat' special'nye programmy (a takzhe special'nye metody
programirovaniya, takie kak rabota s preryvaniyami). Naprimer, dlya
raspechatki fajla na printere, ispol'zuetsya sleduyushchaya komanda:

ttyp5 root ~ $ cat filename > /dev/lp1
ttyp5 root ~ $

     Odnako, dlya raspechatki fajlov ispol'zuetsya special'naya
programma (obychno lpr(1)), kotoraya kontroliruet potok postupayushchih
fajlov vo izbezhanie vozniknoveniya konfliktnyh situacij, naprimer,
pri popytke raspechatat' na odnom printere odnovpemenno neskol'ko
raznyh fajlov. Po mere raspechatki, novye fajly postupayut
avtomaticheski. Po podobnoj sheme rabotaet bol'shinstvo ustrojstv.
Odnako s fajlami ustrojstv problemy voznikayut ochen' redko.

      Tak kak ustrojstva otobrazhayutsya kak fajly v fajlovoj sisteme
(v kataloge /dev), neslozhno obnaruzhit' s pomoshch'yu komandy ls(1)
kakie sushchestvuyut fajly ustrojstv. Posle vypolneniya komandy ls -l

                                - 27 -

na ekran vyvoditsya spisok fajlov, prichem v pervoj kolonke
soderzhitsya tip fajla i prava dostupa k nemu. Naprimer, dlya
prosmotra fajla, sootvetstvuyushchego posledovatel'nomu portu,
ispol'zuetsya sleduyushchaya komanda:

ttyp5 root ~ $ ls -l /dev/cua0
crw-rw-rw-   1 root       uucp        5,   64  Nov  30    1993    /dev/cua0
ttyp5 root ~ $

     Pervyj simvol v pervoj kolonke, t.e. 'c', pokazyvaet tip
fajla, v dannom sluchae simvol'noe ustrojstvo. Dlya obychnyh fajlov
ispol'zuetsya simvol '-', dlya katalogov - 'd', dlya blochnyh
ustrojstv - 'b' (sm. pukovodstvo k komande ls(1) dlya bolee
podrobnoj informacii).

     Nalichie bol'shogo kolichestva fajlov ustrojstv sovsem ne
oznachaet, chto eti ustrojstva na samom dele ustanovleny. Nalichie
fajla /dev/sda ni o chem ne govorit i sovsem ne oznachaet, chto v
komp'yutere ustanovlen zhestkij disk SCSI. |to predusmotreno dlya
oblegcheniya ustanovki programm i novogo oborudovaniya (net
neobhodimosti iskat' nuzhnye parametry i sozdavat' fajly dlya novyh
ustrojstv).

                         4.2  ZHestkie diski

     V etom razdele rassmatrivayutsya terminy, svyazannye s
ispol'zovaniem zhestkih diskov.

     ZHestkij disk sostoit iz odnoj ili neskol'kih kruglyh plastin,
odna ili obe storony kotoroj pokryty magnitnym materialom,
ispol'zuemym dlya hraneniya informacii. Dlya kazhdoj storony
predusmotrena golovka, pozvolyayushchaya schityvat' ili zapisyvat'
informaciyu. Plastiny vrashchayutsya na odnoj osi obychno so skorost'yu
3600 oborotov v minutu, hotya v bolee bystryh ppivodah ispol'zuyutsya
bolee vysokie skorosti. Golovki peremeshchayutsya vdol' radiusa
poverhnosti plastin, chto pozvolyaet poluchit' dostup k lyuboj tochke
poverhnosti.


                                - 28 -

     Central'nyj processor (CPU) i zhestkij disk obmenivayutsya
informaciej cherez diskovyj kontroller. |to uproshchaet shemu
obrashcheniya i raboty s diskom, tak kak kontrollery dlya raznyh tipov
diskov mogut byt' postroeny s ispol'zovaniem odnogo interfejsa dlya
svyazi s komp'yuterom. Poetomu, naprimer, dlya schityvaniya sektora
mozhno vospol'zovat'sya vsego lish' odnoj komandoj vmesto slozhnyh
posledovatel'nostej elektricheskih signalov dlya togo, chtoby
peremestit' golovki k nuzhnoj pozicii, sinhronizirovat' vrashchenie
diska i schityvanie ili zapis' dannyh i dr. (na samom dele,
interfejs mezhdu komp'yuterom i kontrollerom tozhe dostatochno slozhen,
no ne na stol'ko, na skol'ko on byl by bez ispol'zovaniya
kontrollera). Kotroller takzhe vypolnyaet i nekotorye drugie
funkcii, takie kak bufepizaciya informacii ili avtomaticheskaya
zamena plohih sektorov.

     Sushchestvuyut eshche nekotorye ponyatiya, znanie kotoryh neobhodimo
dlya ponimaniya raboty zhestkogo diska. Obychno poverhnosti delyatsya na
koncentricheskie kol'ca, nazyvaemye dorozhkami ili trekami, kotorye,
v svoyu ochered', delyatsya na sektora. Takoe razdelenie nuzhno dlya
ukazaniya nuzhnyh pozicij na diske i dlya raspredeleniya diskovogo
prostranstva na fajly. Dlya nahozhdeniya nuzhnoj informacii na diske
dostatochno primerno sleduyushchih dannyh: "poverhnost' 3, dorozhka 5,
sektor 7". Obychno kolichestvo sektorov na dorozhke odinakovo dlya
vseh dorozhek na diske, hotya v nekotoryh ustrojstvah na vneshnih
trekah razmeshchaetsya bol'shee kolichestvo sektorov (vse sektora imeyut
odin i tot zhe fizicheskij razmer, poetomu na bolee dlinnyh dorozhkah
pomeshchaetsya bol'she sektorov). Standartnyj razmer sektora raven 512
bajt. Disk ne mozhet operirovat' dannymi, ob®em kotoryh menee
odnogo sektora.

     Kazhdaya poverhnost' razdelena na dorozhki (i sektora) takim
obrazom, chto pri peremeshchenii golovki odnoj poverhnosti k
kakoj-libo dorozhke, golovki ostal'nyh poverhnostej budut
ustanovleny na etoj zhe dorozhke. Sovokupnost' vseh takih dorozhek
nazyvaetsya cilindrom. Dlya peremeshcheniya golovok ot odnoj dorozhki
(cilindra) k drugoj trebuetsya kakoe-to kolichestvo vremeni. Takim
obrazom, esli razmestit' dannye, dostup k kotorym chashche vsego
proizvoditsya srazu (naprimer, fajl), v odnom cilindre, to

                                - 29 -

neobhodimost' v peremeshchenii golovok otpadaet. |to povyshaet
proizvoditel'nost' raboty diska. Ne vsegda predstavlyaetsya
vozmozhnym razmestit' fajl podobnym obrazom. Fajly, kotorye
hranyatsya v raznyh mestah na diske, nazyvayutsya fragmentirovannymi.

     Kolichestvo poverhnostej (ili golovok, chto v principe odno i
to zhe), cilindrov i sektorov sil'no razlichaetsya u raznyh
ustrojstv. Sovokupnost' takih parametrov nazyvaetsya strukturoj
diska, kotoraya hranitsya v special'noj pamyati, dlya pitaniya kotoroj
ispol'zuyutsya akkumulyatory. |ta pamyat' nazyvaetsya CMOS RAM, otkuda
operacionnaya sistema mozhet schityvat' informaciyu vo vremya ee
zagruzki ili vo vremya ustanovki drajvera.

     K sozhaleniyu, BIOS postroen tak, chto ne predstavlyaetsya
vozmozhnym ukazat' dorozhku, nomer kotoroj prevyshaet 1024, dlya
zapisi v CMOS RAM, chto yavlyaetsya ser'eznym ogranicheniem dlya diskov
bol'shih ob®emov. Dlya resheniya etoj problemy kontroller zhestkogo
diska peredaet zavedomo nepravil'nuyu informaciyu o strukture diska
i preobrazuet dannye, predstavlyaemye komp'yuterom, v nechto,
sootvetsvuyushchee real'nosti. Naprimer, zhestkij disk mozhet sostoyat'
iz 8 golovok, 2048 dorozhek s 35 sektorami v kazhdoj. V to vremya kak
kontroller mozhet utverzhdat', chto disk imeet 16 golovok i 1024
dorozhki s 35 sektorami v kazhdoj, ne prevyshaya predela na hranenie v
CMOS RAM chisla dorozhek i preobrazuya adresaciyu umen'shaya nomer
golovki vdvoe i udvaivaya nomer dorozhki. Preobrazovanie adresov
iskazhaet predstavlenie operacionnoj sistemy o strukture diska, chto
uslozhnyaet razmeshchenie trebuemoj informacii na odnom cilindre dlya
uvelicheniya proizvoditel'nosti.

     Preobrazovanie ispol'zuetsya tol'ko dlya IDE diskov. V SCSI
diskah ispol'zuetsya dostup s primeneniem posledovatel'nogo nomera
sektora (kotoryj kontroller preobrazuet v nomer golovki, cilindra
i sektora diska) i drugoj metod obmena informaciej s processorom.
Odnako, processor mozhet ne imet' predstavleniya o real'noj
strukture diska.

     Tak kak sisteme Linux chasto ne izvestna informaciya o
strukture diska, to v fajlovyh sistemah ne ispol'zuetsya razmeshchenie

                                - 30 -

otdel'nyh fajlov v predelah odnogo cilindra. Vmesto etogo
primenyaetsya razmeshchenie fajlov v cepochkah posledovatel'no
raspolozhennyh sektorov, chto daet priblizitel'no odinakovuyu
proizvoditel'nost'. Hotya problema uslozhnyaetsya za schet
ispol'zovaniya special'nyh vozmozhnostej kontrollera, takih kak
vnutrennee keshirovanie i drugih avtomaticheskih funkcij.

     Kazhdyj zhestkij disk predstavlen otdel'nym fajlom. Dlya IDE
diskov obychno sushchestvuet tol'ko dva takih fajla. Oni izvestny kak
/dev/hda i /dev/hdb sootvetstvenno. Dlya SCSI diskov ispol'zuyutsya
fajly /dev/sda i /dev/sdb i t.d. Podobnye oboznacheniya primenyayutsya
i dlya drugih tipov diskov. Fajly ustrojstv dlya zhestkih diskov
predostavlyayut dostup k celomu disku, ne rassmatrivaya razdely
(kotorye budut opisany nizhe) i poetomu ne sostavlyaet truda
pereputat' razdely diska ili informaciyu v nih, esli ne byt'
dostatochno ostorozhnym. Fajly zhestkih diskov obychno ispol'zuyutsya
dlya dostupa k informacii v MBR (kotorye takzhe rassmotreny nizhe).

                         4.3  Gibkie diski

     Gibkij disk sostoit iz myagkoj plastiny, pokrytoj s odnoj ili
oboih storon materialom, podobnym tomu, kotorym pokryty plastiny v
zhestkom diske. U samoj diskety net nikakih golovok, oni
ustanovleny v privode. Disketu mozhno sravnit' s odnoj plastinoj,
ustanovlennoj v zhestkom diske, tol'ko disketa yavlyaetsya s®emnoj i
privod mozhet ispol'zovat'sya dlya raboty s razlichnymi diskami, v to
vremya kak zhestkij disk yavlyaetsya odnim nedelimym ustrojstvom.

     Takzhe kak zhestkij disk, disketa delitsya na dorozhki i sektora
(a dve sootvetstvuyushchie dorozhki na raznyh storonah sostavlyayut
cilindr), no ih namnogo men'she, chem na zhestkom diske.

     Diskovod mozhet rabotat' s neskol'kimi tipami disket.
Naprimer, privod na 3.5 dyujma mozhet rabotat' s diskami na 720 Kb i
1.44 Mb. Tak kak pri ispol'zovanii raznyh tipov diskov, rabota
samogo privoda nemnogo razlichaetsya, k tomu zhe operacionnaya sistema
dolzhna imet' predstavlenie ob ob®eme diska, sushchestvuet mnozhestvo
fajlov ustrojstv dlya raboty s privodami dlya gibkih diskov.

                                - 31 -

Nappimep, fajl /dev/fd0H1440 sootvetstvuet pervomu privodu (fd0)
formata 3.5 dyujma s disketoj na 3.5 dyujma vysokoj plotnosti (H)
ob®emom 1440 Kb (1440), t.e. pozvolyaet pabotat' s obychnymi
disketami na 3.5 dyujma.

     Imena fajlov dlya privodov gibkih diskov dovol'no slozhnye,
poetomu v sisteme Linux sushchestvuet special'nyj tip ustrojstva,
kotoryj avtomaticheski opredelyaet tip ispol'zuemogo gibkogo diska.
Metod opredeleniya zaklyuchaetsya v posledovatel'nom chtenii pervogo
sektora vstavlennoj diskety s ppimeneniem razlichnyh sposobov
chteniya, do teh por, poka on ne budet pravil'no schitan.
Estestvenno, disk dolzhen byt' snachala otformatirovan.
Avtomaticheskimi ustrojstvami yavlyayutsya /dev/fd0, /dev/fd1 i t.d.

     Parametry dlya avtomaticheskih ustrojstv, kotorye ispol'zuyutsya
dlya dostupa k disku, mogut byt' ustanovleny s pomoshch'yu programmy
setfdprm(8). |to mozhet byt' polezno v nekotoryh sluchayah, naprimer,
esli ispol'zuyutsya diskety nestandartnogo ob®ema (t.e. disketa
imeet nestandartnoe kolichestvo sektorov v dorozhke) ili esli
opredelenie tipa diska po kakoj-libo prichine ne rabotaet i
sootvetstvuyushchij fajl ustrojstva otsutstvuet.

                       4.4  Formatirovanie

     Formatirovanie - eto process zapisi special'nyh otmetok na
magnitnuyu poverhnost', kotorye ispol'zuyutsya dlya razdeleniya dorozhek
i sektorov. Pered formatirovaniem diska ego poverhnost' sostoit iz
smesi razlichnyh magnitnyh signalov. Pri formatirovanii eti signaly
uporyadochivayutsya i proishodit formirovanie dorozhek i sektorov. V
dejstvitel'nosti, vse namnogo slozhnee i vyhodit za ramki etoj
knigi. Nuzhno znat' tol'ko to, chto disk ne mozhet ispol'zovat'sya, do
teh por poka on ne budet otformatirovan.

     Pri rabote v MS-DOS, formatirovanie takzhe vklyuchaet v sebya
process sozdaniya fajlovoj sistemy. Tam chasto eti dva processa
sovmeshcheny, osobenno pri rabote s gibkimi diskami. No esli nuzhno
sdelat' razgranichenie, to dejstvitel'nym formatirovaniem nazyvayut
formatirovaniem na nizkom urovne, a sozdanie fajlovoj sistemy -

                                - 32 -

formatirovaniem na vysokom urovne. Pri rabote v sisteme UNIX (a
takzhe v etoj knige) vmesto etih dvuh ponyatij budut ispol'zovat'sya
ponyatiya formatirovanie i, sootvetstvenno, formirovanie fajlovoj
sistemy.

     Dlya IDE i nekotoryh SCSI diskov formatirovanie proizvoditsya
pri ih izgotovlenii i, obychno, ne trebuetsya povtoreniya etoj
procedury, poetomu bol'shinstvo lyudej redko ob etom zadumyvayutsya. V
dejstvitel'nosti, formatirovanie diska mozhet privesti k uhudsheniyu
ego raboty, naprimer, po prichine togo, chto disk dolzhen byt'
otformatirovan special'nym obrazom dlya obespecheniya vozmozhnosti
zameny plohih sektorov.

     Formatiruemye diski chasto postavlyayutsya so special'noj
programmoj, potomu kak vnutrennie interfejsy u raznyh privodov
razlichny. |ta programma obychno rapolozhena v mikrosheme BIOS
kontrollera ili postavlyaetsya otdel'no kak programma dlya MS-DOS. Ni
odni iz nih ne mogut byt' ispol'zovany dlya sistemy Linux.

     Vo vremya formatirovaniya mogut byt' obnaruzheny plohie bloki
ili sektora, kotorye ne dolzhny byt' ispol'zovany pri dal'nejshej
rabote. |ti funkcii vozlagayutsya na fajlovuyu sistemu. Hotya mozhno
sozdat' nebol'shoj razdel diska, kotoryj vklyuchaet v sebya tol'ko
plohie bloki. |to effektivno pri bol'shom kolichestve plohih blokov,
tak kak pri rabote fajlovoj sistemy mogut vozniknut' nekotorye
trudnosti, svyazannye s razmerom neispol'zuemoj oblasti.

     Dlya formatirovaniya disket ispol'zuetsya programma fdformat(8).
V kachestve parametra ukazyvaetsya fajl ustrojstva. Naprimer,
sleduyushchaya komanda ispol'zuetsya dlya formatirovaniya obychnoj diskety
razmerom 3.5 dyujma vysokoj plotnosti v pervom privode dlya gibkih
diskov:

ttyp5 root ~ $ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
ttyp5 root ~ $

                                - 33 -


     Esli dlya formatirovaniya ispol'zuetsya avtomaticheskoe
ustrojstvo (naprimer, /dev/fd0), to snachala nuzhno ukazat'
parametry etogo ustrojstva s pomoshch'yu programmy setfdprm(8). Dlya
polucheniya takogo zhe rezul'tata, kak v predydushchem primere, nuzhno
vypolnit' sleduyushchie dejstviya:

ttyp5 root ~ $ setfdprm /dev/fd0 1440/1440
ttyp5 root ~ $ fdformat /dev/fd0
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... done
ttyp5 root ~ $

     Obychno proshche ukazat' tochnyj fajl ustrojstva, kotoryj
sootvetstvuet tipu formatiruemogo diska.

     Programma fdformat takzhe ispol'zuetsya dlya vyyavleniya plohih
blokov. Ona obrabatyvaet plohoj blok neskol'ko raz. Esli problema
ne ochen' ser'ezna (zagryaznennaya rabochaya poverhnost'
schityvayushchih/zapisyvayushchih golovok, plohoj kontakt v raz®eme
kontrollera), to fdformat prodolzhit svoyu rabotu, no vozniknovenie
real'noj oshibki prervet process proverki. YAdro otobrazhaet
poyavlenie kazhdoj oshibki na terminale. Esli ispol'zuetsya syslog, to
soobshchenie postupaet v fajl /usr/adm/messages. fdformat ne soobshchaet
specifiku oshibki (obychno eto ne imeet znacheniya, tak kak diskovody
eto dovol'no deshevye ustrojstva i ih zamena ne sostavlyaet
problem).

ttyp5 root ~ $ fdformat /dev/fd0H1440
Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
Verifying ... read: Unknown error
ttyp5 root ~ $


                                - 34 -

     Komanda badblocks(8) ispol'zuetsya dlya poiska plohih blokov na
lyubom diske ili razdele diska (vklyuchaya gibkie diski). Ona ne
formatiruet disk, poetomu mozhet byt' ispol'zovana dlya proverki
dazhe sushchestvuyushchih fajlovyh sistem. V sleduyushchem primere
rassmatrivaetsya proverka 3.5 dyujmovoj diskety s dvumya plohimi
blokami.

ttyp5 root ~ $ badblocks /dev/fd0H1440
718
719
ttyp5 root ~ $

     Programma vyvodit nomera najdennyh plohih blokov. Vo mnogih
fajlovyh sistemah est' sredstva, pozvolyayushchie izbezhat'
ispol'zovaniya takih blokov. Dlya takih celej sushchestvuet spisok
izvestnyh plohih blokov, kotoryj inicializiruetsya pri ustanovke
fajlovoj sistemy i mozhet byt' modificirovan v dal'nejshem.
Pervichnyj poisk plohih blokov proizvoditsya pri vypolnenii komandy
mkfs (kotoraya inicializiruet fajlovuyu sistemu), v posleduyushchem
proverka proizvoditsya s pomoshch'yu programmy badblocks, a modifikaciya
spiska - pri pomoshchi komandy fsck. |ti komandy budut rassmotreny
nizhe.

                       4.5  Diskovye razdely

     Ves' zhestkij disk mozhet byt' razbit na neskol'ko razdelov,
prichem kazhdyj razdel predstavlen tak, kak esli by eto byl
otdel'nyj disk. Razdelenie ispol'zuetsya, naprimer, pri rabote s
dvumya operacionnyi sistemami na odnom diske. Pri etom kazhdaya
operacionnaya sistema ispol'zuet dlya raboty otdel'nyj razdel i ne
vzaimodejstvuet s drugimi. Takim obrazom, dve razlichnye sistemy
mogut byt' ustanovleny na odnom zhestkom diske. Bez ispol'zovaniya
razdelov v dannom sluchae voznikla by neobhodimost' v priobritenii
vtorogo diska.

     Dlya gibkih diskov razdely ne predusmotreny. V bol'shinstve
sluchaev dlya etogo net neobhodimosti, tak kak ih ob®em dostatochno
mal.

                                - 35 -


            4.5.1  MBR, zagruzochnye sektora i tablica razdelov

     Informaciya o razdelenii zhestkogo diska nahoditsya v pervom
sektore (t.e. v pervom sektore pervoj dorozhki pervogo diska). |tot
sektor nazyvaetsya MBR (sokrashchenie ot Master Boot Record) etogo
diska. Pri zagruzke komp'yutera BIOS zagruzhaet ego v pamyat' i
vypolnyaet. MBR soderzhit nebol'shuyu programmu, kotoraya schityvaet
tablicu razdelov, nahodit aktivnyj razdel (t.e. razdel, otmechennyj
kak zagruzochnyj) i schityvaet pervyj sektor etogo razdela, kotoryj
nazyvaetsya zagruzochnym sektorom (MBR takzhe yavlyaetsya zagruzochnym
sektorom, no on vypolnyaet special'nye funkcii i poetomu imeet
otdel'noe nazvanie). |tot sektor soderzhit druguyu nebol'shuyu
programmu, kotoraya, v svoyu ochered', schityvaet nachal'nuyu chast'
operacionnoj sistemy, raspolozhennoj v etom razdele, a zatem
vypolnyaet ee.

     Shema razdeleniya ne vstroena v oborudovanie ili dazhe v BIOS.
|to tol'ko standart, kotorogo priderzhivaetsya bol'shoe kolichestvo
operacionnyh sistem. Ne vse sistemy podderzhivayut ego, no oni
yavlyayutsya isklyucheniyami. Nekotorye sistemy podderzhivayut razdelenie,
no oni zanimayut vsego odin razdel na diske i ispol'zuyut svoyu
vnutrennyuyu shemu razdeleniya v predelah ispol'zuemogo razdela.
Takie operacionnye sistemy normal'no rabotayut s drugimi sistemami
(vklyuchaya Linux), kotorye nahodyatsya na tom zhe diske. No te
operacionnye sistemy, kotorye ne podderzhivayut razdely, ne mogut
byt' ustanovleny vmeste s drugimi sistemami na odnom diske.

     Iz mer predostorozhnosti sleduet zapisat' tablicu razdelov.
Esli eta tablica kakim-libo obrazom povreditsya, to vse fajly
ostanutsya v sohrannosti (isporchennaya tablica razdelov mozhet byt'
ispravlena pri pomoshchi programmy fdisk).

               4.5.2  Rasshirennye i logicheskie razdely

     Iznachal'no, v sheme razdeleniya zhestkogo diska v PC
dopuskalos' ispol'zovanie tol'ko chetyreh razdelov. No vskore etogo
okazalos' nedostatochno, chastichno po prichine togo, chto mnogim dlya

                                - 36 -

raboty trebuetsya bolee chetyreh operacionnyh sistem (naprimer,
Linux, MS-DOS, OS/2, Minix, FreeBSD, NetBSD, Windows/NT i t.d.),
no v osnovnom iz-za togo, chto odnoj sistemoj ispol'zuetsya
neskol'ko razdelov. Naprimer, v sisteme Linux swap-oblast' chashche
vsego razmeshchaetsya v otdel'nom razdele (a ne v osnovnom razdele
Linux) dlya povysheniya skorosti obmena (sm. nizhe).

     Dlya resheniya etoj problemy byla razrabotana shema,
ispol'zuyushchaya rasshirennye razdely. Ona pozvolyaet razbivat' osnovnoj
razdel na podrazdely. Osnovnoj razdel, razbityj takim obrazom,
nazyvaetsya rasshirennym razdelom, a podrazdely nazyvayutsya
logicheskimi razdelami. Oni funkcioniruyut tak zhe, kak i osnovnye
razdely, razlichie sostoit v sheme ih sozdaniya.

     Nizhe dan ppimep pazbieniya zheskogo diska na pazdely. Ves' disk
razbit na tri osnovnyh razdela, vtoroj iz kotoryh razbit na dva
logicheskih. CHast' diska ne ispol'zuetsya voobshche. Ves' disk, kak
celoe, i kazhdyj osnovnoj razdel imeyut svoj zagruzochnyj sektor.

  immmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm"
  º MBR                                  º
  lmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNoddddddddddddd
  º Zagruzochnyj sektor                   º
  º--------------------------------------º  Osnovnoj
  º                                      º
  º Oblast' dannyh razdela               º   razdel
  º                                      º
  lmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNoddddddddddddd
  º Zagruzochnyj sektor                   º           ¨
  ºddddddddddddddddddddddddddddddddddddddº           ¨
  º Neispol'zuemyj zagruzochnyj sektor    º Logicheskij¨
  º--------------------------------------º           ¨
  º                                      º   razdel  ¨
  º Oblast' dannyh razdela               º           ¨
  º                                      º           ¨ Rasshirennyj
  ºddddddddddddddddddddddddddddddddddddddºddddddddddd´
  º Neispol'zuemyj zagruzochnyj sektor    º           ¨   razdel
  º--------------------------------------º Logicheskij¨

                                - 37 -

  º                                      º           ¨
  º Oblast' dannyh razdela               º   razdel  ¨
  º                                      º           ¨
  lmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNoddddddddddddd
  º                                      º
  º Neispol'zuemoe diskovoe prostranstvo º
  º                                      º
  lmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmNoddddddddddddd
  º Zagruzochnyj sektor                   º
  º--------------------------------------º  Osnovnoj
  º                                      º
  º Oblast' dannyh razdela               º   razdel
  º                                      º
  hmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmmm¼ddddddddddddd


                        4.5.3    Tipy razdelov

     Tablicy razdelov (odna nahoditsya v MBR, drugie ispol'zuyutsya
dlya rasshirennyh razdelov) soderzhat odin bajt dlya kazhdogo razdela,
kotoryj ukazyvaet tip razdela. |to pozvolyaet opredelit'
operacionnuyu sistemu, kotoraya ispol'zuet razdel ili dlya chego on
ispol'zuetsya vo izbezhanie sluchajnogo razmeshcheniya dvuh sistem na
odnom razdele. Odnako, v dejstvitel'nosti, operacionnye sistemy
ignoriruyut bajt tipa razdela. Naprimer, sistema Linux voobshche ne
imeet predstavleniya o ego sushchestvovanii. Huzhe togo, nekotorye
sistemy nepravil'no ego interpretiruyut (po krajnej mere, nekotorye
versii DR-DOS ignoriruyut samyj vazhnyj bit etogo bajta, v otlichie
ot drugih).

     Ne sushchestvuet nikakih standartov, kasayushchihsya znachenij etih
bajtov, hotya nekotorye obshcheprinyatye znacheniya privedeny v tablice
nizhe. Takuyu zhe informaciyu predostavlyaet programma Linux fdisk.

0 pustoj razdel          40 Venix 80286          94 Amoeba BBT
1 DOS 12-bitnaya FAT      51 Novell               a5 BSD/386
2 XENIX root             52 Microport            b7 BSDI fs
3 XENIX usr              63 GNU HURD             b8 BSDI swap-oblast'

                                - 38 -

4 DOS 16-bit (<32Mb)     64 Novell               c7 Syrinx
5 rasshirennyj            75 PC/IX                db CP/M
6 DOS 16-bit (>=32Mb)    80 Old MINIX            e1 DOS
7 OS/2 HPFS              81 Linux/MINIX          e3 DOS r/o
8 AIX                    82 Linux swap-oblast'   f2 DOS dopolnitel'nyj
9 AIX zagruzochnyj        83 Linux                ff BBT
a OS/2 zagruzochnyj       93 Amoeba

                4.5.4   Razdelenie zhestkogo diska

     Sushchestvuet mnogo programm, pozvolyayushchih sozdavat' i udalyat'
razdely. U bol'shinstva operacionnyh sistem imeyutsya svoi
sobstvennye i razumnee vsego pol'zovat'sya imenno takimi
programmami. CHashche vsego eta programma nazyvaetsya fdisk (kak i v
sluchae Linux). Osobennosti raboty s nej rassmotreny v ee
rukovodstve. Komanda cfdisk podobna fdisk, tol'ko v pervoj
ispol'zuetsya polnoekrannyj interfejs.

     Pri pabote s IDE diskami, zagruzochnyj razdel (razdel, v
kotorom nahodyatsya fajly, ispol'zuemye pri zagruzke i samo yadro)
dolzhen polnost'yu raspolagat'sya v predelah pervyh 1024 cilindrov,
potomu kak vo vremya zagruzki rabota s diskom proishodit cherez BIOS
(pered perehodom sistemy v zashchishchennyj rezhim), a BIOS ne mozhet
operirovat' s cilindrami, nomer kotoryh bol'she, chem 1024. Inogda
predstavlyaetsya vozmozhnym ispol'zovanie zagruzochnogo razdela, lish'
chastichno raspolozhennogo v predelah pervyh 1024 cilindrov. Dannyj
metod rabotaet do teh por, poka vse fajly, schityvaemye posredstvom
BIOS, nahodyatsya v predelah 1024 cilindrov. Tak kak eto sdelat'
dovol'no slozhno, to ppimenenie etogo metoda ne rekomeduetsya.
Slozhno predugadat', kogda posle defragmentacii ili sbrasyvanii
soderzhimogo bufera na disk sistema perestanet zagruzhat'sya. Poetomu
sleduet udostoverit'sya v tom, chto zagruzochnyj razdel raspolozhen v
predelah pervyh 1024 cilindrov.

     Nekotorye poslednie versii BIOS i nedavnie modeli IDE diskov
v dejstvitel'nosti pozvolyayut pabotat' s cilindrami, nomer kotoryh
prevyshaet 1024.


                                - 39 -

     Kazhdyj razdel dolzhen soderzhat' chetnoe kolichestvo sektorov,
tak kak v sisteme Linux ispol'zuyutsya bloki razmerom v 1 Kb, t.e.
dva sektora. Nechetnoe kolichestvo sektorov privedet k tomu, chto
poslednij iz nih budet neispol'zovan. |to ni na chto ne vliyaet, no
ppi zapuske fdisk budet vydano ppeduppezhdenie.

     Pri izmenenii razmera razdela obychno trebuetsya snachala
sdelat' rezervnuyu kopiyu vsej neobhodimoj informacii, udalit'
razdel, sozdat' novyj razdel, a zatem vosstanovit' vsyu sohranennuyu
informaciyu na novyj razdel. Hotya sushchestvuet programma dlya MS-DOS
pod nazvaniem fips, kotoraya pozvolyaet izmenyat' ob®em razdela bez
rezervnogo kopirovaniya, no dlya drugih fajlovyh sistem etu opepaciyu
neobhodimo ppoizvodit'.

                  4.5.5  Fajly ustrojstv i razdely

     Kazhdomu osnovnomu i rasshirennomu razdelu sootvetstvuet
otdel'nyj fajl ustpojstva. Sushchestvuet soglashenie dlya imen podobnyh
fajlov, kotoroe sostoit v dobavlenii nomera razdela k imeni fajla
samogo diska. 1-4 razdely yavlyayutsya osnovnymi (vne zavisimosti ot
togo, skol'ko sushchestvuet osnovnyh pazdelov), a 5-8 - logicheskimi
(vne zavisimosti ot togo, k kakomu osnovnomu razdelu oni
otnosyatsya). Naprimer, /dev/hda1 sootvetstvuet pervomu osnovnomu
razdelu pervogo IDE zhestkogo diska, a /dev/sdb7 - tret'emu
rasshirennomu razdelu vtorogo SCSI diska.


                     4.6   Fajlovye sistemy

              4.6.1  CHto takoe fajlovaya sistema?

     Fajlovaya sistema - eto metody i struktury dannyh, kotorye
ispol'zuyutsya operacionnoj sistemoj dlya hraneniya fajlov na diske
ili ego razdele. O fajlovoj sisteme takzhe govoryat, ssylayas' na
razdel ili disk, ispol'zuemyj dlya hraneniya fajlov ili tip fajlovoj
sistemy.

     Nuzhno videt' raznicu mezhdu diskom ili razdelom i

                                - 40 -

ustanovlennoj na nem fajlovoj sistemoj. Nekotorye programmy
(naprimer, programmy ustanovki fajlovoj sistemy) pri obrashchenii k
disku ili razdelu ispol'zuyut pryamoj dostup k sektoram. Esli na
etom meste byla fajlovaya sistema, to ona budet ser'ezno
povrezhdena. Bol'shinstvo programm vzaimodejstvuyut s diskom
posredstvom fajlovoj sistemy, i, sledovatel'no, ih rabota budet
narushena, esli na razdele ili diske nikakaya sistema ne ustanovlena
(ili tip fajlovoj sistemy ne sootvetstvuet trebuemumu).

     Pered tem, kak razdel ili disk mogut byt' ispol'zovany v
kachestve fajlovoj sistemy, ona dolzhna byt' inicializirovana, a
trebuemye dannye pereneseny na etot disk. |tot process nazyvaetsya
sozdaniem fajlovoj sistemy.

     U bol'shej chasti fajlovyh sistem UNIX shodnaya struktura, a ih
nekotorye osobennosti ochen' malo razlichayutsya. Osnovnymi ponyatiyami
yavlyayutsya: superblok, indeksnyj deskriptor (inode), blok dannyh,
blok kataloga i kosvennyj blok. V superbloke soderzhitsya informaciya
o fajlovoj sisteme v celom, naprimer, ee razmer (tochnaya informaciya
zavisit ot tipa fajlovoj sistemy). V indeksnom deskriptore
hranitsya vsya informaciya o fajle, krome ego imeni. Imya fajla
hranitsya v bloke kataloga, vmeste s nomerom deskriptora. Zapis'
kataloga soderzhit imya fajla i nomer indeksnogo deskriptora
sootvetstvuyushchego fajla. V etom deskriptore hranyatsya nomera
neskol'kih blokov dannyh, kotorye ispol'zuyutsya dlya hraneniya samogo
fajla. V inode est' mesto tol'ko dlya neskol'kih nomerov blokov
dannyh, odnako, esli trebuetsya bol'shee kolichestvo, to prostranstvo
dlya ukazatelej na bloki dannyh dinamicheski vydelyaetsya. Takie bloki
nazyvayutsya kosvennymi. Dlya togo, chtoby najti blok dannyh, nuzhno
snachala najti ego nomer v kosvennom bloke.

     V fajlovyh sistemah UNIX obychno imeetsya vozmozhnost' sozdaniya
dyr v fajlah (eto mozhno sdelat' s pomoshch'yu komandy lseek(2), sm.
rukovodstvo). |to oznachaet, chto fajlovaya sistema predostavlyaet
lozhnuyu informaciyu o tom, chto v kakom-to meste v fajle soderzhatsya
nulevye bajty, no v dejstvitel'nosti dlya etogo ne vydelyayutsya
sektora (eto oznachaet, chto fajl budet zanimat' neskol'ko men'she
mesta na diske). |to chasto ispol'zuetsya osobenno v nebol'shih

                                - 41 -

dvoichnyh programmah, bibliotek Linux, v nekotoryh bazah dannyh i v
drugih otdel'nyh sluchayah. (Dyry realizuyutsya hraneniem special'nogo
znacheniya v kosvennom bloke ili indeksnom deskriptore vmesto adresa
bloka dannyh. |to special'noe znachenie pokazyvaet, chto dlya dannoj
chasti fajla bloki dannyh ne razmeshcheny i, sledovatel'no, chto v
fajle est' dyra.)

     Ispol'zovanie dyr dostatochno effektivno. Na komp'yutere s
obshchim diskovym prostranstvom v 200 Mb, prostye izmereniya
pokazyvayut, chto primenenie dyr daet ekonomiyu v 4 Mb. Odnako, eti
izmereniya provodilis' na sisteme, gde bylo ustanovleno
otnositel'no malo programm i otsutstvovali fajly baz dannyh. Metod
izmereniya dyr rassmotren v prilozhenii B.

                      4.6.2   Tipy fajlovyh sistem

     Linux podderzhivaet neskol'ko tipov fajlovyh sistem. Naibolee
vazhnye iz nih rassmotreny nizhe.

minix     Schitaetsya samoj staroj i samoj nadezhnoj fajlovoj sistemoj,
no dostatochno ogranichennoj v svoih vozmozhnostyah (u fajlov
otsutstvuyut nekotorye vremennye parametry, dlina imeni fajla
ogranichena 30-yu simvolami) i dostupnyh ob®emah (maksimum 64 Mb na
odnu fajlovuyu sistemu).

xia       Modificirovannaya versiya sistemy minix, v kotoroj uvelichena
maksimal'naya dlina imeni fajla i razmer fajlovoj sistemy, hotya ona
ne pealizuet nikakih novyh vozmozhnostej.

ext2      Naibolee bogataya funkcional'nymi vozmozhnostyami fajlovaya
sistema iz semejstva sovmestimyh s Linux. Na dannyj moment
schitaetsya samoj populyarnoj sistemoj. Ona razrabotana s uchetom
sovmestimosti s posleduyushchimi versiyami, poetomu dlya ustanovki novoj
versii koda sistemy ne trebuetsya ustanavlivat' ee zanovo.

ext       Predydushchaya versiya sistemy ext2, ne sovmestima s posleduyushchimi
versiyami. V nastoyashchee vremya ona ochen' redko vklyuchaetsya v pakety
novyh postavlyaemyh sistem, t.k. bol'shinstvo pol'zovatelej sejchas

                                - 42 -

pol'zuyutsya sistemoj ext2.

     V dopolnenie k rassmotrennym vyshe, v Linux vklyuchena podderzhka
eshche nekotoryh fajlovyh sistem dlya obespecheniya obmena fajlami mezhdu
drugimi operacionnymi sistemami. |ti fajlovye sistemy rabotayut
takzhe, kak i opisannye vyshe, krome togo, chto ih funkcional'nye
vozmozhnosti mogut byt' znachitel'no ogranicheny po sravneniyu s
vozmozhnostyami, obychno predostavlyaemymi fajlovymi sistemami UNIX.

msdos     Obespechivaetsya sovmestimost' s sistemoj MS-DOS (a takzhe
OS/2 i Windows NT).

umsdos    Rasshiryaet vozmozhnosti drajvera fajlovoj sistemy MS-DOS
dlya Linux takim obrazom, chto pri rabote v Linux, imeetsya
vozmozhnost' raboty s imenami fajlov nestandartnoj dliny, prosmotra
prav dostupa k fajlu, ssylok, imeni pol'zovatelya, kotoromu
prinadlezhit fajl, a takzhe operirovanie s fajlami ustrojstv. |to
pozvolyaet ispol'zovat' obychnuyu sistemu MS-DOS, tak, kak esli by
eto byla sistema Linux. Takim obrazom, isklyuchaetsya neobhodimost'
sozdaniya otdel'nogo razdela dlya Linux.

iso9660   Standartnaya fajlovaya sistema dlya CD-ROM. Dovol'no
populyarnoe razvitie standarta CD-ROM, vypolnennoe Rock Ridge'm,
kotoroe obespechivaet avtomaticheskuyu podderzhku imen fajlov
nestandartnoj dliny.

nfs       Setevaya fajlovaya sistema, obespechivayushchaya razdelenie
odnoj fajlovoj sistemy mezhdu neskol'kimi komp'yuterami dlya
predostavleniya dostupa k ee fajlam so vseh mashin.

hpfs      Fajlovaya sistema OS/2.

sysv      Fajlovye sistemy System V/386, Coherent i Xenix.


     Takzhe sushchestvuet fajlovaya sistema proc, kotoraya obychno
dostupna cherez katalog /proc. V dejstvitel'nosti, ona ne yavlyaetsya
fajlovoj sistemoj, hotya po ee strukture slozhno obnaruzhit' raznicu.

                                - 43 -

|ta sistema pozvolyaet poluchit' dostup k opredelennym strukturam
dannyh yadra, k takim, kak spisok processov (otsyuda nazvanie). Vse
eti struktury vyglyadyat kak fajlovaya sistema i imi mozhno
operirovat' obychnymi sredstvami raboty s fajlovoj sistemoj.
Naprimer, dlya polucheniya spiska vseh processov, ispol'zuetsya
sleduyushchaya komanda:

ttyp5 root ~ $ ls -l /proc
total 0
dr-xr-xr-x   4 root     root            0 Jan 31 20:37 1
dr-xr-xr-x   4 liw      users           0 Jan 31 20:37 63
dr-xr-xr-x   4 liw      users           0 Jan 31 20:37 94
dr-xr-xr-x   4 liw      users           0 Jan 31 20:37 95
dr-xr-xr-x   4 root     users           0 Jan 31 20:37 98
dr-xr-xr-x   4 liw      users           0 Jan 31 20:37 99
-r--r--r--   1 root     root            0 Jan 31 20:37 devices
-r--r--r--   1 root     root            0 Jan 31 20:37 dma
-r--r--r--   1 root     root            0 Jan 31 20:37 filesystems
-r--r--r--   1 root     root            0 Jan 31 20:37 interrupts
-r--------   1 root     root      8654848 Jan 31 20:37 kcore
-r--r--r--   1 root     root            0 Jan 31 11:50 kmsg
-r--r--r--   1 root     root            0 Jan 31 20:37 ksyms
-r--r--r--   1 root     root            0 Jan 31 11:51 loadavg
-r--r--r--   1 root     root            0 Jan 31 20:37 meminfo
-r--r--r--   1 root     root            0 Jan 31 20:37 modules
dr-xr-xr-x   2 root     root            0 Jan 31 20:37 net
dr-xr-xr-x   4 root     root            0 Jan 31 20:37 self
-r--r--r--   1 root     root            0 Jan 31 20:37 stat
-r--r--r--   1 root     root            0 Jan 31 20:37 uptime
-r--r--r--   1 root     root            0 Jan 31 20:37 version
ttyp5 root ~ $

(V dejstvitel'nosti, dolzhno byt' eshche neskol'ko fajlov, ne
sootvetstvuyushchih processam, odnako, etot primer nemnogo ukorochen.)

     Hotya sistema /proc i nazyvaetsya fajlovoj, ni odna ee chast' ne
vzaimodejstvuet s diskom. Ona sushchestvuet tol'ko v predstavlenii
yadra i pri popytke obrashcheniya k kakoj-libo ee chasti, sozdaetsya

                                - 44 -

vpechatlenie, chto eta chast' gde-to sushchestvuet, hotya v
dejstvitel'nosti eto ne tak. Dazhe esli sushchestvuet fajl /proc/kmem
v neskol'ko megabajt, on ne zanimaet mesta no diske.

             4.6.3  Kakuyu fajlovuyu sistemu ustanavlivat'?

     Obychno malo smysla v ppimenenii neskol'kih raznyh fajlovyh
sistem. V nastoyashchee vremya naibolee populyarnoj schitaetsya sistema
ext2fs i, vozmozhno, yavlyaetsya nailuchshim vyborom. V zavisimosti ot
razlichnyh parametrov (skorost', proizvoditel'nost', nadezhnost',
sovmestimost' i dr.) mozhet okazat'sya, chto ustanovka drugoj
fajlovoj sistemy budet bolee priemlemym variantom.

                  4.6.4  Ustanovka fajlovoj sistemy

     Fajlovaya sistema ustanavlivaetsya, t.e. inicializiruetsya, pri
pomoshchi komandy mkfs(8). V dejstvitel'nosti, sushchestvuyut otdel'nye
programmy dlya kazhdogo tipa fajlovoj sistemy. Komanda mkfs tol'ko
zapuskaet trebuemuyu programmu v zavisimosti ot tipa
ustanavlivaemoj sistemy. Tip fajlovoj sistemy ukazyvaetsya pri
pomoshchi opcii -t fstype.

     Parametry, peredavaemye programmam, vyzyvaemym mkfs, slegka
razlichayutsya. Naibolee vazhnye iz nih rassmotreny nizhe (dlya bolee
podrobnoj informacii sm. rukovodstvo).

-t fstype     Ukazyvaetsya tip fajlovoj sistemy.

-c            Proizvoditsya poisk plohih blokov i, sootvetstvenno,
inicializaciya spiska plohih blokov.

-l filename   Schityvaetsya nachal'nyj spisok plohih blokov iz fajla
filename.

     Dlya ustanovki fajlovoj sistemy ext2 na disketu, ispol'zuetsya
sleduyushchaya posledovatel'nost' komand:

ttyp5 root ~ $ fdformat -n /dev/fd0H1440

                                - 45 -

Double-sided, 80 tracks, 18 sec/track. Total capacity 1440 kB.
Formatting ... done
ttyp5 root ~ $ badblocks /dev/fd0H1440 1440 > bad-blocks
ttyp5 root ~ $ mkfs -t ext2 -l bad-blocks /dev/fd0H1440
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group

360 inodes per group
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
ttyp5 root ~ $

     V pervuyu ochered' disketa formatiruetsya (parametr -n
predotvrashchaet proverku na nalichie plohih blokov). Zatem
proizvoditsya poisk plohih blokov pri pomoshchi komandy badblocks,
vyvod kotoroj perenapravlen v fajl bad-blocks. I, nakonec,
fajlovaya sistema ustanavlivaetsya s inicializaciej spiska najdennyh
plohih blokov.

     Vmesto ispol'zovaniya badblocks, komande mkfs mozhet byt'
ukazan parametr -c, kak eto vidno iz primera, rassmotrennogo nizhe.

ttyp5 root ~ $ mkfs -t ext2 -c /dev/fd0H1440
mke2fs 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
360 inodes, 1440 blocks
72 blocks (5.00%) reserved for the super user
First data block=1
Block size=1024 (log=0)
Fragment size=1024 (log=0)
1 block group
8192 blocks per group, 8192 fragments per group
360 inodes per group

                                - 46 -


Checking for bad blocks (read-only test): done
Writing inode tables: done
Writing superblocks and filesystem accounting information: done
ttyp5 root ~ $

     Ukazanie parametra -c namnogo udobnee, chem primenenie komandy
badblocks, no ee ispol'zovanie neobhodimo dlya proverki fajlovoj
sistemy posle ee ustanovki.

     Ustanovka fajlovyh sistem na zhestkij disk ili ego razdel
analogichna ustanovke na disketu, isklyuchaya formatirovanie.

                 4.6.5    Montirovanie i demontirovanie

     Pered rabotoj s fajlovoj sistemoj, ona dolzhna byt'
smontirovana. Pri etom operacionnaya sistema vypolnyaet nekotorye
dejstviya, obespechivayushchie funkcionirovanie montiruemoj sistemy. Tak
kak vse fajly v sisteme UNIX prinadlezhat odnoj strukture
katalogov, to eta operaciya obespechivaet rabotu s fajlovoj
sistemoj, kak s katalogom uzhe smontirovannoj.

     Rassmotrim tri razlichnye fajlovye sistemy. Esli dve poslednie
sistemy (2-yu i 3-yu) sootvetstvenno smontirovat' k katalogam /home
i /usr pervoj sistemy, to v itoge obrazuetsya fajlovaya sistema s
edinoj strukturoj katalogov (4).

1]                  2]                   3]

/ ddbddddd bin      / ddbdddddd abc      / ddbdddddd bin
    ¨                   ¨                    ¨
    cddddd dev          cdddddd liw          cdddddd etc
    ¨                   ¨                    ¨
    cddddd home         yudddddd ftp          yudddddd lib
    ¨
    cddddd etc
    ¨
    cddddd lib

                                - 47 -

    ¨
    yuddddd usr

4]
/ ddbdddbd usr
    ¨   ¨
    ¨   cdddddd lib
    ¨   ¨
    ¨   cdddddd etc
    ¨   ¨
    ¨   yudddddd bin
    ¨
    cddddd lib
    ¨
    cddddd etc
    ¨
    cdddbd home
    ¨   ¨
    ¨   cdddddd ftp
    ¨   ¨
    ¨   cdddddd liw
    ¨   ¨
    ¨   yudddddd abc
    ¨
    cddddd bin
    ¨
    yuddddd dev


     V primere, rassmotrenom nizhe, pokazano, kak eto sdelat'.

ttyp5 root ~ $ mount /dev/hda2 /home
ttyp5 root ~ $ mount /dev/hda3 /usr
ttyp5 root ~ $

     Komanda mount(8) prinimaet dva parametra. Pervyj ih nih -
fajl ustrojstva, sootvetstvuyushchij disku ili razdelu, na kotorom
rapolozhena fajlovaya sistema. Vtorym parametrom yavlyaetsya imya

                                - 48 -

kataloga, k kotoromu budet montirovat'sya sistema. Posle vypolneniya
etih komand soderzhimoe fajlovyh sistem otobrazhaetsya v katalogah
/home i /usr sootvetstvenno. Takzhe mozhno skazat', chto razdel
/dev/hda2 smontirovan k katalogu /home, a /dev/hda3 - k katalogu
/usr. Sushchestvuet razlichie mezhdu fajlom ustrojstva, /dev/hda2, i
montiruemym katalogom, /home. Fajl ustrojstva predostavlyaet dostup
k 'syrym' dannym, raspolozhennym na diske, a montiruemyj katalog -
k fajlam. Takoj katalog nazyvaetsya uzlom montirovaniya.

     Montiruemyj katalog ne obyazatel'no dolzhen byt' pustym, hotya
on dolzhen sushchestvovat'. Odnako vse fajly, v nem raspolozhennye,
budut nedostupny posle montirovaniya fajlovoj sistemy. (Otkrytye
ranee fajly budut takzhe dostupny, a fajly, yavlyayushchiesya zhestkimi
ssylkami iz drugih katalogov, budut dostupny s ispol'zovaniem imen
ssylok.) Takim obrazom, nikakogo ushcherba ne nanositsya i eto dazhe
mozhet byt' polezno. Naprimer, nekotorye delayut katalog /tmp
simvolicheskoj ssylkoj na katalog /usr/tmp. Pri zagruzke sistemy,
kogda fajlovaya sistema /usr ne smontirovana, katalog razmeshchaetsya v
sisteme root. Posle togo, kak /usr smontirovana, katalog /usr/tmp,
raspolozhennyj v fajlovoj sisteme root, stanovitsya nedostupnym.
Esli zhe /usr/tmp ne sushchestvuet v sisteme root, to pered
montirovaniem /usr sozdanie i pabota s vremennymi fajlami budet
nevozmozhna.

     Dlya zashchity fajlovoj sistemy ot zapisi, komanda mount
zapuskaetsya s opciej -r, posle chego montirovanie proizvoditsya v
rezhime read-only. Posle etogo yadro presekaet lyubye popytki zapisi,
vklyuchaya modifikaciyu vremeni dostupa k fajlam v indeksnom
deskriptore. Montirovanie s zashchitoj ot zapisi ispol'zuetsya pri
rabote s takimi ustrojstvami, kak CD-ROM.

     Voznikaet vopros: kakim zhe obrazom montiruetsya samaya pervaya
fajlovaya sistema (t.e. sistema root), tak kak ochevidno, chto ona ne
mozhet byt' smontirovana na kakuyu-libo druguyu. Sistema root
montiruetsya vo vremya zagruzki, poetomu schitaetsya, chto ona vsegda
ustanovlena (esli by ona ne byla ustanovlena, to komp'yuter ne smog
by zagruzit'sya). Nazvanie fajlovoj sistemy, ispol'zuemoj dlya
montirovaniya root, libo vstroeno v yadro, libo ustanavlivaetsya pri

                                - 49 -

pomoshchi LILO ili rdev.

     Obychno snachala sistema root montiruetsya v rezhime read-only.
Zatem zapuskaetsya programma fsck(8) dlya proverki ee celostnosti i
esli vse v poryadke, to sistema montiruetsya snova v rezhime
read-write. fsck ne sleduet zapuskat' na smontirovannoj fajlovoj
sisteme, tak kak izmeneniya, proizvedennye pri ee vypolnenii, mogut
privesti k povpezhdeniyu sistemy. Tak kak sistema root snachala
montiruetsya v rezhime read-only, to posle ee proverki vse nepoladki
mogut byt' polnost'yu ustraneny pri povtornom montirovanii.

     Na mnogih sistemah sushchestvuyut i drugie fajlovye sistemy,
kotorye dolzhny byt' smontirovany vo vremya zagruzki. Ih spisok
soderzhitsya v fajle /etc/fstab (sm. rukovodstvo k fstab(5)).

     Esli fajlovaya sistema dlya raboty bol'she ne trebuetsya, to ona
mozhet byt' demontirovana. Dlya etogo ispol'zuetsya komanda umount(8)
s odnim parametrom. |to mozhet byt' kak fajl ustrojstva, tak i uzel
montirovaniya. Naprimer, dlya demontirovaniya katalogov,
rassmotrennyh v predydushchem primere, ispol'zuyutsya sleduyushchie
komandy:

ttyp5 root ~ $ umount /dev/hda2
ttyp5 root ~ $ umount /usr
ttyp5 root ~ $

     Posle raboty s diskovodom sleduet kazhdyj raz primenyat' etu
komandu, tak kak do demontirovaniya sistemy nel'zya byt' uverennym,
chto dannye byli zapisany na disk, a ne ostalis' v bufere.

     Dlya vypolneniya operacij montirovaniya i demontirovaniya
trebuetsya nalichie prav dostupa pol'zovatelya root. Odnako, mnogie
pol'zovateli dovol'no chasto rabotayut s diskovodom i dlya resheniya
etoj problemy sushchestvuet neskol'ko sposobov:

     Soobshchit' vsem parol' pol'zovatelya root. |to samyj prostoj, no
daleko ne luchshij vyhod. On mozhet ispol'zovat'sya na nekotoryh
sistemah, ne nuzhdayushchihsya v zashchite (obychno ne podklyuchennyh k

                                - 50 -

kakoj-libo seti).

     Primenyat' kakuyu-libo programmu (naprimer, sudo(8)),
pozvolyayushchuyu vsem ispol'zovat' komandu mount. |to takzhe ne luchshij
sposob po prichine plohoj zashchity, hotya ego primenenie ne
predostavlyaet nappyamuyu prava root kazhdomu pol'zovatelyu.

     Primenenie paketa mtools, ispol'zuemogo tol'ko dlya raboty s
fajlovoj sistemoj MS-DOS bez vypolneniya operacii montirovaniya.
Ispol'zuetsya tol'ko v teh sluchayah, kogda diskovod primenyaetsya dlya
raboty s diskami sistemy MS-DOS.

     Pomestit' spisok fajlov ustrojstv, ispol'zuemyh pri rabote s
gibkimi diskami, i dostupnyh uzlov montirovaniya vmeste s nuzhnymi
opciyami v fajl /etc/fstab.

     Poslednij metod mozhet byt' realizovan putem dobavleniya v fajl
/etc/fstab sleduyushchej stroki:

/dev/fd0 /floppy msdos user,noauto

     Snachala ukazyvaetsya fajl ustrojstva, zatem katalog, na
kotoryj montiruetsya ustrojstvo, tip fajlovoj sistemy i opcii.
Opciya noauto zapreshchaet avtomaticheskoe montirovanie pri nachal'noj
zagruzke sistemy. Opciya user pozvolyaet lyubomu pol'zovatelyu
montirovat' ukazannuyu fajlovuyu sistemu i, po prichine zashchity
sistemy, zapreshchaet vypolnenie programm i rabotu s fajlami
ustrojstv, raspolozhennyh na smontirovannoj sisteme. Posle etogo,
lyuboj pol'zovatel' mozhet vypolnit' sleduyushchuyu komandu:

ttyp5 root ~ $ mount /floppy
ttyp5 root ~ $

     Dlya demontirovaniya sistemy ispol'zuetsya komanda umount s
sootvetstvuyushchimi parametrami.

           4.6.6   Podderzhka rabotosposobnosti fajlovyh sistem


                                - 51 -

     Fajlovye sistemy eto dostatochno slozhnye ob®ekty, poetomu
inogda ih funkcionirovanie narushaetsya. Dlya proverki celostnosti i
rabotosposobnosti fajlovoj sistemy ispol'zuetsya komanda fsck(8).
Naibolee chasto voznikayushchie tpudnosti svyazany s pereboyami v
pitanii, nepoladkah v oborudovanii ili oshibkah operatora
(naprimer, nekorrektnoe vyklyuchenie sistemy).

     Bol'shinstvo sistem skonfigurirovano takim obrazom, chto
komanda fsck zapuskaetsya avtomaticheski pri zagruzke sistemy,
poetomu vozmozhnye nepoladki budut obnaruzheny (i, vozmozhno,
ispravleny) pered tem, kak sistema budet ispol'zovat'sya. Rabota s
povrezhdennoj fajlovoj sistemoj mozhet privesti k poteryam dannyh i
drugim narusheniyam ee funkcionirovaniya. Odnako, esli fajlovaya
sistema dovol'no bol'shaya po ob®emu, to ee proverka mozhet zanyat'
nekotoroe vremya, a tak kak nepoladki sluchayutsya ochen' redko, to
esli sistema byla vyklyuchena korrektno, ppimenyayutsya opredelennye
metody dlya izbezhaniya proverki fajlovoj sistemy. Pervyj iz nih
svyazan s tem, chto esli sushchestvuet fajl /etc/fastboot, to nikakih
proverok ne proizvoditsya. Vtoroj metod zaklyuchaetsya v tom, chto v
fajlovoj sisteme ext2 sushchestvuet special'nyj flag, rapolozhennyj v
superbloke, kotoryj ispol'zuetsya dlya vyyavleniya koppektnosti
demontirovaniya sistemy ppi poslednem vyklyuchenii sistemy. |ta
vozmozhnost' ispol'zuetsya v programme e2fsck (versiya komandy fsck
dlya fajlovoj sistemy ext2fs) dlya izbezhaniya izlishnej proverki
fajlovoj sistemy, esli flag ee celostnosti ustanovlen (to est'
sistema byla koppektno demontirovana). Funcionirovanie metoda,
ispol'zueshchego fajl /etc/fastboot, zavisit ot fajlov, zapuskaemyh
pri zagruzke sistemy, v to vremya kak primenenie komandy e2fsck
rabotaet v lyubom sluchae (sm. rukovodstvo po e2fsck(8) dlya bolee
podrobnoj informacii).

     Avtomaticheskaya proverka ispol'zuetsya tol'ko dlya fajlovyh
sistem, ustanavlivaemyh vo vremya zagruzki. Dlya proverki drugih
sistem komanda fsck dolzhna vypolnyat'sya otdel'no.

     Esli fsck nahodit neispravnost', ne podlezhashchuyu
vosstanovleniyu, to mogut potrebovat'sya glubokie znaniya i ponimanie
raboty fajlovyh sistem i ih tipov. Takzhe mogut potrebovat'sya

                                - 52 -

rezervnye kopii. Nekotoruyu informaciyu po tem ili inym voprosam
mozhno najti cherez telekonferencii, svyazannye s sistemoj Linux.
Takzhe mozhet potpebovat'sya programma debugfs(8), sozdannaya Theodore
T.

     Komanda fsck dolzhna ispol'zovat'sya tol'ko dlya demontirovannyh
sistem (za isklyucheniem sistemy root, smontirovannoj v rezhime
read-only vo vremya zagruzki), tak kak pri ee rabote ispol'zuetsya
pryamoj dostup k disku i informaciya o vnesenii kakih-libo izmenenij
v fajlovuyu sistemu mozhet byt' nedostupna operacionnoj sisteme,
chto, obychno, privodit k narusheniyu ee raboty.

     Inogda sleduet provodit' poisk plohih blokov pri pomoshchi
komandy badblocks. Pri ee vypolnenii vyvoditsya spisok nomerov
najdennyh plohih blokov. |tot spisok mozhet byt' ispol'zovan
programmoj fsck dlya vneseniya izmenenij v strukturu fajlovoj
sistemy vo izbezhanie ispol'zovaniya etih blokov dlya hraneniya
informacii. V sleduyushchem primere pokazano kak eto sdelat'.

ttyp5 root ~ $ badblocks /dev/fd0H1440 1440 > bad-blocks
ttyp5 root ~ $ fsck -t ext2 -l bad-blocks /dev/fd0H1440
Parallelizing fsck version 0.5a (5-Apr-94)
e2fsck 0.5a, 5-Apr-94 for EXT2 FS 0.5, 94/03/10
Pass 1: Checking inodes, blocks, and sizes
Pass 2: Checking directory structure
Pass 3: Checking directory connectivity
Pass 4: Check reference counts.
Pass 5: Checking group summary information.

/dev/fd0H1440: ***** FILE SYSTEM WAS MODIFIED *****
/dev/fd0H1440: 11/360 files, 63/1440 blocks
ttyp5 root ~ $

                     4.7  Diski bez fajlovyh sistem

     Ne vse diski ili razdely ispol'zuyutsya kak fajlovye sistemy.
Naprimer, razdel swap-oblasti ne soderzhit fajlovoj sistemy. Mnogie
diskovody ispol'zuyutsya v rezhime emulyacii lentochnogo nakopitelya,

                                - 53 -

poetomu tar-fajl ili lyuboj drugoj fajl zapisyvaetsya
neposredstvenno na disk bez ispol'zovaniya kakoj-libo fajlovoj
sistemy. U takogo ispol'zovaniya est' nebol'shoe preimushchestvo v
svobodnom prostranstve (pri ustanovke fajlovoj sistemy nekotoraya
chast' diskovogo prost'ranstva ispol'zuetsya dlya sistemnyh celej) i
sovmestimosti s drugimi sistemami. Naprimer, fajlovyj format tar
yavlyaetsya standartnym dlya vseh sistem, v to vremya kak fajlovye
sistemy na raznyh platformah razlichayutsya. Diskety ekstrennoj
zagruzki sistemy Linux takzhe mogut ne soderzhat' fajlovoj sistemy.

     Odna iz prichin ispol'zovaniya pryamogo dostupa k disku (bez
primeneniya fajlovoj sistemy) eto sozdanie kopij. Naprimer, esli
disk soderzhit chastichno povrezhdennuyu fajlovuyu sistemu, to pri
vozmozhnosti sleduet sozdat' ego kopiyu pered tem, kak pytat'sya
chto-libo sdelat'. Dlya etogo mozhno ispol'zovat' programmu dd(1).

ttyp5 root /usr/tmp $ dd if=/dev/fd0H1440 of=floppy-image
2880+0 records in
2880+0 records out
ttyp5 root /usr/tmp $ dd if=floppy-image of=/dev/fd0H1440
2880+0 records in
2880+0 records out
ttyp5 root /usr/tmp $

     Snachala komanda dd vypolnyaet tochnuyu kopiyu diskety v fajl
floppy-image, a zatem zapisyvaet kopiyu obratno na disk
(predpolagaetsya, chto pered vypolneniem poslednej komandy byla
vstavlena drugaya disketa).

             4.8  Raspredelenie diskovogo prostranstva

                 4.8.1   Shemy razdeleniya diskov

     Dovol'no slozhno razbit' disk na neskol'ko razdelov nailuchshim
obrazom, tak kak na eto vliyaet dovol'no mnogo faktorov.

     Obychno ispol'zuetsya otdel'nyj razdel ili disk dlya fajlovoj
sistemy root, kotoraya soderzhit katalogi /bin, /etc, /dev, /lib,

                                - 54 -

/tmp i nekotorye drugie, trebuemye dlya normal'noj zagruzki i
zapuska sistemy. Takim obrazom, vse, chto nuzhno dlya zapuska sistemy
- eto fajlovaya sistema root. Dlya fajlovoj sistemy /usr, lichnyh
katalogov pol'zovatelej (obychno katalog /home) i dlya swap-oblasti
ispol'zuyutsya otdel'nye diski ili ih razdely. Razdelenie katalogov
s pol'zovatel'skimi fajlami oblegchaet sozdanie rezervnyh kopij,
tak kak obychno ne trebuetsya sohranyat' rabochie programmy
(raspolozhennye v kataloge /usr). Takzhe vozmozhno razdelenie sistemy
/usr mezhdu neskol'kimi komp'yuterami v seti (s ispol'zovaniem NFS)
dlya umen'sheniya obshchego ispol'zuemogo diskovogo prostranstva.

     Dlya zhestkih diskov nebol'shogo ob®ema luchshe vsego ispol'zovat'
odin razdel. Pri ispol'zovanii bol'shogo diska obychno ego razbivayut
na neskol'ko krupnyh razdelov. Esli v sisteme ispol'zuetsya
neskol'ko diskov, to, vozmozhno, neplohim variantom budet
ustanovit' fajlovuyu sistemu root (vklyuchaya /usr) na odin disk, a
lichnye katalogi pol'zovatelej - na drugoj.

                4.8.2  Trebovaniya k diskovomu prostranstvu

     Pri ustanovke Linux budet predostavlena informaciya o
trebuemom diskovom prostranstve pri razlichnoj konfiguracii
sistemy. Otdel'no ustanavlivaemye programmy takzhe mogut
ispol'zovat' podobnuyu shemu. |to pomogaet raspredelyat' mesto na
diske.

     Razmer oblasti, ispol'zuemoj dlya fajlov pol'zovatelej,
zavisit ot haraktera raboty. Mnogie schitayut, chto dlya lichnyh
katalogov nuzhno ispol'zovat' kak mozhno bol'she prostranstva, hotya
minimal'no trebuemyj ob®em na raznyh sistemah sil'no var'iruetsya.
Dlya prostejshej obrabotki tekstov nekotorym mozhet potrebovat'sya
vsego neskol'ko megabajt, v to vremya kak drugim, rabotayushchim s
moshchnymi graficheskimi prilozheniyami, mogut potrebovat'sya mnogie
gigabajty.

     Razmeshchenie swap-oblasti rassmotreno v razdele 6.5.



                                - 55 -

              4.8.3   Primery raspredeleniya zhestkogo diska

     Na rassmatrivaemom komp'yutere byl ustanovlen disk ob®emom 109
Mb. Sejchas na nem ispol'zuetsya disk ob®emom 330 Mb. Nizhe
rassmatrivaetsya kak i pochemu eti diski byli razbity.

     Pervyj disk (109 Mb) byl razbit sleduyushchim obrazom. Na
komp'yutere byli ustanovleny sistemy MS-DOS i Linux. Pri etom, dlya
DOS ispol'zovalsya razdel ob®emom 20 Mb, 10-ti Mb razdel byl
prednaznachen dlya swap-oblasti i ostavshiesya 79 Mb byli otdany pod
otdel'nyj razdel, gde hranilis' vse fajly, neobhodimye dlya raboty
Linux.

     Drugoj disk razmerom 330 Mb byl razbit sleduyushchim obrazom:

5 Mb       fajlovaya sistema root
10 Mb      swap-oblast'
180 Mb     fajlovaya sistema /usr
120 Mb     fajlovaya sistema /home
15 Mb      dopolnitel'nyj razdel

        4.8.4   Ispol'zovanie dopolnitel'nogo diskovogo prostranstva

     Dobavlenie diskovogo prostranstva v sisteme Linux dovol'no
prosto, po krajnej mere posle ustanovki nuzhnogo oborudovaniya.
Trebuemyj disk formatiruetsya, v sluchae neobhodimosti, zatem
sozdayutsya razdely i ustanavlivaetsya fajlovaya sistema (eto bylo
rassmotreno vyshe). Posle etogo dobavlyayutsya sootvetstvuyushchie stroki
v fajl /etc/fstab, chto pozvolyaet avtomaticheski montirovat'
dopolnitel'nyj razdel ili disk.

               4.8.5  Metody sohraneniya diskovogo prostranstva

     Nailuchshij metod sohraneniya diskovogo prostranstva - eto ne
ustanavlivat' neispol'zuemye programmy. Inogda mozhno udalit'
neispol'zuemye fajly, takie kak nenuzhnye shrifty dlya X11 ili
nekotorye biblioteki dlya C++.


                                - 56 -

     Takzhe v opredelennyh sluchayah mozhno ispol'zovat' szhatie
fajlov. Sushchestvuyut programmy, takie kak gzip(1) i zip(1),
pozvolyayushchie proizvodit' kompressiyu fajlov i katalogov. Sistema
gzexe szhimaet i razzhimaet fajly nezametno dlya pol'zovatelya. A
eksperimental'naya sistema DouBle proizvodit kompressiyu fajlov
nezametno dlya ispol'zuyushchih ih programm.
.
                                - 57 -



                 Glava 5  Obzor Struktury Katalogov

     V etoj glave rassmotreny naibolee vazhnye sostavlyayushchie
struktury katalogov sistemy Linux, osnovannye na standarte FSSTND.
Takzhe v obshchih chertah opisyvaetsya razbienie obshchej struktury
katalogov na otdel'nye fajlovye sistemy i s kakoj cel'yu.

                          5.1  Vvedenie

     |ta glava osnovana na standarte fajlovoj sistemy Linux FSSTND
versii 1.2, kotoryj vypushchen dlya popytki standartizirovat'
organizaciyu struktury katalogov v sisteme Linux. On mozhet byt'
ispol'zovan dlya oblegcheniya razrabotki i perenosa programmnogo
obespecheniya dlya Linux, a takzhe administrirovaniya Linux sistem. V
sozdanii FSSTND sdelana popytka posledovat' tradiciyam i nastoyashchim
perspektivam razvitiya Unix, chto sblizhaet Linux sistemy s bolee
professional'nymi Unix sistemami.

     Glava ne yavlyaetsya takim podrobnym opisaniem, kak FSSTND.
Poetomu sistemnyj administrator dolzhen prochitat' ego dlya polnogo
ponimaniya vseh aspektov.

     V glave ne rassmatrivayutsya formaty fajlov i drugie
podrobnosti, tak kak cel' glavy - eto sdelat' obzor vsej sistemy
otnositel'no fajlovoj sistemy.

     Postroenie struktury katalogov iznachal'no predpolagaet ee
razbienie na otdel'nye chasti, kazhdaya iz kotoryh mozhet razmeshchat'sya
na otdel'nom diske ili ego razdele. |to ispol'zuetsya dlya
oblegcheniya kontrolya ob®ema diska, sozdaniya rezervnyh kopij i
drugih obyazannostej sistemnogo administratora. Osnovnymi chastyami
yavlyayutsya fajlovye sistemy root, /usr, /var i /home. Struktura
katalogov razrabatyvalas' takzhe dlya raboty v seti, gde vozmozhno
raspredelenie ee nekotoryh chastej posredstvom kakogo-libo
ustrojstva (naprimer, CD-ROM) ili seti s ispol'zovaniem NFS.


                                - 58 -

     Dalee rassmatrivaetsya naznachenie razlichnyh chastej struktury
katalogov.

     Fajlovaya sistema root (ona obychno nahoditsya na lokal'nom
diske, hotya mozhet byt' zagpuzhena v pyamyat' vo vpemya zapuska
sistemy) sodepzhit vse fajly, neobhodimye dlya zagpuzki i zapuska
sistemy tak, chto posle etogo mozhet byt' smontipovana lyubaya dpugaya
fajlovaya sistema. Ona takzhe sodepzhit spedstva dlya vosstanovleniya
povpezhdennyh fajlovyh sistem i dlya paboty s pezepvnymi kopiyami.

     V fajlovoj sisteme /usr nahodyatsya vse komandy, ppogpammy,
biblioteki, stpanicy pukovodstv i dpugie fajly, tpebuemye dlya
nopmal'nogo funkcionipovaniya sistemy. Ni odin iz fajlov etoj
sistemy ne dolzhen byt' specifichnym dlya kakoj libo otdel'noj mashiny
i ne dolzhen byt' izmenen ppi obychnoj pabote sistemy. |to pozvolyaet
pasppedelyat' eti fajly v seti, chto mozhet byt' dovol'no effektivnym
pesheniem za schet ekonomii diskovogo ppostpanstva i ppinyatiya
nekotopyh peshenij ppi administpipovanii sistemy. Dazhe esli /usr
paspolozhena na lokal'nom diske, to ona dolzhna byt' smontipovana v
pezhime read-only vo izbezhanie ee sluchajnogo povpezhdeniya.

     Fajlovaya sistema /var sodepzhit pazlichnye fajly, izmenyaemye vo
vpemya paboty sistemy, takie kak bufepnye katalogi (dlya pochty,
novostej i t.d.), zhupnal'nye fajly, fopmatipovannye stpanicy
pukovodstv, a takzhe vpemennye fajly. Obychno vsya infopmaciya v /var
izvlekaetsya iz sistemy /usr, no togda bylo by nevozmozhnym
smontipovat' /usr v pezhime read-only.

     V fajlovoj sisteme /home nahodyatsya lichnye katalogi
pol'zovatelej. Razmeshchenie /home v otdel'nom kataloge ili fajlovoj
sisteme upposhchaet pezepvnoe kopipovanie infopmacii. Ppi uvelichenii
ob®ema infopmacii ona mozhet byt' pazbita na neskol'ko otdel'nyh
fajlovyh sistem (nappimep, /home/students ili /home/staff).

     Hotya vyshe pazlichnye sostavlyayushchie i nazyvalis' fajlovymi
sistemami, v dejstvitel'nosti oni ne obyazatel'no dolzhny byt'
pazmeshcheny na otdel'nyh fajlovyh sistemah. Oni legko mogut
nahoditsya na odnoj sisteme, esli ispol'zuetsya odnopol'zovatel'skij

                                - 59 -

pezhim paboty. Stpuktupa katalogov takzhe mozhet byt' pazbita po
paznomu, v zavisimosti ot ob®ema diskovogo ppostpanstva i ego
pasppedeleniya dlya pazlichnyh celej. Vazhno tol'ko chtoby standaptnye
imena fajlov sootvetstvovali dejstvitel'nosti.

     V fajlovoj sisteme UNIX vse fajly gpuppipuyutsya po ih
naznacheniyu (vse komandy nahodyatsya v odnom meste, fajly dannyh - v
dpugom, dokumentaciya - v tpet'em i t.d.). Al'tepnativoj etomu
yavlyaetsya pazmeshchenie fajlov v zavisimosti ot togo k kakoj ppogpamme
oni otnosyatsya, to est' vse fajly, otnosyashchiesya k pedaktopu Emacs
nahodyatsya v odnom kataloge, vse fajly TeX - v dpugom i t.d.
Voznikaet tol'ko ppoblema v pasppedelenii fajlov (katalog, v
kotopom nahoditsya ppogpamma, obychno sodepzhit kak postoyannye fajly,
tak fajly, izmenyaemye v ppocesse paboty), a inogda dazhe v ih
poiske (nappimep, poisk pukovodstva k ppogpamme).

                      5.2  Fajlovaya sistema root

     Fajlovaya sistema root dolzhna byt' nebol'shih pazmepov, tak kak
ona sodepzhit vazhnye fajly i komandy. CHem men'she ob®em fajlovoj
sistemy i chem pezhe ona podlezhit izmeneniyam, tem men'she vepoyatnost'
ee povpezhdeniya. Esli sistema root povpezhdena, to obychno eto
oznachaet, chto nachal'naya zagpuzka komp'yutepa nevozmozhna (kpome
otdel'nyh metodov, nappimep ppi pomoshchi disket).

     Kopnevoj katalog obychno ne sodepzhit kakih-libo fajlov, hotya v
nem mozhet nahoditsya sistemnyj fajl yadpa (obychno on nazyvaetsya
/vmlinuz), zagpuzhaemyj v pamyat' ppi stapte sistemy. Vse ostal'nye
fajly paspolagayutsya v sleduyushchih podkatalogah:

/bin            Komandy, tpebuemye ppi zagpuzke sistemy i
ispol'zuemye obychnymi pol'zovatelyami.

/sbin           To zhe, chto i /bin, tol'ko nahodyashchiesya zdes' komandy
ne ppednaznacheny dlya pol'zovatelej s obshchimi ppavami.

/etc            Razlichnye konfigupacionnye fajly.


                                - 60 -

/root           Lichnyj katalog pol'zovatelya root.

/lib            Biblioteki, ispol'zuemye ppogpammami iz
fajlovoj sistemy root.

/lib/modules    Podgpuzhaemye moduli dlya yadpa.

/dev            Fajly ustpojstv.

/tmp            Vpemennye fajly.

/boot           Fajly, ispol'zuemye nachal'nym zagpuzchikom
(t.e. LILO). CHashche vsego, pazlichnye sistemnye fajly yadpa
paspolozheny v etom kataloge, vmesto kopnevogo. Esli etih fajlov
dostatochno mnogo, to pazumnee vsego pazmestit' etot katalog na
otdel'nom pazdele diska. Dpugoj ppichinoj mozhet posluzhit' to, chto
fajl yadpa dolzhen byt' paspolozhen v ppedelah pepvyh 1024 cilindpov
zhestkogo IDE diska.

/mnt            Uzly montipovaniya dlya vpemennyh fajlovyh sistem.
|tot katalog mozhet byt' pazbit na neskol'ko podkatalogov
(nappimep, katalog /mnt/dosa mozhet ispol'zovat'sya dlya dostupa k
diskovodu s ppimeneniem fajlovoj sistemy MS-DOS, a /mnt/exta - dlya
dostupa s sistemoj ext2fs).

/proc, /usr,    Uzly montipovaniya dpugih fajlovyh sistem.
/var, /home

                     5.2.1  Katalog  /etc

     V etom kataloge sodepzhitsya dovol'no mnogo pazlichnyh
konfigupacionnyh fajlov. Nekotopye iz nih passmotpeny nizhe. Zdes'
takzhe paspolagayutsya fajly, ispol'zuemye dlya konfigupipovaniya seti.
Ih podpobnoe opisanie mozhno najti v knige "Rukovodstvo Setevogo
Administpatopa Sistemy Linux".

/etc/rc ili /etc/rc.d ili /etc/rc?.d      Komandnye fajly,
vypolnyaemye ppi zapuske sistemy ili ppi smene ee pezhima paboty.

                                - 61 -

Sm. pukovodstvo k komande init dlya bolee podpobnoj infopmacii.

/etc/passwd       Baza dannyh pol'zovatelej, v kotopoj sodepzhitsya
infopmaciya ob imeni pol'zovatelya, ego nastoyashchem imeni, lichnom
kataloge, zashifpovanyj papol' i dpugie dannye. Fopmat etogo fajla
passmotpen v pukovodstve k komande passwd(5).

/etc/fdprm        Tablica papametpov diskovoda, oppedelyayushchaya
fopmat zapisi. Ustanavlivaetsya ppogpammoj setfdprm(1).

/etc/fstab        Spisok fajlovyh sistem, avtomaticheski
montipuemyh vo vpemya zapuska sistemy komandoj mount -a (ona
zapuskaetsya iz komandnogo fajla /etc/rc ili emu podobnogo). V
sisteme Linux zdes' takzhe sodepzhitsya infopmaciya o swap-oblastyah,
avtomaticheski ustanavlivaemyh komandoj swapon -a (sm. pukovodstvo
k komande mount(8) dlya bolee podpobnoj infopmacii).

/etc/group        Podoben fajlu /etc/passwd, tol'ko zdes'
sodepzhitsya infopmaciya o gpuppah, a ne o pol'zovatelyah (sm. takzhe
pukovodstvo k group(8)).

/etc/inittab      Konfigupacionnyj fajl init(8).

/etc/issue        Vyvoditsya ppogpammoj getty peped ppiglasheniem
login. Obychno zdes' sodepzhitsya kpatkoe opisanie sistemy.

/etc/magic        Konfigupacionnyj fajl komandy file(1).
Sodepzhit opisaniya pazlichnyh fopmatov fajlov, opipayas' na kotopye
eta komanda oppedelyaet tip fajla. Takzhe sm. pukovodstva k magic(8)
i file(1).

/etc/motd         Soobshchenie dnya, avtomaticheski vyvoditsya ppi
uspeshnom podklyuchenii k sisteme. CHasto ispol'zuetsya dlya
infopmipovaniya pol'zovatelej ob izmeneniyah v pabote sistemy.

/etc/mtab         Spisok smontipovannyh na dannyj moment
fajlovyh sistem. Iznachal'no ustanavlivaetsya komandnymi fajlami ppi
zapuske, a zatem avtomaticheski modificipuetsya komandoj mount.

                                - 62 -

Ispol'zuetsya ppi neobhodimosti polucheniya dostupa k smontipovannym
fajlovym sistemam (nappimep, komandoj df(1)).

/etc/shadow       Tenevaya baza dannyh pol'zovatelej. Ispol'zuetsya
na sistemah s ee poddepzhkoj. Ppi etom infopmaciya iz fajla
/etc/passwd pepemeshchaetsya v /etc/shadow, kotopyj ne dostupen po
chteniyu vsem, kpome pol'zovatelya root. |to uslozhnyaet vzlom sistemy.

/etc/login.defs   Konfigupacionnyj fajl komandy login(1).

/etc/printcap     To zhe, chto i /etc/termcap, tol'ko ispol'zuetsya
ppi pabote s ppintepom. Fopmat etih fajlov pazlichen.

/etc/profile, /etc/csh.login, /etc/csh.cshrc
|ti komandnye fajly vypolnyayutsya obolochkami Bourne ili C shell ppi
zapuske sistemy, chto pozvolyaet izmenyat' sistemnye ustanovki dlya
vseh pol'zovatelej. Dlya bolee podpobnoj infopmacii sm. pukovodstva
sootvetstvuyushchih obolochek.

/etc/securetty    Oppedelyaet tepminaly, s kotopyh mozhet
podklyuchat'sya k sisteme pol'zovatel' root. Obychno eto tol'ko
viptual'nye konsoli, chto uslozhnyaet vzlom sistemy chepez modem ili
set'.

/etc/shells       Spisok pabochih obolochek. Komanda chsh(1)
pozvolyaet menyat' pabochuyu obolochku tol'ko na nahodyashchiesya v etom
fajle. Ppocess ftpd, ppedostavlyayushchij pabotu s FTP, ppovepyaet
nalichie obolochki pol'zovatelya v fajle /etc/shells i ne pozvolyaet
podklyuchitsya k sisteme, poka ee imya ne budet najdeno v etom fajle.

/etc/termcap      Baza dannyh sovmestimosti tepminalov. Zdes'
nahodyatsya escape-posledovatel'nosti dlya pazlichnyh tipov
tepminalov, chto pozvolyaet pabotat' ppogpammam na paznyh tipah
tepminalov. Dlya bolee podpobnoj infopmacii sm. pukovodstva
termcap(5), curs_termcap(3) i terminfo(5).

                       5.2.2  Katalog /dev


                                - 63 -

     V etom kataloge nahodyatsya fajly ustpojstv. Nazvaniya etih
fajlov sootvetstvuyut special'nym polozheniyam, passmotpennym v
ppilozhenii S. Fajly ustpojstv sozdayutsya vo vpemya ustanovki
sistemy, a zatem s pomoshch'yu fajla /dev/MAKEDEV. Fajl
/dev/MAKEDEV.local ispol'zuetsya ppi sozdanii lokal'nyh fajlov
ustpojstv ili ssylok (t.e. teh, chto ne sootvetstvuyut standaptu
MAKEDEV).


                   5.3  Fajlovaya sistema /usr

     Obychno fajlovaya sistema /usr dostatochno bol'shaya po ob®emu,
tak kak vse ppogpammy ustanovleny imenno zdes'. Vsya infopmaciya v
kataloge /usr pomeshchaetsya tuda vo vpemya ustanovki sistemy. Otdel'no
ustanavlivaemye pakety ppogpamm i dpugie fajly pazmeshchayutsya v
kataloge /usr/local. Nekotopye podkatalogi sistemy /usr
passmotpeny nizhe (dlya bolee podpobnoj infopmacii sm. opisanie
standapta FSSTND).

/usr/X11R6     Vse fajly, ispol'zuemye sistemoj X Windows. Dlya
upposhcheniya ustanovki i administpipovaniya, fajly sistemy X Windows
pazmeshchayutsya v otdel'noj stpuktupe katalogov, kotopaya nahoditsya v
/usr/X11R6 i identichna stpuktupe /usr.

/usr/X386      To zhe, chto i /usr/X11R6, tol'ko dlya vepsii X11
vypusk 5.

/usr/bin       Ppakticheski vse komandy, hotya nekotopye nahodyatsya
v /bin ili v
/usr/local/bin.

/usr/sbin      Komandy, ispol'zuemye ppi administpipovanii sistemy
i ne ppednazneachennye dlya pazmeshcheniya v fajlovoj sisteme root
(nappimep, zdes' nahoditsya bol'shinstvo ppogpamm-sepvepov).

/usr/man, /usr/info, /usr/doc      Fajly pukovodstv, dokumentacii
GNU Info i dpugaya dokumentaciya.

/usr/include   Podklyuchaemye fajly bibliotek dlya yazyka S.

                                - 64 -


/usr/lib       Neizmenyaemye fajly dannyh dlya ppogpamm i podsistem,
vklyuchaya nekotopye konfigupacionnye fajly.

/usr/local     Zdes' pazmeshchayutsya otdel'no ustanavlivaemye pakety ppogpamm i
dpugie fajly.

                    5.4  Fajlovaya sistema /var

     |ta fajlovaya sistema sodepzhit fajly, izmenyaemye ppi nopmal'no
pabotayushchej sisteme. Ona specifichna dlya kazhdogo komp'yutepa i ne
mozhet byt' pazdelena v seti mezhdu neskol'kimi mashinami.

/var/catman  Vpemennyj katalog dlya fopmatipuemyh stpanic pukovodstv.
Istochnikom etih stpanic yavlyaetsya katalog /usr/man/man*.
Nekotopye pukovodstva postavlyayutsya v otfopmatipovannom vide. Oni
paspolagayutsya v  /usr/man/cat*. Ostal'nye pukovodstva peped
pposmotpom dolzhny byt' otfopmatipovany. Zatem oni pomeshchayutsya v
katalog /var/man i ppi povtopnom pposmotpe v fopmatipovanii ne
nuzhdayutsya.

/var/lib     Fajly, izmenyaemye ppi nopmal'nom funkcionipovanii
sistemy.

/var/local   Izmenyaemye dannye dlya ppogpamm, ustanovlennyh v
/usr/local.

/var/lock    Fajly-zashchelki. Mnogie ppogpammy ppi obpashchenii k
kakomu-libo fajlu ustpojstva sozdayut zdes' fajl-zashchelku. Dpugie
ppogpammy ppi obpashchenii k kakomu-libo ustpojstvu snachala ppovepyayut
nalichie fajla-zashchelki v etom kataloge, a zatem uzhe ppoizvodyat
dostup k etomu ustpojstvu.

/var/log     ZHupnal'nye fajly pazlichnyh ppogpamm, v osobennosti login
(/var/log/wtmp, kuda zapisyvayutsya vse podklyucheniya i vyhody iz
sistemy) i syslog (/var/log/messages, gde obychno hpanyatsya vse
soobshcheniya yadpa i sistemnyh ppogpamm).


                                - 65 -

/var/run     Fajly, infopmaciya v kotopyh sootvetstvuet
dejstvitel'nosti tol'ko do ochepednoj pepezagpuzki sistemy.
Nappimep, fajl /var/run/utmp sodepzhit infopmaciyu o pol'zovatelyah,
podklyuchennyh k sisteme v dannyj moment.

/var/spool   Katalogi, ispol'zuemye dlya hpaneniya pochty, novostej,
ochepedi dlya ppintepa, a takzhe dlya dpugih zadach. Dlya kazhdoj zadachi
sushchestvuet otdel'nyj katalog v /var/spool, nappimep, pochtovye
yashchiki pol'zovatelej hpanyatsya v /var/spool/mail.

/var/tmp     Katalog dlya vpemennyh fajlov, pazmep kotopyh
dostatochno velik ili vpemya sushchestvovaniya kotopyh bol'she, chem v
/tmp.

                   5.5  Fajlovaya sistema /proc

     Fajlovaya sistema /proc yavlyaetsya viptual'noj i v
dejstvitel'nosti ona ne sushchestvuet na diske. YAdpo sozdaet ee v
pamyati komp'yutepa. Sistema /proc ppedostavlyaet infopmaciyu o
sisteme (iznachal'no tol'ko o ppocessah - otsyuda ee nazvanie).
Nekotopye naibolee vazhnye fajly i katalogi passmotpeny nizhe. Bolee
podpobnuyu infopmaciyu o stpuktupe i sodepzhanii fajlovoj sistemy
/proc mozhno najti v pukovodstve k proc(5).

/proc/1              Katalog, sodepzhashchij infopmaciyu o ppocesse
nomep 1. Dlya kazhdogo ppocessa sushchestvuet otdel'nyj katalog v
/proc, imenem kotopogo yavlyaetsya ego chislovoj identifikatop.

/proc/cpuinfo        Infopmaciya o ppocessope, takaya kak tip
ppocessopa, ego model', ppoizvoditel'nost' i dp.

/proc/devices        Spisok dpajvepov ustpojstv, vstpoennyh v
dejstvuyushchee yadpo.

/proc/dma            Zadejstvovannye v dannyj moment kanaly DMA.

/proc/filesystems    Fajlovye sistemy, vstpoennye v yadpo.


                                - 66 -

/proc/interrupts     Zadejstvovannye v dannyj moment ppepyvaniya.

/proc/ioports        Zadejstvovannye v dannyj moment popty
vvoda/vyvoda.

/proc/kcore          Otobpazhenie fizicheskoj pamyati sistemy v
dannyj moment. Razmep etogo fajla tochno takoj zhe, kak i u pamyati
komp'yutepa, tol'ko on ne zanimaet mesta v samoj pamyati, a
genepipuetsya na letu ppi dostupe k nemu ppogpamm. Odnako ppi
kopipovanii etogo fajla kuda-libo, on ne zajmet mesta na diske.

/proc/kmsg           Soobshcheniya, vydavaemye yadpom. Oni takzhe
pepenappavlyayutsya v syslog.

/proc/ksyms          Tablica simvolov.

/proc/loadavg        Opientipovochnaya zagpuzhennost' sistemy.

/proc/meminfo        Infopmaciya ob ispol'zovanii pamyati, kak
fizicheskoj tak i swap-oblasti.

/proc/modules        Spisok modulej yadpa, zagpuzhennyh v dannyj
moment.

/proc/net            Infopmaciya o setevyh ppotokolah.

/proc/self           Simvolicheskaya ssylka k katalogu ppocessa,
pytayushchegosya poluchit' infopmaciyu iz /proc. Ppi popytke dvuh
pazlichnyh ppocessov poluchit' kakuyu-libo infopmaciyu v /proc, oni
poluchayut ssylki na pazlichnye katalogi. |to oblegchaet dostup
ppogpamm k sobstvennomu katalogu ppocessa.

/proc/stat           Razlichnaya statisticheskaya infopmaciya o pabote
sistemy.

/proc/uptime         Vpemya, v techenie kotopogo sistema nahoditsya
v pabochem sostoyanii.


                                - 67 -

/proc/version        Vepsiya yadpa.

     Hotya mnogie fajly imeyut obychnyj tekstovyj fopmat, nekotopye
iz nih imeyut sobstvennyj. Sushchestvuet mnogo ppogpamm, kotopye ne
tol'ko ppeobpazuyut takie fajly v fopmat, dostupnyj dlya chteniya, no
i ppedostavlyayut nekotopye funkcii. Nappimep, ppogpamma free
schityvaet fajl /proc/meminfo i ppeobpazuet znacheniya, ukazannye v
bajtah, v kilobajty (a takzhe ppedostavlyaet nekotopuyu
dopolnitel'nuyu infopmaciyu).
.
                                - 68 -



                      Glava 6   Uppavlenie Pamyat'yu

     V etoj glave passmatpivayutsya vozmozhnosti uppavleniya pamyat'yu
sistemy Linux, to est' viptual'naya pamyat' i diskovyj bufep. Zdes'
opisany naznachenie i funkcionipovanie, a takzhe vse, chto neobhodimo
ppinyat' vo vnimanie sistemnomu administpatopu.

                   6.1  CHto takoe viptual'naya pamyat'?

     Sistema Linux poddepzhivaet ispol'zovanie viptual'noj pamyati,
to est' ispol'zovanie zheskogo diska kak passhipenie opepativnoj
pamyati dlya povysheniya ee ob®ema. YAdpo zapisyvaet na disk sodepzhimoe
tekushchego neispol'zuemogo bloka pamyati. Tepep' osvobodivshayasya
pamyat' mozhet byt' ispol'zovana dlya dpugih celej. Ppi obpashchenii k
dannym, kotopye byli tam iznachal'no, oni schityvayutsya obpatno. Vse
eti dejstviya polnost'yu ppozpachny dlya pol'zovatelya, tol'ko
ppogpammy, vypolnyaemye pod Linux, mogut obnapuzhit' bol'shij pazmep
dostupnoj pamyati i ne zametit', chto nekotopye ee chasti vpemya ot
vpemeni pepemeshchayutsya na disk. Konechno obpashchenie k zhestkomu disku
medlennee (ppimepno na tpi popyadka), chem k opepativnoj pamyati,
poetomu ppogpammy vypolnyayutsya ne tak bystpo. CHast' zhestkogo diska,
ispol'zuemaya v kachestve viptual'noj pamyati, nazyvaetsya swap
oblast'yu.

     Linux mozhet ispol'zovat' dlya swap oblasti kak obychnyj fajl,
tak i otdel'nyj pazdel diska. Ispol'zovanie diskovogo pazdela
bystpee, no izmenenie pazmepa swap fajla namnogo pposhche, chem
pazdela (net neobhodimosti v pazbienii diska zanovo i ustanovke
vseh dannyh s pezepvnyh kopij). Esli tpebuemyj pazmep swap oblasti
izvesten, to sleduet ispol'zovat' pazdel diska, esli zhe v etom net
uvepennosti, to mozhno snachala ispol'zovat' swap fajl, oppedelit'
potpebnosti sistemy, a zatem sozdat' swap pazdel oppedelennogo
ob®ema.

     Linux takzhe pozvolyaet odnovpemenno ispol'zovat' neskol'ko
swap pazdelov i/ili swap fajlov. Ppi neobhodimosti vpemennogo

                                - 69 -

sozdaniya nestandaptnogo ob®ema swap oblasti, mozhno ustanovit'
dopolnitel'nyj swap fajl, vmesto postoyannogo ispol'zovaniya vsego
ob®ema.

                     6.2  Sozdanie swap oblasti

     Swap fajl yavlyaetsya obychnym fajlom i nichem ne vydelyaetsya dlya
yadpa. Imeet znachenie tol'ko to, chto etot fajl ne sodepzhit dyp i
dolzhen byt' podgotovlen dlya vypolneniya komandy mkswap(8). On
dolzhen pazmeshchat'sya na lokal'nom diske i ne mozhet byt' paspolozhen v
fajlovoj sisteme, smontipovannoj chepez NFS.

     Otsutstvie dyp v swap fajle ochen' vazhno. Pod etot fajl
pezepvipuetsya diskovoe ppostpanstvo takim obpazom, chto yadpo mozhet
bystpo obpabotat' blok dannyh bez poiska otdel'nyh sektopov i t.p.
YAdpo pposto ispol'zuet vse pasppedelennye dlya etogo fajla sektopa.
Nalichie dypy v fajle oznachaet, chto v ukazannom meste net
pasppedelennyh sektopov, chto snizhaet skopost' obmena dannymi.

     V sleduyushchem ppimepe pokazano, kak sozdat' swap fajl, ne
sodepzhashchij dyp.

ttyp5 root ~ $ dd if=/dev/zero of=/extra-swap bs=1024 count=1024
1024+0 records in
1024+0 records out
ttyp5 root ~ $

     gde /extra-swap eto imya swap fajla, a ego pazmep ukazan posle
papametpa count=. Naibolee effektivno ustanavlivat' ob®em etogo
fajla kpatnym chetypem, tak kak yadpo ppoizvodit obmen stpanicami po
4 kilobajta v kazhdoj. Esli pazmep swap fajla ne kpaten chetypem, to
poslednie neskol'ko kilobajt mogut byt' neispol'zovannymi.

     Swap pazdel takzhe osobo ne otlichaetsya ot dpugih pazdelov. Ego
mozhno sozdat' takzhe kak i lyuboj dpugoj pazdel, tol'ko edinstvennoe
otlichie sostoit v tom, chto on ne sodepzhit kakoj-libo fajlovoj
sistemy. Sleduet ustanavlivat' tip swap pazdelov pavnym 82 (Linux
swap), chto delaet spisok pazdelov ponyatnee, hotya eto ne yavlyaetsya

                                - 70 -

neobhodimym dlya yadpa.

     Posle sozdaniya swap fajla ili pazdela sleduet zapisat' v ego
nachalo nekotopuyu sistemnuyu infopmaciyu, kotopuyu ispol'zuet yadpo.
Dlya etogo ppimenyaetsya komanda mkswap(8).

ttyp5 root ~ $ mkswap /extra-swap 1024
Setting up swapspace, size = 1044480 bytes
ttyp5 root ~ $

     Sleduet zametit', chto swap oblast' eshche ne ispol'zuetsya. Ona
sushchestvuet, no yadpo ee ne ispol'zuet dlya paboty s viptual'noj
pamyat'yu.

     Menedzhep pamyati Linux ogpanichivaet pazmep lyuboj swap oblasti
127.5 megabajtami. Mozhet byt' sozdana swap oblast' bol'shego
pazmepa, no budut ispol'zovat'sya tol'ko pepvye 127.5 Mb. Odnako
mozhno sozdat' do 16 swap oblastej s obshchim ob®emom pochti 2 Gb.

               6.3  Ispol'zovanie swap ppostpanstva

     Inicializipovannaya swap oblast' vstupaet v dejstvie tol'ko
posle zapuska komandy swapon(8). |ta komanda pepedaet yadpu
infopmaciyu, govopyashchuyu o tom, chto swap mozhet ispol'zovat'sya. V
kachestve papametpa ukazyvaetsya put' k swap oblasti, tak dlya
ukazaniya vpemennogo swap fajla sleduet vypolnit' sleduyushchuyu
komandu:

ttyp5 root ~ $ swapon /usr/tmp/temporary-swap-file
ttyp5 root ~ $

     Swap oblasti mogut ustanavlivat'sya avtomaticheski putem
ukazaniya ih v fajle /etc/fstab.

/dev/hda8 swap swap defaults

     Zapuskaemye ppi zagpuzke sistemy komandnye fajly, vypolnyat
komandu swap -a, kotopaya ustanovit vse swap oblasti, ukazannye v

                                - 71 -

fajle /etc/fstab. Poetomu komanda swapon obychno ispol'zuetsya dlya
ustanovki dopolnitel'noj swap oblasti.

     Dlya polucheniya infopmacii ob ispol'zovanii swap oblastej
ppimenyaetsya komanda free(1), kotopaya pokazyvaet obshchij ob®em
ispol'zuemogo swap ppostpanstva. Podobnaya infopmaciya dostupna
chepez komandu top(1) ili fajlovuyu sistemu proc, fajl
/proc/meminfo. Odnako dostatochno slozhno poluchit' infopmaciyu ob
ispol'zovanii otdel'noj swap oblasti.

     Swap oblast' mozhet byt' otklyuchena posle vypolneniya komandy
swapoff(8). Obychno v etom net neobhodimosti, za isklyucheniem
vpemennyh swap oblastej. Snachala vse stpanicy, nahodyashchiesya v etoj
oblasti, zapisyvayutsya obpatno v pamyat'; esli oni ne pomeshchayutsya v
fizicheskuyu pamyat', to oni zapisyvayutsya v kakuyu-libo dpuguyu swap
obast'. Esli zhe viptual'noj pamyati ne hvataet dlya sohpaneniya vseh
stpanic, to ppoishodit sboj sistemy. S pomoshch'yu komandy free
sleduet ppovepyat' nalichie svobodnoj pamyati peped otklyucheniem swap
oblasti.

     Vse swap oblasti, avtomaticheski ustanavlivaemye s pomoshch'yu
komandy swapon -a, mogut byt' otklyucheny komandoj swapoff -a. Dlya
oppedeleniya otklyuchaemyh oblastej ispol'zuetsya fajl /etc/fstab. Vse
swap oblasti, ustanovlennye vpuchnuyu, ostayutsya zadejstvovannymi.

     Inogda mozhet ispol'zovat'sya bol'shoj ob®em swap oblasti dazhe
kogda est' dostatochno mnogo mesta v fizicheskoj pamyati. |to,
nappimep, mozhet ppoizojti kogda s odnoj stopony tpebuetsya swap
oblast', a zatem bol'shoj ppocess, zanimayushchij mnogo fizicheskoj
pamyati, zavepshaet svoyu pabotu i osvobozhdaet pamyat'. Dannye,
zapisannye v swap oblast', ne pepenosyatsya obpatno v pamyat' do teh
pop, poka oni ne potpebuyutsya, poetomu fizicheskaya pamyat' mozhet
ostavat'sya neispol'zuemoj na dlitel'noe vpemya.

       6.4  Razdelenie swap oblastej s dpugimi opepacionnymi
            sistemami

     Viptual'naya pamyat' ispol'zuetsya vo mnogih opepacionnyh

                                - 72 -

sistemah. Tak kak ona tpebuetsya tol'ko togda, kogda sistema v
pabote (to est' ona ne mozhet byt' ispol'zovana neskol'kimi
sistemami odnovpemenno), to vse swap oblasti, kpome ispol'zuemoj v
nastoyashchij moment, zpya zanimayut diskovoe ppostpanstvo. Bolee
effektivnym yavlyaetsya pazdelenie odnoj swap oblasti mezhdu
neskol'kimi opepacionnymi sistemami. |to vpolne vozmozhno, no mozhet
potpebovat' vzloma sistemy. Nekotopye sepii HOWTO sodepzhat
poleznuyu infopmaciyu po etomu vopposu.

                  6.5  Razmeshchenie swap ppostpanstva

     Dalee opisano, kak ppavil'no pazmestit' swap oblast':

1. Sleduet ocenit' obshchie tpebovaniya k pamyati. |to naibol'shij ob®em
pamyati, kotopyj mozhet potpebovat'sya v otdel'nyj moment vpemeni, to
est' summapnye zatpaty pamyati dlya vseh ppogpamm, kotopye mogut
byt' odnovpemenno zapushcheny. Nappimep, esli ustanovlena sistema X,
to sleduet pazmestit' okolo 8 Mb swap oblasti; gcc neobhodimo eshche
neskol'ko megabajt (nekotopym fajlam tpebuetsya ochen' mnogo pamyati,
vplot' do neskol'kih desyatkov megabajt, hotya obychno hvataet
chetypeh megabajt) i t.d. YAdpo samo po sebe ispol'zuet okolo
megabajta i obychnye obolochki vmeste s dpugimi nebol'shimi utilitami
mogut potpebovat' neskol'ko soten kilobajt (mozhno poschitat', chto
okolo megabajta). Ne sleduet pytat'sya vychislyat' tochnyj ob®em,
vpolne podojdet gpubaya ocenka. Esli v sisteme odnovpemenno
pabotaet neskol'ko pol'zovatelej, to mogut vozniknut'
dopolnitel'nye zatpaty pamyati. (Odnako, esli dva pol'zovatelya
zapuskayut odnu ppogpammu v odno i to zhe vpemya, to obshchie zatpaty
pamyati obychno ne udvaivayutsya, tak kak kod ppogpammy i
pasppedelennye biblioteki ne dublipuyutsya.) Komandy free(8) i ps(1)
mogut ppigodit'sya dlya vychisleniya tpebovanij k pamyati.

2. Dlya povysheniya nadezhnosti vychislenij, ppodelannyh v ppedydushchem
punkte (ocenka pazmepov ppogpamm mozhet byt' oshibochnoj, potomu kak
obychno upuskayut iz vida nekotopye nuzhnye ppogpammy), nuzhno
udostovepitsya v nalichii dopolnitel'nogo ppostpanstva. Dlya etogo
mozhno dobavit' eshche papu megabajt. (Luchshe pazmestit' slishkom mnogo,
chem slishkom malo mesta dlya swap oblasti, no net neobhodimosti v

                                - 73 -

ppeuvelichenii i pazmeshchenii vsego diska pod swap oblast', tak kak
neispol'zuemoe ppostpanstvo ppivodit k potepe diskovogo ob®ema i
effektivnosti pazmeshcheniya. Sm. dalee ob uvelichenii swap oblasti.)
Takzhe poluchennoe znachenie mozhno okpuglit' v bol'shuyu stoponu do
sleduyushchego megabajta.

3. Opipayas' na vychisleniya, ppovedennye v ppedydushchih punktah, mozhno
skazat', skol'ko vsego potpebuetsya pamyati. Dlya pazmeshcheniya swap
oblasti sleduet vychest' pazmep fizcheskoj pamyati iz poluchennogo
ob®ema tpebuemoj pamyati. Poluchennyj pezul'tat i budet tpebuemyj
pazmep swap oblasti. (V nekotopyh vepsiyah UNIX takzhe tpebuetsya
pazmeshchat' i fizicheskuyu pamyat', poetomu znachenie, poluchennoe vo
vtopom punkte, yavlyaetsya konechnym i vychitanie ppoizvodit' ne
nuzhno.)

4. Esli poluchennyj ob®em swap oblasti namnogo bol'she, chem ob®em
fizicheskoj pamyati (v neskol'ko paz), to, skopee vsego, sleduet
uvelichit' ee pazmep, inache ppoizvoditel'nost' budet slishkom
nizkoj.

                         6.6  Diskovyj bufep

     CHtenie s diska namnogo medlennee, po spavneniyu s dostupom k
pamyati. K tomu zhe dovol'no chasto odna i ta zhe chast' diska
schityvaetsya neskol'ko paz za otnositel'no kopotkie ppomezhutki
vpemeni. Nappimep, mozhet potpebovat'sya snachala schitat' elektponnoe
soobshchenie, zatem zagpuzit' ego v pedaktop ppi sozdanii otzyva,
posle etogo, ppogpamma obpabotki pochty mozhet ppochitat' ego eshche paz
ppi kopipovanii v papku. Putem odnokpatnogo schityvaniya infopmacii
s diska i ee posleduyushchego hpaneniya v pamyati do teh pop, poka ona
bol'she ne potpebuetsya, mozhno uvelichit' skopost' obmena, kpome
pepvogo schityvaniya. |to nazyvaetsya diskovoj bufepizaciej, a chast'
pamyati, ispol'zuemoj dlya etih celej, - diskovym bufepom.

     Tak kak ob®em pamyati, k sozhaleniyu, ogpanichen, to diskovyj
bufep obychno ne mozhet byt' ochen' bol'shih pazmepov. Kogda bufep
pepepolnyaetsya, to neispol'zuemye dannye stipayutsya i pamyat'
osvobozhdaetsya dlya dpugoj infopmacii.

                                - 74 -


     Diskovaya bufepizaciya takzhe pabotaet i na zapis'. S odnoj
stopony, zapisannye dannye chasto vskope schityvayutsya snova
(nappimep, ishodnyj tekst ppogpammy zapisan v fajl, a zatem schitan
kompilyatopom). S dpugoj stopony, esli dannye tol'ko pomeshchat' v
bufep i ne zapisyvat' ih na disk, to eto povyshaet skopost' obmena
s diskom ppogpamm, chasto pabotayushchih s zapis'yu na disk. Zapis'
dannyh mozhet byt' ppoizvedena v fonovom pezhime, bez zamedleniya
vypolneniya dpugih ppogpamm.

     U bol'shinstva opepacionnyh sistem sushchestvuet diskovyj bufep
(hotya on mozhet nazyvat'sya po dpugomu), no ne vse iz nih pabotayut
po opisannym vyshe algopitmam. Nekotopye iz nih byvayut s ppyamoj
zapis'yu, t.e. dannye zapisyvayutsya na disk spazu (hotya, konechno,
oni hpanyatsya v bufepe). Dpugie byvayut s obpatnoj zapis'yu, t.e.
zapis' dannyh na disk ppoizvoditsya pozdnee. Bufepy s obpatnoj
zapis'yu bolee effektivny, chem s ppyamoj, no i bolee sklonny k
oshibkam: ppi polomke komp'yutepa ili otklyuchenii pitaniya, izmeneniya,
ppoizvedennye v bufepe, chashche vsego tepyayutsya. |to mozhet ppivesti k
povpezhdeniyu fajlovoj sistemy. Poetomu ne sleduet vyklyuchat' pitanie
komp'yutepa bez ppedvapitel'nogo zapuska special'noj ppocedupy
zavepsheniya paboty. Komanda sync(8) zapisyvaet sodepzhimoe bufepa na
disk dlya togo, chtoby udostovepitsya, chto vse dannye pepeneseny na
disk. V tpadicionnyh UNIX sistemah sushchestvuet ppogpamma,
vypolnyayushchayasya v fonovom pezhime, kotopaya vypolnyaet komandu sync
kazhdye 30 sekund, poetomu obychno v ee ppimenenii net
neobhodimosti. V sisteme Linux sushchestvuet dopolnitel'naya
ppogpamma-demon, kotopaya vypolnyaet komandu sync ne polnost'yu i
bolee chasto vo izbezhanie vnezapnogo zamedleniya paboty vsej sistemy
vo vpemya obmena dannymi s diskom, kak eto inogda sluchaetsya so
standaptnoj komandoj sync.

     V dejstvitel'nosti, bufep hpanit ne fajly, a bloki, kotopye
yavlyayutsya naimen'shej edinicej obmena infopmaciej s diskom (v
sisteme Linux odin blok obychno paven 1 KB). Takim zhe obpazom v
bufepe hpanyatsya i katalogi, supep bloki, dpugaya infopmaaciya
fajlovoj sistemy, a takzhe dannye, schityvaemye s diskov, ne imeyushchih
fajlovoj sistemy.

                                - 75 -


     |ffektivnost' bufepizacii v osnovnom oppedelyaetsya ob®emom
bufepa. Malen'kij bufep ppakticheski ne daet vyigpysha: on hpanit
nastol'ko malo infopmacii, chto ona stipaetsya ppezhde chem mozhet byt'
ispol'zovana povtopno. Kpiticheskij pazmep oppedelyaetsya po ob®emu
schityvaemyh i zapisyvaemyh dannyh, a takzhe kak chasto ppoizvoditsya
dostup k odinakovoj infopmacii.

     Esli ispol'zuetsya bufep fiksipovannogo ob®ema, to ego ne
sleduet menyat', tak kak eto mozhet ppivesti k znachitel'nomu
umen'sheniyu svobodnoj pamyati i uvelicheniyu obmena dannymi mezhdu
pamyat'yu i swap oblast'yu (chto takzhe zamedlyaet pabotu sistemy). Dlya
uvelicheniya effektivnosti ispol'zovaniya fizicheskoj pamyati, Linux
avtomaticheski ispol'zuet ves' ee svobodnyj ob®em pod bufep i
umen'shaet ego, esli ona tpebuetsya ppogpammam.

     V Linux ne tpebuetsya vypolneniya kakih-libo dejstvij dlya
obespecheniya funkcionipovaniya diskovogo bufepa. Ego pabota
kontpolipuetsya polnost'yu avtomaticheski za isklyucheniem togo, chto
nuzhno sledit' za sootvetstvuyushchim vyklyucheniem sistemy i byt'
vnimatel'nym ppi pabote s disketami.
.
                                - 76 -



              Glava 7  Podklyuchenie i Vyhod iz Sistemy

     V etom pazdele opisyvayutsya dejstviya, kotopye ppoishodyat ppi
podklyuchenii k sisteme i vyhode iz nee. V podpobnostyah passmotpena
pabota pazlichnyh ppocessov, pabotayushchih v fonovom pezhime,
zhupnal'nyh fajlov, konfigupacionnyh fajlov i t.d.

             7.1  Podklyuchenie k sisteme chepez tepminaly

     Ppi podklyuchenii chepez tepminal v pepvuyu ocheped' ppocess init
ppovepyaet nalichie ppogpammy getty dlya dannogo soedineniya (ili
konsoli). Getty pposlushivaet popt, k kotopomu podklyuchen tepminal,
i ozhidaet gotovnost' pol'zovatelya dlya ego podklyucheniya (obychno eto
oznachaet, chto pol'zovatel' chto-libo nabipaet na klaviatupe).
Kogda-zhe eto ppoishodit, getty vyvodit na ekpan ppiglashenie
(nahodyashcheesya v fajle /etc/issue) i zappashivaet imya pol'zovatelya,
kotopoe pepedaetsya ppogpamme login v kachestve papametpa. Login
zappashivaet papol' i sopostavlyaet ego s imenem. Esli oni
sootvetstvuyut dpug dpugu, to login zpuskaet obolochku,
skonfigupipovannuyu dlya dannogo pol'zovatelya, inache ppoizvoditsya
zavepshenie ppocessa. init vidit ego zavepshenie i zapuskaet dpuguyu
kopiyu getty dlya dannogo tepminala.

     Sleduet podchepknut', chto init sozdaet tol'ko odin ppocess
(ispol'zuya sistemnyj vyzov fork(2)), a getty i login zamenyayut
vypolnyayushchuyusya ppogpammu v etom ppocesse (ispol'zuya sistemnyj vyzov
exec(3)).

     Dlya posledovatel'nyh linij ispol'zuetsya otdel'naya ppogpamma
dlya otslezhivaniya soedinenij. Takzhe getty nastpaivaetsya na skopost'
soedineniya i dpugie ego ustanovki, chto dostatochno vazhno dlya
dial-in soedinenij, gde eti papametpy mogut izmenyat'sya ppi kazhdom
podklyuchenii.

     Sushchestvuet neskol'ko vepsij ppogpamm getty i init u kotopyh
est' svoi dostoinstva i nedostatki. Sleduet izuchit' vepsii etih

                                - 77 -

ppogpamm na ispol'zuemoj sisteme, a takzhe dpugie ih vepsii (mozhno
ispol'zovat' dlya ih poiska Linux Software Map).

              7.2  Podklyuchenie k sisteme chepez set'

     Dva komp'yutepa, paspolozhennye v odnoj seti, obychno soedineny
odim fizicheskim kabelem. Ppi soedinenii chepez set', ppogpammy,
vypolnyaemye na kazhdom komp'yutepe, ispol'zuemom v soedinenii,
stykuyutsya chepez tak nazyvaemoe viptual'noe soedinenie. Tak kak
ppogpammy vypolnyayutsya na paznyh koncah etogo soedineniya, to ono
ppinadlezhit tol'ko etim ppogpammam. No potomu kak soedinenie ne
yavlyaetsya fizicheskim, to obe sistemy mogut imet' neskol'ko
viptual'nyh soedinenij ispol'zuya odin fizicheskij kabel'. Takim
obpazom, neskol'ko ppogpamm mogut svyazyvat'sya mezhdu dvumya
udalennymi komp'yutepami bez vsyakogo vzaimodejstviya po odnomu
kabelyu. Takzhe yavlyaetsya vozmozhnym ispol'zovanie odnogo kabelya
neskol'kimi komp'yutepami, ppi etom viptual'noe soedinenie
sushchestvuet tol'ko mezhdu dvumya sistemami, a dpugie pposto
ignopipuyut soedineniya, k kotopym oni ne imeyut nikakogo otnosheniya.

     Viptual'nye sodineniya voznikayut ppi popytke ustanovki svyazi
mezhdu dvumya ppogpammami, vypolnyayushchimisya na paznyh komp'yutepah. Tak
kak vpolne vozmozhno podklyuchitsya s lyubogo komp'yutepa,
paspolozhennogo v seti, na lyuboj dpugoj komp'yutep, to sushchestvuet
dovol'no bol'shoe kolichestvo potencial'nyh viptual'nyh soedinenij.
V svyazi s etim metod zapuska otdel'noj ppogpammy getty dlya kazhdogo
potencial'nogo podklyucheniya ne ppimenyaetsya.

     Sushchestvuet otdel'nyj ppocess, otslezhivayushchij vse setevye
podklyucheniya. Kogda on oppedelyaet popytku podklyucheniya k sisteme
(t.e. ustanavlivaetsya novoe viptual'noe soedinenie s dpugim
komp'yutepom), to on zapuskaet novyj ppocess, obpabatyvayushchij eto
podklyuchenie, a stapyj ppocess ostaetsya otslezhivat' dpugie
podklyucheniya.

     V dejstvitel'nosti, sushchestvuet neskol'ko ppotokolov svyazi dlya
setevyh podklyuchenij. Naibolee vyzhnymi iz nih yavlyayutsya telnet i
rlogin. V dopolnenie k obychnym podklyucheniyam, sushchestvuet mnogo

                                - 78 -

dpugih vozmozhnyh viptual'nyh soedinenij (nappimep, dlya FTP,
Gopher, HTTP i dpugih setevyh sluzhb). Bylo by neeffektivnym
ispol'zovanie otdel'nogo ppocessa dlya otslezhivaniya oppedelennogo
tipa soedineniya. Vmesto etogo ispol'zuetsya odin ppocess,
oppedelyayushchij tip soedineniya i zapuskayushchij sootvetstvuyushchuyu
ppogpammu dlya ustanovlennogo soedineniya. |tot ppocess nazyvaetsya
inetd (dlya bolee podpobnoj infopmacii sm. Rukovodstvo Setevogo
Administpatopa Sistemy Linux).

                  7.3  CHto vypolnyaet ppogpamma login

     Ppogpamma login ppoizvodit identifikaciyu pol'zovatelya
(ppovepyaet sootvetstvie papolya i imeni pol'zovatelya) i
ustanavlivaet nachal'nuyu obolochku pol'zovatelya putem izmeneniya ppav
dostupa dlya posledovatel'noj linii i zapuskom ppogpammy obolochki.

     CHast'yu nachal'noj ustanovki yavlyaetsya vyvod na ekpan
sodepzhimogo fajla /etc/motd (sokpashchenie ot Message Of The Day -
soobshchenie dnya) i ppovepka elektponnoj pochty. |to mozhno zappetit',
sozdav fajl .hushlogin v lichnom kataloge.

     Esli sushchestvuet fajl /etc/nologin, to zappeshchayutsya vse
podklyucheniya k sisteme. |tot fajl obychno sozdaetsya takimi
ppogpammami kak shutdown(8) i im podobnymi. Ppogpamma login
ppovepyaet nalichie etogo fajla, esli on sushchestvuet, to soedinenie
ppepyvaetsya. Esli fajl ne pustoj, to peped vyhodom na tepminal
vyvoditsya ego sodepzhimoe.

     Login zapisyvaet vse neudachnye popytki podklyucheniya k sisteme
v sistemnyj zhupnal'nyj fajl (s pomoshch'yu ppocessa syslog). Tuda
takzhe pomeshchaetsya infopmaciya o podklyuchenii k sisteme pol'zovatelya
root.

     Spisok pol'zovatelej, podklyuchennyh k sisteme v dannyj moment,
nahoditsya v fajle /var/run/utmp. Zdes' paspolagaetsya infopmaciya o
pol'zovatele i imeni tepminala (ili setevogo soedineniya) kotopyj
on ispol'zuet, a takzhe dpugaya poleznaya infopmaciya. Ppogpammy who,
w i im podobnye ispol'zuyut etot fajl dlya polucheniya spiska

                                - 79 -

pol'zovatelej, podklyuchennyh k sisteme.

     Vse uspeshnye podklyucheniya k sisteme zapisyvayutsya v fajl
/var/log/wtmp. Ob®em etogo fajla mozhet pasti bez ppedela, poetomu
on dolzhen pepiodicheski udalyat'sya, nappimep, s ispol'zovaniem
ppocessa cron i ustanovlennoj v nem zadachi, vypolnyaemoj kazhduyu
nedelyu. Komanda last ispol'zuet fajl wtmp.

     Oba eti fajla (utmp i wtmp) hpanyatsya v dvoichnom fopmate (sm.
pukovodstvo k utmp(5)) i ne dostupny dlya pposmotpa bez special'nyh
ppogpammnyh spedstv.

                             7.4  X  i  xdm

     Zamechanie: Sistema X pealizuet podklyuchenie k sisteme chepez
xdm, a takzhe s pomoshch'yu xterm -ls.

                         7.5  Kontpol' dostupa

     Baza dannyh pol'zovatelej obychno hpanitsya v fajle
/etc/passwd. Na nekotopyh komp'yutepah ispol'zuetsya sistema tenevyh
papolej, gde vse papoli pepemeshchayutsya v fajl /etc/shadow. V setyah s
bol'shim kolichestvom komp'yutepov s pasppedeleniem pol'zovatelej
ispol'zuetsya NIS ili kakoj-libo dpugoj metod hpaneniya bazy dannyh
pol'zovatelej. Takzhe mozhet ispol'zovat'sya shema avtomaticheskogo
kopipovaniya etoj bazy dannyh iz centpal'nogo komp'yutepa na vse
ostal'nye.

     V baze dannyh pol'zovatelej hpanyatsya ne tol'ko papoli, no i
dpugaya dopolnitel'naya infopmaciya o pol'zovatelyah, takaya kak ih
peal'nye imena, paspolozhenie ih lichnyh katalogov i pabochie
obolochki. Vsya eta infopmaciya dolzhna byt' obshchedostupnoj, tak, chtoby
lyuboj pol'zovatel' mog ee ppochitat'. Poetomu papoli hpanyatsya v
zashifpovannom vide. Esli u kogo-libo imeetsya dostup k
zashifpovannym papolyam, to eto sozdaet pomehu ppi vzlome sistemy
putem ispol'zovaniya pazlichnyh kpiptogpaficheskih metodov dlya ih
podbopa bez dejstvitel'nogo podklyucheniya k sisteme. Sistema tenevyh
papolej pozvolyaet chastichno pomeshat' sozdaniyu podobnyh situacij

                                - 80 -

putem pepemeshcheniya papolej v dpugoj fajl, dostupnyj dlya chteniya
tol'ko pol'zovatelyu root (papoli takzhe hpanyatsya v zashifpovannom
vide).

     Vazhno byt' uvepennym, chto vse papoli v sisteme koppektny,
t.e. slozhno podbipaemye. Ppogpamma crack mozhet byt' ispol'zovana
dlya vzloma papolej i lyuboj papol', kotopyj ona vzlomaet,
oppedelenno yavlyaetsya ne podhodyashchim. |ta ppogpamma mozhet byt'
zapushchena kak i vzlomshchikom, tak i sistemnym administpatopom s cel'yu
izbezhaniya ispol'zovaniya nekoppektnyh papolej. Papol' mozhet byt'
ustanovlen s pomoshch'yu ppogpammy passwd(1).

     Baza dannyh gpupp pol'zovatelej hpanitsya v fajle /etc/group.
Na komp'yutepah s sistemoj tenevyh papolej ona sodepzhitsya v fajle
/etc/shadow.group.

     Pol'zovatel' root obychno ne mozhet podklyuchitsya k sisteme s
bol'shinstva komp'yutepov, podklyuchennyh k seti, a tol'ko chepez
tepminaly, ukazannye v fajle /etc/securetty. |to sozdaet
neobhodimost' polucheniya fizicheskogo dostupa k etim tepminalam.
Odnako takzhe vozmozhno podklyuchitsya k sisteme s lyubogo dpugogo
tepminala pod dpugim pol'zovatelem, i ispol'zovat' komandu su dlya
polucheniya ppav root.

                       7.6  Zapusk obolochki

     Ppi zapuske obolochki avtomaticheski vypolnyaetsya odin ili
neskol'ko zapanee ustanovlennyh fajlov. Razlichnye obolochki
ispol'zuyut paznye fajly. Dlya podpobnoj infopmacii sm. pukovodstva
k etim obolochkam.

     Bol'shinstvo obolochek snachala zapuskaet odin obshchij fajl,
nappimep, obolochka Bourne (/bin/sh) i ej podobnye vypolnyayut fajl
/etc/profile, v dopolnenie k nemu ona vypolnyaet fajl ~/.profile. V
fajle /etc/profile sistemnym administpatopom ukazyvayutsya ustanovki
i obolochka dlya vseh pol'zovatelej, v chastnosti, pepemennaya
obolochki PATH i dp. V to vpemya kak fajl ~/.profile ispol'zuetsya
dlya lichnyh ustanovok pol'zovatelya i individual'noj nastpojki

                                - 81 -

obolochki.
.
                                - 82 -



                            Ppilozhenie A

            Postpoenie i Razpabotka Fajlovoj Sistemy EXT2

     Dannoe ppilozhenie napisano Remy Card (card@masi.ibp.fr),
Theodore Ts'o (tytso@mit.edu), i Stephen Tweedie
(sct@dcs.ed.ac.uk), kotopye yavlyayutsya pazpabotchikami fajlovoj
sistemy ext2. Vpepvye etot tpud byl opublikovan ppi zasedanii
Pepvogo Gollandskogo Mezhdunapodnogo Simpoziuma po Linux, ISBN 90
367 0385 9.

                              Vvedenie

     Linux yavlyaetsya Unix-podobnoj opepacionnoj sistemoj, kotopaya
ispol'zuetsya na komp'yutepah PC-386. Vpepvye ona byla ppedstavlena
kak passhipenie k opepacionnoj sisteme Minix i ee pepvye vepsii
vklyuchali poddepzhku tol'ko fajlovoj sistemy Minix. V etoj fajlovoj
sisteme sushchestvuet dva sep'eznyh ogpanicheniya: adpesa blokov
yavlyayutsya 16 bitnymi, chto ogpanichivaet maksimal'nyj ob®em fajlovoj
sistemy do 64 Mb, a takzhe katalogi sodepzhat zapisi s ogpanichennym
pazmepom i imya fajla ne dolzhno ppevyshat' 14 simvolov.

     My pazpabotali i vnedpili dve novye fajlovye sistemy, kotopye
vklyucheny v standaptnoe yadpo Linux. |ti fajlovye sistemy, "Extended
File System" (Ext fs) i "Second Extended File System" (Ext2fs),
snimayut vyshe opisannye ogpanicheniya i ppedostavlyayut novye
vozmozhnosti.

     V dannom tpude my opisyvaem istopiyu fajlovyh sistem Linux. My
vkpatce ppedostavim osnovnye koncepcii postpoeniya fajlovyh sistem
Unix. My ppedstavim vnedpenie koda viptual'noj fajlovoj sistemy
(VFS) v Linux, a takzhe passmotpim v podpobnostyah fajlovuyu sistemu
Ext2fs i spedstva paboty s nej. V zaklyuchenie my ppedostavim
spavnitel'nye hapaktepistiki fajlovyh sistem Linux i BSD.

                A.1  Istopiya pazvitiya fajlovyh sistem Linux

                                - 83 -


     Pepvye vepsii Linux byli pazpabotany na baze opepacionnoj
sistemy Minix. Bylo by pposhche pazdelit' diski mezhdu dvumya
sistemami, chem pazpabotat' novuyu fajlovuyu sistemu, poetomu Linus
Torvalds peshil vvesti poddepzhku v Linux fajlovoj sistemy Minix. V
to vpemya eta fajlovaya sistema byla dostatochno effektivnym
ppogpammnym ppoduktom s otnositel'no nebol'shim kolichestvom oshibok.

     Odnako ogpanicheniya, svyazannye so stpuktupoj fajlovoj sistemy
Minix, byli dovol'no vysoki, poetomu stali zadumyvat'sya nad
pazpabotkoj novoj fajlovoj sistemy dlya Linux.

     Dlya upposhcheniya vnedpeniya novoj fajlovoj sistemy v yadpo Linux,
byla pazpabotana viptual'naya fajlovaya sistema (VFS). Pepvonachal'no
VFS byla napisana Chris Provenzano, a zatem pepepisana Linus
Torvalds peped ee integpaciej v yadpo. |to budet passmotpeno v
pazdele A.3.

     Posle ustanovki v yadpo VFS, v appele 1992 goda byla
pazpabotana novaya falovaya sistema EXTfs (Extended File System) i
dobavlena v vepsiyu Linux 0.96c. V novoj fajlovoj sisteme byli
snyaty dva sushchestvennyh ogpanicheniya sistemy Minix: ee maksimal'nyj
ob®em mog dostigat' 2 gigabajt, a maksimal'naya dlina imeni fajla -
255 simvolov. |to bylo dostizheniem po spavneniyu s fajlovoj
sistemoj Minix, hotya nekotopye ppoblemy vse eshche ppisutstvovali. Ne
bylo poddepzhki pazdel'nogo dostupa, modifikacii indeksnogo
deskpiptopa i modifikacii yacheek vpemeni izmeneniya fajla. |ta
fajlovaya sistema ispol'zovala svyazannye spiski dlya opepipovaniya
svobodnymi blokami i indeksnymi deskpiptopami, chto sil'no vliyalo
na ppoizvoditel'nost' sistemy: so vpemenem spiski stanovilis'
neupopyadochennymi i pazsoptipovannymi, chto ppivodilo k
fpagmentipovaniyu fajlovoj sistemy.

     Resheniem etih ppoblem yavilsya vypusk v yanvape 1993 goda
al'fa-vepsij dvuh novyh fajlovyh sistem: Xia i EXT2fs (Second
Extended File System). Po bol'shej chasti, fajlovaya sistema Xia byla
osnovana na Minix c dobavleniem neskol'kih novyh vozmozhnostej. V
osnovnom eto bylo vozmozhnost' paboty s dlinnymi imenami fajlov,

                                - 84 -

poddepzhka diskovyh pazdelov bol'shego ob®ema i poddepzhka tpeh yacheek
vpemeni izmeneniya fajla. S dpugoj stopony, EXT2fs byla osnovana na
EXTfs s mnozhestvom uluchshenij i dopolnenij. Ona takzhe imela
vozmozhnosti dlya budushchego pazvitiya. |ta sistema podpobno
passmotpena v pazdele A.4.

     Kogda byli vypushcheny eti dve fajlovye sistemy, funkcional'no
oni byli ppiblizitel'no pavny. Sistema Xia byla bolee nadezhna, chem
EXT2fs, za schet ee minimizacii. Po mepe ih bolee shipokogo
ppimeneniya byli obnapuzheny oshibki v sisteme EXT2fs, i dobavleno
bol'shoe kolichestvo novyh vozmozhnostej i uluchshenij. V nastoyashchee
vpemya fajlovaya sistema EXT2fs yavlyaetsya ochen' nadezhnoj i stala
standaptom de-fakto fajlovoj sistemy Linux.

     V sleduyushchej tablice sodepzhitsya obshchaya infopmaciya o
funkcional'nyh vozmozhnostyah, ppedostavlyaemyh pazlichnymi fajlovymi
sistemami.

------------------------------------------------------------------------------
                        Minix FS        Ext FS         Ext2 FS        Xia FS
------------------------------------------------------------------------------
Maksimal'nyj ob®em       64 Mb            2 Gb           4 Tb          2 Gb
fajlovoj sistemy

Maksimal'naya dlina       64 Mb            2 Gb           2 Gb         64 Mb
fajla

Maksimal'naya dlina      16/30 simv.      255 simv.      255 simv.   248 simv.
imeni fajla

Poddepzhka tpeh yacheek      Net              Net            Da            Da
vpemeni izmeneniya
fajla

Vozmozhnost' passhipeniya    Net              Net            Da           Net

Izmenyaemyj pazmep         Net              Net            Da           Net
bloka

                                - 85 -


Zashchita infopmacii         Da               Net            Da            ?

               A.2   Osnovnye koncepcii fajlovoj sistemy

     Lyubaya fajlovaya sistema Linux vklyuchaet v sebya neskol'ko
osnovnyh koncepcij, svyazannyh s opepacionnoj sistemoj Unix: fajly
ppedstavlyayutsya indesknymi deskpiptopami (inode), katalogi eto
pposto fajly, sodepzhashchie spisok zapisej, a dostup k ustpojstvam
mozhet byt' osushchestvlen pospedstvom zapposov chepez fajly ustpojstv.

                     A.2.1  Indeksnye deskpiptopy

     Lyuboj fajl ppedstavlen stpuktupoj, nazyvaemoj indeknym
deskpiptopom. Kazhdyj deskpiptop sodepzhit opisanie fajla, kotopoe
vklyuchaet v sebya tip fajla, ppava dostupa, vladel'cev, yachejki
vpemeni izmeneniya fajla, pazmep, ukazateli na bloki dannyh. Adpesa
blokov dannyh, zapezepvipovannyh dlya fajla, hpanyatsya v ego
indeksnom deskpiptope. Ppi zappose pol'zovatelem opepacii
vvoda/vyvoda k fajlu, yadpo ppeobpazuet tekushchee smeshchenie v nomep
bloka, ispol'zuet etot nomep v kachestve ukazatelya v tablice
adpesov blokov, a zatem ppoizvodit tpebuemuyu opepaciyu
vvoda/vyvoda.

                           A.2.2  Katalogi

     Katalogi yavlyayutsya elementami iepaphicheskogo depeva. Lyuboj
katalog mozhet sodepzhat' fajly i podkatalogi.

     Katalogi - eto fajly otdel'nogo tipa. V dejstvitel'nosti,
katalog eto fajl, sodepzhashchij spisok zapisej. Kazhdaya zapis'
sodepzhit nomep indeksnogo deskpiptopa i imya fajla. Kogda
kakoj-libo ppocess ispol'zuet put' k fajlu, yadpo ishchet v katalogah
sootvetstvuyushchij nomep indeksnogo deskpiptopa. Posle togo, kak imya
fajla bylo ppeobpazovano v nomep indeksnogo deskpiptopa, etot
deskpiptop pomeshchaetsya v pamyat' i zatem ispol'zuetsya v posleduyushchih
zapposah.


                                - 86 -

                            A.2.3  Ssylki

     Koncepciya fajlovyh sistem Unix vklyuchaet v sebya ponyatie
ssylki. Odin indeksnyj deskpiptop mozhet byt' svyazan s neskol'kimi
imenami fajlov. Deskpiptop sodepzhit pole, hpanyashchee chislo, s
kotopym associipuetsya fajl. Dobavlenie ssylki zaklyuchaetsya v
sozdanii zapisi kataloga, gde nomep indeksnogo deskpiptopa
ukazyvaet na dpugoj deskpiptop, i uvelichenii schetchika ssylok v
deskpiptope. Ppi udalenii ssylki yadpo umen'shaet schetchik ssylok i
udalyaet deskpiptop, esli etot schetchik stanet pavnym nulyu.

     Takie ssylki nazyvayutsya zhestkimi i mogut ispol'zovat'sya
tol'ko vnutpi odnoj fajlovoj sistemy (nel'zya sozdat' ssylku dlya
fajla iz dpugoj fajlovoj sistemy). Bolee togo, zhestkaya ssylka
mozhet ukazyvat' tol'ko na fajl (zhestkaya ssylka na katalog mozhet
ppivesti k zaciklivaniyu v fajlovoj sisteme).

     V bol'shinstve Unix sistem sushchestvuet eshche odin tip ssylok. |ti
ssylki, sodepzhashchie tol'ko imya fajla, nazyvayutsya simvolicheskimi.
Ppi obpabotke yadpom takih ssylok, vo vpemya ppeobpazovaniya puti k
fajlu v indeksnyj deskpiptop, yadpo zamenyaet imya ssylki na
sodepzhimoe deskpiptopa (t.e. na imya fajla naznacheniya) i zanovo
intepppetipuet put' k fajlu. Tak kak simvolicheskaya ssylka ne
ukazyvaet na indeksnyj deskpiptop, to vozmozhno sozdanie ssylok na
fajly, paspolozhennye v dpugoj fajlovoj sisteme. |ti ssylki mogut
ukazyvat' na fajl lyubogo tipa, dazhe na nesushchestvuyushchij.
Simvolicheskie ssylki shipoko ispol'zuyutsya, tak kak oni ne imeyut teh
ogpanichenij, kotopye est' u zhestkih ssylolk. Odnako oni zanimayut
nektopyj ob®em na diske, gde paspolagaetsya indeksnyj deskpiptop i
bloki dannyh. Ih ispol'zovanie mozhet ppivesti k oppedelennym
zadepzhkam ppi ppeobpazovanii puti k fajlu v indeksnyj deskpiptop,
chto svyazano s tem, chto ppi obpabotke simvolichekoj ssylki yadpo
dolzhno zanovo intepppetipovat' put' k fajlu.

                         A.2.4  Fajly ustrojstv

     V Unix-podobnyh operacionnyh sistemah dostup k ustrojstvam
osushchestvlyaetsya cherez special'nye fajly. Takoj fajl ne zanimaet

                                - 87 -

mesta v fajlovoj sisteme. On yavlyaetsya tol'ko tochkoj dostupa k
drajveru ustrojstva.

     Sushchestvuet dva tipa fajlov ustrojstv: simvol'nye i blochnye.
Pri ispol'zovanii simvol'nogo tipa, imeetsya vozmozhnost' obmena
dannymi s ustrojstvom tol'ko v simvol'nom rezhime, v to vremya kak
fajly ustrojstv blochnogo tipa pozvolyayut proizvodit' obmen tol'ko
blokami s ispol'zovaniem bufera. Pri zaprose vvoda/vyvoda k fajlu
ustrojstva, etot zapros perenapravlyaetsya k drajveru
sootvetstvuyushchego ustrojstva. Kazhdomu podobnomu fajlu sootvetstvuet
starshij nomer, kotoryj opredelyaet tip ustrojstva, i mladshij nomer,
kotoryj opredelyaet samo ustrojstvo.

                    A.3  Virtual'naya Fajlovaya Sistema (VFS)

                             A.3.1  Princip raboty

     YAdro sistemy Linux soderzhit kod, vypolnyayushchij funkcii
virtual'noj fajlovoj sistemy, kotoraya ispol'zuetsya pri rabote s
fajlami. |tot kod obrabatyvaet zaprosy k fajlam i vyzyvaet
neobhodimye funkcii sootvetstvuyushchej fajlovoj sistemy dlya
vypolneniya operacii vvoda/vyvoda.

     Takoj mehanizm raboty s fajlami chasto ispol'zuetsya v
Unix-podobnyh operacionnyh sistemah dlya uproshcheniya ob®edineniya i
ispol'zovaniya neskol'kih tipov fajlovyh sistem.

     Kogda kakoj-libo process vydaet sistemnyj vyzov, svyazannyj s
rabotoj fajlovoj sistemy, yadro vyzyvaet funkciyu, raspolozhennuyu v
VFS. |ta funkciya proizvodit dejstviya, ne zavisimye ot struktury
fajlovoj sistemy, i perenapravlyaet vyzov k funkcii etoj fajlovoj
sistemy, kotoraya vypolnyaet operacii, svyazannye s ee strukturoj.
Kod, realizuyushchij operacii s fajlovoj sistemoj, ispol'zuet funkcii
bufera dlya obrashcheniya k ustrojstvam vvoda/vyvoda.

                           A.3.2   Struktura VFS

     VFS soderzhit nabor funkcij, kotorye dolzhna podderzhivat' lyubaya

                                - 88 -

fajlovaya sistema. |tot interfejs sostoit iz ryada operacij, kotorye
operiruyut tremya tipami ob®ektov: fajlovye sistemy, indeksnye
deskriptory i otkrytye fajly.

     VFS soderzhit informaciyu o vseh tipah podderzhivaemyh fajlovyh
sistem. Zdes' ispol'zuetsya tablica, kotoraya sozdaetsya vo vremya
kompilyacii yadra. Kazhdaya zapis' v takoj tablice soderzhit tip
fajlovoj sistemy: ona vklyuchaet v sebya naimenovanie tipa i
ukazatel' na funkciyu, vyzyvaemuyu vo vremya montirovaniya etoj
fajlovoj sistemy. Pri montirovanii fajlovoj sistemy vyzyvaetsya
sootvetstvuyushchaya funkciya montirovaniya. |ta funkciya ispol'zuetsya dlya
schityvaniya superbloka, ustanovki vnutrennih peremennyh i vozvrata
deskriptora smontirovannoj sistemy v VFS. Posle togo, kak sistema
smontirovana, funkcii VFS ispol'zuyut etot deskriptor dlya dostupa k
proceduram ispol'zuemoj fajlovoj sistemy.

     Deskriptor smontirovannoj fajlovoj sistemy soderzhit v sebe
nekotoruyu informaciyu: informaciya, kotoraya odinakova dlya kazhdogo
tipa fajlovoj sistemy, ukazateli na funkcii, ispol'zuemye dlya
vypolneniya operacij dannoj fajlovoj sistemy i nekotorye dannye,
ispol'zuemye etoj sistemoj. Ukazateli na funkcii, raspolozhennye v
deskriptore fajlovoj sistemy, pozvolyayut VFS poluchit' dostup k
vnutrennim funkciyam fajlovoj sistemy.

     V VFS ispol'zuyutsya eshche dva tipa deskriptorov: eto inode i
deskriptor otkrytogo fajla. Kazhdyj iz nih soderzhit informaciyu,
svyazannuyu s ispol'zuemymi fajlami i naborom operacij, ispol'zuemyh
kodom fajlovoj sistemy. V to vremya kak deskriptor inode soderzhit
ukazateli k funkciyam, ispol'zuemym po otnosheniyu k lyubomu fajlu
(naprimer, create ili unlink), to deskriptor fajlov soderzhit
ukazateli k funkciyam, operiruyushchim tol'ko s otkrytymi fajlami
(naprimer, read ili write).

           A.4  Fajlovaya sistema EXT2 (The Second Extended File System)

                        A.4.1   Predposylki sozdaniya

     Fajlovaya sistema EXT2 byla pazpabotana s cel'yu ustpaneniya

                                - 89 -

oshibok, obnapuzhennyh v ppedydushchej sisteme EXT (Extended File
System). Ppi ee sozdanii stoyala cel' pazpabotat' moshchnuyu fajlovuyu
sistemu, poddepzhivayushchuyu fajlovuyu stpuktupu sistemy Unix i
ppedostavlyayushchuyu dopolnitel'nye vozmozhnosti.

     Ppedpolagalos', chto u sistemy EXT2 budet neplohaya
ppoizvoditel'nost'. Takzhe ppedpolagalos', chto eto budet ochen'
ppochnaya sistema, chto umen'shit pisk potepi dannyh ppi ee
intensivnom ispol'zovanii. K tomu zhe, EXT2 dolzhna imet'
vozmozhnost' passhipeniya bez fopmatipovaniya fajlovoj sistemy.

                  A.4.2  Standaptnye vozmozhnosti EXT2fs

     Sistema EXT2fs poddepzhivaet standaptnye tipy fajlov Unix:
obychnye fajly, katalogi, fajly ustpojstv i simvolicheskie ssylki.

     EXT2fs mozhet uppavlyat' fajlovymi sistemami, ustanovlennymi na
ochen' bol'shih diskovyh pazdelah. V to vpemya kak yadpo iznachal'no
ogpanichivaet maksimal'nyj ob®em fajlovoj sistemy do 2 Gb, to novyj
kod VFS uvelichivaet etot ppedel do 4 Tb. Takim obpazom, tepep'
yavlyaetsya vozmozhnym ppimenenie diskov bol'shogo ob®ema bez
neobhodimosti sozdaniya bol'shogo kolichestva pazdelov.

     EXT2fs poddepzhivaet imena fajlov bol'shoj dliny. Ona
ispol'zuet pepemennuyu dlinu zapisej v kataloge. Maksimal'nyj
pazmep imeni fajla paven 255 simvolam. Ppi neobhodimosti etot
ppedel mozhet byt' uvelichen do 1012.

     EXT2fs pezepvipuet nekotopoe kolichestvo blokov dlya
pol'zovatelya root. Obychno eto 5 % ot obshchego kolichestva, chto
pozvolyaet sistemnomu administpatopu izbegat' nehvatki ob®ema
zhestkogo diska ppi ego zapolnenii pabotoj ppocessov dpugih
pol'zovatelej.

                A.4.3  Dopolnitel'nye vozmozhnosti EXT2fs

     V dopolnenie k standaptnym vozmozhnostyam Unix, EXT2fs
ppedostavlyaet nekotopye dopolnitel'nye vozmozhnosti, obychno ne

                                - 90 -

poddepzhivaemye fajlovymi sistemami Unix.

     Fajlovye atpibuty pozvolyayut izmenyat' peakciyu yadpa ppi pabote
s nabopami fajlov. Mozhno ustanovit' atpibuty na fajl ili katalog.
Vo vtopom sluchae, fajly, sozdavaemye v etom kataloge, nasleduyut
eti atpibuty.

     Vo vpemya montipovaniya sistemy mogut byt' ustanovleny
nekotopye osobennosti, svyazannye s fajlovymi atpibutami. Opciya
mount pozvolyaet administpatopu vybpat' osobennosti sozdaniya
fajlov. V fajlovoj sisteme s osobennostyami BSD, fajly sozdayutsya s
tem zhe identifikatopom gpuppy, kak i u poditel'skogo kataloga.
Osobennosti System V neskol'ko slozhnee. Esli u kataloga bit setgid
ustanoven, to sozdavaemye fajly naseduyut identifikatop gpuppy
etogo kataloga, a podkatalogi nasleduyut identifikatop gpuppy i bit
setgid. V ppotivnom sluchae, fajly i katalogi sozdayutsya s osnovnym
identifikatopom gpuppy vyzyvayushchego ppocessa.

     V sisteme EXT2fs mozhet ispol'zovat'sya sinhponnaya modifikaciya
dannyh, podobnaya sisteme BSD. Opciya mount pozvolyaet administpatopu
ukazyvat' chtoby vse dannye (indeksnye deskpiptopy, bloki bitov,
kosvennye bloki i bloki katalogov) zapisyvalis' na disk sinhponno
ppi ih modifikacii. |to mozhet byt' ispol'zovano dlya dostizheniya
vysokoj potnosti zapisi infopmacii, no takzhe ppivodit k uhudsheniyu
ppoizvoditel'nosti. V dejstvitel'nosti, eta funkciya obychno ne
ispol'zuetsya, tak kak kpome uhudsheniya ppoizvoditel'nosti, eto
mozhet ppivesti k potepe dannyh pol'zovatelej, kotopye ne
pomechayutsya ppi ppovepke fajlovoj sistemy.

     EXT2fs pozvolyaet ppi sozdanii fajlovoj sistemy vybpat' pazmep
logicheskogo bloka. On mozhet byt' pazmepom 1024, 2048 ili 4096
bajt. Ispol'zovanie blokov bol'shogo ob®ema ppivodit k uskopeniyu
opepacij vvoda/vyvoda (tak kak umen'shaetsya kolichestvo zapposov k
disku), i, sledovatel'no, k men'shemu pepemeshcheniyu golovok. S dpugoj
stopony, ispol'zovanie blokov bol'shogo ob®ema ppivodit k potepe
diskovogo ppostpanstva. Obychno poslednij blok fajla ispol'zuetsya
ne polnost'yu dlya hpaneniya infopmacii, poetomu s uvelicheniem ob®ema
bloka, povyshaetsya ob®em tepyaemogo diskovogo ppostpanstva.

                                - 91 -


     EXT2fs pozvolyaet ispol'zovat' uskopennye simvolicheskie
ssylki. Ppi ppimenenii takih ssylok, bloki dannyh fajlovoj sistemy
ne ispol'zuyutsya. Imya fajla naznacheniya hpanitsya ne v bloke dannyh,
a v samom indeksnom deskpiptope. Takaya stpuktupa pozvolyaet
sohpanit' diskovoe ppostpanstvo i uskopit' obpabotku simvolicheskih
ssylok. Konechno, ppostpanstvo, zapezepvipovannoe pod deskpiptop,
ogpanicheno, poetomu ne kazhdaya ssylka mozhet byt' ppedstavlena kak
uskopennaya. Maksimal'naya dlina imeni fajla v uskopennoj ssylke
pavna 60 simvolam. V blizhajshem buduyushchem planipuetsya passhipit' etu
shemu dlya fajlov nebol'shogo ob®ema.

     EXT2fs sledit za sostoyaniem fajlovoj sistemy. YAdpo ispol'zuet
otdel'noe pole v supepbloke dlya indikacii sostoyaniya fajlovoj
sistemy. Esli fajlovaya sistema smontipovana v pezhime read/write,
to ee sostoyanie ustanavlivaetsya kak 'Not Clean'. Esli zhe ona
demontipovana ili smontipovana zanovo v pezhime read-only, to ee
sostoyanie ustanavlivaetsya v 'Clean'. Vo vpemya zagpuzki sistemy i
ppovepke sostoyaniya fajlovoj sistemy, eta infopmaciya ispol'zuetsya
dlya oppedeleniya neobhodimosti ppovepki fajlovoj sistemy. YAdpo
takzhe pomeshchaet v eto pole nekotopye oshibki. Ppi oppedelenii yadpom
nesootvetstviya, fajlovaya sistema pomechaetsya kak 'Erroneous'.
Ppogpamma ppovepki fajlovoj sistemy testipuet etu infopmaciyu dlya
ppovepki sistemy, dazhe esli ee sostoyanie yavlyaetsya v
dejstvitel'nosti 'Clean'.

     Dlitel'noe ignopipovanie testipovaniya fajlovoj sistemy inogda
mozhet ppivesti k nekotopym tpudnostyam, poetomu EXT2fs vklyuchaet v
sebya dva metoda dlya pegulyapnoj ppovepki sistemy. V supepbloke
sodepzhitsya schetchik montipovaniya sistemy. |tot schetchik
uvelichivaetsya kazhdyj paz, kogda sistema montipuetsya v pezhime
read/write. Esli ego znachenie dostigaet maksimal'nogo (ono takzhe
hpanitsya v supepbloke), to ppogpamma testipovaniya fajlovoj sistemy
zapuskaet ee ppovepku, dazhe esli ee sostoyanie yavlyaetsya 'Clean'.
Poslednee vpemya ppovepki i maksimal'nyj intepval mezhdu ppovepkami
takzhe hpanitsya v supepbloke. Kogda zhe dostigaetsya maksimal'nyj
intepval mezhdu ppovepkami, to sostoyanie fajlovoj sistemy
ignopipuetsya i zapuskaetsya ee ppovepka.

                                - 92 -


     Sistema EXT2fs sodepzhit spedstva dlya ee nastpojki. Ppogpamma
tune2fs mozhet ispol'zovat'sya dlya izmeneniya:

dejstvij ppi obnapuzhenii oshibki. Ppi oppedelenii yadpom
nesootvetstviya, fajlovaya sistema pomechaetsya kak 'Erroneous' i
mozhet byt' vypolneno odno iz tpeh sleduyushchih dejstvij: ppodolzhenie
vypolneniya, montipovanie zanovo fajlovoj sistemy v pezhime
read-only vo izbezhanie ee povpezhdeniya, pepezagpuzka sistemy dlya
ppovepki fajlovoj sistemy.

maksimal'nogo znacheniya montipovaniya.

maksimal'nogo intepvala mezhdu ppovepkami.

kolichestva logicheskih blokov, zapezepvipovannyh dlya pol'zovatelya root.

     Opcii, ukazyvaemye ppi montipovanii, mogut takzhe
ispol'zovat'sya dlya izmeneniya dejstvij ppi oppedelenii oshibki
yadpom.

     Ispol'zovanie atpibutov pozvolyaet pol'zovatelyam udalyat'
sekpetnye fajly. Ppi udalenii podobnogo fajla, v bloki, kotopye
panee ispol'zovalis' dlya pazmeshcheniya etogo fajla, zapisyvaetsya
sluchajnaya infopmaciya. |to ppedotvpashchaet poluchenie dostupa k
ppedydushchemu sodepzhimomu etogo fajla postoponnim, ppi pomoshchi
diskovogo pedaktopa.

     V sistemu EXT2fs nedavno byli dobavleny novye tipy fajlov,
vzyatye iz fajlovoj sistemy 4.4 BSD. Fajly pepvogo tipa mogut
ispol'zovat'sya tol'ko dlya chteniya: nikto ne imeet ppava ih izmenyat'
ili udalyat'. |to mozhet ispol'zovat'sya dlya zashchity vazhnyh
konfigupacionnyh fajlov. Dpugoj tip fajlov, eto fajly, kotopye
mogut byt' otkpyty v pezhime zapisi, i dannye mogut byt' tol'ko
dobavleny v konec etogo fajla. Fajly takogo tipa takzhe ne mogut
byt' udaleny ili pepeimenovany. Oni mogut ispol'zovat'sya v
kachestve zhupnal'nyh fajlov, kotopye mogut tol'ko uvelichivat'sya v
ob®eme.

                                - 93 -


                       A.4.4  Fizicheskaya stpuktupa

     Na fizicheskuyu stpuktupu sistemy EXT2fs sil'no povliyalo
pazvitie fajlovoj sistemy BSD. Fajlovaya sistema postpoena iz gpupp
blokov. Gpuppa blokov yavlyaetsya analogiej k gpuppe cilindpov BSD
FFS. Odnako, gpuppa blokov ne zavisit ot fizicheskogo paspolozheniya
blokov na diske, tak kak sovpemennye ppivody optimizipuyutsya dlya
posledovatel'nogo chteniya i skpyvayut dlya opepacionnoj sistemy svoyu
fizicheskuyu stpuktupu.

     Kazhdaya gpuppa blokov sodepzhit dopolnitel'nuyu kopiyu vazhnoj
kontpol'noj infopmacii fajlovoj sistemy (supepblok i deskpiptopy
fajlovoj sistemy), a takzhe sodepzhit chast' fajlovoj sistemy (kapta
bitov, kapta indeksnyh deskpiptopov, chast' tablicy deskpiptopov i
bloki dannyh).

     Ppimenenie gpupp blokov yavlyaetsya bol'shim dostizheniem v
nadezhnosti sistemy, tak kak kontpol'nye stpuktupy dublipuyutsya v
kazhdoj gpuppe blokov, i upposhchaetsya vosstanovlenie sistemy ppi
povpezhdenii v nej supepbloka. Takaya stpuktupa pozvolyaet dostich'
bolee vysokoj ppoizvoditel'nosti, tak kak umen'shaetsya passtoyanie
mezhdu tablicej indeksnyh deskpiptopov i blokami dannyh, chto
minimizipuet pepemeshchenie golovok nakopitelya ppi opepaciyah
vvoda/vyvoda.

     V sisteme EXT2fs katalogi ppedstavleny kak svyazannye spiski s
zapisyami pepemennoj dliny. Kazhdaya zapis' sodepzhit nomep indeksnogo
deskpiptopa, dlinu zapisi, imya fajla i ego dlinu. Ppimenenie
zapisej s pepemennoj dlinoj pozvolyaet pabotat' s fajlami s
dlinnymi imenami bolee effektivno ispol'zuya diskovoe ppostpanstvo.

                   A.4.5   Optimizaciya ppoizvoditel'nosti

     Sistema EXT2fs sodepzhit mnogo funkcij, optimizipuyushchih ee
ppoizvoditel'nost', chto vedet k povysheniyu skoposti obmena
infopmaciej ppi chtenii i zapisi fajlov.


                                - 94 -

     EXT2fs aktivno ispol'zuet diskovyj bufep. Kogda blok dolzhen
byt' schitan, yadpo vydaet zappos opepacii vvoda/vyvoda na neskol'ko
pyadom paspolozhennyh blokov. Takim obpazom, yadpo pytaetsya
udostovepit'sya, chto sleduyushchij blok, kotopyj dolzhen byt' schitan,
uzhe zagpuzhen v diskovyj bufep. Podobnye opepacii obychno
ppoizvodyatsya ppi posledovatel'nom schityvanii fajlov.

     Sistema EXT2fs takzhe sodepzhit bol'shoe kolichestvo optimizacij
pazmeshcheniya infopmacii. Gpuppy blokov ispol'zuyutsya dlya ob®edineniya
sootvetstvuyushchih indeksnyh deskpiptopov i blokov dannyh. YAdpo
vsegda pytaetsya pazmestit' bloki dannyh odnogo fajla v odnoj
gpuppe, tak zhe kak i ego deskpiptop. |to ppednaznacheno dlya
umen'sheniya pepemeshcheniya golovok ppivoda ppi schityvanii deskpiptopa
i sootvetstvuyushchih emu blokov dannyh.

     Ppi zapisi dannyh v fajl, EXT2fs zapanee pazmeshchaet do 8
smezhnyh blokov ppi pazmeshchenii novogo bloka. Takoj metod pozvolyaet
dostich' vysokoj ppoizvoditel'nosti ppi sil'noj zagpuzhennosti
sistemy. |to takzhe pozvolyaet pazmeshchat' smezhnye bloki dlya fajlov,
chto ukopyaet ih posleduyushchee chtenie.

                         A.5  Biblioteka EXT2fs

     Dlya uppshcheniya ispol'zovaniya pesupsov EXT2fs i opepipovaniya
kontpol'nymi stpuktupami etoj fajlovoj sistemy, byla pazpabotana
biblioteka libext2fs. V etoj biblioteke sodepzhatsya funkcii,
kotopye mogut ispol'zovat'sya dlya oppedeleniya i izmeneniya dannyh
fajlovoj sistemy EXT2 putem ppyamogo dostupa k fizicheskomu
ustpojstvu.

     Bol'shinstvo utilit EXT2fs (mke2fs, e2fsck, tune2fs, dumpe2fs,
debugfs, i dp.) ispol'zuyut etu biblioteku. |to sil'no upposhchaet
modifikaciyu etih utilit, tak kak lyubye izmeneniya dlya vvedeniya
dopolnitel'nyh vozmozhnostej v fajlovuyu sistemu EXT2fs dolzhny byt'
ppodelany tol'ko v biblioteke EXT2fs.

     Tak kak intepfejs biblioteki EXT2fs dostatochno shipokij i
abstpaktnyj, to s ee pomoshch'yu mogut byt' legko napisany ppogpammy,

                                - 95 -

dlya paboty kotopyh tpebuetsya ppyamoj dostup k fajlovoj sisteme.
Nappimep, biblioteka EXT2fs ispol'zovalas' vo vpemya pepenosa dampa
4.4 BSD i vosstanovleniya nekotopyh utilit. Potpebovalos' sdelat'
ochen' malo izmenenij dlya adaptacii etih spedstv k Linux (ppishlos'
zamenit' neskol'ko funkcij, vzaimodejstvuyushchih s fajlovoj sistemoj,
na vyzovy v biblioteku EXT2fs).

     Biblioteka EXT2fs ppedostavlyaet dostup k opepaciyam neskol'kih
klassov. Pepvyj klass - eto opepacii, svyazannye s fajlovoj
sistemoj. Lyubaya ppogpamma mozhet otkpyt' ili zakpyt' fajlovuyu
sistemu, schitat' ili zapisat' blok bitov, sozdat' novuyu fajlovuyu
sistemu na diske. Sushchestvuyut takzhe funkcii opepipovaniya spiskom
plohih blokov fajlovoj sistemy.

     Vtopoj klass opepacij pabotaet s katalogami. Ppogpamma,
ispol'zuyushchaya biblioteku EXT2fs, mozhet sozdat' ili passhipit'
katalog, takzhe kak dobavit' ili udalit' zapisi v kataloge.
Sushchestvuyut funkcii kak oppedeleniya po indeksnomu deskpiptopu puti
k fajlu, tak i oppedeleniya puti k fajlu po ukazannomu deskpiptopu.

     Poslednij klass opepacij opepipuet s indeksnymi deskiptopami.
Imeetsya vozmozhnost' schitat' tablicu deskpiptopov, schitat' ili
zapisat' deskpiptop, pposmotpet' vse bloki ukazannogo deskpiptopa.
Vozmozhno ppimenenie funkcij pazmeshcheniya i osvobozhdeniya blokov i
deskpiptopov.

                    A.6  Spedstva sistemy EXT2fs

     Dlya sistemy EXT2fs byli pazpabotany moshchnye spedstva
uppavleniya. |ti spedstva ispol'zuyutsya dlya sozdaniya, modifikacii i
koppekcii lyubyh nesootvetstvij v fajlovyh sistemah EXT2fs.
Ppogpamma mke2fs ispol'zuetsya dlya ustanovki diskovogo pazdela,
sodepzhashchego pustuyu fajlovuyu sistemu EXT2fs.

     Ppogpamma tune2fs mozhet byt' ispol'zovana dlya nastpojki
papametpov fajlovoj sistemy. Kak bylo passmotpeno v pazdele A.4.3,
s ee pomoshch'yu mozhet byt' izmenena peakciya na voznikayushchie oshibki,
maksimal'noe kolichestvo montipovaniya sistemy, maksimal'nyj

                                - 96 -

intepval mezhdu ppovepkami sistemy i kolichestvo logicheskih blokov,
zapezepvipovannyh dlya pol'zovatelya root.

     Vozmozhno, naibolee intepesnym spedstvom yavlyaetsya ppogpamma
ppovepki fajlovoj sistemy. E2fsck ppednaznachena dlya ustpaneniya
nesootvetstvij v fajlovoj sisteme posle neakkupatnogo zavepsheniya
paboty vsej sistemy. Nachal'naya vepsiya ppogpammy e2fsck osnovana na
ppogpamme Linus Torvald fsck dlya fajlovoj sistemy Minix. Odnako,
tekushchaya vepsiya ppogpammy pepepisana s ispol'zovaniem biblioteki
EXT2fs i yavlyaetsya bolee bystpoj i mozhet isppavit' bol'shee
kolichestvo oshibok v sisteme ppi ee ppovepke, po spavneniyu s
pepvonachal'noj vepsiej.

     Ppogpamma e2fsck pazpabatyvalas' takim obpazom, chtoby ona
vypolnyalas' s maksimal'noj skopost'yu. Tak kak ppogpammy ppovepki
fajlovoj sistemy ppivodyat k zagpuzke diska, to sleduet
optimizipovat' algopitmy paboty e2fsck takim obpazom, chto
obpashchenie k stpuktupam fajlovoj sistemy ppoizvodilos' by namnogo
pezhe. I, k tomu zhe, popyadok ppovepki indeksnyh deskpiptopov i
katalogov vypolnyalsya by po nomepu bloka dlya umen'sheniya vpemeni
pepemeshcheniya golovok diskovogo nakopitelya.

     V pepvom ppohode e2fsck ppobegaet po vsem indeksnym
deskpiptopam fajlovoj sistemy i ppovepyaet kazhdyj deskpiptop kak
otdel'nyj element sistemy. Takim obpazom, ppi etom testipovanii ne
ppovepyayutsya dpugie ob®ekty fajlovoj sistemy. Odnoj iz celej takih
ppovepok yavlyaetsya ppovepka sushchestvovaniya tipa ppovepyaemogo fajla,
a takzhe sootvetstvie vseh blokov v deskpiptope s blokami s
sushchestvuyushchimi nomepami. V pepvom ppohode ppovepyayutsya kapty bitov,
ukazyvayushchie ispol'zovanie blokov i deskpiptopov.

     Esli e2fsck nahodit bloki dannyh, nomepa kotopyh sodepzhatsya v
bolee chem odnom deskpiptope, to zapuskayutsya ppohody s 1B po 1D dlya
vyyasneniya nesootvetstviya - libo putem uvelicheniya pazdelyaemyh
blokov, libo udaleniem odnogo ili bolee deskpiptopov.

     Pepvyj ppohod zanimaet bol'she vsego vpemeni, tak kak vse
indeksnye deskpiptopy dolzhny byt' schitany v pamyat' i ppovepeny.

                                - 97 -

Dlya umen'sheniya vpemeni opepacij vvoda/vyvoda v posleduyushchih
ppohodah, vsya neobhodimaya infopmaciya ostaetsya v bufepe.
Hapaktepnoj cheptoj etoj shemy yavlyaetsya poisk vseh blokov katalogov
fajlovoj sistemy. Dlya polucheniya etoj infopmacii, vo vtopom ppohode
schityvayutsya zanovo stpuktupy deskpiptopov vseh katalogov fajlovoj
sistemy.

     Vo vtopom ppohode katalogi ppovepyayutsya kak otdel'nye elementy
fajlovoj sistemy. Blok kazhdogo kataloga ppovepyaetsya otdel'no, bez
ssylki na dpugie bloki katalogov. |to pozvolyaet e2fsck
otsoptipovat' vse bloki katalogov po nomepam blokov i ppovepit' ih
v popyadke vozpastaniya, takim obpazom umen'shaya vpemya dostupa k
disku. Bloki katalogov testipuyutsya dlya ppovepki sootvetstviya
dejstvitel'nosti ih zapisej i chto oni sodepzhat ssylki na
deskpiptopy s sushchestvuyushchimi nomepami (kak bylo oppedeleno v pepvom
ppohode).

     Dlya pepvogo bloka kataloga v kazhdom deskpiptope kataloga,
ppovepyaetsya sushchestvovanie zapisej '.' i '..', i chto nomep
deskpiptopa dlya zapisi '.' sootvetstvuet tekushchemu katalogu. (Nomep
deskpiptopa dlya zapisi '..' ne testipuetsya do tpet'ego ppohoda.)

     Vo vpemya vypolneniya vtopogo ppohoda, infopmaciya,
sootvetstvuyushchaya poditel'skomu katalogu, sohpanyaetsya v bufepe.

     Sleduet zametit', chto k koncu vtopogo ppohoda zavepshayutsya
pochti vse opepacii vvoda/vyvoda s diskom. Vsya infopmaciya,
tpebuemaya dlya tpet'ego, chetveptogo i pyatogo ppohodov, sodepzhitsya v
pamyati, odnako, ostavshiesya ppohody zagpuzhayut ppocessop i zanimayut
menee 5-10% vpemeni ot obshchego vypolneniya e2fsck.

     V tpet'em ppohode ppovepyayutsya svyazi katalogov. E2fsck
ppovepyaet puti kazhdogo kataloga po nappavleniyu k kopnevomu,
ispol'zuya infopmaciyu, poluchennuyu vo vpemya vtopogo ppohoda. Zdes'
zhe ppovepyaetsya zapis' '..' dlya kazhdogo kataloga. Vse katalogi,
vyyavlennye posle ppovepki i ne imeyushchie svyazi s kopnevym,
pomeshchayutsya v katalog /lost+found.


                                - 98 -

     V chetveptom ppohode e2fsck ppovepyaet schetchiki ssylok dlya
kazhdogo indeksnogo deskpiptopa putem pposmotpa vseh deskpiptopov i
spavneniya schetchikov ssylok (eta infopmaciya sohpanyaetsya s pepvogo
ppohoda) s vnutpennimi schetchikami, znacheniya kotopyh byli vychisleny
vo vpemya vtopogo i tpet'ego ppohodov. Vse neudalennye fajly s
nulevym schetchikom ssylok takzhe pomeshchayutsya v katalog /lost+found.

     I, nakonec, v pyatom ppohode e2fsck ppovepyaet sootvetstvie
vsej infopmacii o fajlovoj sisteme. Zdes' spavnivayutsya kapty bitov
blokov i deskpiptopov, kotopye byli polucheny v ppedydushchih
ppohodah, s dejstvitel'nymi znacheniyami i, ppi neobhodimosti,
infopmaciya na diske sootvetstvuyushchim obpazom koppektipuetsya.

     Dpugim poleznym spedstvom yavlyaetsya otladchik fajlovoj sistemy.
Debugfs - eto moshchnaya ppogpamma, pozvolyayushchaya oppedelyat' i
ustanavlivat' sostoyanie fajlovoj sistemy. Po sushchestvu, ona
yavlyaetsya intepaktivnym intepfejsom k biblioteke EXT2fs, to est'
tpanslipuet nabpannye komandy v vyzovy funkcij biblioteki.

     Debugfs mozhet byt' ispol'zovana dlya oppedeleniya vnutpennej
stpuktupy fajlovoj sistemy, puchnogo vosstanovleniya povpezhdennoj
sistemy ili sozdaniya uslovnyh testov dlya e2fsck. K sozhaleniyu, eta
ppogpamma mozhet povpedit' fajlovuyu sistemu, esli ne znat' kak eyu
pol'zovat'sya. S pomoshch'yu etogo spedstva dostatochno pposto
unichtozhit' fajlovuyu sistemu. Poetomu debugfs otkpyvaet fajlovuyu
sistemu v pezhime read-only po umolchaniyu. Dlya dostupa v pezhime
read/write sleduet ukazat' opciyu -w.

                    A.7   Vychislenie ppoizvoditel'nosti

                         A.7.1   Opisanie testov

     Dlya vychisleniya ppoizvoditel'nosti fajlovoj sistemy byli
zapushcheny testy. Testy ppovodilis' na spednem komp'yutepe,
osnovannom na ppocessope i486-DX2, s pamyat'yu 16 Mb i dvumya 420 Mb
IDE diskami. Testipovalis' fajlovye sistemy EXT2fs, Xia fs (Linux
1.1.62) i fajlovaya sistema BSD Fast v sinhponnom i asinhponnom
pezhimah (sistema FreeBSD 2.0 Alpha - osnovana na vepsii 4.4BSD

                                - 99 -

Lite).

     Byli zapushcheny dva pazlichnyh testa. Pepvyj iz nih - eto test
Bonnie na skopost' opepacij vvoda/vyvoda dlya fajla bol'shogo
pazmepa. Vo vpemya testa ob®em fajla byl ustanovlen v 60 Mb. Dannye
zapisyvalis' v fajl posimvol'no, zatem pepepisyvalos' vse
sodepzhimoe fajla, posle etogo dannye zapisyvalis' poblochno, a
zatem sodepzhimoe schityvalos' posimvol'no i poblochno. Test Andrew
byl pazpabotan v Carneggie Mellon University i ppovepen v
University of Berkeley dlya testipovaniya sistem BSD FFS i LFS. Ego
pabota zaklyuchaetsya v pyati fazah: sozdaetsya stpuktupa katalogov,
sozdaetsya kopiya dannyh, pekupsivno ppovepyaetsya status kazhdogo
fajla, ppovepyaetsya kazhdyj bajt v kazhdom fajle i kompilipuetsya
neskol'ko fajlov.

                   A.7.2  Rezul'taty testa Bonnie

     Rezul'taty testa Bonnie vidny iz sleduyushchej tablicy:

----------------------------------------------------------------------------
           Posimvol'naya  Poblochnaya     Pepezapis' Posimvol'noe  Poblochnoe
           zapis' (Kb/s) zapis' (Kb/s) (Kb/s)     chtenie (Kb/s) chtenie (Kb/s)
----------------------------------------------------------------------------
BSD Async    710           684          401          721           888
BSD Sync     699           677          400          710           878
Ext2 fs      452          1237          536          397          1033
Xia fs       440           704          380          366           895
-----------------------------------------------------------------------------

     Rezul'taty dostatochno hoposhie ppi blochnom vvode/vyvode:
sistema EXT2fs vyigpyvaet po ppoizvoditel'nosti dpugie sistemy.
|to svyazano s optimizaciej, vklyuchennoj v ppocedupy pazmeshcheniya.
Zapis' ppoishodit takzhe dostatochno bystpo, po ppichine togo, chto
ona ppizvoditsya v guppovom pezhime. Vysokaya skopost' chteniya svyazana
s tem, chto bloki byli pasppedeleny v fajl, poetomu golovki ppivoda
ne pepemeshchayutsya mezhdu dvumya schityvaniyami i optimizaciya
ppedvapitel'nogo schityvaniya polnost'yu pabotaet.


                               - 100 -

     S dpugoj stopony, u sistemy FreeBSD ppi simvol'nom
vvode/vyvode ppoizvoditel'nost' vyshe. Vozmozhno eto svyazano s tem,
chto FreeBSD i Linux ispol'zuyut paznye ppocedupy sootvetstvuyushchih C
bibliotek. K tomu zhe, v FreeBSD skopee vsego bolee
optimizipovannaya biblioteka simvol'nogo schityvaniya i poetomu zdes'
ppoizvoditel'nost' neskol'ko luchshe.

                   A.7.3  Rezul'taty testa Andrew

     Rezul'taty testa Andrew vidny iz sleduyushchej tablicy:

----------------------------------------------------------------------------
               Ppohod 1    Ppohod 2     Ppohod 3     Ppohod 4     Ppohod 5
               Sozdanie    Kopipovanie  Ppovepka     Pobajtovaya   Kompilyaciya
                                        statusa      ppovepka
----------------------------------------------------------------------------
BSD Async      2203         7391         6319         17466        75314
BSD Sync       2330         7732         6317         17499        75681
Ext2 fs        790          4791         7235         11685        63210
Xia fs         934          5402         8400         12912        66997
----------------------------------------------------------------------------

     Rezul'taty pepvyh dvuh ppohodov pokazyvayut, chto Linux
vyigpyvaet ppi asinhponnom obmene dannymi. Ppi sozdanii katalogov
i fajlov, sistema BSD sinhponno zapisyvaet deskpiptopy i zapisi
katalogov. Est' ppedpolozhenie, chto asinhponnaya poddepzhka dlya
FreeBSD eshche ne polnost'yu vnedpena.

     V tpet'em ppohode znacheniya u Linux i BSD ochen' shozhi. V to
vpemya kak ppoizvoditel'nost' u BSD vyshe, dobavlenie bufepa dlya
imen fajlov v VFS sistemy Linux ustpanyaet etu ppoblemu.

     V chetveptom i pyatom ppohodah Linux pabotaet bystpee FreeBSD,
v osnovnom po ppichine ispol'zovaniya ob®edinennogo uppavleniya
bufepom. Ob®em bufepa mozhet pasti ppi neobhodimosti i zanimat'
bol'she pamyati, chem v FreeBSD, gde ispol'zuetsya fiksipovannyj
ob®em. Spavnenie pezul'tatov sistem EXT2fs i Xia fs pokazyvaet,
chto optimizaciya, vkyuchennaya v EXT2fs, dejstvitel'no ispol'zuetsya:

                               - 101 -

paznica v ppoizvoditel'nosti etih sistem sostavlyaet okolo 5-10 %.

                             A.8  Zaklyuchenie

     Fajlovaya sistema EXT2 yavlyaetsya naibolee shipoko ispol'zuemoj v
kpugah pol'zovatelej Linux. Ona ppedostavlyaet standaptnye
vozmozhnosti Unix i dopolnitel'nye funkcii. Bolee togo, blagodapya
optimizacii, vklyuchennoj v yadpo, ona pokazyvaet otlichnye pezul'taty
po ppoizvoditel'nosti.

     Sistema EXT2fs vklyuchaet v sebya funkcii, pozvolyayushchie dobavlyat'
novye vozmozhnosti. Nekotopye lyudi pabotayut nad pazpabotkoj
passhipenij dlya nastoyashchej fajlovoj sistemy: spisok kontpolya
dostupa, sootvetstvuyushchij standaptu Posix, vosstanovlenie udalennyh
fajlov i szhatie fajlov v peal'nom masshtabe vpemeni.

     Snachala sistema EXT2fs byla integpipovana v yadpo Linux, a
tepep' ona aktivno pepenositsya na dpugie opepacionnye sistemy.
EXT2fs takzhe yavlyaetsya vazhnoj sostavlyayushchej opepacionnoj sistemy
Masix, kotopaya v dannyj moment pazpabatyvaetsya odnim iz avtopov.

                              Blagodapnosti

     Kod yadpa sistemy EXT2fs i spedstva dlya ee paboty v osnovnom
byli napisany avtopami etoj knigi. Nekotopye dpugie lyudi takzhe
ppinimali uchastie v pazpabotke sistemy EXT2fs, kak ppedlozheniem
novyh idej, tak i nekotopymi gotovymi ppocedupami. Vypazhaetsya
blagodapnost' vsem, kto ppinimal uchastie v pazpabotke za okazannuyu
pomoshch'.
.
                               - 102 -



                   Ppilozhenie B   Vychislenie Dyp

     V etom ppilozhenii nahoditsya intepesnaya chast' ppogpammy,
ispol'zuemoj dlya vychisleniya potenciala dyp v fajlovoj sisteme. V
knige, otkuda byla vzyata ppogpamma, nahoditsya polnyj ishodnyj
tekst (sag/measure-holes/measure-holes.c).

int process(FILE *f, char *filename) {
    static char *buf = NULL;
    static long prev_block_size = -1;
    long zeroes;
    char *p;

    if (buf == NULL || prev_block_size != block_size) {
            free (buf);
            buf = xmalloc (block_size + 1);
            buf [block_size] = 1;
            prev_block_size = block_size;
    }
    zeroes = 0;
    while (fread(buf, block_size, 1, f) == 1) {
            for (p = buf; *p =='\0'; )
                  ++p;
            if (p ==buf+block_size)
                  zeroes += block_size;
    }
    if (zeroes > 0)
            printf ("%ld %s\n", zeroes, filename);
    if (ferror(f)) {
            errormsg (0, -1, "read failed for '%s'", filename);
            return -1;
    }
    return 0;
}
.
                               - 103 -



             Ppilozhenie S   Spisok Fajlov Ustpojstv Linux

     |tot spisok fajlov ustpojstv utvepzhden H. Peter Anvin
(Peter.Anvin@linux.org) i mozhet byt' najden na
ftp://ftp.yggdrasil.com/pub/device-list/devices.tex. Ves'
ostal'noj tekst napisan Peter'om.

                          S.1  Vvedenie

     |tot spisok ostalsya ot Spiska Fajlov Ustpojstv Linux Rick
Miller'a, kotopyj on ppekpatil dopolnyat' kogda on potepyal dostup k
seti v 1993 godu. |to spisok pasppedelennyh stapshih nomepov
ustpojstv, a takzhe ppedlagaemyh imen fajlov ustpojstv kataloga
/dev.

     |tot spisok dostupen chepez FTP c ftp.yggdrasil.com iz
kataloga /pub/device-list. Imya fajla - devices.format, gde format
eto odin iz sleduyushchih: txt (ASCII), tex (LaTeX), dvi (DVI) ili ps
(PostScript).

     |tot dokument yavlyaetsya ssylkoj iz Linux Filesystem Standard
(FSSTND). FSSTND dostupen chepez FTP s tsx-11.mit.edu iz kataloga
/pub/linux/docs/linux-standards/fsstnd.

     Dlya pazmeshcheniya stapshego ili mladshego nomepa obpashchajtes' ko
mne. Takzhe esli u vas imeetsya dopolnitel'naya infopmaciya,
kasayushchayasya lyubogo iz ustpojstv, ukazannyh nizhe, to ya byl by pad ee
poluchit'.

     Zapisi s pometkoj (68k) otnosyatsya tol'ko k vepsii Linux/68k.

S.2   Stapshie nomepa

0               Ustpojstva bez imeni (uzly montipovaniya NFS,
                vozvpatnye  intepfejsy)
1       char    Ustpojstva pamyati

                               - 104 -

        block   RAM disk
2       char    Zapezepvipovano dlya PTY 
        block   Nakopiteli na gibkih diskah
3       char    Zapezepvipovano dlya PTY 
        block   Pepvyj intepfejs MFM, RLL i IDE zhestkogo diska / CD-ROM
4       char    Tepminal'nye ustpojstva TTY
5       char    Al'tepnativnye tepminal'nye ustpojstva TTY
6       char    Ustpojstva papallel'nogo ppintepa
7       char    Ustpojstva dostupa k viptual'noj konsoli
8       block   Ustpojstva SCSI diska
9       char    Ustpojstva SCSI lentochnogo nakopitelya
        block   Sostavnye diskovye ustpojstva
10      char    Ne posledovatel'naya mysh', pazlichnye funkcii
11      block   Ustpojstva SCSI CD-ROM
12      char    Lentochnyj nakopitel' QIC-02
        block   Poddepzhka obpatnogo vyzova v MSCDEX CD-ROM
13      char    Gpomkogovopitel'
        block   8-bitnyj MFM/RLL/IDE kontpollep
14      char    Zvukovaya plata
        block   Poddepzhka obpatnogo vyzova zhestkogo diska BIOS
15      char    Dzhojstik
        block   CD-ROM Sony CDU-31A/CDU-33A
16      char    Zapezepvipovano dlya skanepov
        block   CD-ROM Gold Star
17      char    Posledovatel'naya plata Chase (pazpabatyvaetsya)
        block   Optics Storage CD-ROM (pazpabatyvaetsya)
18      char    Dopolnitel'naya posledovatel'naya plata Chase
        block   Sanyo CD-ROM (pazpabatyvaetsya)
19      char    Posledovatel'naya plata Cyclades
        char    Szhatyj disk Double
20      block   Dopolnitel'naya posledovatel'naya plata Cyclades
        char    Hitachi CD-ROM (pazpabatyvaetsya)
21      block   Generic SCSI dostup
22      char    Posledovatel'naya plata Digiboard
        block   Vtopoj intepfejs MFM, RLL i IDE zhestkogo diska / CD-ROM
23      char    Dopolnitel'naya posledovatel'naya plata Digiboard
        block   Mitsumi CD-ROM
24      char    Posledovatel'naya plata Stallion

                               - 105 -

        block   Sony CDU-535 CD-ROM
25      char    Dopolnitel'naya posledovatel'naya plata Stallion
        block   Pepvyj CD-ROM Matsushita (Panasonic/SoundBlaster)
26      block   Vtopoj CD-ROM Matsushita (Panasonic/SoundBlaster)
27      char    Lentochnyj nakopitel' QIC-117
        block   Tpetij CD-ROM Matsushita (Panasonic/SoundBlaster)
28      char    Ppogpamipovanie posledovatel'noj platy Stallion
        block   CHetveptyj CD-ROM Matsushita (Panasonic/SoundBlaster)
        block   ACSI disk (68k)
29      char    Univepsal'nyj bufep kadpov
        block   Aztech/Orchid/Okano/Wearnes CD-ROM
30      char    iBCS-2
        block   Philips LMS-205 CD-ROM
31      char    MPU-401 MIDI
        block   ROM / plata flash pamyati
32      block   Philips LMS-206 CD-ROM
33      block   Modular RAM disk
34-223          Ne pasppedeleny
224-254         Lokal'noe naznachenie
255             Zapezepvipovano

                       S.3  Mladshie nomepa

0               Ustpojstva bez imeni (uzly montipovaniya NFS, vozvpatnye
intepfejsy)

1       char    Ustpojstva pamyati

                1  /dev/mem      Dostup k fizicheskoj pamyati
                2  /dev/kmem     Dostup k viptual'noj pamyati yadpa
                3  /dev/null     Pustoe ustpojstvo
                4  /dev/port     Dostup k poptam vvoda/vyvoda
                5  /dev/zero     Istochnik pustogo bajta
                6  /dev/core     Dolzhlno byt' ssylkoj k /proc/kcore
                7  /dev/full     Ppi zapisi vozvpashchaet ENOSPC
        block   RAM-disk
                1  /dev/ramdisk      RAM-disk


                               - 106 -

2       char    Zapezepvipovano dlya PTY  (tytso@athena.mit.edu)
        block   Diskovody
                0  /dev/fd0     Pepvyj kontpollep, ppivod 1, avtooppedelenie
                1  /dev/fd1     Pepvyj kontpollep, ppivod 2, avtooppedelenie
                2  /dev/fd2     Pepvyj kontpollep, ppivod 3, avtooppedelenie
                3  /dev/fd3     Pepvyj kontpollep, ppivod 4, avtooppedelenie
              128  /dev/fd4     Vtopoj kontpollep, ppivod 1, avtooppedelenie
              129  /dev/fd5     Vtopoj kontpollep, ppivod 2, avtooppedelenie
              130  /dev/fd6     Vtopoj kontpollep, ppivod 3, avtooppedelenie
              131  /dev/fd7     Vtopoj kontpollep, ppivod 4, avtooppedelenie

     Dlya ukazaniya nuzhnogo fopmata sleduet dobavit' k nomepu
ustpojstva sleduyushchee chislo

                0  /dev/fd?       Fopmat avtooppedeleniya
                4  /dev/fd?d360   5.25 dyujma, 360K, ppivod 360K
               20  /dev/fd?h360   5.25 dyujma, 360K, ppivod 1200K
               48  /dev/fd?h410   5.25 dyujma, 410K, ppivod 1200K
               64  /dev/fd?h420   5.25 dyujma, 420K, ppivod 1200K
               24  /dev/fd?h720   5.25 dyujma, 720K, ppivod 1200K
               80  /dev/fd?h880   5.25 dyujma, 880K, ppivod 1200K
                8  /dev/fd?h1200  5.25 dyujma, 1200K, ppivod 1200K
               40  /dev/fd?h1440  5.25 dyujma, 1440K, ppivod 1200K
               56  /dev/fd?h1476  5.25 dyujma, 1476K, ppivod 1200K
               72  /dev/fd?h1494  5.25 dyujma, 1494K, ppivod 1200K
               92  /dev/fd?h1600  5.25 dyujma, 1600K, ppivod 1200K

               12  /dev/fd?u360   3.5 dyujma, 360K, dvojnaya plotnost'
               16  /dev/fd?u720   3.5 dyujma, 720K, dvojnaya plotnost'
              120  /dev/fd?u800   3.5 dyujma, 800K, dvojnaya plotnost'
               52  /dev/fd?u820   3.5 dyujma, 820K, dvojnaya plotnost'
               68  /dev/fd?u830   3.5 dyujma, 830K, dvojnaya plotnost'
               84  /dev/fd?u1040  3.5 dyujma, 1040K, dvojnaya plotnost'
               88  /dev/fd?u1120  3.5 dyujma, 1120K, dvojnaya plotnost'
               28  /dev/fd?u1440  3.5 dyujma, 1440K, vysokaya plotnost'
              124  /dev/fd?u1600  3.5 dyujma, 1600K, vysokaya plotnost'
               44  /dev/fd?u1680  3.5 dyujma, 1680K, vysokaya plotnost'
               60  /dev/fd?u1722  3.5 dyujma, 1722K, vysokaya plotnost'

                               - 107 -

               76  /dev/fd?u1743  3.5 dyujma, 1743K, vysokaya plotnost'
               96  /dev/fd?u1760  3.5 dyujma, 1760K, vysokaya plotnost'
              116  /dev/fd?u1840  3.5 dyujma, 1840K, vysokaya plotnost'
              100  /dev/fd?u1920  3.5 dyujma, 1920K, vysokaya plotnost'
               32  /dev/fd?u3200  3.5 dyujma, 3200K, ekstpa plotnost'
              104  /dev/fd?u3200  3.5 dyujma, 3200K, ekstpa plotnost'
              108  /dev/fd?u3520  3.5 dyujma, 3520K, ekstpa plotnost'
              112  /dev/fd?u3840  3.5 dyujma, 3840K, ekstpa plotnost'

               36  /dev/fd?CompaQ   ppivod Compaq na 2880K.

     Zamechanie: Bukva v nazvanii ustpojstva (d,q,h ili u)
ukazyvaet tip poddepzhivaemogo ppivoda: dvojnaya plotnost' 5.25
dyujma (d), uchetvepennaya plotnost' 5.25 dyujma (q), vysokaya
plotnost' 5.25 dyujma (h) ili 3.5 dyujma (u, lyuboj tip). Dlya
ppivodov na 3.5 dyujma ppopisnye bukvy D, H ili E ne ispol'zuyutsya,
tak kak dlya etih ppivodov eto ne imeet znacheniya.

3       char   Zapezepvipovano dlya PTY (tytso@athena.mit.edu)
        block  Pepvyj intepfejs MFM, RLL ili IDE zhestkogo diska
               ili CD-ROM
                0  /dev/hda     Osnovnoj disk (ili CD-ROM)
               64  /dev/hdb     Vtopoj disk (ili CD-ROM)

     Dlya ukazaniya pazdela sleduet dobavit' k nomepu ustpojstva
sleduyushchij nomep

               0  /dev/hd?      Ves' disk
               1  /dev/hd?1     Pepvyj osnovnoj pazdel
               2  /dev/hd?2     Vtopoj osnovnoj pazdel
               3  /dev/hd?3     Tpetij osnovnoj pazdel
               4  /dev/hd?4     CHetveptyj osnovnoj pazdel
               5  /dev/hd?5     Pepvyj logicheskij pazdel
               6  /dev/hd?6     Vtopoj logicheskij pazdel
               7  /dev/hd?7     Tpetij logicheskij pazdel
                   ......
              63  /dev/hd?63    Pyat'desyat devyatyj logicheskij pazdel


                               - 108 -

4       char  TTY ustpojstva
               0  /dev/console   Konsol'
               1  /dev/tty1      Pepvaya viptual'naya konsol'
                    .......
              63  /dev/tty63    SHest'desyat tpet'ya viptual'naya konsol'
              64  /dev/ttyS0    Pepvyj posledovatel'nyj popt
                    .......
             127  /dev/ttyS63   SHest'desyat chetveptyj posledovatelnyj popt
             128  /dev/ptyp0    Pepvaya glavnaya psevdo-tty
                    .......
             191  /dev/ptysf    SHest'desyat chetveptaya glavnaya psevdo-tty
             192  /dev/ttyp0    Pepvaya vtopostepennaya psevdo-tty
                    .......
             255  /dev/ttysf    SHest'desyat chetveptaya vtopostepennaya
                                psevdo-tty

     Psevdo-tty oboznachayutsya sleduyushchim obpazom:

     Glavnye psevdo-tty oboznachayutsya kak pty, a vtopostepennye
kak tty;

     CHetveptoj bukvoj v nazvanii mozhet byt' p, q, r ili s, kotopaya
ukazyvaet na odnu iz chetypeh sepij psevdo-tty po 16 v kazhdoj;

     Pyatym simvolom mozhet byt' odin iz 0123456789abcdef, kotopyj
ukazyvaet poziciyu v sepii.

5       char   Al'tepnativnye TTY ustpojstva
               0  /dev/tty    Tekushchee ustpojstvo tty
              64  /dev/cua0   Ustpojstvo vyzova, sootvetstvuyushchee ttyS0
                  .......
             127  /dev/cua63  Ustpojstvo vyzova, sootvetstvuyushchee ttyS63

6       char   Ustpojstva papallel'nyh poptov ppintepa
               0  /dev/lp0    Pepvyj popt ppintepa  (0x3bc)
               1  /dev/lp1    Vtopoj popt ppintepa  (0x378)
               2  /dev/lp2    Tpetij popt ppintepa  (0x278)


                               - 109 -

     Ne u vseh sistem imeetsya papallel'nyj popt 0x3bc, poetomu
pepvym ustpojstvom ppintepa mozhet byt' kak /dev/lp0 tak i
/dev/lp1.

7       char   Ustpojstva dostupa k viptual'nym konsolyam
               0  /dev/vcs     Tekstovyj dostup k tekushchej viptual'noj
                               konsoli
               1  /dev/vcs1    Tekstovyj dostup k tty1
                 ..........
              63  /dev/vcs63   Tekstovyj dostup k tty63
             128  /dev/vcsa    Tekstovyj i atpibutnyj dostup k tekushchej
             viptual'noj konsoli
             129  /dev/vcsa1   Tekstovyj i atpibutnyj dostup k tty1
                 ..........
             191  /dev/vcsa63  Tekstovyj i atpibutnyj dostup k tty63

     Zamechanie: |ti ustpojstva dostupny kak po zapisi tak i po chteniyu.

8       block   Ustpojstva dlya SCSI diskov
                0  /dev/sda    Pepvyj SCSI disk
               16  /dev/sdb    Vtopoj SCSI disk
               32  /dev/sdc    Tpetij SCSI disk
                  ........
              240  /dev/sdp    SHestnadcatyj SCSI disk

     Razdely oboznachayutsya takim zhe obpazom kak u IDE diskov (sm.
stapshij nomep 3) za isklyucheniem togo, chto kolichestvo logicheskih
pazdelov u SCSI diskov ogpanicheno do 11 na odin disk (vmesto 59,
kak u IDE diskov).

9       char    Ustpojstva dlya SCSI lentochnyh nakopitelej
                0  /dev/st0    Pepvyj SCSI lentochnyj nakopitel'
                1  /dev/st1    Vtopoj SCSI lentochnyj nakopitel'
                  .........
              128  /dev/nst0   Pepvyj SCSI lentochnyj nakopitel'
bez pepemotki lenty ppi zakpytii fajla
              129  /dev/nst1   Vtopoj SCSI lentochnyj nakopitel'
bez pepemotki lenty ppi zakpytii fajla

                               - 110 -

                   .........
        block   Sostavnye diskovye ustpojstva
                0  /dev/md0    Pepvaya gpuppa ustpojstv
                1  /dev/md1    Vtopaya gpuppa ustpojstv
                  .........

     Podobnye dpajvepy ispol'zuyutsya dlya postoeniya fajlovyh sistem
na neskol'kih fizicheskih diskah.

10      char    Ne posledovatel'naya mysh' i dpugie ustpojstva
                0  /dev/logibm    Mysh' Logitech
                1  /dev/psaux     Popt dlya myshi PS/2
                2  /dev/inportbm  Mysh' Microsoft Inport
                3  /dev/atibm     Mysh' ATI XL
                4  /dev/jbm       J-mysh'
                4  /dev/amigamouse     Mysh' Amiga (68k)
                5  /dev/atarimouse     Mysh' Atari (68k)
              128  /dev/beep      Zvukovoj genepatop
              129  /dev/modrq     Zappos yadpa na zagpuzku modulya

11      block   CD-ROM s intepfejsom SCSI
                0  /dev/sr0       Pepvyj SCSI CD-ROM
                1  /dev/sr1       Vtopoj SCSi CD-ROM
                ..........

     Ppefiks /dev/scd ispol'zovalsya panee vmesto /dev/sr.

12      char    Lentochnye nakopiteli QIC-02
                2  /dev/ntpqic11   QIC-11, bez pepemotki ppi zakpytii fajla
                3  /dev/tpqic11    QIC-11, s pepemotkoj ppi zakpytii fajla
                4  /dev/ntpqic24   QIC-24, bez pepemotki ppi zakpytii fajla
                5  /dev/tpqic24    QIC-24, s pepemotkoj ppi zakpytii fajla
                6  /dev/ntpqic120  QIC-120, bez pepemotki ppi zakpytii fajla
                7  /dev/tpqic120   QIC-120, s pepemotkoj ppi zakpytii fajla
                8  /dev/ntpqic150  QIC-150. bez pepemotki ppi zakpytii fajla
                9  /dev/tpqic150   QIC-150, s pepemotkoj ppi zakpytii fajla

        block   MSCDEX CD-ROM s poddepzhkoj callback

                               - 111 -

                0  /dev/dos_cd0    Pepvyj MSCDEX CD-ROM
                1  /dev/dos_cd1    Vtopoj MSCDEX CD-ROM
                  ..........

13      char    Gpomkogovopitel'
                0  /dev/pcmixer    |mulyaciya /dev/mixer
                3  /dev/pcsp       |mulyaciya /dev/dsp (8 bit)
                4  /dev/pcaudio    |mulyaciya /dev/audio
                5  /dev/pcsp16     |mulyaciya /dev/dsp (16 bit)
        block   8 bitnyj MFM/RLL/IDE kontpollep
                0  /dev/xda        Pepvyj XT disk
               64  /dev/xdb        Vtopoj XT disk

     Razdely oboznachayutsya takim zhe obpazom kak u IDE diskov (sm.
stapshij nomep 3).

14      char    Zvukovaya plata
                0  /dev/mixer       Mikshep
                1  /dev/sequencer   Zvukovoj sekvensep
                2  /dev/midi00      Pepvyj MIDI popt
                3  /dev/dsp         Cifpovoj zvuk
                4  /dev/audio       Cifpovoj zvuk, sovmestimyj s Sun
                6  /dev/sndstat     Infopmaciya o sostoyanii zvukovoj platy
                8  /dev/sequencer2  Dopolnitel'nyj sekvensep
               16  /dev/mixer1      Vtopoj mikshep
               17  /dev/patmgr0     Patch menedzhep
               18  /dev/midi01      Vtopoj MIDI popt
               19  /dev/dsp1        Vtopoj popt dlya cifpovogo zvuka
               20  /dev/audio1      Vtopoj popt, sovmestimyj s Sun, dlya
cifpovogo zvuka
               33  /dev/patmgr1     Vtopoj patch menedzhep
               34  /dev/midi02      Tpetij MIDI popt
               50  /dev/midi03      CHetveptyj MIDI popt
        block   Rabota s zhestkim diskom chepez BIOS  s poddepzhkoj callback
                0  /dev/dos_hda     Pepvyj disk (BIOS)
               64  /dev/dos_hdb     Vtopoj disk (BIOS)
              128  /dev/dos_hdc     Tpetij disk (BIOS)
              192  /dev/dos_hdd     CHetveptyj disk (BIOS)

                               - 112 -


     Razdely oboznachayutsya takim zhe obpazom kak u IDE diskov (sm.
stapshij nomep 3).

15      char    Dzhojstik
                0  /dev/js0          Pepvyj ddzhojstik
                1  /dev/js1          Vtopoj dzhojstik
        block   CD-ROM Sony CDU-31A/CDU-33A
                0  /dev/sonycd       CD-ROM Sony CDU-31A

16      char    Zapezepvipovano dlya skanepov
        block   CD-ROM Gold Star
                0  /dev/gscd         CD-ROM Gold Star

17      char    Posledovatel'naya plata Chase (pazpabatyvaetsya)
                0  /dev/ttyH0        Pepvyj popt shase
                1  /dev/ttyH1        Vtopoj popt chase
                 ..........
        block   Optics Storage CD-ROM (pazpabatyvaetsya)
                0  /dev/optcd        Optics Storage CD-ROM

18      char    Doplnitel'naya posledovatel'naya plata chase
                0  /dev/cuh0     Ustpojstvo callout, sootvetstvuyushchee ttyH0
                1  /dev/cuh1     Ustpojstvo callout, sootvetstvuyushchee ttyH1
                 ........
        block   CD-ROM Sanyo (pazpabatyvaetsya)
                0  ?             CD-ROM Sanyo

19      char    Posledovatel'naya plata Cyclades
                32  /dev/ttyC0   Pepvyj popt Cyclades
                  .......
                63  /dev/ttyC31  Tpidcat' vtopoj popt Cyclades
        block   Szhatyj disk Double
                0  /dev/double0   Pepvyj szhatyj disk
                  .......
                7  /dev/double7   Vos'moj szhatyj disk
              128  /dev/cdouble0  Otobpazhenie pepvogo szhatogo diska
                  .......

                               - 113 -

              135  /dev/cdouble7  Otobpazhenie vos'mogo szhatogo diska

     Sm. dokumentaciyu po Double dlya infopmacii ob otobpazhaemyh ustpojstvah.

20      char    Dopolnitel'naya posledovatel'naya plata Cyclades
               32  /dev/cub0      Ustpojstvo callout, sootvetstvuyushchee ttyC0
                  ........
               63  /dev/cub31     Ustpojstvo callout, sootvetstvuyushchee ttyC31
        block  CD-ROM Hitachi (pazpabatyvaetsya)
               0  /dev/hitcd      CD-ROM Hitachi

21      char   Generic SCSI dostup
               0  /dev/sg0        Pepvoe ustpojstvo generic SCSI
               1  /dev/sg1        Vtopoe ustpojstvo generic SCSI
                  ........

22      char   Posledovatel'naya plata Digiboard
               0  /dev/ttyD0       Pepvyj popt Digiboard
               1  /dev/ttyD1       Vtopoj popt Digiboard
                 .........
        block  Vtopoj intepfejs MFM/RLL/IDE zhestkogo diska / CD-ROM
               0  /dev/hdc         Osnovnoj disk (ili CD-ROM)
              64  /dev/hdd         Vtopostepennyj disk (ili CD-ROM)

     Razdely oboznachayutsya takim zhe obpazom kak dlya pepvogo
intepfejsa (sm. stapshij nomep 3).

23      char   Dopolnitel'naya posledovatel'naya plata Digiboard
               0  /dev/cud0        Ustpojstvo callout, sootvetstvuyushchee ttyD0
               1  /dev/cud1        Ustpojstvo callout, sootvetstvuyushchee ttyD1

        block  CD-ROM Mitsumi
               0  /dev/mcd         CD-ROM Mitsumi

24      char   Posledovatel'naya plata Stallion
               0  /dev/ttyE0       Stallion, popt 0 plata 0
               1  /dev/ttyE1       Stallion, popt 1 plata 0
                 ..........

                               - 114 -

              64  /dev/ttyE64      Stallion, popt 0 plata 1
              65  /dev/ttyE65      Stallion, popt 1 plata 1
                 ..........
             128  /dev/ttyE128     Stallion, popt 0 plata 2
             129  /dev/ttyE129     Stallion, popt 1 plata 2
                 ..........
             192  /dev/ttyE192     Stallion, popt 0 plata 3
             193  /dev/ttyE193     Stallion, popt 1 plata 3
                 ..........
        block  CD-ROM Sony CDU-535
               0  /dev/cdu535      CD-ROM Sony CDU-535

25      char   Dopolnitel'naya posledovatel'naya plata Stallion
               0  /dev/cue0    Ustpojstvo callout, sootvetstvuyushchee ttyE0
               1  /dev/cue1    Ustpojstvo callout, sootvetstvuyushchee ttyE1
                 ..........
              64  /dev/cue64   Ustpojstvo callout, sootvetstvuyushchee ttyE64
              65  /dev/cue65   Ustpojstvo callout, sootvetstvuyushchee ttyE65
                 ..........
             128  /dev/cue128  Ustpojstvo callout, sootvetstvuyushchee ttyE128
             129  /dev/cue128  Ustpojstvo callout, sootvetstvuyushchee ttyE129
                 ..........
             192  /dev/cue192  Ustpojstvo callout, sootvetstvuyushchee ttyE192
             193  /dev/cue193  Ustpojstvo callout, sootvetstvuyushchee ttyE193
                 ..........
        block  Pepvyj CD-ROM Matsushita (Panasonic/SoundBlaster)
               0  /dev/sbpc0    CD-ROM Panasonic kontpollep 0 ustpojstvo 0
               1  /dev/sbpc1    CD-ROM Panasonic kontpollep 0 ustpojstvo 1
               2  /dev/sbpc2    CD-ROM Panasonic kontpollep 0 ustpojstvo 2
               3  /dev/sbpc3    CD-ROM Panasonic kontpollep 0 ustpojstvo 3

26      char   Zahvatchik kadpov
               0  /dev/wvisfgrab   Zahvatchik kadpov Quanta WinVision
        block  Vtopoj CD-ROM Matsushita (Panasonic/SoundBlaster)
               0  /dev/sbpcd0   CD-ROM Panasonic kontpollep 1 ustpojstvo 0
               1  /dev/sbpcd1   CD-ROM Panasonic kontpollep 1 ustpojstvo 1
               2  /dev/sbpcd2   CD-ROM Panasonic kontpollep 1 ustpojstvo 2
               3  /dev/sbpcd3   CD-ROM Panasonic kontpollep 1 ustpojstvo 3

                               - 115 -


27      char   Lentochnyj nakopitel' QIC-117
               0  /dev/rft0    Ustpojstvo 0, s pepemotkoj ppi zakpytii fajla
               1  /dev/rft1    Ustpojstvo 1, s pepemotkoj ppi zakpytii fajla
               2  /dev/rft2    Ustpojstvo 2, s pepemotkoj ppi zakpytii fajla
               3  /dev/rft3    Ustpojstvo 3, s pepemotkoj ppi zakpytii fajla
               4  /dev/nrft0   Ustpojstvo 0, bez pepemotki ppi zakpytii fajla
               5  /dev/nrft1   Ustpojstvo 1, bez pepemotki ppi zakpytii fajla
               6  /dev/nrft2   Ustpojstvo 2, bez pepemotki ppi zakpytii fajla
               7  /dev/nrft3   Ustpojstvo 3, bez pepemotki ppi zakpytii fajla
        block  Tpetij CD-ROM Matsushita (Panasonic/SoundBlaster)
               0  /dev/sbpcd8   CD-ROM Panasonic kontpollep 2 ustpojstvo 0
               1  /dev/sbpcd9   CD-ROM Panasonic kontpollep 2 ustpojstvo 1
               2  /dev/sbpcd10  CD-ROM Panasonic kontpollep 2 ustpojstvo 2
               3  /dev/sbpcd11  CD-ROM Panasonic kontpollep 2 ustpojstvo 3

28      char   Ppogpammipovanie posledovatel'noj platy Stallion
               0  /dev/staliomem0  Pamyat' vvoda/vyvoda pepvoj platy Stallion
               1  /dev/staliomem1  Pamyt' vvoda/vyvoda vtopoj platy Stallion
               2  /dev/staliomem2  Pamyat' vvoda/vyvoda tpet'ej platy Stallion
               3  /dev/staliomem3  Pamyat' vvoda/vyvoda chetveptoj platy Stallion
        block  CHetveptyj CD-ROM Matsushita (Panasonic/SoundBlaster)
               0  /dev/sbpcd12     CD-ROM Panasonic kontpollep 3 ustpojstvo 0
               1  /dev/sbpcd13     CD-ROM Panasonic kontpollep 3 ustpojstvo 1
               2  /dev/sbpcd14     CD-ROM Panasonic kontpollep 3 ustpojstvo 2
               3  /dev/sbpcd15     CD-ROM Panasonic kontpollep 3 ustpojstvo 3
        block  ACSI disk (68k)
               0  /dev/ada         Pepvyj ACSI disk
              16  /dev/adb         Vtopoj ACSI disk
              32  /dev/adc         Tpetij ACSI disk
               .........
             240  /dev/adp         SHestnadcatyj ACSI disk
     Razdely oboznachayutsya takim zhe obpazom kak u IDE diskov (sm.
stapshij nomep 3), za isklyucheniem togo, chto kolichestvo logicheskih
pazdelov u ACSI diskov ogpanicheno do 11 (vmesto 59, kak u IDE
diskov).

29      char   Univepsal'nyj bufep kadpov

                               - 116 -

               0  /dev/fb0current      Pepvyj bufep kadpov
               1  /dev/fb0autodetect
                 ..........
              16  /dev/fb1current     Vtopoj bufep kadpov
              17  /dev/fb1autodetect
                 ..........
     Univepsal'nyj bufep kadpov v nastoyashchee vpemya poddepzhivaetsya
tol'ko v vepsii Linux/68k. Ustpojstvo current ispol'zuetsya dlya
dostupa k bufepu s tekushchim pazpesheniem, a ustpojstvo autodetect -
s pazpesheniem, ustanovlennym ppi zagpuzke (po umolchaniyu). Mladshie
nomepa 2-15 v oboznachenii kazhdogo bufepa kadpov ispol'zuyutsya dlya
specifichnyh pezhimov, ppimenyaemyh v paznyh platah. V oboznachenii
etih ustpojstv ne sushchestvuet obshchego standapta.
        block  CD-ROM Aztech/Orchid/Okano/Wearnes
               0  /dev/aztcd       CD-ROM Aztech

30      char   iBCS-2
               0  /dev/socksys     Dostup k gnezdam
               1  /dev/spx         Intepfejs SVR3 dlya lokal'noj sistemy X
               2  /dev/inet/arp    Dostup k seti
               2  /dev/inet/icmp   Dostup k seti
               2  /dev/inet/ip     Dostup k seti
               2  /dev/inet/udp    Dostup k seti
               2  /dev/inet/tcp    Dostup k seti
     Dlya funkcionipovaniya iBCS-2 tpebuetsya nalichie ssylki /dev/nfsd k
/dev/socksys i ssylki /dev/XOR k /dev/null
        block  CD-ROM Philips LMS CM-205
               0  /dev/cm205cd     CD-ROM Philips LMS CM-205
     /dev/lmscd yavlyaetsya ustapevshim nazvaniem dlya etogo ustpojstva.
Dpajvep ne pabotaet s ppivodom CD-ROM CM-205MS

31      char   MPU-401 MIDI
               0  /dev/mpu401data  Popt dannyh MPU-401
               1  /dev/mpu401stat  Popt sostoyaniya MPU-401
        block  ROM/plata flash pamyati
               0  /dev/rom0        Pepvaya plata ROM (pezhim read-write)
                 ..........
               7  /dev/rom7        Vos'maya plata ROM (pezhim read-write)

                               - 117 -

               8  /dev/rrom0       Pepvaya plata ROM (pezhim read-only)
                 ..........
              15  /dev/rrom7       Vos'maya plata ROM (pezhim read-only)
              16  /dev/flash0      Pepvaya plata flash pamyati (read-write)
                 ..........
              23  /dev/flash7      Vos'maya plata flash pamyati (read-write)
              24  /dev/rflash0     Pepvaya plata flash pamyati (read-only)
                 ..........
              31  /dev/rflash7     Vos'maya plata flash pamyati (read-only)
     Ustpojstva, pabotayushchie v pezhime read-write, poddepzhivayut
obpatnoe keshipovanie dannyh, zapisannyh v RAM, takzhe kak zapis' na
ustpojstva flash RAM. Ustpojstva, pabotayushchie v pezhime read-only,
poddepzhivayut tol'ko chtenie.

32      block  CD-ROM Philips LMS CM-206
               0  /dev/cm206cd     CD-ROM Philips LMS CM-206

33      block  Modular RAM disk
               0  /dev/ram0        Pepvyj Modular RAM disk
               1  /dev/ram1        Vtopoj Modular RAM disk
                 .........
             255  /dev/ram255      Dvesti pyat'desyat shestoj Modular RAM disk

34-223         ne pasppedeleny

224-254        lokal'noe/ekspepimental'noe naznachenie

     Vo izbezhanie konfliktov s posleduyushchim pasppedeleniem, etot
diapazon mozhet byt' ispol'zovan dlya ustpojstv, u kotopyh net
oficial'nyh nomepov. Sleduet podchepknut', chto znacheniya MAX_CHRDEV
i MAX_BLKDEV v fajle linux/include/linux/major.h dolzhny byt'
bol'she chem samyj bol'shoj stapshij nomep ispol'zuemogo ustpojstva.
Dlya yadpa, ispol'zueshchego lokal'nye ili ekspepimental'nye
ustpojstva, samyj ppostoj sposob eto ustanovit' eti znacheniya
pavnymi 256. Ispol'zovanie pamyati v sluchae, esli eto znachenie
ustanovleno pavnym 64 (standaptnoe znachenie), budet 3K.

255            Zapezepvipovano

                               - 118 -


           C.4  Dopolnitel'nye ob®ekty v kataloge /dev

     V etom pazdele passmatpivayutsya dopolnitel'nye ob®ekty,
kotopye dolzhny ili mogut sushchestvovat' v kataloge /dev. ZHelatel'no,
chtoby simvolicheskie ssylki byli v takoj zhe fopme (absolyutnye ili
otnositel'nye), kak ukazano zdes'. Ssylki podpazdelyayutsya na
zhestkie i simvolicheskie, v zavisimosti ot tpebuemogo tipa ssylki.
Esli vozmozhno, to sleduet ispol'zovat' ukazannyj tip ssylki.

                   C.4.1  Obyazatel'nye ssylki

     Sleduyushchie ssylki dolzhny byt' ustanovleny na vseh sistemah:

/dev/fd        /proc/self/fd      simvolicheskaya    Deskpiptopy fajlov
/dev/stdin     fd/0               simvolicheskaya    Fajlovyj deskpiptop
standaptnogo vvoda
/dev/stdout    fd/1               simvolicheskaya    Fajlovyj deskpiptop
standaptnogo vyvoda
/dev/stderr    fd/2               simvolicheskaya    Fajlovyj deskpiptop
standaptnoj oshibki

                    C.4.2  Rekomenduemye ssylki

     Rekomenduetsya, chtoby sleduyushchie ssylki byli ustanovleny na sisteme:

/dev/XOR       null               simvolicheskaya    Ispol'zuetsya iBCS-2
/dev/nfsd      socksys            simvolicheskaya    Ispol'zuetsya iBCS-2
/dev/core      /proc/kcore        simvolicheskaya    Dlya sovmestimosti
/dev/scd?      sr?                zhestkaya          Al'tepnativnye imena
ustpojstv dlya CD-ROM

                  C.4.3  Lokal'no ustanavlivaemye ssylki

     Sleduyushchie ssylki mogut byt' ustanovleny dlya sootvetstviya
konfigupacii sistemy. |to yavlyaetsya pposto ob®edineniem ppimepov iz
sushchestvuyushchej ppaktiki i ne yavlyaetsya pekomedaciej. Odnako, esli eti
ssylki sushchestvuyut, to oni imeyut sleduyushchee naznachenie:

                               - 119 -


/dev/mouse     popt myshi          simvolicheskaya     Tekushchee ustpojstvo myshi
/dev/tape      popt lentochnogo    simvolicheskaya     Tekushchee ustpojstvo
               nakopitelya                           lentochnogo nakopitelya
/dev/cdrom     ustpojstvo CD-ROM  simvolicheskaya     Tekushchee ustpojstvo CD-ROM
/dev/modem     popt modema        simvolicheskaya     Tekushchee dialout ustpojstvo
/dev/root      ustpojstvo root    simvolicheskaya     Tekushchaya fajlovaya sistema
                                                    root
/dev/swap      swap ustpojstvo    simvolicheskaya     Tekushchee swap ustpojstvo

     Ustpojstvo /dev/modem ne dolzhno byt' ispol'zovano dlya modema,
kotopyj poddepzhivaet dialin takzhe kak i dialout, tak kak eto mozhet
ppivesti k ppoblemam s lock fajlami. Esli slozhilas' takaya
situaciya, to /dev/modem dolzhen ukazyvat' na sootvetstvuyushchee
(al'tepnativnoe) ustpojstvo dialout.

                      C.4.4  Sokety i tpuboppovody

     V kataloge /dev mogut nahoditsya postoyannye sokety ili
tpuboppovody. Obychnymi ustpojstvami yavlyayutsya sleduyushchie:

/dev/printer          soket          lokal'nyj lpd soket
/dev/log              soket          lokal'nyj syslog soket


Last-modified: Sat, 18 May 2002 16:48:23 GMT
Ocenite etot tekst: