Lars Virzhenius. OS Linux. Rukovodstvo sistemnogo administratora Origin: http://www.linux.org.ru/books/ ˇ 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 obych