Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Sannu duka! Muna ci gaba da kaddamar da sabbin kwasa-kwasan kwasa-kwasan da kuka riga kuka yi soyayya da su kuma a yanzu muna cikin gaggawar sanar da cewa mun fara sabon kwasa-kwasan. "Linux Administrator"wanda za a kaddamar a karshen watan Afrilu. Za a yi kwanan wata sabuwar bugawa don wannan taron. Tare da kayan asali, zaka iya karanta a nan.

Tsarukan fayiloli masu kama-da-wane suna aiki azaman nau'in ɓoyayyen sihiri wanda ke ba da damar falsafar Linux don faɗi cewa "komai fayil ne."

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Menene tsarin fayil? Dangane da kalmomin ɗaya daga cikin masu ba da gudummawa na farko da marubutan Linux Roberta Lava, "Tsarin fayil shine tsarin ajiyar bayanai da aka haɗa bisa takamaiman tsari." Ko ta yaya, wannan ma'anar ta dace daidai da VFAT (Table Allocation Allocation Table), Git da Cassandra (NoSQL database). Don haka menene ainihin ma'anar irin wannan abu a matsayin "tsarin fayil"?

Tushen Tsarin Fayil

Kwayar Linux tana da wasu buƙatu don mahallin da za a iya ɗaukar tsarin fayil. Dole ne ya aiwatar da hanyoyin open(), read() и write() ga abubuwa masu dagewa masu suna. Daga ra'ayi mai ma'ana shirye-shirye, kernel yana ayyana tsarin tsarin fayil na gabaɗaya a matsayin mahaɗaɗɗen dubawa, kuma waɗannan manyan ayyuka guda uku ana ɗaukar su “masu kama-da-wane” kuma ba su da ma’anar takamammen. Don haka, ana kiran tsarin aiwatar da tsarin fayil ɗin tsoho ana kiran tsarin fayil ɗin kama-da-wane (VFS).

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Idan za mu iya buɗewa, karantawa, da rubutawa zuwa ga mahaluƙi, to ana ɗaukar wannan mahaɗin a matsayin fayil, kamar yadda muke iya gani daga misalin da ke cikin na'urar wasan bidiyo da ke sama.
Al'amarin VFS kawai yana jaddada kallon Unix-kamar cewa "komai fayil ne". Ka yi tunanin yadda abin ban mamaki cewa ƙaramin /dev/console misali a sama yana nuna yadda na'ura wasan bidiyo ke aiki a zahiri. Hoton yana nuna zaman Bash mai mu'amala. Aika kirtani zuwa na'urar wasan bidiyo (na'urar wasan bidiyo ta zahiri) tana nuna shi akan allon kama-da-wane. VFS yana da wasu, har ma da kaddarorin baƙo. Misali, yana ba ku damar bincika ta da shi.

Tsarukan da aka sani kamar ext4, NFS, da /proc suna da ayyuka masu mahimmanci guda uku a cikin tsarin bayanan C da ake kira file_operations. Bugu da kari, wasu tsarin fayil suna fadadawa da sake fasalta ayyukan VFS ta hanyar da aka saba da abu. Kamar yadda Robert Love ya nuna, abstraction na VFS yana ba masu amfani da Linux damar kwafin fayiloli ba tare da ɓata lokaci ba zuwa ko daga tsarin aiki na ɓangare na uku ko abubuwan da ba za a iya gani ba kamar bututu ba tare da damuwa game da tsarin bayanan su na ciki ba. A gefen mai amfani (userspace), ta amfani da kiran tsarin, tsari na iya kwafi daga fayil zuwa tsarin bayanan kwaya ta amfani da hanyar. read() tsarin fayil guda ɗaya sannan a yi amfani da hanyar write () wani tsarin fayil don fitar da bayanai.

Ma'anar aikin da ke cikin nau'ikan VFS na tushe suna cikin fayilolin fs/*.c lambar tushe na kernel, yayin da subdirectories fs/ ya ƙunshi wasu tsarin fayil. Jigon kuma ya ƙunshi abubuwa kamar cgroups, /dev и tmpfs, waɗanda ake buƙata yayin aikin taya kuma saboda haka an ayyana su a cikin kundin kernel subdirectory init/. Ka lura cewa cgroups, /dev и tmpfs kar a kira ayyukan "manyan uku". file_operations, amma kai tsaye karanta da rubuta zuwa ƙwaƙwalwar ajiya.
Hoton da ke ƙasa yana nuna yadda sararin mai amfani ke samun dama ga nau'ikan tsarin fayil daban-daban waɗanda aka saba hawa akan tsarin Linux. Ba a nuna tsarin ba pipes, dmesg и POSIX clocks, wanda kuma aiwatar da tsarin file_operations, samun dama ta hanyar VFS Layer.

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

VFS "launi ne na nannade" tsakanin kiran tsarin da aiwatar da wasu file_operations, kamar ext4 и procfs. Ayyuka file_operations zai iya yin hulɗa tare da ko dai direbobin na'ura ko na'urorin samun damar ƙwaƙwalwar ajiya. tmpfs, devtmpfs и cgroups kar a yi amfani file_operations, amma kai tsaye shiga ƙwaƙwalwar ajiya.
Kasancewar VFS yana ba da damar sake amfani da lambar, tun da ainihin hanyoyin da ke da alaƙa da tsarin fayil ba dole ba ne a sake aiwatar da su ta kowane nau'in tsarin fayil. Sake amfani da lambar al'ada ce ta gama gari tsakanin injiniyoyin software! Koyaya, idan lambar mai sake amfani da ita ta ƙunshi manyan kurakurai, duk aiwatarwa da suka gaji hanyoyin gama gari suna fama da su.

/tmp: Sauƙaƙan ambato

Hanya mai sauƙi don gano cewa VFS suna nan akan tsarin shine a buga mount | grep -v sd | grep -v :/, wanda zai nuna duk an saka (mounted) tsarin fayiloli waɗanda ba mazaunin diski ba da kuma waɗanda ba NFS ba, wanda yake gaskiya ne akan yawancin kwamfutoci. Ɗaya daga cikin abubuwan da aka lissafa (mounts) Babu shakka VFS za ta kasance /tmp, iya kan?

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Kowa ya san wannan ajiya / tmp a kan matsakaici na jiki - hauka! Source.

Me yasa ba a so a adana /tmp akan kafofin watsa labarai na zahiri? Domin fayiloli a cikin /tmp na wucin gadi ne kuma na'urorin ajiya sun yi hankali fiye da ƙwaƙwalwar ajiya inda aka ƙirƙiri tmpfs. Haka kuma, kafofin watsa labarai na zahiri sun fi saurin sawa lokacin da aka sake rubuta su fiye da ƙwaƙwalwar ajiya. A ƙarshe, fayiloli a /tmp na iya ƙunsar mahimman bayanai, don haka sanya su bace akan kowane sake yi abu ne mai mahimmanci.

Abin takaici, wasu rubutun shigarwa na rarraba Linux suna ƙirƙirar /tmp akan na'urar ajiya ta tsohuwa. Kada ku yanke ƙauna idan wannan ya faru da tsarin ku kuma. Bi ƴan sauƙi umarni tare da Arziki Wikidon gyara wannan, kuma ku sani cewa ƙwaƙwalwar ajiya an ware don tmpfs ya zama babu don wasu dalilai. A wasu kalmomi, tsarin da ke da katuwar tmpfs da manyan fayiloli akansa na iya ƙarewa daga ƙwaƙwalwar ajiya da haɗari. Wata alama: yayin gyara fayil /etc/fstab, tuna cewa dole ne ya ƙare tare da sabon layi, in ba haka ba tsarin ku ba zai yi taya ba.

/proc da /sys

kuma /tmp, VFS (tsarin fayiloli na zahiri) waɗanda suka fi sani ga masu amfani da Linux /proc и /sys. (/dev yana zaune a cikin ƙwaƙwalwar ajiya kuma ba shi da file_operations). Me yasa wadannan abubuwa biyu? Mu duba wannan batu.

procfs yana haifar da hoton kwaya da tsarin da yake sa ido akai userspace. A /proc kernel yana buga bayanai game da abin da yake akwai, kamar katsewa, ƙwaƙwalwar ajiya, da mai tsarawa. Bayan haka, /proc/sys shine wurin da aka saita sigogi tare da umarni sysctl, akwai don userspace. Ana nuna matsayi da ƙididdiga na matakai guda ɗaya a cikin kasida /proc/.

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Yana da /proc/meminfo Fayil fanko ne wanda duk da haka ya ƙunshi bayanai masu mahimmanci.

Zama /proc fayiloli suna nuna yadda tsarin fayil ɗin diski na VFS daban-daban zai iya zama. A gefe guda. /proc/meminfo ya ƙunshi bayanai waɗanda za a iya gani tare da umarnin free. A daya bangaren, babu komai! Ta yaya yake aiki? Halin yana tunawa da sanannen labarin mai suna Shin akwai wata idan babu wanda yake kallonsa? Gaskiya da Ka'idar Quantum"Farfesa David Mermin na Jami'ar Cornell ya rubuta a cikin 1985. Gaskiyar ita ce kernel tana tattara ƙididdigar ƙwaƙwalwar ajiya lokacin da aka nemi buƙata /proc, kuma a zahiri a cikin fayiloli /proc babu wani abu lokacin da babu wanda yake kallo. Kamar yadda aka ce Mermin, "Tabbataccen koyaswar ƙididdiga ta ce ma'auni gabaɗaya baya bayyana ƙimar da aka rigaya ta kasance na kayan da ake aunawa." (Kuma la'akari da tambaya game da wata a matsayin aikin gida!)
Da alama babu komai procfs yana da ma'ana saboda bayanin da ke wurin yana da ƙarfi. A dan kadan daban-daban yanayi tare da sysfs. Bari mu kwatanta fayiloli nawa waɗanda ke aƙalla girman byte ɗaya ke ciki /proc da kuma cikin /sys.

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Procfs yana da fayil guda ɗaya, wato ƙayyadaddun kernel ɗin da aka fitar zuwa waje, wanda ke da ban sha'awa saboda yana buƙatar ƙirƙirar sau ɗaya kawai a kowane taya. A daya bangaren kuma, in /sys akwai manyan fayiloli da yawa, da yawa daga cikinsu suna ɗaukar ɗaukakakken shafi na ƙwaƙwalwar ajiya. Yawancin lokaci fayiloli sysfs ya ƙunshi lamba ɗaya ko layi ɗaya daidai, sabanin tebur na bayanan da aka samo daga fayilolin karantawa kamar /proc/meminfo.

Manufar sysfs - samar da kaddarorin karantawa/rubutu abin da kernel ke kira «kobjects» a cikin sararin amfani. Manufar kawai kobjects kirgawa ce ta hanyar haɗin gwiwa: lokacin da aka cire hanyar haɗi ta ƙarshe zuwa kobject, tsarin zai dawo da albarkatun da ke tattare da shi. Duk da haka, /sys ya sanya mafi yawan shahararrun "Stable ABI for userspace" core, wanda babu wanda zai iya taba, a kowane hali "karya". Wannan baya nufin cewa fayilolin da ke cikin sysfs ba su da ƙarfi, waɗanda ba za su yi daidai da ƙidayar abubuwan da ba su tsaya ba.
Tsayayyen kernel ABI yana iyakance abin da zai iya bayyana a ciki /sys, ba abin da yake a zahiri a wannan lokacin ba. Izinin jeri na fayil a cikin sysfs yana ba da haske kan yadda saitunan daidaitawa don na'urori, kayayyaki, tsarin fayil, da sauransu. ana iya daidaita shi ko karantawa. Ƙarshe mai ma'ana ita ce procfs shima wani ɓangare ne na kernel's barga ABI, kodayake wannan ba a fayyace a sarari ba. takardun.

Tsarin fayil ɗin Virtual a Linux: me yasa ake buƙatar su kuma ta yaya suke aiki? Kashi na 1

Fayiloli a ciki sysfs bayyana ƙayyadaddun ƙayyadaddun ƙayyadaddun kowane mahalli kuma ana iya karantawa, rubutacce, ko duka biyun. "0" a cikin fayil ɗin yana nufin ba za a iya cire SSD ba.

Bari mu fara kashi na biyu na fassarar tare da yadda ake saka idanu akan VFS ta amfani da kayan aikin eBPF da bcc, kuma yanzu muna jiran maganganun ku kuma bisa ga al'ada muna gayyatar ku zuwa bude webinar, wanda malaminmu zai gudanar a ranar 9 ga Afrilu - Vladimir Drozdetsky.

source: www.habr.com

Add a comment