Hi uile! Tha sinn a’ leantainn air adhart a’ cur sruthan ùra air bhog airson nan cùrsaichean air a bheil thu air tuiteam ann an gaol leotha mar-thà agus a-nis tha sinn ann an cabhaig innse gu bheil sinn a’ tòiseachadh sreath ùr de chùrsaichean
Tha siostaman faidhle mas-fhìor mar sheòrsa de tharraing draoidheil a leigeas le feallsanachd Linux a ràdh “is e faidhle a th’ anns a h-uile dad. ”
Dè a th’ ann an siostam faidhle? Stèidhichte air faclan aon de na ciad chom-pàirtichean agus ùghdaran aig Linux
Bun-bheachdan siostam faidhle
Tha riatanasan sònraichte aig an kernel Linux airson eintiteas a dh’ fhaodar a mheas mar shiostam faidhle. Feumaidh e na dòighean a chur an gnìomh open()
, read()
и write()
airson nithean seasmhach aig a bheil ainmean. Bho shealladh a tha ag amas air cuspair
Mas urrainn dhuinn fosgladh, leughadh, agus sgrìobhadh gu eintiteas, tha an eintiteas sin air a mheas mar fhaidhle, mar a chì sinn bhon eisimpleir sa chonsail gu h-àrd.
Chan eil an iongantas VFS ach a’ daingneachadh an amharc coltach ri Unix gu bheil “a h-uile dad na fhaidhle”. Smaoinich air cho neònach sa tha an eisimpleir bheag / dev / console gu h-àrd a’ sealltainn mar a tha an consol ag obair. Tha an dealbh a’ sealltainn seisean Bash eadar-ghnìomhach. Le bhith a’ cur sreang chun chonsail (inneal tòcan mas-fhìor) ga thaisbeanadh air scrion mas-fhìor. Tha feartan eile, eadhon coigreach aig VFS. Mar eisimpleir, leigidh e leat rannsachadh le
Tha trì gnìomhan cudromach aig siostaman eòlach leithid ext4, NFS, agus / proc ann an structar dàta C ris an canar read()
aon siostam faidhle agus an uairsin cleachd am modh write ()
siostam faidhle eile airson toradh dàta.
Tha na mìneachaidhean gnìomh a bhuineas do na seòrsaichean bunaiteach VFS anns na faidhlichean fs/
cuir a-steach cuid de shiostaman faidhle. Anns a 'chridhe cuideachd tha aonadan leithid cgroups
, /dev
и tmpfs
, a tha riatanach tron phròiseas tòiseachaidh agus mar sin tha iad air am mìneachadh anns an fho-eòlaire kernel init/
. Mothaich sin cgroups
, /dev
и tmpfs
na gairm na gnìomhan “trì mòra”. file_operations
, ach leugh gu dìreach agus sgrìobh gu cuimhne.
Tha an diagram gu h-ìosal a’ sealltainn mar a bhios luchd-cleachdaidh a’ faighinn cothrom air na diofar sheòrsaichean de shiostaman faidhle a tha mar as trice air an cur suas air siostaman Linux. Structaran nach eil air an sealltainn pipes
, dmesg
и POSIX clocks
, a tha cuideachd a 'cur an gnìomh an structair file_operations
, a gheibhear thuige tro shreath VFS.
Tha VFS na “sreath còmhdaich” eadar fiosan siostam agus buileachadh sònraichte file_operations
leithid ext4
и procfs
. Gnìomhan file_operations
faodaidh iad eadar-obrachadh le draibhearan inneal no innealan ruigsinneachd cuimhne. tmpfs
, devtmpfs
и cgroups
na cleachd file_operations
, ach faigh cothrom dìreach air a’ chuimhne.
Tha VFS a’ toirt cothrom còd ath-chleachdadh, leis nach fheum na dòighean bunaiteach co-cheangailte ri siostaman faidhle a bhith air an ath-chur an gnìomh le gach seòrsa siostam faidhle. Tha ath-chleachdadh còd na chleachdadh cumanta am measg innleadairean bathar-bog! Ach, ma tha an còd ath-chleachdadh ann
/tmp: Moladh sìmplidh
Is e dòigh furasta air faighinn a-mach gu bheil VFS an làthair air siostam a bhith a’ taipeadh mount | grep -v sd | grep -v :/
, a sheallas na h-uile air an cur suas (mounted
) siostaman fhaidhlichean nach eil a’ fuireach ann an diosc agus neo-NFS, a tha fìor air a’ mhòr-chuid de choimpiutairean. Aon de na h-ionadan clàraichte (mounts
) Bidh VFS gun teagamh /tmp
, deas?
Tha fios aig a h-uile duine mun stòradh sin / tmp
air meadhan fiosaigeach - cuthach!
Carson a tha e neo-mhiannach a stòradh /tmp
air na meadhanan corporra? Air sgàth na faidhlichean ann an /tmp
tha innealan sealach agus stòraidh nas slaodaiche na an cuimhne far a bheil tmpfs air a chruthachadh. A bharrachd air an sin, tha na meadhanan corporra nas buailtiche a bhith gan caitheamh nuair a thèid an sgrìobhadh thairis na cuimhne. Mu dheireadh, faodaidh fiosrachadh mothachail a bhith ann am faidhlichean ann an / tmp, agus mar sin tha e riatanach a bhith gan toirt à sealladh air gach ath-thòiseachadh.
Gu mì-fhortanach, bidh cuid de sgriobtaichean stàlaidh cuairteachaidh Linux a’ cruthachadh / tmp air an inneal stòraidh gu bunaiteach. Na gabh eu-dòchas nan tachradh seo don t-siostam agad cuideachd. Lean beagan stiùiridhean sìmplidh le tmpfs
nach eil e ri fhaighinn airson adhbharan eile. Ann am faclan eile, faodaidh siostam le tmpfs mòr agus faidhlichean mòra air ruith a-mach à cuimhne agus tubaist. Sanas eile: fhad ‘s a tha thu a’ deasachadh faidhle /etc/fstab
, cuimhnich gum feum e crìochnachadh le loidhne ùr, air neo cha tòisich an siostam agad.
/proc agus /sys
A bharrachd air sin /tmp
, Is e VFS (siostaman faidhle brìgheil) a tha nas eòlaiche do luchd-cleachdaidh Linux /proc
и /sys
. (/dev
a’ fuireach ann an cuimhne roinnte agus chan eil file_operations
). Carson a tha an dà phàirt seo? Feuch gun coimhead sinn ris a 'chùis seo.
procfs
a’ cruthachadh dealbh den kernel agus na pròiseasan air am bi e a’ cumail sùil userspace
. Tha a ' /proc
bidh an kernel a’ clò-bhualadh fiosrachadh mu na tha ri fhaighinn, leithid brisidhean, cuimhne bhrìgheil, agus an clàr-ama. A bharrachd air sin, /proc/sys
is e seo an t-àite far a bheil na paramadairean air an rèiteachadh leis an àithne sysctl
, ri fhaighinn airson userspace
. Tha inbhe agus staitistig phròiseasan fa leth air an taisbeanadh ann an clàran /proc/
.
tha e /proc/meminfo
na fhaidhle falamh anns a bheil fiosrachadh luachmhor ge-tà.
Giùlan /proc
tha faidhlichean a’ sealltainn mar as urrainn do shiostaman faidhle diosc VFS a bhith. Air aon taobh, /proc/meminfo
tha fiosrachadh ann a dh'fhaodar fhaicinn leis an àithne free
. Air an làimh eile, tha e falamh! Ciamar a tha e ag obair? Tha an suidheachadh mar chuimhneachan air an artaigil ainmeil leis an tiotal /proc
, agus gu dearbh ann am faidhlichean /proc
chan eil dad ann nuair nach eil duine a’ coimhead. Mar a thuirt
A 'coimhead falamh procfs
a’ dèanamh ciall leis gu bheil am fiosrachadh an sin fiùghantach. Suidheachadh beagan eadar-dhealaichte le sysfs
. Dèanamaid coimeas eadar cia mheud faidhle anns a bheil co-dhiù aon byte ann am meud /proc
agus a-staigh /sys
.
Procfs
aig a bheil aon fhaidhle, is e sin an rèiteachadh kernel às-mhalairt, rud a tha na eisgeachd leis nach fheum e a bhith air a chruthachadh ach aon turas gach bròg. Air an làimh eile, a-steach /sys
tha tòrr fhaidhlichean nas motha ann, agus bidh mòran dhiubh a' gabhail suas duilleag slàn de chuimhne. Mar as trice faidhlichean sysfs
bi dìreach aon àireamh no loidhne ann, eu-coltach ri clàran fiosrachaidh a gheibhear bho bhith a’ leughadh fhaidhlichean leithid /proc/meminfo
.
Amas sysfs
- thoir seachad feartan leughaidh / sgrìobhaidh de na tha an kernel ag iarraidh «kobjects»
ann an àite luchd-cleachdaidh. An aon amas kobjects
is link counting: nuair a thèid an ceangal mu dheireadh gu kobject a thoirt air falbh, bheir an siostam air ais na goireasan co-cheangailte ris. A dh'aindeoin sin, /sys
a 'dèanamh suas a' mhòr-chuid de na daoine ainmeil
Tha ABI seasmhach an kernel a’ cuingealachadh na dh’ fhaodadh nochdadh ann /sys
, chan e na tha an làthair aig an àm shònraichte sin. Le bhith a’ liostadh ceadan faidhle ann an sysfs tha sealladh air mar a ghabhas rèiteachaidhean a rèiteachadh airson innealan, modalan, siostaman faidhle, msaa. faodar a rèiteachadh no a leughadh. Is e an co-dhùnadh loidsigeach gu bheil procfs cuideachd mar phàirt de ABI seasmhach an kernel, ged nach eil seo air a ràdh gu soilleir ann an
Faidhlichean a-steach sysfs
thoir cunntas air aon sheilbh sònraichte airson gach eintiteas agus faodar a leughadh, a sgrìobhadh, no an dà chuid. Tha “0” san fhaidhle a’ ciallachadh nach gabh an SSD a thoirt air falbh.
Nach tòisich sinn air an dàrna pàirt den eadar-theangachadh le mar a chumas tu sùil air VFS a’ cleachdadh na h-innealan eBPF agus bcc, agus a-nis tha sinn a’ feitheamh ri do bheachdan agus gu traidiseanta a’ toirt cuireadh dhut
Source: www.habr.com