Mhoroi mose! Tirikuenderera mberi nekuparura mitsva yezvidzidzo zvawakatofarira uye ikozvino tiri mushishi kuzivisa kuti tiri kutanga seti itsva yezvidzidzo.
Virtual faira masisitimu anoshanda semhando yemashiripiti abstraction inobvumira huzivi hweLinux kutaura kuti "zvese ifaira."
Chii chinonzi faira system? Kubva pamashoko emumwe wekutanga kupa uye vanyori veLinux
Filesystem Basics
Iyo Linux kernel ine zvimwe zvinodiwa kune chimwe chinhu chinogona kutorwa sefaira system. Inofanira kushandisa nzira open()
, read()
ΠΈ write()
kuzvinhu zvinoramba zviripo zvine mazita. Kubva pakuona kwechinhu
Kana isu tikakwanisa kuvhura, kuverenga, uye kunyora kune chimwe chinhu, saka icho chinotaridzirwa sefaira, sezvatinoona kubva mumuenzaniso mune iyo console iri pamusoro.
Chiitiko cheVFS chinongosimbisa iyo Unix-yakafanana nekutarisa kuti "zvese ifaira". Funga kuti zvinoshamisa sei kuti iyo diki /dev/console muenzaniso iri pamusoro inoratidza kuti iyo koni inoshanda sei. Mufananidzo unoratidza musangano weBash unopindirana. Kutumira tambo kune koni (virtual console mudziyo) inoiratidza pane chaiyo skrini. VFS ine zvimwe, kunyange zvisingazivikanwe zvivakwa. Semuenzaniso, inokubvumira kutsvaga ne
Masisitimu anojairika akadai se ext4, NFS, uye/proc ane mabasa matatu akakosha muC data structure inonzi read()
imwe faira system uye wobva washandisa nzira write ()
imwe faira system yekuburitsa data.
Tsanangudzo dzebasa dziri dzemhando dzeVFS dziri mumafaira fs/
ine mamwe mafaera masisitimu. The core zvakare ine masangano akadai cgroups
, /dev
ΠΈ tmpfs
, iyo inodiwa panguva yebhoti process uye saka inotsanangurwa mu kernel subdirectory init/
. Cherechedzai izvozvo cgroups
, /dev
ΠΈ tmpfs
usadaidze "makuru matatu" mabasa file_operations
, asi verenga nokunyora zvakananga nomusoro.
Dhiagiramu iri pazasi inoratidza kuti mushandisi nzvimbo inosvika sei mhando dzakasiyana dzemafaira anowanzo kuisirwa paLinux masisitimu. Zvimiro zvisina kuratidzwa pipes
, dmesg
ΠΈ POSIX clocks
, iyo inoshandisawo chimiro file_operations
, inowanikwa kuburikidza neVFS layer.
VFS i "wrapper layer" pakati pekufona kwesystem uye kuita kwezvimwe file_operations
se ext4
ΠΈ procfs
. Mabasa file_operations
inogona kupindirana nechero madhiraivha emudziyo kana ndangariro yekuwana zvishandiso. tmpfs
, devtmpfs
ΠΈ cgroups
usashandise file_operations
, asi pinda mundangariro zvakananga.
Kuvepo kweVFS kunopa kugona kushandisazve kodhi, sezvo nzira dzekutanga dzakabatana nemafaira masisitimu hazvifanirwe kuitwa zvakare nemhando yega yega yefaira system. Kushandisazve kodhi chinhu chakajairika pakati peinjiniya dzesoftware! Nekudaro, kana iyo reusable kodhi ine
/tmp: Ratidza nyore
Nzira iri nyore yekuona kuti VFS iripo pane system ndeyekunyora mount | grep -v sd | grep -v :/
, iyo inoratidza zvese zvakaiswa (mounted
) mafaera asina dhisiki-anogara uye asiri-NFS, chiri chokwadi pamakomputa mazhinji. Imwe yezvinyorwa zvakanyorwa (mounts
) VFS ichaita pasina mubvunzo /tmp
, rudyi?
Munhu wose anoziva kuchengetedza ikoko / tmp
pachimiro chemuviri - kupenga!
Sei zvisina kunaka kuchengeta /tmp
pama media media? Nekuti mafaera ari mukati /tmp
ndezvenguva pfupi uye midziyo yekuchengetedza inononoka kupfuura ndangariro uko tmpfs inogadzirwa. Uyezve, midhiya yemuviri inonyanya kupfekwa kana yanyorwa kupfuura ndangariro. Chekupedzisira, mafaera ari mu/tmp anogona kuve neruzivo rwakadzama, saka kuita kuti anyangarika pane yega reboot chinhu chakakosha.
Nehurombo, mamwe maLinux kugovera ekuisa zvinyorwa zvinogadzira /tmp pane yekuchengetera mudziyo nekusarudzika. Usaora mwoyo kana izvi zvikaitika kune yako system zvakare. Tevera mirairo mishoma iri nyore ne tmpfs
inova isingawanikwe kune zvimwe zvinangwa. Mune mamwe mazwi, hurongwa hune hofori tmpfs uye mafaira makuru pairi anogona kupera mundangariro uye kuparara. Imwe zano: paunenge uchigadzirisa faira /etc/fstab
, yeuka kuti inofanira kupera nemutsara mutsva, zvikasadaro system yako haizobhutsu.
/proc uye /sys
Kunze kwezvo /tmp
, VFS (virtual file systems) dzinonyanyozivikanwa nevashandisi veLinux ndizvo /proc
ΠΈ /sys
. (/dev
inogara mundangariro yakagovaniswa uye haina file_operations
) Sei zvikamu zviviri izvi? Ngatitarisei munyaya iyi.
procfs
inogadzira mufananidzo we kernel uye maitiro ainocherekedza userspace
. The /proc
iyo kernel inodhinda ruzivo pamusoro pezvainazvo, sekuvhiringidza, virtual memory, uye scheduler. Uyezve, /proc/sys
ndiyo nzvimbo iyo parameter yakagadziriswa nemirairo sysctl
, inowanika userspace
. Mamiriro uye nhamba dzemaitiro ega ega anoratidzwa mumadhairekitori /proc/
.
zviri /proc/meminfo
ifaira risina chinhu rine ruzivo rwakakosha.
Maitiro /proc
mafaira anoratidza kuti VFS disk faira masisitimu angave akasiyana sei. Kune rimwe divi, /proc/meminfo
ine ruzivo rwunogona kutariswa nemurairo free
. Ukuwo, haina chinhu! Chinoshanda sei? Mamiriro acho ezvinhu anoyeuchidza nezvechinyorwa chakakurumbira chine musoro /proc
, uye chaizvo mumafaira /proc
hapana kana chinhu kana pasina ari kutarisa. Sezvakataurwa
Kuita kunge pasina procfs
zvine musoro nekuti mashoko aripo ane simba. Mamiriro akasiyana zvishoma ne sysfs
. Ngatienzanise kuti mangani mafaera ane kanenge imwe byte muhukuru ari mukati /proc
and in /sys
.
Procfs
ine faira imwe chete, iyo inotengeswa kunze kernel configuration, iyo inopesana nokuti inongoda kugadzirwa kamwe chete pabhoti. Ukuwo, in /sys
kune mafaera akawanda akakura, mazhinji acho anotora peji rese rendangariro. Kazhinji mafaira sysfs
ine nhamba imwe chete kana mutsara, kusiyana nematafura eruzivo rwakawanikwa kubva mukuverenga mafaira akadai /proc/meminfo
.
Chinangwa sysfs
- ipa kuverenga / kunyora zvimiro zvezvinodaidzwa nekernel Β«kobjectsΒ»
munzvimbo yekushandisa. Chinangwa chete kobjects
ireferensi kuverenga: kana iyo yekupedzisira kunongedzera kune kobject yabviswa, sisitimu inodzoreredza zviwanikwa zvine chekuita nazvo. Zvakadaro, /sys
inoita vazhinji vevakakurumbira
Iyo kernel's yakagadzikana ABI inomisa izvo zvinogona kuoneka mukati /sys
, kwete izvo zvinenge zviripo panguva iyoyo chaiyo. Kunyora zvibvumirano zvefaira mu sysfs zvinopa ruzivo rwekuti zvinogadziriswa sei zvigadziriso zvemidziyo, mamodule, mafaera, nezvimwe. inogona kugadzirwa kana kuverengwa. Mhedziso ine musoro ndeyekuti procfs zvakare chikamu cheiyo kernel's yakagadzikana ABI, kunyangwe izvi zvisina kutaurwa zvakajeka mu.
Mafaira ari mukati sysfs
tsanangura chivakwa chimwe chechimwe nechimwe uye chinogona kuverengeka, kunyoreka, kana zvese. "0" mufaira zvinoreva kuti SSD haigone kubviswa.
Ngatitange chikamu chechipiri cheshanduro nemaitiro ekutarisa VFS uchishandisa eBPF uye bcc maturusi, uye ikozvino takamirira zvaunotaura uye netsika tinokukoka iwe
Source: www.habr.com