Salama daholo! Manohy mamoaka stream vaovao ho an'ireo taranja efa nitiavanao anay izahay ary maika izahay izao hanambara fa hanomboka andiana taranja vaovao izahay.
Ny rafitra rakitra virtoaly dia karazana abstraction mahagaga izay ahafahan'ny filozofia Linux milaza fa "rakitra ny zava-drehetra."
Inona no atao hoe rafitra fichier? Miorina amin'ny tenin'ny iray amin'ireo mpandray anjara voalohany sy mpanoratra ny Linux
Filesystem Basics
Ny kernel Linux dia manana fepetra sasany ho an'ny orinasa iray izay azo raisina ho rafitra rakitra. Tsy maintsy mampihatra ny fomba open()
, read()
ΠΈ write()
ho an'ny zavatra maharitra manana anarana. Avy amin'ny fomba fijery mitodika amin'ny zavatra
Raha afaka manokatra, mamaky ary manoratra amin'ny sampana iray isika, dia heverina ho rakitra io sampana io, araka ny hitantsika amin'ny ohatra ao amin'ny console etsy ambony.
Ny trangan-javatra VFS dia manasongadina fotsiny ny fomba fijerin'ny Unix fa "rakitra ny zava-drehetra". Eritrereto ny hafahafa fa ny ohatra kely / dev / console etsy ambony dia mampiseho ny fomba fiasan'ny console. Ny sary dia mampiseho fivoriana Bash ifanakalozan-kevitra. Ny fandefasana tady mankany amin'ny console (fitaovana console virtoaly) dia mampiseho izany amin'ny efijery virtoaly. Ny VFS dia manana fananana hafa, na vahiny aza. Ohatra, mamela anao hikaroka amin'ny
Ny rafitra mahazatra toy ny ext4, NFS, ary / proc dia manana fiasa telo manan-danja amin'ny rafitra data C antsoina hoe read()
rafitra rakitra iray ary ampiasao ny fomba write ()
rafitra rakitra hafa ho an'ny famoahana angona.
Ny famaritana asa izay an'ny karazana VFS fototra dia ao anaty rakitra fs/
misy rafitra fichier sasany. Ny core koa dia misy entity toy ny cgroups
, /dev
ΠΈ tmpfs
, izay takiana mandritra ny fizotran'ny boot ary noho izany dia voafaritra ao amin'ny subdirectory kernel init/
. Mariho izany cgroups
, /dev
ΠΈ tmpfs
aza antsoina hoe "telo lehibe". file_operations
, fa mamaky sy manorata mivantana ho fitadidiana.
Ny kisary etsy ambany dia mampiseho ny fomba idiran'ny habaka mpampiasa amin'ireo karazana fichier isan-karazany apetraka amin'ny rafitra Linux. Tsy naseho ny rafitra pipes
, dmesg
ΠΈ POSIX clocks
, izay mampihatra ny rafitra ihany koa file_operations
, miditra amin'ny alalan'ny sosona VFS.
VFS dia "layer wrapper" eo anelanelan'ny antson'ny rafitra sy ny fampiharana ny sasany file_operations
toy ext4
ΠΈ procfs
. asa file_operations
afaka mifandray amin'ny mpamily fitaovana na fitaovana fidirana fahatsiarovana. tmpfs
, devtmpfs
ΠΈ cgroups
aza mampiasa file_operations
, fa miditra mivantana ny fahatsiarovana.
Ny fisian'ny VFS dia manome fahafahana hampiasa indray ny kaody, satria ny fomba fototra mifandray amin'ny rafitra fichier dia tsy voatery haverina amin'ny alΓ lan'ny rafi-drakitra tsirairay. Ny fampiasana kaody indray dia fanao mahazatra eo amin'ny injeniera rindrambaiko! Na izany aza, raha misy ny code azo ampiasaina indray
/tmp: Soso-kevitra tsotra
Ny fomba mora hamantarana fa misy ny VFS amin'ny rafitra iray dia ny manoratra mount | grep -v sd | grep -v :/
, izay hampiseho ny napetraka rehetra (mounted
) rafitra fichier izay tsy monina kapila ary tsy NFS, izay marina amin'ny ankamaroan'ny solosaina. Iray amin'ireo tendrombohitra voatanisa (mounts
) Tsy isalasalana fa hanao izany ny VFS /tmp
, sa tsy izany?
Fantatry ny rehetra izany fitahirizana izany / tmp
amin'ny lafiny ara-batana - hadalana!
Nahoana no tsy ilaina ny mitahiry /tmp
amin'ny haino aman-jery ara-batana? Satria ny rakitra ao /tmp
dia vonjimaika ary ny fitaovana fitahirizana dia miadana kokoa noho ny fahatsiarovana izay namoronana tmpfs. Fanampin'izany, ny haino aman-jery ara-batana dia mora mora kokoa amin'ny fitafy rehefa soratana noho ny fitadidiana. Farany, ny rakitra ao amin'ny /tmp dia mety ahitana fampahalalana saro-pady, ka ny fanjavonan'izy ireo isaky ny reboot dia singa ilaina.
Indrisy anefa fa ny script fametrahana Linux sasany dia mamorona /tmp amin'ny fitaovana fitahirizana amin'ny alΓ lan'ny default. Aza kivy raha nitranga tamin'ny rafitrao koa izany. Araho toromarika tsotra vitsivitsy miaraka amin'ny tmpfs
lasa tsy azo ampiasaina amin'ny tanjona hafa. Raha lazaina amin'ny teny hafa, ny rafitra misy tmpfs goavambe sy rakitra lehibe ao aminy dia mety ho lany fahatsiarovana sy fianjerana. Soso-kevitra iray hafa: eo am-panovana rakitra /etc/fstab
, tadidio fa tsy maintsy mifarana amin'ny tsipika vaovao izany, raha tsy izany dia tsy hivoaka ny rafitrao.
/proc sy /sys
afa-tsy /tmp
, VFS (rafitra rakitra virtoaly) izay mahazatra indrindra amin'ny mpampiasa Linux dia /proc
ΠΈ /sys
. (/dev
mipetraka ao anaty fitadidiana iombonana ary tsy manana file_operations
). Nahoana ireo singa roa ireo? Andeha hojerentsika ity olana ity.
procfs
mamorona sarin'ny kernel sy ny fizotrany manara-maso azy userspace
. The /proc
ny kernel dia manonta fampahalalana momba izay misy azy, toy ny fiatoana, fahatsiarovana virtoaly, ary ny fandaharam-potoana. Ankoatra izany, /proc/sys
dia ny toerana misy ny masontsivana namboarina miaraka amin'ny baiko sysctl
, azo alaina amin'ny userspace
. Ny sata sy ny antontan'isa momba ny fizotran'ny tsirairay dia aseho amin'ny lahatahiry /proc/
.
izany /proc/meminfo
dia rakitra poakaty izay misy fampahalalana sarobidy.
fitondran-tena /proc
Ny rakitra dia mampiseho ny maha-samihafa ny rafitra rakitra kapila VFS. Amin'ny lafiny iray, /proc/meminfo
misy fampahalalana azo jerena miaraka amin'ny baiko free
. Etsy ankilany, banga! Ahoana no fiasan'izy io? Ny zava-misy dia mampahatsiahy ilay lahatsoratra malaza mitondra ny lohateny hoe /proc
, ary tena ao anaty rakitra /proc
tsy misy na inona na inona rehefa tsy misy mijery. Araka ny voalaza
Toa fahabangana procfs
misy dikany satria mavitrika ny vaovao any. Toe-javatra hafa kely miaraka amin'ny sysfs
. Andeha isika hampitaha ny isan'ny rakitra izay iray byte farafahakeliny ny habeny /proc
ary ao /sys
.
Procfs
manana fisie iray, dia ny configuration kernel naondrana, izay tsy misy afa-tsy satria indray mandeha isaky ny boot. Amin'ny lafiny iray, in /sys
misy rakitra lehibe maro, maro amin'izy ireo no maka pejy iray manontolo. Matetika ny rakitra sysfs
misy isa na andalana iray katroka, tsy toy ny tabilao misy fampahalalana azo avy amin'ny famakiana rakitra toy ny /proc/meminfo
.
tanjona sysfs
- omeo toetra mamaky/manoratra ny antsoin'ny kernel Β«kobjectsΒ»
amin'ny espace mpampiasa. Ny tanjona tokana kobjects
dia manisa rohy: rehefa nesorina ny rohy farany mankany amin'ny kobject iray, dia hamerina ny loharanon-karena mifandray amin'izany ny rafitra. Na izany aza, /sys
mahaforona ny malaza indrindra
Ny ABI stable an'ny kernel dia mametra izay mety hiseho /sys
, tsy izay tena misy amin'io fotoana io. Ny fahazoan-dΓ lan'ny rakitra ao amin'ny sysfs dia manome fanazavana momba ny fomba azo amboarina ho an'ny fitaovana, modules, filesystems, sns. azo amboarina na vakiana. Ny fehin-kevitra lojika dia ny procfs dia anisan'ny ABI stable an'ny kernel, na dia tsy voalaza mazava aza izany
Files in sysfs
mamaritra toetra iray manokana ho an'ny sampana tsirairay ary azo vakiana, azo soratana, na izy roa. "0" ao amin'ny rakitra dia midika fa tsy azo esorina ny SSD.
Andao hanomboka ny tapany faharoa amin'ny fandikan-teny amin'ny fomba fanaraha-maso ny VFS amin'ny alΓ lan'ny fitaovana eBPF sy bcc, ary ankehitriny dia miandry ny fanehoan-kevitrao izahay ary manasa anao amin'ny fomba mahazatra.
Source: www.habr.com