Ocenite etot tekst:


Vse  sistemnye  dejstviya vypolnyaet  yadro  operacionnoj  sistemy
Unix. YAdro - obychnyj vypolnyaemyj fajl, raspolozhen v fajle /unix
ili /stand/unix ili /vmunix ili /vmlinuz (v zavisimosti ot kon-
kretnoj realizacii). Mozhete posmotret' razmer etogo  fajla - ne
malen'kij. Pri nachal'noj zagruzke sistemy yadro celikom zagruzha-
etsya v operativnnuyu pamyat' i v dal'nejshem rezidentno nahoditsya
v nej, vypolnyaya vse neobhodimye raboty.

        CHto vhodit v yadro.

DRAJVERY USTROJSTV. I teh, kotorye est', i teh, kotoryh net, no
mogut  byt',  a  takzhe  i  takie,  kotorye  nikogda  vam   ne
ponadobyatsya.

UPRAVLYAYUSHCHIE   PODPROGRAMMY:   chasti   koda,   otvetstvennye  za
obespechenie  raboty  pol'zovatel'skih  programm  -   razdelenie
vremeni i prochih resursov sistemy.

SLUZHEBNYE TABLICY I DANNYE YADRA: tablicy tekushchih processov, ot-
krytyh fajlov, upravlyayushchie struktury...

SISTEMNYE VYZOVY. (To, chto MS-DOS nazyvaetsya "21 preryvanie",
mozhno  schitat'  nekotoroj   analogiej/parodiej   na   sistemnye
vyzovy.)   S  tochki  zreniya  programmista  eto  obychnaya si-shnaya
funkciya,  tol'ko  vypolnyaet  ona  sistemno-zavisimye  dejstviya,
naprimer:   prochitat'   dannye  iz  fajla,  ustanovit'  setevoe
soedinenie, sozdat' katalog, i t.d. i t.p. Vse sistemnye vyzovy
( a vsego ih bolee 1500 shtuk ) vkompilirovany v telo yadra Unix.
Pol'zovatel'skie  programmy,  vyzyvayushchie  funkcii,   yavlyayushchiesya
sistemnymi  vyzovami,  na  samom dele soderzhat tol'ko jump'y na
sootvetstvuyushchie  adresa  pamyati  v  yadre.  V   pol'zovatel'skuyu
programmu sistemnye vyzovy ne vlinkovyvayutsya.

        CHto nahoditsya v operativnoj pamyati.

YADRO OPERACIONNOJ SISTEMY.

BUFERNYJ K|SH.  CHast' operativnoj pamyati rezerviruetsya pod keshi-
rovanie chteniya i zapisi na disk. Lyubaya operaciya  chteniya s diska
privodit k tomu,  chto  prochitannye  bloki pomeshchayutsya v bufernyj
kesh,  a  iz nego uzhe peredayutsya zaprosivshim dannye  programmam.
Esli blok popal v kesh, to vse posleduyushchie obrashcheniya k  nemu bu-
dut poluchat' obraz bloka iz kesha, prichem nezavisimo ot togo -
ta zhe samaya programma obrashchaetsya k bloku ili  kakaya-libo dru-
gaya. Keshiruetsya takzhe i zapis' na disk,  opyat' zhe, razdelyaemaya
mezhdu vsemi vypolnyaemymi programmami.

PROCESSY. Processom v Unix nazyvaetsya vypolnyayushchayasya programma.

        Sredstva ekonomii pamyati. Virtual'naya pamyat'.

REENTERABELXNOSTX KODA.  Kogda  odna i ta zhe programma(vypolnya-
emyj fajl) zapushchena v neskol'kih ekzemplyarah,  to v operativnuyu
pamyat' zagruzhaetsya tol'ko odna kopiya vypolnyaemogo assemblernogo
koda na vseh. Kazhdyj  vypolnyamyj  process ispol'zuet odin i tot
zhe tekst programmy, prosto u kazhdogo processa imeetsya svoj sob-
stvennyj ukazatel' na tekushchij operator.

