Systema fasciculi virtualis in Linux: cur opus sunt et quomodo operantur? Pars I

Salvete omnes, communicamus vobiscum alteram editionis partem "ratio lima virtualis in Linux: quare opus sunt et quomodo operantur?" Primam partem legere potes hic. Admonemus te opportunum esse hanc publicationum seriem congruere cum novo rivulo in decursu deducto "Administrator Linux"qui cito incipit.

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 core, quam petere possunt usores privilegiati .query) Ex mandato linea. Lectori nucleus fontes indica quid acinum facere possit; eBPF instrumenta currens in systemate onerato ostendit quid nucleus actu facit.

Systema fasciculi virtualis in Linux: cur opus sunt et quomodo operantur? Pars I

Feliciter, initii eBPF usus est facile ope instrumentorum BCC, quae praesto sunt cum fasciculis ex distributione generali Linux ac documentis in detail Bernardus Gregg. Tools 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.

Systema fasciculi virtualis in Linux: cur opus sunt et quomodo operantur? Pars I

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.

Systema fasciculi virtualis in Linux: cur opus sunt et quomodo operantur? Pars I

Usura eBPF potes videre quid agatur /syscum USB mico coegi inseritur. Simplex et multiplex exemplum hic ostenditur.

In exemplo supra ostensum est; bcc tool trace.py procer nuntium cum imperio curritur 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 kworkerquae creavit tabella «events» в sysfs. Quocirca vocatus e sysfs_remove_files() ostendet remotionem coegi consecuta in tabella deleta eventsqui 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 cscope Nam quaerere __device_add_disk()ostendit quid sit 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 Linux constanter salit atque descendit. Quomodo tabernus systema sine longa? fsckCum enim engine tandem incipit currit? Et simplex est responsio. Cogitationes embedded in lima radix fidit ratio tantum legendi (Abbreviated 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 /libsi 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 VFS spatio nominali.

Deauratium et nexus collis ex descriptione fundatum, nemo miratur Linux vasa sunt activo modo. Videamus quid fit cum utimur systemd nspawn, utens instrumentum ad currere continens 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 Open Dayquae fient die 18 april.

Quod erat propositum.

Source: www.habr.com

Add a comment