Salvete omnes, communicamus vobiscum alteram editionis partem "ratio lima virtualis in Linux: quare opus sunt et quomodo operantur?" Primam partem legere potes
Quomodo monitor VFS utens eBPF et bcc instrumenta
Facillima via est quomodo nucleus operetur in lima sysfs
in praxi videat, et ad vigilandum facillimum ARM64 adhibeat eBPF. eBPF (brevis pro Berkeley Packet Filter) consistit virtualis apparatus currens in query
) Ex mandato linea. Lectori nucleus fontes indica quid acinum facere possit; eBPF instrumenta currens in systemate onerato ostendit quid nucleus actu facit.
Feliciter, initii eBPF usus est facile ope instrumentorum bcc
Scripta sunt Python cum parva codicis C insertione, quae significat, quivis utriusque linguae familiaris, eas facile mitigare possit. IN' bcc/tools
Scripta Pythonis 80 sunt, quae significat maxime probabilem cinematographicam rationem vel administratorem opportunum ad problema solvendum eligere posse.
Ut saltem superficialis idea illius operis VFSs in systemate currit, tenta vfscount
aut vfsstat
. Hoc ostendet, dicamus quod justos vocat vfs_open()
et "amici" secundo ad litteram accidunt.
vfsstat.py
is Python scriptionem cum C codice interserit, qui munus vocat simpliciter VFS numerat.
Levius exemplum demus et vide quid acciderit cum USB mico coegi in computatrale inserimus et systema deprehendit.
Usura eBPF potes videre quid agatur
/sys
cum USB mico coegi inseritur. Simplex et multiplex exemplum hic ostenditur.
In exemplo supra ostensum est; bcc
tool sysfs_create_files()
. Quod videmus sysfs_create_files()
per quod launched kworker
torrens ad hoc quod mico coegi inserta est, sed quid lima creatus est? Secundum exemplum EBPF virtutem ostendit. Hic trace.py
Vestigium nuclei nuclei (-K optio) et nomen tabella quae creata est sysfs_create_files()
. Unius enuntiationis insertio est C codicem in quo format filum facile cognoscibile includit provisum a scripto Pythone LLVM currente iustus-in-vicis compiler. Hanc lineam ordinat et in prope nucleum intra nucleum perficit. Plena munus signature sysfs_create_files ()
reproduci debet in secundo mandato ut chorda forma ad unum e parametris referri possit. Errores in hoc codice proventuum in fragmento C in cognoscibilibus erroribus a C compilator. Exempli gratia, si modulus -l omittitur, videbis "Deficio textum BPF scribere." Tincidunt qui cum C et Pythone sunt familiares instrumenta inveniunt bcc
facile ampliare et mutare.
Cum USB coegi inserta est, nucleus retractus ostendet PID 7711 filum esse kworker
quae creavit tabella Β«eventsΒ»
Π² sysfs
. Quocirca vocatus e sysfs_remove_files()
ostendet remotionem coegi consecuta in tabella deleta events
qui respondet conceptui generali numerandi. Eodem tempore prospicere sysfs_create_link ()
cum eBPF inserendo USB coegi ostendet nexus symbolicos saltem 48 creatos esse.
Quid ergo lima punctum gestarum? Consuetudinem disk_add_events ()
et aut "media_change"
uel "eject_request"
in eventu lima potest esse memoriae. Hic iacuit nucleus stipes usoris indicat spatium "disco" apparuisse et eiectum esse. Nota quomodo informativus haec methodus investigationis USB coegi inserendo comparata ad instar conatur quomodo res pure ex fonte operantur.
Legere solum radix file systemata enable embedded cogitationes
Utique, nemo ministratorem vel computatorium suum avertit, obturaculum e nervum trahens. Sed quid? Causa est quod systemata fasciculi in repositionis physicae cogitationibus lassi sint ut scribit, et notitiae structurae, quae statum suum recordant, non possunt cum repositione scribenti congruere. Cum hoc incidit, ratio domini expectanda est donec proximam navim ad utilitatem deducant. fsck filesystem-recovery
et in casu pessimo amissis data.
Novimus tamen omnes multas IoT cogitationes, ac itinera, thermostatas et carros, nunc Linux currere. Multae harum machinarum parum habent ad usum instrumenti usoris, et non est modus ut "pure" eas avertat. Finge incipiens autocinetum cum altilium mortui cum potestas in potestate unitatis est fsck
Cum enim engine tandem incipit currit? Et simplex est responsio. Cogitationes embedded in lima radix fidit ratio ro-rootfs
(solum radix fileystem legitur)).
ro-rootfs
multa offerunt beneficia, quae minus perspicua sunt quam fidei. Commodum est quod malware scribere non potest /usr
aut /lib
si nullus Linux processum ibi scribere potest. Alia ratio fasciculi late immutabilis est critica ad subsidia longinquarum machinarum agri, cum personas subsidii in systematibus localibus nituntur, quae nominaliter identificantur cum systematis campi. Forsitan praecipuum (sed etiam insidiosum) beneficium est, quod ro-rootfs copiae tincidunt ad statuendum utra ratio objecta immutabilis erit in proposito stadio systematis. Operatio cum ro-rootfs potest esse inconcinnus et dolor, sicut variabiles saepe constant in programmatibus linguarum, at eorum beneficia facile per caput superadditas excusant.
creatura rootfs
Lege-tantum requirit aliquid extra conatum pro tincidunt immersis, et hoc est ubi VFS in pictura venit. Linux requirit ut files in /var
erant writable, et praeterea multae applicationes populares quae systemata infixa systemata conformationem creare conantur dot-files
Π² $HOME
. Una solutio limatorum configurationum in directorio domus praeire solet et eas in aedificare rootfs
. quia /var
Possibile est accedere illum in partitione separatim scribere, dum /
conscendit, read-tantum. Alterum populare alterum est, ut aggeribus ligandis vel deauratis utatur.
Aggeres nexus et acervos, usus eorum in vasis
Mandatum supplicium man mount
optima via est cognoscere munitiones ligabiles et overlayabiles, quae tincidunt et administratores systematis dant facultatem fasciculi systematis in una via creandi et eam postea exponendi ad applicationes in alio. Ad systemata embedded, hoc significat facultatem ad copia lima in /var
in legere solum mico coegi, sed operies vel linkable montem iter a tmpfs
Π² /var
cum oneraverit, permittet applicationes notas ibi scribere (scrawl). Postero tempore conversus in mutationes to /var
intercidit. Mons ipsasque unionem gignit tmpfs
et ratio lima subiecta et sinit vos facere mutationes ostensibiles ad files existentium in ro-tootf
mons autem ligabilis novas facit vacuas tmpfs
folders visibilis ut writable in ro-rootfs
vias. dum overlayfs
hoc est ius unum (proper
) genus fasciculi systematis, mons ligabilis impletur in
Deauratium et nexus collis ex descriptione fundatum, nemo miratur mountsnoop
ex bcc
.
voca system-nspawn
incipit continens dum currit mountsnoop.py
.
Videamus quid acciderit;
ΠΠ°ΠΏΡΡΠΊ mountsnoop
continens autem "booting" ostendit quod runtime continentis maxime dependet a connexione inonte (initium tantum longi output ostenditur).
est systemd-nspawn
praebet lectus files in procfs
ΠΈ sysfs
exercitum continens vias ad eam rootfs
. praeter MS_BIND
Vexillum, quod montem ligatorium erigit, alia quaedam vexilla in monte definiunt relationem inter mutationes exercitus et spatiis nomina continens. Exempli gratia, mons coniunctus vel mutationes omit /proc
ΠΈ /sys
in continentem, vel ab ea fretus appellationem abscondere.
conclusio,
Intellectus Linux interiores operationes quasi impossibilis labor videri potest, cum ipsum nucleum ingentem codicis quantitatem contineat, Linux usoris spatium omissis applicationibus et systematis interfaces in C bibliothecis quas vocant. glibc
. Uno modo proficere est legere fontem nuclei unius nuclei subsystem, cum emphasi systematis intelligendi vocat et spatium capitis usoris, necnon nuclei interni praecipui, sicut mensa file_operations
. Fasciculi operationes praebere "omnia fasciculus" principium est, easque maxime iucundas administrare. C kernel source files in top-level directory fs/
exsequendam virtualis rationum fasciculi exsequendam, quae involucrum iacuit quod latum et secundum quid simplicem convenientiam praebet inter systemata fasciculi populares et machinas repositas. Vinculum et operies ascendens per nominaminum Linux est magicae VFS quae creando solum scripta et radicem filesystematibus legeris efficit. Composita cum interrogatione codicis, instrumenti eBPF et interfaciei eius bcc
exploratio nucleus facilius quam semper facit.
Scribe, amici, eratne hic articulus tibi utilis? Habesne fortasse commentaria aut dicta? Et qui in Administratore Linux intersunt invitantur ad
Source: www.habr.com