Kumusta tanan! Nagpadayon kami sa paglansad sa mga bag-ong sapa alang sa mga kurso nga gihigugma na nimo ug karon nagdali kami sa pagpahibalo nga nagsugod kami usa ka bag-ong hugpong sa mga kurso
Ang mga sistema sa virtual nga file nagsilbi nga usa ka matang sa mahika nga abstraction nga nagtugot sa pilosopiya sa Linux sa pag-ingon nga "ang tanan usa ka file."
Unsa ang file system? Pinasukad sa mga pulong sa usa sa mga una nga nag-ambag ug tagsulat sa Linux
Mga sukaranan sa Filesystem
Ang Linux kernel adunay piho nga mga kinahanglanon alang sa usa ka entidad nga maisip nga usa ka file system. Kinahanglang ipatuman niini ang mga pamaagi open()
, read()
ΠΈ write()
alang sa padayon nga mga butang nga adunay mga ngalan. Gikan sa usa ka object-oriented nga punto sa panglantaw
Kung kita makaabli, makabasa, ug makasulat sa usa ka entidad, nan kana nga entidad giisip nga usa ka file, ingon sa atong makita gikan sa panig-ingnan sa console sa ibabaw.
Ang panghitabo sa VFS nagpasiugda lamang sa obserbasyon nga sama sa Unix nga "ang tanan usa ka file". Hunahunaa kung unsa ka katingad-an nga ang gamay nga / dev / console nga pananglitan sa ibabaw nagpakita kung giunsa ang paglihok sa console. Ang hulagway nagpakita sa usa ka interactive nga Bash session. Ang pagpadala og string ngadto sa console (virtual console device) nagpakita niini sa usa ka virtual screen. Ang VFS adunay lain, bisan ang mga estranghero nga kabtangan. Pananglitan, kini nagtugot kanimo sa pagpangita pinaagi sa
Ang pamilyar nga mga sistema sama sa ext4, NFS, ug / proc adunay tulo ka importante nga mga gimbuhaton sa usa ka C data structure nga gitawag read()
usa ka file system ug dayon gamita ang pamaagi write ()
laing file system alang sa data output.
Ang mga kahulugan sa function nga nahisakop sa base nga mga tipo sa VFS naa sa mga file fs/
adunay pipila ka mga sistema sa file. Ang kinauyokan naglangkob usab sa mga entidad sama sa cgroups
, /dev
ΠΈ tmpfs
, nga gikinahanglan sa panahon sa proseso sa boot ug busa gihubit sa kernel subdirectory init/
. Matikdi kana cgroups
, /dev
ΠΈ tmpfs
ayaw tawga ang "dako nga tulo" nga mga gimbuhaton file_operations
, apan direkta nga pagbasa ug pagsulat sa memorya.
Ang dayagram sa ubos nagpakita kung giunsa pag-access sa userspace ang lain-laing mga klase sa filesystem nga sagad gi-mount sa mga sistema sa Linux. Wala gipakita ang mga istruktura pipes
, dmesg
ΠΈ POSIX clocks
, nga nagpatuman usab sa istruktura file_operations
, na-access pinaagi sa VFS layer.
Ang VFS kay usa ka "wrapper layer" tali sa mga tawag sa sistema ug mga pagpatuman sa pipila file_operations
, sama sa ext4
ΠΈ procfs
. Mga gimbuhaton file_operations
mahimong makig-interact sa mga driver sa device o sa memory access device. tmpfs
, devtmpfs
ΠΈ cgroups
ayaw gamita file_operations
, apan direkta nga ma-access ang memorya.
Ang paglungtad sa VFS naghatag usa ka higayon nga magamit pag-usab ang code, tungod kay ang sukaranan nga mga pamaagi nga adunay kalabotan sa mga file system dili kinahanglan nga ipatuman pag-usab sa matag klase sa file system. Ang paggamit pag-usab sa code kay kasagarang praktis sa mga software engineer! Bisan pa, kung ang magamit nga code adunay sulud
/tmp: Yano nga pahibalo
Ang usa ka dali nga paagi aron mahibal-an nga ang VFS naa sa usa ka sistema mao ang pag-type mount | grep -v sd | grep -v :/
, nga magpakita sa tanan nga naka-mount (mounted
) mga filesystem nga dili residente sa disk ug dili NFS, nga tinuod sa kadaghanan sa mga kompyuter. Usa sa gilista nga mga mount (mounts
) Ang VFS sa walay duhaduha /tmp
, di ba?
Nahibal-an sa tanan kana nga pagtipig / tmp
sa usa ka pisikal nga medium - kabuang!
Ngano nga dili gusto ang pagtipig /tmp
sa pisikal nga media? Tungod kay ang mga file sa /tmp
temporaryo ug mas hinay ang mga storage device kay sa memorya diin gihimo ang tmpfs. Dugang pa, ang pisikal nga media mas dali nga ma-overwrite ang pagsul-ob kaysa memorya. Sa katapusan, ang mga file sa /tmp mahimong adunay sulud nga sensitibo nga kasayuran, mao nga ang pagwagtang niini sa matag pag-reboot usa ka hinungdanon nga bahin.
Ikasubo, ang pipila ka mga script sa pag-install sa pag-apod-apod sa Linux nagmugna / tmp sa aparato sa pagtipig pinaagi sa default. Ayaw pagkawalay paglaum kung mahitabo usab kini sa imong sistema. Sunda ang pipila ka yano nga mga panudlo nga adunay tmpfs
mahimong dili magamit alang sa ubang mga katuyoan. Sa laing pagkasulti, ang usa ka sistema nga adunay higanteng tmpfs ug dagkong mga file niini mahimong mahurot sa memorya ug ma-crash. Laing pahibalo: samtang nag-edit sa usa ka file /etc/fstab
, hinumdomi nga kinahanglan kini matapos sa usa ka bag-ong linya, kung dili ang imong sistema dili mag-boot.
/proc ug /sys
labut pa sa /tmp
, VFS (virtual file system) nga labing pamilyar sa mga tiggamit sa Linux /proc
ΠΈ /sys
, (/dev
nagpuyo sa shared memory ug wala file_operations
). Nganong kining duha ka sangkap? Atong tan-awon kini nga isyu.
procfs
nagmugna og snapshot sa kernel ug sa mga proseso nga gimonitor niini userspace
. ang /proc
ang kernel nag-imprenta og impormasyon mahitungod sa unsay anaa niini, sama sa mga interrupts, virtual memory, ug ang scheduler. Gawas pa, /proc/sys
mao ang dapit diin ang mga parameter gi-configure uban sa sugo sysctl
, magamit alang sa userspace
. Ang kahimtang ug estadistika sa mga indibidwal nga proseso gipakita sa mga direktoryo /proc/
.
kini mao ang /proc/meminfo
usa ka walay sulod nga payl nga bisan pa niana adunay sulod nga bililhong impormasyon.
Paggawi /proc
Ang mga file nagpakita kung unsa ka lainlain ang VFS disk file system. Sa usa ka bahin, /proc/meminfo
naglangkob sa impormasyon nga mahimong tan-awon uban sa sugo free
. Sa laing bahin, walay sulod! Giunsa kini pagtrabaho? Ang kahimtang nagpahinumdom sa bantog nga artikulo nga giulohan /proc
, ug sa tinuod sa mga file /proc
walay bisan unsa kung walay nagtan-aw. Ingon sa giingon
Daw kahaw-ang procfs
makatarunganon tungod kay ang impormasyon didto dinamiko. Usa ka gamay nga lahi nga kahimtang sa sysfs
. Atong itandi kung pila ang mga file nga labing menos usa ka byte ang gidak-on /proc
ug sa /sys
.
Procfs
adunay usa ka file, nga mao ang gi-eksport nga kernel configuration, nga usa ka eksepsiyon tungod kay kini kinahanglan lamang nga mamugna kausa matag boot. Sa laing bahin, sa /sys
adunay daghang dagkong mga file, daghan niini mokuha sa tibuok panid sa memorya. Kasagaran mga file sysfs
adunay eksaktong usa ka numero o linya, dili sama sa mga lamesa sa impormasyon nga nakuha gikan sa pagbasa sa mga file sama sa /proc/meminfo
.
Tumong sysfs
- paghatag ug pagbasa/pagsulat sa mga kabtangan sa gitawag sa kernel Β«kobjectsΒ»
sa userspace. Ang bugtong tumong kobjects
mao ang pag-ihap sa link: kung ang kataposang sumpay sa usa ka kobject matangtang, ibalik sa sistema ang mga kahinguhaan nga nalangkit niini. Bisan pa niana, /sys
naglangkob sa kadaghanan sa mga inila
Ang stable nga ABI sa kernel naglimite sa kung unsa ang makita /sys
, dili ang aktuwal nga anaa nianang partikular nga higayon. Ang paglista sa mga permiso sa file sa sysfs naghatag ug panabut kung giunsa ang pag-configure sa mga setting alang sa mga aparato, module, filesystem, ug uban pa. mahimong ma-configure o mabasa. Ang lohikal nga konklusyon mao nga ang mga procf bahin usab sa stable nga ABI sa kernel, bisan kung wala kini klaro nga gipahayag sa
Mga file sa sysfs
ihulagway ang usa ka partikular nga kabtangan alang sa matag entidad ug mahimong mabasa, masulat, o pareho. Ang "0" sa file nagpasabot nga ang SSD dili matangtang.
Atong sugdan ang ikaduhang bahin sa hubad kung unsaon pagmonitor ang VFS gamit ang eBPF ug bcc nga mga himan, ug karon naghulat kami sa imong mga komento ug tradisyonal nga nagdapit kanimo sa
Source: www.habr.com