RAZDELYAEMYE BIBLIOTEKI. (V  Windows  est' pohozhee ponyatie DLL -
dinamicheski podgruzhaemaya biblioteka). Nekotoroe kolichestvo chas-
to vypolnyaemyh funkcij (naprimer, printf,  da  i  mnogo  drugih)
oformlyaetsya v vide special'nym obrazom podgotovlennoj bibliote-
ki  (SHARED  LIBRARY).  Pri kompilyacii programmy,  ispol'zuyushchej
razdelyaemye  biblioteki,  eti  funkcii ne linkuyutsya vnutr' koda
programmy.  Oni  "vydergivayutsya"  iz   biblioteki   na   stadii
vypolneniya  programmy.  |tim  my  ekonomim  mesto  na diske i v
operativnoj pamyati: v programmah  otsutstvuet  kod  razdelyaemyh
funkcij,  a  v  operativnoj  pamyati  eta funkciya prisutstvuet v
odnom ekzemplyare na vseh.

SWAPING. Kazhdyj  Unix-process funkcioniruet v svoem sobstvennom
32-h bitnom virtual'nom adresnom prostranstve, ne peresekayushchem-
sya s drugimi.  Adresnoe  prostranstvo processa mozhet byt' bol'-
shim, chem fizicheskaya operativnaya pamyat'. Virtual'naya pamyat' pod-
derzhivaetsya s pomoshch'yu PAGING'a - razresheniya virtual'nyh adresov
v fizicheskie  "na  letu",  s  podkachkoj  otsutstvuyushchih  stranic
pamyati so swap-oblasti na zhestkom diske.

Na samom dele SWAPING'a kak takovogo v Unix'e  net, vmesto nego
primenyaetsya gorazdo bolee gibkij PAGING. (swaping  - po oprede-
leniyu,  eto  POLNAYA vygruzka programmy na swap-oblast' s  cel'yu
osvobozhdeniya mesta v operativnoj pamyati).

Oblast' pamyati, zanyataya programmoj, razdelena na tri chasti: TEXT
(vypolnyaemye kody programmy), DATA (staticheskie dannye program-
my), STACK (dinamicheskie dannye). Kogda operacionka osvobozhdaet
mesto v  pamyati za schet TEXT'a,  to ona ne   zanimaetsya sbrosom
ego na  disk. Ona srazu  pomechaet ego kak   svobodnyj. Dejstvi-
tel'no, kogda potrebuetsya zagruzit' TEXT obratno  v pamyat', ego
mozhno  budet vzyat' iz samogo  vypolnyaemogo  fajla s programmoj.
Takaya ekonomiya imeet odin pobochnyj effekt.  Fajl programmy, ko-
toraya v  dannyj moment vypolnyaetsya, nevozmozhno unichtozhit'. Ope-
racionnaya sistema soobshchit v etom  sluchae:  "text  file busy", i
otkazhetsya vypolnyat' udalenie.

BIT  NAVYAZCHIVOSTI.  (sticky  bit). Vypolnyaemaya programma  mozhet
imet' dopolnitel'nyj atribut. Tak  nazyvaemyj  "bit navyazchivos-
ti". Kogda takaya programma zakanchivaet vypolnenie,  operacionka
(po vozmozhnosti) staraetsya ne zanimat' pamyat',  v kotoroj naho-
dilsya tekst programmy. Sootvetstvenno, povtornyj ee zapusk pro-
izojdet ochen' bystro  - ved' programma vse eshche  zagruzhena v pa-
myat', ee ne trebuetsya zachityvat' s diska. Nuzhno prosto peredat'
na nee upravlenie.



Fajlovaya sistema v Unix -  "derevyannaya",  sostoit   iz fajlov i
katalogov. Na  kazhdom razdele diska sozdaetsya sobstvennaya neza-
visimaya fajlovaya sistema. Otdel'nye fajlovye sistemy "sceplyayut-
sya"  vmeste,  v edinoe obshchee derevo direktorij. Takaya  operaciya
nazyvaetsya "montirovaniem". Vyglyadit eto primerno tak:

   mount -F ufs   /dev/dsk/m197_c0d0s5 /home1
   mount -F ufs   /dev/dsk/m197_c0d0s4 /usr
   df

