Sanibonani nonke! Siyaqhubeka nokwethula ukusakazwa okusha kwezifundo osuvele uzithanda futhi manje sijahile ukumemezela ukuthi siqala isethi entsha yezifundo
Amasistimu wamafayela abonakalayo asebenza njengohlobo lokungatholakali komlingo oluvumela ifilosofi ye-Linux ukuthi "yonke into iyifayela."
Iyini isistimu yefayela? Ngokusekelwe emazwini omunye wabanikeli bokuqala nababhali be-Linux
I-Filesystem Basics
I-Linux kernel inezidingo ezithile zebhizinisi elingathathwa njengesistimu yefayela. Kufanele isebenzise izindlela open()
, read()
ΠΈ write()
ezintweni eziphikelelayo ezinamagama. Ngokombono ogxile entweni
Uma singakwazi ukuvula, ukufunda, nokubhalela ibhizinisi, khona-ke lelo bhizinisi libhekwa njengefayela, njengoba singabona esibonelweni esiku-console engenhla.
Isenzo se-VFS sigcizelela kuphela umbono ofana ne-Unix wokuthi "yonke into iyifayela". Cabanga ukuthi kuyinqaba kangakanani ukuthi leso sibonelo esincane /dev/console esingenhla sibonisa ukuthi ikhonsoli isebenza kanjani ngempela. Isithombe sibonisa iseshini ye-Bash esebenzisanayo. Ukuthumela iyunithi yezinhlamvu kukhonsoli (idivayisi yekhonsoli ebonakalayo) kuyibonisa esikrinini esibonakalayo. I-VFS inezinye, izakhiwo ezingaziwa. Isibonelo, ikuvumela ukuthi useshe nge
Amasistimu ajwayelekile afana ne-ext4, NFS, kanye/proc anemisebenzi emithathu ebalulekile kusakhiwo sedatha esingu-C esibizwa read()
isistimu yefayela eyodwa bese usebenzisa indlela write ()
olunye uhlelo lwefayela lokukhipha idatha.
Izincazelo zomsebenzi eziyingxenye yezinhlobo ze-VFS eziyisisekelo zikumafayela fs/
ziqukethe izinhlelo ezithile zefayela. Umnyombo nawo uqukethe izinhlangano ezifana cgroups
, /dev
ΠΈ tmpfs
, ezidingekayo phakathi nenqubo yokuqalisa futhi ngenxa yalokho zichazwa ku-kernel subdirectory init/
. Qaphela lokho cgroups
, /dev
ΠΈ tmpfs
ungabizi imisebenzi "emithathu emikhulu". file_operations
, kodwa funda futhi ubhale ngokuqondile ngekhanda.
Umdwebo ongezansi ubonisa ukuthi indawo yomsebenzisi ifinyelela kanjani ezinhlotsheni ezihlukene zezinhlelo zamafayela ezivame ukufakwa ezinhlelweni ze-Linux. Izakhiwo aziboniswa pipes
, dmesg
ΠΈ POSIX clocks
, ephinde isebenzise isakhiwo file_operations
, kufinyelelwe ngosendlalelo se-VFS.
I-VFS "i-wrapper layer" phakathi kwezingcingo zesistimu kanye nokusetshenziswa kokuthile file_operations
, njenge ext4
ΠΈ procfs
. Imisebenzi file_operations
ingasebenzisana nezishayeli zedivayisi noma izisetshenziswa zokufinyelela inkumbulo. tmpfs
, devtmpfs
ΠΈ cgroups
ungasebenzisi file_operations
, kodwa finyelela inkumbulo ngokuqondile.
Ukuba khona kwe-VFS kunikeza ithuba lokuphinda kusetshenziswe ikhodi, njengoba izindlela eziyisisekelo ezihlobene nezinhlelo zamafayela akudingeki ziphinde zisetshenziswe uhlobo ngalunye lwesistimu yefayela. Ukusebenzisa kabusha ikhodi kuwumkhuba ojwayelekile phakathi konjiniyela bezinhlelo zokusebenza! Nokho, uma ikhodi engasetshenziswa kabusha iqukethe
/tmp: Ukusikisela okulula
Indlela elula yokuthola ukuthi i-VFS ikhona ohlelweni ukuthayipha mount | grep -v sd | grep -v :/
, ezobonisa konke okufakiwe (mounted
) amasistimu angewona ahlala kumadiski futhi angewona ama-NFS, okuyiqiniso kumakhompyutha amaningi. Enye yezintaba ezisohlwini (mounts
) I-VFS izokwenza ngokungangabazeki /tmp
, akunjalo?
Wonke umuntu uyasazi leso sitoreji / tmp
on a medium ngokomzimba - madness!
Kungani kungathandeki ukugcina /tmp
ezinkundleni zokuxhumana? Ngoba amafayela ku /tmp
ezesikhashana futhi amadivaysi okugcina ahamba kancane kunememori lapho ama-tmpfs enziwa khona. Ngaphezu kwalokho, imidiya ebonakalayo isengozini yokugqokwa uma ibhalwe phezu kwememori. Okokugcina, amafayela ku/tmp angaqukatha ulwazi olubucayi, ngakho ukuwenza anyamalale kukho konke ukuqalisa kabusha kuyisici esibalulekile.
Ngeshwa, ezinye izikripthi zokufakwa kokusabalalisa kwe-Linux zidala i-/tmp kudivayisi yokugcina ngokuzenzakalelayo. Ungalahli ithemba uma lokhu kwenzeka nakusistimu yakho. Landela imiyalelo embalwa elula nge tmpfs
ingatholakali ngezinye izinjongo. Ngamanye amazwi, isistimu ene-tmpfs enkulu namafayela amakhulu kuyo ingaphelelwa inkumbulo futhi iphahlazeke. Okunye ukusikisela: ngenkathi uhlela ifayela /etc/fstab
, khumbula ukuthi kufanele iphele ngomugqa omusha, ngaphandle kwalokho isistimu yakho ngeke iqale.
/proc kanye /sys
futhi /tmp
, VFS (virtual file systems) ezijwayeleke kakhulu kubasebenzisi beLinux /proc
ΠΈ /sys
. (/dev
ihlala enkumbulweni eyabiwe futhi ayinayo file_operations
). Kungani lezi zingxenye ezimbili? Ake sibheke lolu daba.
procfs
idala isifinyezo se-kernel kanye nezinqubo eziqaphayo userspace
. I /proc
i-kernel iphrinta ulwazi mayelana nokuthi inani etholakalayo, njengokuphazamiseka, inkumbulo ebonakalayo, kanye nesihleli. Ngaphandle kwalokho, /proc/sys
indawo lapho amapharamitha amiswa khona ngomyalo sysctl
, etholakalayo userspace
. Isimo nezibalo zezinqubo zomuntu ngamunye ziboniswa kunkhombandlela /proc/
.
kuyinto /proc/meminfo
yifayela elingenalutho kodwa eliqukethe ulwazi olubalulekile.
Ukuziphatha /proc
amafayela abonisa ukuthi izinhlelo zefayela le-VFS disk zingahluka kanjani. Ngakolunye uhlangothi, /proc/meminfo
ziqukethe ulwazi olungabonwa ngomyalo free
. Ngakolunye uhlangothi, ayinalutho! Isebenza kanjani? Lesi simo sisikhumbuza isihloko esidumile esinesihloko esithi /proc
, futhi empeleni kumafayela /proc
akukho lutho lapho kungekho muntu obhekayo. Njengoba kushiwo
Ebonakala engenalutho procfs
kunengqondo ngoba ulwazi olukhona lunamandla. Isimo esihluke kancane nge sysfs
. Ake siqhathanise ukuthi mangaki amafayela anosayizi okungenani webhayithi eyodwa akuwo /proc
futhi ku /sys
.
Procfs
inefayela elilodwa, okungukuthi ukucushwa kwe-kernel ethunyelwe, okuhlukile ngoba idinga ukukhiqizwa kanye kuphela nge-boot ngayinye. Ngakolunye uhlangothi, ku /sys
kunamafayela amaningi amakhulu, amaningi awo athatha lonke ikhasi lenkumbulo. Ngokuvamile amafayela sysfs
ziqukethe inombolo eyodwa ncamashi noma umugqa, ngokungafani namathebula olwazi atholakala ngokufundwa kwamafayela afana nala /proc/meminfo
.
Injongo sysfs
- nikeza izici zokufunda/zokubhala zalokho i-kernel ekubiza ngayo Β«kobjectsΒ»
endaweni yomsebenzisi. Umgomo kuphela kobjects
ukubala kwesixhumanisi: uma isixhumanisi sokugcina se-kobject sisuswa, isistimu izobuyisela izinsiza ezihlotshaniswa nayo. Noma kunjalo, /sys
yenza iningi labadumile
I-ABI ye-kernel ezinzile ikhawulela lokho okungavela kuyo /sys
, hhayi lokho okukhona ngempela ngaleso sikhathi. Ukufaka kuhlu izimvume zefayela kuma-sysfs kunikeza ukuqonda kokuthi izilungiselelo ezilungisekayo zamadivayisi, amamojula, amasistimu wefayela, njll. ingacushwa noma ifundwe. Isiphetho esiphusile ukuthi ama-procfs nawo ayingxenye ye-ABI ezinzile ye-kernel, nakuba lokhu kungashiwo ngokucacile kokuthi
Amafayela angaphakathi sysfs
chaza isakhiwo esithile sebhizinisi ngalinye futhi singafundeka, sibhaleke, noma zombili. "0" kufayela kusho ukuthi i-SSD ayikwazi ukususwa.
Ake siqale ingxenye yesibili yokuhumusha ngendlela yokuqapha i-VFS usebenzisa amathuluzi e-eBPF kanye ne-bcc, futhi manje silindele ukuphawula kwakho futhi sikumema ngokwesiko ukuthi
Source: www.habr.com