Hæ allir! Við höldum áfram að opna nýja strauma fyrir námskeiðin sem þú hefur þegar orðið ástfangin af og nú erum við að flýta okkur að tilkynna að við erum að hefja nýtt námskeið
Sýndarskráakerfi þjóna sem eins konar töfrandi abstrakt sem gerir heimspeki Linux kleift að segja að "allt sé skrá."
Hvað er skráarkerfi? Byggt á orðum eins af fyrstu þátttakendum og höfundum Linux
Grunnatriði skráakerfisins
Linux kjarninn hefur ákveðnar kröfur fyrir aðila sem getur talist skráarkerfi. Það verður að innleiða aðferðirnar open()
, read()
и write()
fyrir viðvarandi hluti sem bera nöfn. Frá hlutbundnu sjónarhorni
Ef við getum opnað, lesið og skrifað í einingu, þá telst þessi eining vera skrá, eins og við sjáum af dæminu í stjórnborðinu hér að ofan.
VFS fyrirbærið undirstrikar aðeins þá Unix-líka athugun að „allt er skrá“. Hugsaðu þér hvað þetta litla /dev/console dæmi hér að ofan sýnir hvernig leikjatölvan virkar í raun og veru. Myndin sýnir gagnvirka Bash lotu. Með því að senda streng á stjórnborðið (sýndartölvutæki) birtist það á sýndarskjá. VFS hefur aðra, jafnvel undarlegri eiginleika. Til dæmis gerir það þér kleift að leita eftir
Þekkt kerfi eins og ext4, NFS og /proc hafa þrjár mikilvægar aðgerðir í C gagnaskipulagi sem kallast read()
eitt skráarkerfi og notaðu síðan aðferðina write ()
annað skráarkerfi fyrir gagnaúttak.
Aðgerðarskilgreiningarnar sem tilheyra grunn VFS gerðunum eru í skránum fs/
innihalda ákveðin skráarkerfi. Kjarninn inniheldur einnig einingar eins og cgroups
, /dev
и tmpfs
, sem eru nauðsynlegar meðan á ræsiferlinu stendur og eru því skilgreindar í kjarnaundirskránni init/
. Taktu eftir því cgroups
, /dev
и tmpfs
ekki kalla „stóru þrjú“ föllin file_operations
, en beint að lesa og skrifa í minni.
Skýringarmyndin hér að neðan sýnir hvernig notendarými hefur aðgang að mismunandi tegundum skráarkerfa sem almennt eru sett upp á Linux kerfum. Mannvirki ekki sýnd pipes
, dmesg
и POSIX clocks
, sem einnig útfæra uppbygginguna file_operations
, aðgengilegt í gegnum VFS lagið.
VFS er „umbúðir“ á milli kerfiskalla og útfærslur á ákveðnum file_operations
Svo sem eins og ext4
и procfs
. Aðgerðir file_operations
getur haft samskipti við annað hvort tækjarekla eða minnisaðgangstæki. tmpfs
, devtmpfs
и cgroups
ekki nota file_operations
, en beinan aðgang að minni.
Tilvist VFS gefur tækifæri til að endurnýta kóða, þar sem grunnaðferðirnar sem tengjast skráarkerfum þurfa ekki að vera endurútfærðar af hverri gerð skráarkerfa. Endurnotkun kóða er algeng venja meðal hugbúnaðarverkfræðinga! Hins vegar, ef endurnýtanlegur kóði inniheldur
/tmp: Einföld vísbending
Auðveld leið til að greina að VFS séu til staðar á kerfi er að slá inn mount | grep -v sd | grep -v :/
, sem mun sýna allt tengt (mounted
) skráarkerfi sem eru ekki búsett á diski og ekki NFS, sem á við á flestum tölvum. Einn af skráðum festingum (mounts
) VFS mun án efa /tmp
, ekki satt?
Allir þekkja þá geymslu / tmp
á líkamlegum miðli - brjálæði!
Hvers vegna er óæskilegt að geyma /tmp
á efnismiðlum? Vegna þess að skrárnar í /tmp
eru tímabundin og geymslutæki eru hægari en minnið þar sem tmpfs er búið til. Þar að auki eru efnislegir fjölmiðlar næmari fyrir sliti þegar þeir eru skrifaðir yfir en minni. Að lokum geta skrár í /tmp innihaldið viðkvæmar upplýsingar, svo að láta þær hverfa við hverja endurræsingu er nauðsynlegur eiginleiki.
Því miður búa sum Linux dreifingaruppsetningarforskriftir til /tmp á geymslutækinu sjálfgefið. Ekki örvænta ef þetta kemur fyrir kerfið þitt líka. Fylgdu nokkrum einföldum leiðbeiningum með tmpfs
verður ófáanlegt í öðrum tilgangi. Með öðrum orðum, kerfi með risastórum tmpfs og stórum skrám á því getur klárast minni og hrunið. Önnur vísbending: á meðan verið er að breyta skrá /etc/fstab
, mundu að það verður að enda með nýrri línu, annars ræsir kerfið þitt ekki.
/proc og /sys
Auki /tmp
, VFS (sýndarskráarkerfi) sem Linux notendur þekkja best /proc
и /sys
. (/dev
býr í sameiginlegu minni og hefur ekki file_operations
). Af hverju þessir tveir þættir? Við skulum skoða þetta mál.
procfs
býr til skyndimynd af kjarnanum og ferlunum sem hann fylgist með userspace
. Í /proc
kjarninn prentar upplýsingar um það sem hann hefur í boði, svo sem truflanir, sýndarminni og tímaáætlun. Að auki, /proc/sys
– þetta er þar sem færibreyturnar eru stilltar með skipuninni sysctl
, í boði fyrir userspace
. Staða og tölfræði einstakra ferla er sýnd í vörulistum /proc/
.
Hér /proc/meminfo
er tóm skrá sem inniheldur engu að síður dýrmætar upplýsingar.
Hegðun /proc
skrár sýnir hversu mismunandi VFS diskskráarkerfi geta verið. Annars vegar, /proc/meminfo
innihalda upplýsingar sem hægt er að skoða með skipuninni free
. Aftur á móti er það tómt! Hvernig virkar það? Ástandið minnir á hina frægu grein sem heitir /proc
, og í raun í skrám /proc
það er ekkert þegar enginn horfir. Sem sagt
Virðist tómleiki procfs
er skynsamlegt vegna þess að upplýsingarnar þar eru kraftmiklar. Örlítið öðruvísi aðstæður með sysfs
. Við skulum bera saman hversu margar skrár sem eru að minnsta kosti eitt bæti að stærð eru í /proc
og /sys
.
Procfs
hefur eina skrá, þ.e. útfluttu kjarnastillinguna, sem er undantekning vegna þess að það þarf aðeins að búa til einu sinni í hverri ræsingu. Á hinn bóginn, í /sys
það eru margar stærri skrár, margar hverjar taka upp heila síðu af minni. Venjulega skrár sysfs
innihalda nákvæmlega eina tölu eða línu, ólíkt töflum með upplýsingum sem fást við lestur skráa eins og /proc/meminfo
.
Markmið sysfs
- gefa upp les/skrif eiginleika þess sem kjarninn kallar «kobjects»
í notendarými. Eina markið kobjects
er tenglatalning: þegar síðasti hlekkurinn á kobject er fjarlægður mun kerfið endurheimta tilföngin sem tengjast því. Engu að síður, /sys
myndar flesta af þeim frægu
Stöðugt ABI kjarnans takmarkar það sem getur birst í /sys
, frekar en það sem er í raun til staðar á því tiltekna augnabliki. Skráning skráaheimilda í sysfs veitir innsýn í hvernig stillanlegar stillingar fyrir tæki, einingar, skráarkerfi osfrv. hægt að stilla eða lesa. Rökrétt niðurstaða er sú að procfs er einnig hluti af stöðugu ABI kjarnans, þó að það sé ekki sérstaklega tekið fram í
Skrár inn sysfs
lýsa einni tiltekinni eiginleika fyrir hverja einingu og getur verið læsileg, skrifanleg eða bæði. "0" í skránni þýðir að ekki er hægt að fjarlægja SSD.
Við skulum byrja seinni hluta þýðingarinnar á því hvernig á að fylgjast með VFS með því að nota eBPF og bcc verkfærin, og nú bíðum við eftir athugasemdum þínum og bjóðum þér venjulega að
Heimild: www.habr.com