Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

Salaamu caleykum Waxaan sii wadeynaa inaan bilowno barnaamijyo cusub oo loogu talagalay koorsooyinka aad horey u jeceshay, hadda waxaan ku degdegnay inaan ku dhawaaqno inaan bilaabayno koorsooyin cusub "Maamulaha Linux"kaas oo bilaaban doona dhamaadka bisha April. Daabacaad cusub ayaa loo taariikhaysan doonaa dhacdadan. Qalabka asalka ah, waad awoodaa halkaan ka akhri.

Nidaamyada faylalka Virtual waxay u adeegaan sida nooc ka mid ah soo saarista sixirka kaas oo u oggolaanaya falsafada Linux inay dhahdo "wax walba waa fayl."

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

Waa maxay nidaamka faylka? Iyada oo ku saleysan ereyada mid ka mid ah wax ku darsadayaashii ugu horreeyay iyo qorayaasha Linux Roberta Lava, "Nidaamka faylalka waa kaydinta kala sareynta xogta ee la ururiyey si waafaqsan qaab dhismeed gaar ah." Si kastaba ha ahaatee, qeexidani waxay si isku mid ah ugu habboon tahay VFAT (Shaxda Qoondaynta Faylka Virtual), Git iyo Cassandra (NoSQL database). Haddaba maxaa si sax ah u qeexaya shay sida "Nidaamka faylka"?

Aasaaska Nidaamka Faylasha

Kernel-ka Linux wuxuu leeyahay shuruudo gaar ah oo loogu talagalay cidda loo tixgelin karo nidaamka faylka. Waa inay fulisaa hababka open(), read() ΠΈ write() walxaha joogtada ah ee magacyo leh. Marka laga eego dhinaca shayga ku jihaysan barnaamijyada, kernel-ku wuxuu qeexayaa nidaamka faylalka guud inuu yahay is-dhexgal aan la taaban karin, saddexdan hawlood ee waaweynna waxaa loo tixgaliyaa "Virtual" oo aan lahayn qeexitaan la taaban karo. Sidaa darteed, hirgelinta nidaamka faylalka caadiga ah waxaa loo yaqaannaa nidaamka faylka dalwaddii (VFS).

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

Haddii aan furi karno, akhrin karno, oo qori karno hay'ad, markaa ciddaas waxaa loo tixgeliyaa fayl, sida aan ka arki karno tusaalaha ku jira console-ka sare.
Dhacdada VFS waxay hoosta ka xariiqday kaliya u fiirsashada Unix-ka in "wax walbaa waa fayl". Ka fakar sida la yaab leh in tusaalahaas yar /dev/console ee kore uu muujinayo sida console-ku run ahaantii u shaqeeyo. Sawirku wuxuu muujinayaa fadhi Bash is dhexgal ah. U dirida xadhig konsole (qalabka konsole ee birta ah) waxa uu ku soo bandhigayaa shaashad macmal ah. VFS waxay leedahay waxyaabo kale, xitaa hanti shisheeye. Tusaale ahaan, waxay kuu ogolaanaysaa inaad ku baadho isaga.

Nidaamyada caanka ah sida ext4, NFS, iyo /proc waxay leeyihiin saddex hawlood oo muhiim ah qaab-dhismeedka xogta C ee loo yaqaan hawlgallada faylka. Intaa waxaa dheer, nidaamyada faylalka qaarkood waxay fidiyaan oo dib u qeexaan shaqeynta VFS qaab la yaqaan oo ku jihaysan shayga. Sida Robert Love uu tilmaamay, abstraction-ka VFS wuxuu u oggolaanayaa isticmaaleyaasha Linux inay si aan qarsoodi ahayn u koobiyeeyaan faylalka nidaamyada hawlgalka dhinac saddexaad ama qaybaha aan la taaban karin sida tuubooyinka iyaga oo aan ka welwelin qaabka xogta gudaha. Dhinaca isticmaalaha (userspace), iyadoo la isticmaalayo nidaamka wicista, nidaamku wuxuu ka koobi karaa faylka qaab dhismeedka xogta kernel iyadoo la isticmaalayo habka read() hal faylal ka dibna isticmaal habka write () nidaam kale oo faylal ah oo loogu talagalay soo saarista xogta.

