Molweni nonke! Siyaqhubeka nokusungula imijelo emitsha yezifundo osele uzithanda kwaye ngoku singxamele ukwazisa ukuba siqala iseti entsha yezifundo.
Iinkqubo zeefayile ezibonakalayo zisebenza njengoluhlobo lokutsalwa komlingo oluvumela ifilosofi yeLinux ukuba "yonke into yifayile."
Yintoni inkqubo yefayile? Ngokusekwe kumagama omnye wabaxhasi bokuqala kunye nababhali beLinux
Inkqubo yeFayile Esisiseko
I-Linux kernel ineemfuno ezithile zequmrhu elinokuthi lithathwe njengesixokelelwano sefayile. Kufuneka iphumeze iindlela open()
, read()
ΠΈ write()
kwizinto ezizingisayo ezinamagama. Ukusuka kwimbono ejolise kwinto
Ukuba sinokuvula, ukufunda, nokubhalela iqumrhu, ngoko ke loo nkampani ithathwa njengefayile, njengoko sinokubona kumzekelo kwi-console engentla.
Isenzeko se-VFS sigxininisa kuphela uqwalaselo olufana ne-Unix lokuba "yonke into yifayile". Cinga indlela engaqhelekanga ngayo ukuba lo mzekelo mncinci / dev/console ungasentla ubonisa indlela iconsole esebenza ngayo ngokwenene. Umfanekiso ubonisa iseshoni ye-Bash esebenzayo. Ukuthumela umtya kwi-console (isixhobo se-console virtual) siyibonisa kwiscreen esibonakalayo. I-VFS inezinye, iipropati ezingaqhelekanga. Umzekelo, ikuvumela ukuba ukhangele nge
Iinkqubo eziqhelekileyo ezifana ne-ext4, i-NFS, kunye / ne-proc zinemisebenzi emithathu ebalulekileyo kwisakhiwo sedatha ye-C ebizwa read()
enye indlela yefayile kwaye usebenzise indlela write ()
enye inkqubo yefayile yemveliso yedatha.
Iinkcazo zomsebenzi ezizezohlobo lwesiseko lweVFS zikwifayile fs/
ziqulathe iinkqubo ezithile zefayile. Undoqo ikwaqulathe amaqumrhu afana cgroups
, /dev
ΠΈ tmpfs
, ezifunekayo ngexesha lenkqubo yokuqalisa kwaye ngoko zichazwe kwi-kernel subdirectory init/
. Qaphela ukuba cgroups
, /dev
ΠΈ tmpfs
musa ukubiza imisebenzi "enkulu zintathu". file_operations
, kodwa funda ngokuthe ngqo kwaye ubhale kwimemori.
Lo mzobo ungezantsi ubonisa ukuba isithuba somsebenzisi sifikelela njani kwiintlobo ezahlukeneyo zenkqubo yefayile eqhele ukunyuswa kwiinkqubo ze Linux. Ulwakhiwo aluboniswanga pipes
, dmesg
ΠΈ POSIX clocks
, ephinda iphumeze isakhiwo file_operations
, ifunyenwe ngoluhlu lweVFS.
I-VFS yi "wrapper layer" phakathi kweefowuni zenkqubo kunye nokuphunyezwa kwezinto ezithile file_operations
njenge ext4
ΠΈ procfs
. Imisebenzi file_operations
inokunxibelelana nokuba nabaqhubi besixhobo okanye izixhobo zofikelelo kwimemori. tmpfs
, devtmpfs
ΠΈ cgroups
musa ukusebenzisa file_operations
, kodwa ufike ngqo kwimemori.
Ubukho beVFS bubonelela ngethuba lokuphinda kusetyenziswe ikhowudi, ekubeni iindlela ezisisiseko ezinxulumene neenkqubo zefayile akufuneki ziphinde ziphunyezwe ngohlobo ngalunye lwenkqubo yefayile. Ukusetyenziswa kwakhona kwekhowudi yinto eqhelekileyo phakathi kweenjineli zesoftware! Nangona kunjalo, ukuba ikhowudi enokusetyenziswa kwakhona iqulethe
/tmp: Ingcebiso elula
Indlela elula yokufumanisa ukuba iVFS ikhona kwisistim kukuchwetheza mount | grep -v sd | grep -v :/
, eza kubonisa zonke zinyusiwe (mounted
) iindlela zefayile ezingezizo ezihlala kwidisk nezingezizo i-NFS, eyinyani kwiikhompyuter ezininzi. Enye yezinyusi ezidwelisiweyo (mounts
) iVFS ngokuqinisekileyo iya /tmp
, kunene?
Wonke umntu uyazi ukuba indawo yokugcina / tmp
kwi medium medium - impambano!
Kutheni kunganqweneleki ukugcina /tmp
kwimidiya ebonakalayo? Ngenxa yokuba iifayile kwi /tmp
zezexeshana kwaye izixhobo zokugcina zicotha kunenkumbulo apho iitmpfs zenziwe khona. Ngaphaya koko, imidiya yomzimba ichaphazeleka ngakumbi xa ibhalwe ngaphezulu kunenkumbulo. Okokugqibela, iifayile kwi/tmp zinokuqulatha ulwazi olubuthathaka, ngoko ke ukuzenza zinyamalale kuyo yonke inkqubo yokuqalisa kwakhona yinto ebalulekileyo.
Ngelishwa, ezinye izikripthi zofakelo lonikezelo lweLinux zenza /tmp kwisixhobo sokugcina ngokungagqibekanga. Musa ukuphelelwa lithemba ukuba oku kwenzekile nakwinkqubo yakho. Landela imiyalelo embalwa elula nge tmpfs
ayifumaneki ngenxa yezinye iinjongo. Ngamanye amazwi, inkqubo ene-tmpfs enkulu kunye neefayile ezinkulu kuyo inokuphelelwa kwimemori kwaye iphazamiseke. Enye ingcebiso: ngelixa uhlela ifayile /etc/fstab
, khumbula ukuba kufuneka iphele ngomgca omtsha, kungenjalo inkqubo yakho ayizukuqalisa.
/proc kunye /sys
ngaphandle /tmp
, VFS (iinkqubo zefayile ezibonakalayo) eziqheleke kakhulu kubasebenzisi be Linux /proc
ΠΈ /sys
. (/dev
ihlala kwinkumbulo ekwabelwana ngayo kwaye ayinayo file_operations
). Kutheni la macandelo mabini? Makhe sijonge kulo mba.
procfs
yenza umfanekiso okhawulezayo wekernel kunye neenkqubo ebeka iliso kuzo userspace
. Ku /proc
ikernel ishicilela ulwazi malunga nento ekhoyo, njengokuphazamiseka, inkumbulo yenyani, kunye nomcwangcisi. Ngaphandle koko, /proc/sys
yindawo apho iiparamitha ziqwalaselwe ngomyalelo sysctl
, ekhoyo userspace
. Ubume kunye neenkcukacha-manani zeenkqubo zomntu ngamnye ziboniswa kuluhlu lweencwadi /proc/
.
kuyinto /proc/meminfo
yifayile engenanto nangona iqulathe ulwazi oluxabisekileyo.
Indlela yokuziphatha /proc
iifayile zibonisa ukuba iindlela zefayile zediski zeVFS zinokuhluka njani. Kwelinye icala, /proc/meminfo
ziqulathe ulwazi olunokubonwa ngomyalelo free
. Kwelinye icala, ayinamntu! Ingaba isebenza kanjani? Le meko ikhumbuza inqaku elidumileyo elinesihloko /proc
, kwaye ngokwenene kwiifayile /proc
akukho nto xa kungekho mntu ujongileyo. Njengoko bekutshiwo
Ukubonakala kungenanto procfs
iyavakala kuba ulwazi olukhoyo luyaguquguquka. Imeko eyahlukileyo kancinci nge sysfs
. Makhe sithelekise ukuba zingaphi iifayile ezinobungakanani bebhayithi enye ezingaphakathi /proc
kunye /sys
.
Procfs
inefayile enye, eluqwalaselo lwe kernel ethunyelwe ngaphandle, engaphandle kuba ifuna ukwenziwa kube kanye kuphela ngesiqalo ngasinye. Kwelinye icala, kwi /sys
kukho iifayile ezinkulu ezininzi, ezininzi ezithatha lonke iphepha lenkumbulo. Ngokuqhelekileyo iifayile sysfs
ziqulathe ngqo inani okanye umgca, ngokungafaniyo neetheyibhile zolwazi ezifunyenwe kwiifayile zokufunda ezifana /proc/meminfo
.
Injongo sysfs
-bonelela ngeempawu zokufunda/ukubhala ezibizwa ngokuba yikernel Β«kobjectsΒ»
kwindawo yomsebenzisi. Injongo yodwa kobjects
lubalo lwekhonkco: xa ikhonkco lokugqibela kwi kobject lisusiwe, inkqubo izakubuyisela izibonelelo ezinxulumene nayo. Nangona kunjalo, /sys
yenza uninzi lwabadumileyo
I-kernel's stable ABI iyanqanda into enokubonakala kuyo /sys
, hayi eyona nto ikhoyo ngelo xesha. Uluhlu lweemvume zefayile kwi-sysfs lubonelela ngokuqonda malunga nokuba useto olunoqwalaselo lwezixhobo, iimodyuli, iinkqubo zefayile, njl. ingaqwalaselwa okanye ifundwe. Isigqibo esinengqiqo kukuba iprocfs ikwayinxalenye ye-kernel's stable ABI, nangona oku kungachazwanga ngokucacileyo
Iifayile ngaphakathi sysfs
chaza ipropathi enye yequmrhu ngalinye kwaye inokufundeka, ibhaleke, okanye zombini. "0" kwifayile ithetha ukuba i-SSD ayinakususwa.
Masiqale icandelo lesibini lokuguqulela ngendlela yokubeka iliso kwi-VFS usebenzisa i-eBPF kunye nezixhobo ze-bcc, kwaye ngoku silindele izimvo zakho kwaye simema ngokwesiko ukuba
umthombo: www.habr.com