SKYRIUS 4 UNIX Failų Sistema
4.1 – Trys (pagrindiniai) Unix failų tipai 4-2
4.2 – Tekstiniai ir dvejetainiai failai, bitai ir baitai 4-4
4.3 – Medžio pavidalo failų sistema 4-5
4.4 – BSD standartiniai katalogai ir jų turinys 4-7
4.5 – System V Unix’o
Standartinių katalogų paskirtis 4-10
4.6 – Katalogo
/dev specialių failų naudojimas: tty 4-14
4.7 Namų katalogai 4-15
4.1 Trys (pagrindiniai) Unix failų tipai
Kas yra failas?
Failo supratimas Unix’e yra žymiai platesnis: failas yra bet kuris šaltinis iš kurio duomenys gali būti skaitomi, arba bet kuris „gavėjas“, galintis priimti duomenis. Tokiu būdu, terminas failas nurodo ne tik duomenų saugyklą diskinio failo pavidale, bet kartu reiškia ir bet kurį fizinį įtaisą. Failas yra ir klaviatūra (įvedimo šaltinis), ir displėjus (atvaizdavimo įtaisas), ir kiekvienas spausdintuvas.
Unix’e yra trys pagrindiniai failų tipai: paprastieji failai, katalogai ir specialūs failai.
PAPRASTIEJI failai yra tai, ką mes suprantame failu siaurąja prasme. Paprastąjį failą sudaro diske (rečiau juostoje) saugomi duomenys. Tai failai, su kuriais dažniausiai tenka dirbti. Pvz., kai jūs teksto redaktoriumi tvarkote dokumentą, tai jūs naudojate du paprastuosius failus: dokumento ir redaktoriaus programos.
Kitas failo tipas – KATALOGAS. Katalogas tai failas, kuriame saugoma kitų failų pasiekimui reikalinga informacija. Tik konceptualiai į katalogą įeina kiti failai. Vartotojas nekuria katalogų ir netalpina juose failų. Jis tik naudoja komandas, kurios paveda tuos darbus Unix’ui. Jeigu jūs pažiūrėsite į katalogo ‘vidų’, tai pamatysite ‘miglotą’ informaciją. Geriausias būdas suprasti katalogo sąvoką – įsivaizduoti, kad tai yra rodyklių į kitus failus visuma. Katalogas gali turėti rodykles į kitus katalogus. Tai leidžia organizuoti failus į hierarchinę sistemą. Kaip matysime vėliau, Unix failų sistema yra organizuota kaip didžiulė failų ir katalogų hierarchija.
Paskutinis failų tipas – tai SPECIALŪS, arba PRIETAISŲ failai, kurie yra vidinė fizinių prietaisų reprezentacija. Pvz., klaviatūra, displėjus, spausdintuvas, disko tvarkyklė – visi jūsų sistemos prietaisai gali būti pasiekiami kaip failai. Pasiusti duomenis į ekraną, ar į kitą terminalą, galima paprasčiausiai juos rašant į failą, kuris reprezentuoja atitinkamą prietaisą.
Pvz.,
Unix’e yra tokie failų tipai:
Tipas Žymėjimas
Regulai (-)
Directory (d)
Hard Links (-)
Soft Links (l)
Block special (b)
Character special (c)
Socket (s)
Named pipe (p)
Kiekvienas sistemos failas turi taip vadinamą inode bloką, kuriame yra informacija apie
failą. Inode blokas turi tokią struktūrą: —struct stat {
dev_t st_dev; ino_t st_ino; u_short st_mode; short st_nlink; short st_uid; short st_gid; dev_t st_rdev; device */
off_t st_size;
time_t st_atime;
int st_sparel;
time_t st_mtime;
int st_spare2;
time_t st_ctime;
int st_spare3;
long st_blksize;
long st_blocks;
long st_spare4;
u_long st_gennum;
};
/* device inode resides on */
/* this inode‘s number */
/* protection */
/* number or hard links to the file */
/* user-id of owner */
/* group-id of owner */
/* the device type, for inode that is
/* total size of file */
/* file last access time */
/* file last modify time */
/* file last status change time */
/* optimal blocksize for file system i/o ops */
/* actual number of blocks allocated */
/* file generation number */
Pagrindiniai šios struktūtos laukai st_mode (the permission bits), st_uid – UID, st_gid – GID, ir st_*time (assorted time fields).
Failo laikai
Unix įrašo į inode tris failo laikus, kurie vadinami ctime, mtime, ir atime.
ctime rodo paskutinį inode bloko keitimo laiką; mtime rodo paskutinį failo modifikavimo laiką; atime rodo paskutinį kreipimosi į failą laiką.
Inod‘o ctime kinta visuomet, kai į failą yra rašoma, arba kinta jo apsaugos ar nuosavybės bitai. Paprastai ctime geriau pažymi failo modifikavimą, negu laukas mtime.
Failo laikai yra svarbūs ir įvairiais būdais naudojami sistemos administravimo metu. Pvz., darant diskų kopijas.
4.2 Tekstiniai ir dvejetainiai failai, bitai ir baitai
Paprasti failai gali būti labai įvairūs, kadangi labai įvairūs gali būti juose saugomi duomenys. Tačiau, plačiąja prasme, paprastus failus galima skirti į dvi grupes: tekstinius failus ir dvejetainius failus.
TEKSTINIAI failai yra paprasti failai, kuriuose saugomi tik ASCII simboliai: duomenys, kuriuos galima surinkti klaviatūros pagalba. Trumpai tariant, skirtingus ASCII simbolius reprezentuoja 128 skirtingi kodai: didžiosios ir mažosios raidės, skaičiai, tarpo simbolis, tabuliacijos simbolis, skyrikliai, o taip pat valdymo simboliai. Praktinė taisyklė: jei paprastame faile saugomi duomenys, kuriuos jūs galite suprasti ir tvarkyti teksto redaktoriaus pagalba, tai tas failas yra tekstinis. Priešingu atveju yra dvejetainis failas.
Tekstinio failo kiekvienas ASCII kodas saugomas viename baite. Tokiu būdu failas, turintis 1000 simbolių, yra 1000-ties baitų ilgio. Griežtai kalbant, ASCII kodas naudoja septynis bitus vienam simboliui (baite yra 8 bitai). Kiekvieno baito aštuntas bitas (kairysis) visuomet turi nulinę reikšmę. Apibendrinant galima pasakyti, kad tekstinis failas saugo ASCII simbolius ir
naudoja kiekvienam simboliui septynis baito bitus. Dvejetainis failas saugo duomenis, kurių kodams naudojami visi aštuoni kiekvieno baito bitai.
Katalogai ir Pakatalogiai
Failų organizavimui į hierarchinę sistemą naudojami katalogai. Mes grupuojame failus į grupes ir saugome kiekvieną grupę atskirame kataloge. Kadangi katalogas taip pat yra failas, tai kataloge gali būti saugomi kiti katalogai.
4.3 Medžio pavidalo failų sistema
Unix sistemą sudaro daugybė failų, kurie organizuojami į tam tikrą struktūrą, naudojant katalogus ir pakatalogius. Unix failų sistema pagrįsta vienu pagrindiniu katalogu, vadinamu šakniniu katalogu (ROOT DIRECTORY). Šakninis katalogas yra protėvis visų kitų sistemos katalogų.
Pateiktoje schemoje parodytas Unix failų sistemos turinys. Tokius katalogus naudoja Berkeley Unix pagrindu sukurtos sistemos. System V, arba kitu pagrindu sudarytos sistemos gali nežymiai skirtis nuo čia pateiktos. Tai ką jūs matote yra tik nuogas skeletas. Visos Unix sistemos turės ir kitus, sistemų administratorių sukurtus katalogus.
4.3 Medžio pavidalo failų sistema
Unix sistemą sudaro daugybė failų, kurie organizuojami į tam tikrą struktūrą, naudojant katalogus ir pakatalogius. Unix failų sistema remiasi viena pagrindiniu katalogu, vadinamu ROOT DIRECTORY (šakninis katalogas). Šakninis katalogas yra protėvis visų kitų sistemos katalogų.
Pateiktoje schemoje parodytas Unix failų sistemos turinys. Tokius katalogus naudoja Berkeley Unix pagrindu sukurtos sistemos. System V, arba kitu pagrindu sudarytos sistemos gali nežymiai skirtis nuo čia pateiktos. Tai ką jūs matote yra tik nuogas skeletas. Visos Unix sistemos turės ir kitus, sistemų menedžerių sukurtus katalogus.
Nesunku pastebėti, kad Unix failų sistema panaši į apverstą medį. Žodis root buvo parinktas tam, kad pabrėžti pagrindinę medžio liemens dalį. Kadangi šakninio katalogo vaidmuo yra labai svarbus, tai šis vardas dažnai turi būti naudojamas komandose. Todėl buvo įvestas žodžio root sutrumpinimas / (slash).
Pvz., ls
komanda parodys visus specifikuoto katalogo failų vardus. Visus šakninio katalogo failus parodo komanda
ls /
Šaknyje esantis failas, arba katalogas nurodomi rašant / prieš atitinkamą vardą. Pav., formalus etc katalogo vardas yra /etc. Katalogas, arba failas, esantis kitame kataloge, nurodomi atskiriant vardus simboliu /. Pav., kataloge /etc yra passwd failas. Formalus šio failo vardas yra /etc/passwd. Panašiai, jeigu /usr kataloge yra kitas katalogas dict, o jame yra failas words, tai formalus šio failo vardas yra /usr/dict/words.
Simbolis / turi dvi skirtingas reikšmes. Failo vardo pradžioje jis reiškia šakninį katalogą. Failo vardo viduryje jis atlieka skyriklio vaidmenį.
Gerai supratus pateiktą Unix katalogų medį, galima pastebėti, kad, visi katalogai, išskyrus šakninį (/), priklauso kitam katalogui. Tokiu būdu, visi katalogai, išskyrus šakninį, yra pakatalogiai. Paprastumo dėlei mes juos vadiname katalogais.
Root kataloge yra trys, etc, tmp, ir usr vardais pavadinti pakatalogiai. Tokie vardai buvo parinkti todėl, kad jie yra trumpi ir lengvai surenkami klaviatūroje. Tačiau jie sunkiai ištariami. Todėl susitarta etc vadinti etcetera, tmp – temp, o usr – user. Pav., failo / et c/pas swd vardas tariamas slash etcetera slash password.
Root katalogas
Tai visos sistemos pagrindas. Paprastai jame talpinami tik kiti katalogai. Tačiau šaknyje būna vienas svarbus failas: programa, kuri vadinama Unix branduoliu (kernel). Berkeley Unix sistemose ši programa vadinama vmunix (virtual memory Unix). Unix sistemos menedžeris prisijungia prie sistemos root vardu. Dabar yra aiški šito vardo kilmė: root katalogas yra aukščiausiame failų sistemos lygyje.
4.4 BSD standartiniai katalogai ir jų turinys
Kelias Turinys
/
/bin arba /sbin
/dev
/etc
/lib
/tmp
/sys
/proc
/stand
/usr/bin
/usr/games
/usr/include
/usr/5bin
/usr/etc
/usr/sbin
/usr/lib
/usr/man
/var/adm
/var/spool
/var/tmp
/usr/usb
/usr/local
/usr/local/adm
/usr/local/bin
/usr/local/etc
/usr/local/lib
/usr/local/sbin
/usr/local/src
/kernel
‘root’ katalogas
minimaliam sistemos funkcionavimui reikalingos komandos
terminalus, diskus, modemus, etc. reprezentuojantys įtaisų failai
sistemos startavimo ir konfigūracijos failai
C kompiliatoriaus bibliotekos
laikini failai, kurie išnyksta perkrovus sistemą
branduolio generavimo darbinė sritis, konfigūracijos failai (BSD)
visų vykdomų procesų atvaizdai (naujesnėse sistemose)
Stand-alone utilitos, diskų formatavimo priemonės, etc.
vykdomieji failai
žaidimai ir kt. (daugelis jų nelabai įdomūs)
C programų h-failai
System V komandų analogai skirti BSD sistemoms
sistemos palaikymo komandos
papildomos sistemos palaikymo komandos
standartinių UNIX programų palaikymo failai
cOn-line manual’ puslapiai
apskaitos failai, resusų naudojimo įrašai
printerių ‘spooling’ katalogai, UUCP, mail, etc.
laikina sritis (filai neišnyksta po sistemos perkrovimo)
Berkeley utilitos ir programos
lokali programinė įranga (jūsų instaliuoti paketai)
lokalūs apskaitos ir šabloniniai failai
lokalūs vykdomieji failai
lokalūs sistemos konfiguravimo failai ir komandos
lokalūs pagalbiniai failai
lokalios sistemos palaikymo komandos
/usr/local/* išeities kodas
failai, kurie reikalingi branduolio užkrovimui (Solaris)
kataloge saugomos bazinės programos, iš kurių susideda pati Unix sistema. Čia galima rasti daugelį Unix komandų, t.y. failų, kurie vykdomi pagal atitinkamą komandą. Vardas bin gali būti traktuojamas dvejopai: daugelis failų yra dvejetainiai (binary); tai programų saugykla;
/dev kataloge yra specialūs failai, kurie reprezentuoja fizinius įtaisus. Paprastai vartotojai nenaudoja šių failų tiesiogiai. Tačiau norint taip daryti – Unix sistema yra atvira (vėliau bus pateiktas pavyzdys).
/etc katalogas skirtas sistemos administratoriui. Čia saugomi failai ir programos, reikalingi sistemos valdymui. Plačiausiai žinomas yra sistemos slaptažodžių failas passwd. Kitas žinomas failas yra temcap (kitose sistemose tenninfo), t.y. visų terminalų, kuriuos gali naudoti Unix, techninių apršymų duomenų bazė.
/lib kataloge yra programuotojų naudojamų programų biblioteka.
/lost+found katalogą naudoja speciali programa, kuri tikrina Unix failų sistemą. Kai ši programa randa failą, kuris nepriklauso jokiam katalogui (avarinis atvejis), tas failas talpinamas į llost+found katalogą. Tokiu būdu sistemos administratorius gali priimti tolimesnius sprendimus.
/sys kataloge yra taip vadinami sistemos išeities failai. Jie gali dominti sistemos administratorių ir programuotojus.
/tmp katalogas – tai laikina saugykla.Kiekvienas gali laikinai talpinti čia savo failus, tačiau laikas-nuo-laiko visi failai šalinami automatiškai. Paprastai čia talpinami laikini failai, kurie reikalingi programos vykdymui. Pav., naudojant vi redaktorių, redaguojamo failo kopija laikoma l tmp kataloge.
/usr kataloge yra visa eilė svarbių pakatalogių. Tai vienas iš svarbiausių šaknies pakatalogių. Jis pats suskirstytas į visą eilę pakatalogių.
/usr/bin katalogas, kaip ir jo bendravardis šaknyje, skirta vykdomųjų failų laikymui. /usr/dict – tai Unix žodyno naudojami failai. Faktiškai – tai žodžių sąrašas. /usr/games – tai žaidimų ir kitų atrakcijų katalogas.
/usr/include katalogas saugo taip vadinamus C programavimo kalbos ‘include’ (arba £h’) failus, kuriuos naudoja programuotojai įvairiose programose kompiliavimo metu.
/usr/lib – tai analogiška /lib’ui biblioteka, svarbi tik programuotojams.
/usr/local – tai sistemos administratoriaus patogumui skirtas katalogas, kuriame gali būti saugomos vietinės reikšmės programos ir dokumentacija.
/usr/man katalogas turi visą eilę pakatalogių ir failų, kuriuos naudoja „Unix on-line manual“, t.y. operatyvi chelp’ tipo dokumentacijos sistema.
/usr/spool – pakelės stotelės vaidmenį atliekantis katalogas. Čia laikomi duomenys, kurie buvo kur nors pasiusti. Pav., kai jūs spausdinate failą, tai tas failas, kartu su sistemine informacija laikomas šiame kataloge. Failas laikomas čia iki tol, kol galės būti atspausdintas. Lygiai taip pat čia patenka ir pasiusti elektroniniu paštu laiškai, kol jie iš tikrųjų ‘palieka’ kompiuterį.
/usr/src kataloge saugomas jūsų Unix sistemos išeities kodas. Jeigu jūsų Unix yra licenzijuotas (galima pirkti pačią Unix sistemą,arba jos licenziją), tai čia saugomas išeities kodas, leidžiantis „žvilgterėti j sistemos vidų“, daryti pakeitimus ir perkompiliuoti sistemą.
/usr/ucb – čia laikomos programos, kurios buvo sukurtos Kompiuterių mokslo departamente, University of California at Berkeley.
4.5 System V Unix’o Standartinių katalogų paskirtis
/dev
The device directory contains all files that represent peripheral devices. Subdirectories of /dev hold the special files for the access modes of a given type of device.
/dev/dsk
The disk directory holds the device files for disks.
/dev/mt
This directory contains the device files for tapė drives.
/dev/term
This directory holds the device files for terminais.
/dev/pts
This directory contains the device files for pseudo-terminals. A pseudo-terminal mimics a a terminai although rather than being connected to an actual terminai it iš connected to a process. Pseudo-terminals are used by networking programs such aš rlogin.
/dev/ŠA
This directory iš now obselete.
/etc
The etc directory holds system configuration files aš well aš some administrative files.
/etc/bkup
This directory iš used to store dump dates.
/etc/default
The default directory holds files containing the default values for various commands.
/etc/init.d
This directory holds shell scripts that are used to transition between run levels in the
system. These scripts are run when the system iš booted and brought into multi-user
mode.
/etc/rc.d
This directory contains all the files and commands associated with all the run levels for the system. rcO.d, rcl.d, rc2.d, and rcS.d all link back to this file for information.
/etc/rcO.d
Files in this directory are associated with run level O, which iš actually a powered down
statė.
/etc/rcl.d
This directory holds files that are executed to bring the system to run level l, or single-
user mode. This run level iš also referred to aš „s“ or „S“.
/etc/rc2.d
This directory contains files used to transition the system to run level 2. Level 2 iš also
known aš muliuser mode and iš the normai mode for the system.
/etc/rc3.d
This directory contains files used to movė the system to run level 3.
/etc/skel
This directory contains Standard initialization files for the system.
/sbin
The sbin directory contains system administration files that are needed during the
process.
/home
Users home directories are typically subdirectories of the /home directory.
/mnt
Mount directory. An empty directory conventionally designed for temporarily mounting disk partitions.
/tmp
Temporary directory, available to all users aš a scratch directory. The system administrator should see that all the files in this directory are deleted occasionally. Normally, one of the UNIX startup scripts will clear /tmp.
/usr
This directory typically contains files that are used by the system, aš well aš subdirectories containing files that need to be shared likę man pages and user commands.
/usr/bin
Typically holds Standard Unix utility programs. Under BSD this directory iš called /bin.
/usr/sbin
Likę /sbin this directory contains Utilities for system administration. The Utilities found
in /usr/sbin are usually needed after the system iš up rather than at boot time.
/usr/games
This directory contains the Standard UNIX games collection. Some sites choose to remove this directory.
/usr/include
Include files. This directory contains C-language header files which define the C programmer’s interface to Standard system features and program libraries. For example, it contains the file stdio.h, which defines the user’s interface to the C Standard I/O library. The directory /usr/include/sys contains operating system include files.
/usr/lib
Library directory, for public library files. Among other things, this directory contains the Standard C libraries for mathematics and I/O. This directory may also contain certain configuration files for UNIX services such aš mail. Finally, subdirectories of /usr/lib contain command and configuration files for various Standard UNIX facilities likę uucp and lex and optional softvvare products.