Qeexitaannada shaqada ee ka tirsan noocyada VFS ee saldhigga ah waxay ku jiraan faylasha fs/*.c Koodhka isha kernel, halka buug-hoosaadyo fs/ waxaa ku jira hababka faylalka qaarkood. Xuddunta sidoo kale waxa ku jira qaybo ay ka mid yihiin cgroups, /dev ΠΈ tmpfs, kuwaas oo loo baahan yahay inta lagu jiro habka boot-ka oo sidaas darteed lagu qeexay kernel subdirectory init/. U fiirso taas cgroups, /dev ΠΈ tmpfs Ha u yeedhin hawlaha "saddexda waaweyn". file_operations, laakiin si toos ah u akhri oo u qor xusuusta.
Jaantuska hoose wuxuu muujinayaa sida goobta adeegsaduhu u gasho noocyada kala duwan ee nidaamyada faylalka sida caadiga ah lagu rakibo nidaamyada Linux. Qaab dhismeedka lama muujin pipes, dmesg ΠΈ POSIX clocks, kuwaas oo sidoo kale hirgeliya qaab-dhismeedka file_operations, laga dhex galo lakabka VFS.

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

VFS waa "lakabka duubka" ee u dhexeeya wicitaanada nidaamka iyo fulinta qaar file_operationssida ext4 ΠΈ procfs. Hawlaha file_operations waxay la falgali karaan darawalada aaladaha ama aaladaha gelitaanka xusuusta. tmpfs, devtmpfs ΠΈ cgroups ha isticmaalin file_operations, laakiin si toos ah u gal xusuusta.
Jiritaanka VFS waxay siisaa fursad dib loogu isticmaalo koodka, maadaama hababka aasaasiga ah ee la xidhiidha nidaamyada faylalka aan loo baahnayn in dib loo fuliyo nooc kasta oo nidaamka faylka ah. Dib-u-isticmaalka koodku waa dhaqan caadi ah oo dhex mara injineerada software-ka! Si kastaba ha noqotee, haddii koodka dib loo isticmaali karo uu ka kooban yahay khaladaad halis ah, dhammaan fulinta dhaxalka hababka caadiga ah ayaa dhibaato iyaga.

/tmp: tilmaan fudud

Habka ugu fudud ee lagu ogaan karo in VFS ay ku jiraan nidaamka waa in la qoro mount | grep -v sd | grep -v :/, kaas oo tusi doona dhammaan rakibay (mounted) Nidaamyada faylalka aan degenayn disk-ga iyo kuwa aan NFS ahayn, taas oo run ku ah kombiyuutarada intooda badan. Mid ka mid ah kuwa kor ku xusan (mounts) shaki la'aan VFS way dhici doontaa /tmp, sax?

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

Qof kastaa wuu ogyahay kaydintaas / tmp on dhexdhexaad ah jirka - waalli! Xigasho.

Waa maxay sababta aan loo baahnayn in la kaydiyo /tmp on warbaahinta jirka? Sababtoo ah faylalka ku jira /tmp waa ku meel gaadh iyo qalabka kaydinta ayaa ka gaabiya xusuusta meesha tmpfs lagu abuuray. Waxaa intaa dheer, warbaahinta jireed ayaa aad ugu nugul xirashada marka la qoro marka loo eego xusuusta. Ugu dambeyntii, faylasha ku jira /tmp waxay ka koobnaan karaan macluumaad xasaasi ah, markaa ka dhigista inay ku luminayaan dib-u-bilaabid kasta waa sifo muhiim ah.

Nasiib darro, qaar ka mid ah qoraallada rakibidda qaybinta Linux waxay abuuraan / tmp qalabka kaydinta si caadi ah. Ha quusan hadday tani ku dhacdo nidaamkaaga sidoo kale. Raac tilmaamaha yar ee fudud Arch Wikisi tan loo hagaajiyo, lana soco in xusuusta loo qoondeeyay tmpfs waxay noqotaa mid aan loo heli karin ujeedooyin kale. Si kale haddii loo dhigo, nidaamka leh tmpfs weyn iyo faylal waaweyn oo ku yaal waxay ka dhammaan karaan xusuusta iyo shil. Tilmaam kale: markaad tafatirayso faylka /etc/fstabXusuusnow inay tahay inay ku dhamaato khad cusub, haddii kale nidaamkaagu ma bootin doono.

/proc iyo /sys

Waxaa intaa dheer /tmp, VFS (nidaamyada faylalka Virtual) ee aad u yaqaana isticmaalayaasha Linux /proc ΠΈ /sys. (/dev deggan tahay xusuusta la wadaago oo aan lahayn file_operations). Waa maxay sababta labadan qaybood? Bal aan eegno arrintan.

procfs abuuraa sawir qaade ah kernel-ka iyo hababka ay ula socoto userspace. The /proc Kernelku wuxuu daabacaa macluumaadka ku saabsan waxa la heli karo, sida kala goynta, xusuusta casriga ah, iyo jadwalaha. Ka sokow, /proc/sys waa meesha ay xuduudaha lagu habeeyey amarka sysctl, diyaar u ah userspace. Heerka iyo tirakoobka hababka gaarka ah ayaa lagu muujiyay buug-yaraha /proc/.

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

waa /proc/meminfo waa fayl madhan oo si kastaba ha ahaatee ka kooban macluumaad qiimo leh.

Dabeecadda /proc faylalka ayaa muujinaya sida nidaamyada faylalka diskooga ee VFS ay u kala duwanaan karaan. Dhinac, /proc/meminfo waxaa ku jira macluumaad lagu arki karo amarka free. Dhanka kale, waa faaruq! Sidee u shaqeysaa? Xaalku waxa uu xasuusinayaa maqaalkii caanka ahaa ee ciwaankiisu ahaa Dayaxu ma jiraa iyadoon cidina eegayn? Xaqiiqda iyo Aragtida Quantum"oo uu qoray borofisar cilmiga fiisigiska ee jaamacadda Cornell David Mermin sannadkii 1985kii. Xaqiiqdu waxay tahay in kernelku uu ururiyo tirakoobka xusuusta marka codsi la sameeyo /proc, oo dhab ahaantii ku jira faylasha /proc waxba ma jiraan marka qofna ma eegayo. Sida la sheegay Mermin, "Caqiidada tirada aasaasiga ah ayaa sheegaysa in cabbiradu guud ahaan aysan muujinayn qiimaha hore u jiray ee hantida la qiyaasay." (Oo u tixgeli su'aasha ku saabsan dayaxa sidii shaqo-guri!)
Faaruqnimo u muuqata procfs macno samaynaya sababtoo ah macluumaadka halkaas ku jira waa firfircoon. Xaalad yar oo ka duwan sysfs. Aynu is barbar dhigno inta fayl ee ugu yaraan hal byte cabbirkoodu yahay /proc iyo /sys.

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

Procfs wuxuu leeyahay hal fayl, oo ah qaabeynta kernel-ka la dhoofiyo, taas oo ah ka reeban sababtoo ah waxay u baahan tahay oo kaliya in la soo saaro hal mar boot kasta. Dhanka kale, in /sys waxaa jira faylal badan oo waaweyn, kuwaas oo intooda badan qaata bog dhan oo xusuusta ah. Caadiyan faylasha sysfs ka kooban hal lambar ama xariiq, si ka duwan shaxda macluumaadka laga helay akhrinta faylalka sida /proc/meminfo.

Goolka sysfs - Bixinta wax akhrinta/qorista waxa kernelku u yeedho Β«kobjectsΒ» meel adeegsi Hadafka kaliya kobjects waa tirinta isku xirka: marka xiriirka ugu dambeeya ee kobject la saaro, nidaamku wuxuu soo celin doonaa kheyraadka la xiriira. Si kastaba ha ahaatee, /sys wuxuu ka kooban yahay inta badan kuwa caanka ah "ABI xasilloon oo loogu talagalay isticmaalka goobta" xudunta u ah, taas oo qofna weligiis ma karo, xaalad kasta "jab". Tani macnaheedu maaha in faylasha ku jira sysfs ay taagan yihiin, taas oo noqonaysa mid aan waafaqsanayn tirinta tixraaca walxaha aan degganayn.
Kernel's ABI xasilloon ayaa xaddidaya waxa ka dhex muuqan kara /sys, ma aha waxa run ahaantii jira wakhtigaas. Liistada oggolaanshaha faylka ee sysfs waxay ku siinaysaa aragti ku saabsan sida loo habayn karo aaladaha, modules-yada, nidaamyada faylalka, iwm. waa la habayn karaa ama la akhriyi karaa. Gabagabada macquulka ah ayaa ah in procfs ay sidoo kale qayb ka tahay kernel's xasilloon ABI, in kasta oo tan aan si cad loo sheegin dukumentiyo.

Nidaamyada faylka Virtual ee Linux: maxaa loogu baahan yahay iyo sidee bay u shaqeeyaan? Qaybta 1

Faylasha gudaha sysfs sharax hal hanti gaar ah oo loogu talagalay qayb kasta oo waxay noqon kartaa mid la akhriyi karo, la qori karo, ama labadaba. "0" ee ku jira faylka waxay la macno tahay in SSD-ga aan la saari karin.

Aynu ku bilowno qaybta labaad ee tarjumaada sida loola socdo VFS anagoo adeegsanayna agabka eBPF iyo bcc webinar furan, kaas oo uu qaban doono macalinkayaga Abriil 9 - Vladimir Drozdetsky.

Source: www.habr.com

Add a comment