Poluchit' dostup  k  fajlam  "nesmontirovannoj" fajlovoj sistemy
nevozmozhno. Porochnaya prakika MS-DOSa - skol'ko razdelov, stol'-
ko i "diskov" ( a: b: c: d: e: ... k: l:  m: n:) v Unix ne pri-
menyaetsya. V Unix vsegda est' rovno odno obshchee derevo katalogov,
i,  po  bol'shomu  schetu, pol'zovatelyam sovershenno vse ravno, na
kakom imenno diske ili  razdele  diska  raspolozheny  ego  fajly
/usr/spool/moshkow ili /home1/moshkow/bin/mcopy ...

Fajlovaya sistema Unix keshiruetsya bufernym keshem. Operaciya zapi-
si na disk vypolnyaetsya ne togda, kogda eto prikazyvaet vypolnya-
emyj  process,  a kogda operacionnaya  sistema sochtet nuzhnym eto
sdelat'.  |to rezko podnimaet effektivnost' i skorost' raboty s
diskom,  i  povyshaet  opasnost'  ee  ispol'zovaniya.  Vyklyuchenie
pitaniya  na  "goryachej",  rabotayushchej  Unix-mashine   privodit   k
razrusheniyam  struktury fajlovoj sistemy.

Pri kazhdoj nachal'noj zagruzke Unix proveryaet - korrektno li by-
la vyklyuchena  mashina v proshlyj  raz, i esli net - avtomaticheski
zapuskaet utilitu fsck  (File System Check) - proverku i remont
fajlovyh sistem..



Razdel diska, v kotorom sozdana fajlovaya sistema, razbit na tri
chasti.

SUPERBLOK. Zanimaet 1 Kb.
           Soderzhit sluzhebnuyu informaciyu:
           Tip fajlovoj sistemy,
           Razmer
           Nachalo spiska svobodnyh blokov.
           . . . chto-to eshche

OBLASTX INOD-ov.  Zanimaet  primerno 8% obshchego razmera razdela.
inode - Index-node  - opisatel' fajla. On soderzhit vsyu informa-
ciyu o fajle, za isklyucheniem  imeni  fajla,  i sobstvenno dannyh
fajla. V inod'e hranitsya:

   tip fajla (fajl, katalog, imenovannyj kanal, special'nyj fajl)
   kto vladelec
   prava(atributy) fajla
   vremya modifikaci/sozdaniya fajla
   adresa blokov, iz kotoryh sostoit fajl
   chto-to eshche ...

OBLASTX DANNYH. V etoj oblasti raspolozhenvIRTUALXNAYAYAy bloki s dannymi faj-
                lov. Nezanyatye bloki provyazany v SPISOK SVOBOD-
                NYH BLOKOV

Fajly byvayut dvuh osnovnyh tipov. FAJL, KATALOG.

FAJL - on i est' fajl.

KATALOG - fajl fiksirovannogo formata:  sostoit  iz  strochek  s
imenami fajlov, vhodyashchih v katalog

        imya_fajla1         Nomer_Inoda1
        imya_fajla2         Nomer_Inoda2
           . . .

CHtoby poluchit' dostup k fajlu po imeni, operacionnaya sistema
 1. nahodit eto imya v kataloge, soderzhashchem fajl,
 2. beret Nomer_Inoda fajla,
 3. po nomeru nahodit inod v oblasti inod'ov,
 4. iz inod'a beret adresa blokov, v kotoryh raspolozheny dann-
    ye fajla,
 5. po adresam blokov schityvaet bloki iz oblasti dannyh.
Vse.

        Format indeksnogo opisatelya fajla.

Oblast' inodov razbita na 64-h bajtnye struktury - inod'y.
V inod'e hranitsya:

  Tip fajla (fajl/katalog/special'nyj fajl/fifo/socket)
  Atributy (prava dostupa)
  Vladelec fajla
  Gruppa-vladelec fajla
  Vremena sozdaniya, modifikacii, poslednego dostupa k fajlu
  Dlina fajla
  Adres 1-go bloka fajla
  Adres 2-go bloka fajla
  ...
  Adres 10-go bloka fajla
  Adres bloka kosvennoj adresacii (bloka s 256 adresami blokov)
  Adres bloka 2-j kosvennoj adresacii
     (bloka s 256 adresami blokov s adresami)
  Adres bloka 3-j kosvennoj adresacii
     (bloka s adresami blokov s adresami blokov s adresami)

Tochnyj format struktury fajlovoj sistemy sm.
man fs

Last-modified: Sun, 07 Aug 2005 11:19:51 GMT
Ocenite etot tekst: