Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

Π—Π΄Ρ€Π°Π²Π΅ΠΉΡ‚Π΅ всички! ΠŸΡ€ΠΎΠ΄ΡŠΠ»ΠΆΠ°Π²Π°ΠΌΠ΅ Π΄Π° стартирамС Π½ΠΎΠ²ΠΈ ΠΏΠΎΡ‚ΠΎΡ†ΠΈ Π·Π° курсовСтС, Π² ΠΊΠΎΠΈΡ‚ΠΎ Π²Π΅Ρ‡Π΅ стС сС влюбили ΠΈ сСга Π±ΡŠΡ€Π·Π°ΠΌΠ΅ Π΄Π° обявим, Ρ‡Π΅ Π·Π°ΠΏΠΎΡ‡Π²Π°ΠΌΠ΅ Π½ΠΎΠ² Π½Π°Π±ΠΎΡ€ ΠΎΡ‚ курсовС β€žLinux Π°Π΄ΠΌΠΈΠ½ΠΈΡΡ‚Ρ€Π°Ρ‚ΠΎΡ€β€œΠΊΠΎΠΉΡ‚ΠΎ Ρ‰Π΅ стартира Π² края Π½Π° Π°ΠΏΡ€ΠΈΠ». Нова публикация Ρ‰Π΅ бъдС Π΄Π°Ρ‚ΠΈΡ€Π°Π½Π° Π·Π° Ρ‚ΠΎΠ²Π° ΡΡŠΠ±ΠΈΡ‚ΠΈΠ΅. Π‘ оригиналния ΠΌΠ°Ρ‚Π΅Ρ€ΠΈΠ°Π» ΠΌΠΎΠΆΠ΅Ρ‚Π΅ ΠΏΡ€ΠΎΡ‡Π΅Ρ‚Π΅Ρ‚Π΅ Ρ‚ΡƒΠΊ.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈΡ‚Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми слуТат ΠΊΠ°Ρ‚ΠΎ Π²ΠΈΠ΄ магичСска абстракция, която позволява Π½Π° философията Π½Π° Linux Π΄Π° ΠΊΠ°ΠΆΠ΅, Ρ‡Π΅ β€žΠ²ΡΠΈΡ‡ΠΊΠΎ Π΅ Ρ„Π°ΠΉΠ»β€œ.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

Какво Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма? Π’ΡŠΠ· основа Π½Π° Π΄ΡƒΠΌΠΈΡ‚Π΅ Π½Π° Π΅Π΄ΠΈΠ½ ΠΎΡ‚ ΠΏΡŠΡ€Π²ΠΈΡ‚Π΅ ΡΡŠΡ‚Ρ€ΡƒΠ΄Π½ΠΈΡ†ΠΈ ΠΈ Π°Π²Ρ‚ΠΎΡ€ΠΈ Π½Π° Linux Π ΠΎΠ±Π΅Ρ€Ρ‚Π° Π›Π°Π²Π°, "Π€Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма Π΅ ΠΉΠ΅Ρ€Π°Ρ€Ρ…ΠΈΡ‡Π½ΠΎ Ρ…Ρ€Π°Π½ΠΈΠ»ΠΈΡ‰Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ, ΡΡŠΠ±Ρ€Π°Π½ΠΈ спорСд спСцифична структура." ΠšΠ°ΠΊΡ‚ΠΎ ΠΈ Π΄Π° Π΅, Ρ‚Π°Π·ΠΈ дСфиниция Π΅ Π΅Π΄Π½Π°ΠΊΠ²ΠΎ подходяща Π·Π° VFAT (Virtual File Allocation Table), Git ΠΈ ΠšΠ°ΡΠ°Π½Π΄Ρ€Π° (NoSQL Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ). И Ρ‚Π°ΠΊΠ°, ΠΊΠ°ΠΊΠ²ΠΎ Ρ‚ΠΎΡ‡Π½ΠΎ опрСдСля Ρ‚Π°ΠΊΠΎΠ²Π° Π½Π΅Ρ‰ΠΎ ΠΊΠ°Ρ‚ΠΎ "Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма"?

Основи Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма

Π―Π΄Ρ€ΠΎΡ‚ΠΎ Π½Π° Linux ΠΈΠΌΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ изисквания Π·Π° ΠΎΠ±Π΅ΠΊΡ‚, ΠΊΠΎΠΉΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС счита Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма. Врябва Π΄Π° ΠΏΡ€ΠΈΠ»Π°Π³Π° ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈΡ‚Π΅ open(), read() ΠΈ write() Π·Π° постоянни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ ΠΈΠΌΠ°Ρ‚ ΠΈΠΌΠ΅Π½Π°. ΠžΡ‚ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½Π° Π³Π»Π΅Π΄Π½Π° Ρ‚ΠΎΡ‡ΠΊΠ° ΠΏΡ€ΠΎΠ³Ρ€Π°ΠΌΠΈΡ€Π°Π½Π΅, ядрото Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π° ΠΎΠ±Ρ‰Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма ΠΊΠ°Ρ‚ΠΎ абстрактСн интСрфСйс ΠΈ Ρ‚Π΅Π·ΠΈ Ρ‚Ρ€ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ сС считат Π·Π° β€žΠ²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈβ€œ ΠΈ нямат ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈΠ΅. Π‘ΡŠΠΎΡ‚Π²Π΅Ρ‚Π½ΠΎ ΠΈΠ·ΠΏΡŠΠ»Π½Π΅Π½ΠΈΠ΅Ρ‚ΠΎ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π°Ρ‚Π° систСма ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅ сС Π½Π°Ρ€ΠΈΡ‡Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма (VFS).

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

Ако ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° отварямС, Ρ‡Π΅Ρ‚Π΅ΠΌ ΠΈ пишСм Π² ΠΎΠ±Π΅ΠΊΡ‚, Ρ‚ΠΎΠ³Π°Π²Π° Ρ‚ΠΎΠ·ΠΈ ΠΎΠ±Π΅ΠΊΡ‚ сС счита Π·Π° Ρ„Π°ΠΉΠ», ΠΊΠ°ΠΊΡ‚ΠΎ ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π²ΠΈΠ΄ΠΈΠΌ ΠΎΡ‚ ΠΏΡ€ΠΈΠΌΠ΅Ρ€Π° Π² ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° ΠΏΠΎ-Π³ΠΎΡ€Π΅.
Π€Π΅Π½ΠΎΠΌΠ΅Π½ΡŠΡ‚ VFS само ΠΏΠΎΠ΄Ρ‡Π΅Ρ€Ρ‚Π°Π²Π° Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΎΡ‚ΠΎ наблюдСниС, Ρ‡Π΅ "всичко Π΅ Ρ„Π°ΠΉΠ»". ΠŸΠΎΠΌΠΈΡΠ»Π΅Ρ‚Π΅ ΠΊΠΎΠ»ΠΊΠΎ странно Π΅, Ρ‡Π΅ Ρ‚ΠΎΠ·ΠΈ малък /dev/console ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ΠΏΠΎ-Π³ΠΎΡ€Π΅ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ Ρ€Π°Π±ΠΎΡ‚ΠΈ ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π°. ΠšΠ°Ρ€Ρ‚ΠΈΠ½Π°Ρ‚Π° ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΈΠ½Ρ‚Π΅Ρ€Π°ΠΊΡ‚ΠΈΠ²Π½Π° Bash сСсия. Π˜Π·ΠΏΡ€Π°Ρ‰Π°Π½Π΅Ρ‚ΠΎ Π½Π° Π½ΠΈΠ· към ΠΊΠΎΠ½Π·ΠΎΠ»Π°Ρ‚Π° (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΎ ΠΊΠΎΠ½Π·ΠΎΠ»Π½ΠΎ устройство) Π³ΠΎ ΠΏΠΎΠΊΠ°Π·Π²Π° Π½Π° Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π΅Π½ Π΅ΠΊΡ€Π°Π½. VFS ΠΈΠΌΠ° Π΄Ρ€ΡƒΠ³ΠΈ, ΠΎΡ‰Π΅ ΠΏΠΎ-странни свойства. НапримСр, Ρ‚ΠΎΠΉ Π²ΠΈ позволява Π΄Π° Ρ‚ΡŠΡ€ΡΠΈΡ‚Π΅ ΠΏΠΎ Ρ‚ΠΎ.

ΠŸΠΎΠ·Π½Π°Ρ‚ΠΈ систСми ΠΊΠ°Ρ‚ΠΎ ext4, NFS ΠΈ /proc ΠΈΠΌΠ°Ρ‚ Ρ‚Ρ€ΠΈ Π²Π°ΠΆΠ½ΠΈ Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ Π² C структура ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ, Π½Π°Ρ€Π΅Ρ‡Π΅Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ_ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΈ. Π’ допълнСниС, ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Ρ€Π°Π·ΡˆΠΈΡ€ΡΠ²Π°Ρ‚ ΠΈ ΠΏΡ€Π΅Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Ρ‚ функционалността Π½Π° VFS ΠΏΠΎ ΠΏΠΎΠ·Π½Π°Ρ‚ ΠΎΠ±Π΅ΠΊΡ‚Π½ΠΎ-ΠΎΡ€ΠΈΠ΅Π½Ρ‚ΠΈΡ€Π°Π½ Π½Π°Ρ‡ΠΈΠ½. ΠšΠ°ΠΊΡ‚ΠΎ отбСлязва Π ΠΎΠ±ΡŠΡ€Ρ‚ Π›Π°Π², абстракцията Π½Π° VFS позволява Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Linux Π±Π΅Π·Π³Ρ€ΠΈΠΆΠ½ΠΎ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π°Ρ‚ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ към ΠΈΠ»ΠΈ ΠΎΡ‚ ΠΎΠΏΠ΅Ρ€Π°Ρ†ΠΈΠΎΠ½Π½ΠΈ систСми Π½Π° Ρ‚Ρ€Π΅Ρ‚ΠΈ страни ΠΈΠ»ΠΈ абстрактни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ Ρ‚Ρ€ΡŠΠ±ΠΈ, Π±Π΅Π· Π΄Π° сС притСсняват Π·Π° тСхния Π²ΡŠΡ‚Ρ€Π΅ΡˆΠ΅Π½ Ρ„ΠΎΡ€ΠΌΠ°Ρ‚ Π½Π° Π΄Π°Π½Π½ΠΈ. ΠžΡ‚ страна Π½Π° потрСбитСля (потрСбитСлско пространство), ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ систСмно ΠΏΠΎΠ²ΠΈΠΊΠ²Π°Π½Π΅, процСс ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΊΠΎΠΏΠΈΡ€Π° ΠΎΡ‚ Ρ„Π°ΠΉΠ» Π² структури ΠΎΡ‚ Π΄Π°Π½Π½ΠΈ Π½Π° ядрото, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΠΊΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° read() Π΅Π΄Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма ΠΈ слСд Ρ‚ΠΎΠ²Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉΡ‚Π΅ ΠΌΠ΅Ρ‚ΠΎΠ΄Π° write () Π΄Ρ€ΡƒΠ³Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма Π·Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.

Π”Π΅Ρ„ΠΈΠ½ΠΈΡ†ΠΈΠΈΡ‚Π΅ Π½Π° Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈΡ‚Π΅, ΠΊΠΎΠΈΡ‚ΠΎ ΠΏΡ€ΠΈΠ½Π°Π΄Π»Π΅ΠΆΠ°Ρ‚ към Π±Π°Π·ΠΎΠ²ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ VFS, са във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ fs/*.c изходния ΠΊΠΎΠ΄ Π½Π° ядрото, Π΄ΠΎΠΊΠ°Ρ‚ΠΎ ΠΏΠΎΠ΄Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈΡ‚Π΅ fs/ ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми. Π―Π΄Ρ€ΠΎΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ‚Π°ΠΊΠ° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° ΠΎΠ±Π΅ΠΊΡ‚ΠΈ ΠΊΠ°Ρ‚ΠΎ cgroups, /dev ΠΈ tmpfs, ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΏΠΎ Π²Ρ€Π΅ΠΌΠ΅ Π½Π° процСса Π½Π° Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅ ΠΈ слСдоватСлно са Π΄Π΅Ρ„ΠΈΠ½ΠΈΡ€Π°Π½ΠΈ Π² поддирСкторията Π½Π° ядрото init/. Π—Π°Π±Π΅Π»Π΅ΠΆΠΈ Ρ‚ΠΎΠ²Π° cgroups, /dev ΠΈ tmpfs Π½Π΅ ΠΈΠ·Π²ΠΈΠΊΠ²Π°ΠΉΡ‚Π΅ "Π³ΠΎΠ»Π΅ΠΌΠΈΡ‚Π΅ Ρ‚Ρ€ΠΈ" Ρ„ΡƒΠ½ΠΊΡ†ΠΈΠΈ file_operations, Π½ΠΎ Π΄ΠΈΡ€Π΅ΠΊΡ‚Π½ΠΎ Ρ‡Π΅Ρ‚Π΅ ΠΈ записва Π² ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
Π”ΠΈΠ°Π³Ρ€Π°ΠΌΠ°Ρ‚Π° ΠΏΠΎ-Π΄ΠΎΠ»Ρƒ ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠ°ΠΊ потрСбитСлското пространство ΠΎΡΡŠΡ‰Π΅ΡΡ‚Π²ΡΠ²Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈΡ‚Π΅ Ρ‚ΠΈΠΏΠΎΠ²Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½ΠΈ Π½Π° Linux систСми. ΠšΠΎΠ½ΡΡ‚Ρ€ΡƒΠΊΡ†ΠΈΠΈΡ‚Π΅ Π½Π΅ са ΠΏΠΎΠΊΠ°Π·Π°Π½ΠΈ pipes, dmesg ΠΈ POSIX clocks, ΠΊΠΎΠΈΡ‚ΠΎ ΡΡŠΡ‰ΠΎ Ρ€Π΅Π°Π»ΠΈΠ·ΠΈΡ€Π°Ρ‚ структурата file_operations, Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ ΠΏΡ€Π΅Π· VFS слоя.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

VFS Π΅ "ΠΎΠ±Π²ΠΈΠ²Π°Ρ‰ слой" ΠΌΠ΅ΠΆΠ΄Ρƒ систСмни извиквания ΠΈ ΠΈΠΌΠΏΠ»Π΅ΠΌΠ΅Π½Ρ‚Π°Ρ†ΠΈΠΈ Π½Π° ΠΎΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½ΠΈ file_operationsΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ΠΈΠΌΠ΅Ρ€ ext4 ΠΈ procfs. Π€ΡƒΠ½ΠΊΡ†ΠΈΠΈ file_operations ΠΌΠΎΠΆΠ΅ Π΄Π° взаимодСйства ΠΈΠ»ΠΈ с Π΄Ρ€Π°ΠΉΠ²Π΅Ρ€ΠΈ Π½Π° устройства, ΠΈΠ»ΠΈ с устройства Π·Π° Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. tmpfs, devtmpfs ΠΈ cgroups Π½Π΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΉ file_operations, Π½ΠΎ ΠΈΠΌΠ° Π΄ΠΈΡ€Π΅ΠΊΡ‚Π΅Π½ Π΄ΠΎΡΡ‚ΡŠΠΏ Π΄ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°.
Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° VFS осигурява Π²ΡŠΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ‚Ρ‚Π° Π·Π° ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄, Ρ‚ΡŠΠΉ ΠΊΠ°Ρ‚ΠΎ основнитС ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈΡ‚Π΅ систСми, Π½Π΅ трябва Π΄Π° сС ΠΈΠ·ΠΏΡŠΠ»Π½ΡΠ²Π°Ρ‚ ΠΏΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎ ΠΎΡ‚ всСки Ρ‚ΠΈΠΏ Ρ„Π°ΠΉΠ»ΠΎΠ²Π° систСма. ΠŸΠΎΠ²Ρ‚ΠΎΡ€Π½ΠΎΡ‚ΠΎ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ Π½Π° ΠΊΠΎΠ΄ Π΅ ΠΎΠ±ΠΈΡ‡Π°ΠΉΠ½Π° ΠΏΡ€Π°ΠΊΡ‚ΠΈΠΊΠ° срСд софтуСрнитС ΠΈΠ½ΠΆΠ΅Π½Π΅Ρ€ΠΈ! Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, Π°ΠΊΠΎ ΠΊΠΎΠ΄ΡŠΡ‚ Π·Π° ΠΌΠ½ΠΎΠ³ΠΎΠΊΡ€Π°Ρ‚Π½Π° ΡƒΠΏΠΎΡ‚Ρ€Π΅Π±Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° сСриозни Π³Ρ€Π΅ΡˆΠΊΠΈ, всички Ρ€Π΅Π°Π»ΠΈΠ·Π°Ρ†ΠΈΠΈ, ΠΊΠΎΠΈΡ‚ΠΎ наслСдяват ΠΎΠ±Ρ‰ΠΈ ΠΌΠ΅Ρ‚ΠΎΠ΄ΠΈ, страдат ΠΎΡ‚ тях.

/tmp: ΠŸΡ€ΠΎΡΡ‚ ΡΡŠΠ²Π΅Ρ‚

ЛСсСн Π½Π°Ρ‡ΠΈΠ½ Π΄Π° ΠΎΡ‚ΠΊΡ€ΠΈΠ΅Ρ‚Π΅, Ρ‡Π΅ VFS ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π°Ρ‚ Π² систСмата, Π΅ Π΄Π° Π²ΡŠΠ²Π΅Π΄Π΅Ρ‚Π΅ mount | grep -v sd | grep -v :/, ΠΊΠΎΠ΅Ρ‚ΠΎ Ρ‰Π΅ ΠΏΠΎΠΊΠ°ΠΆΠ΅ всички ΠΌΠΎΠ½Ρ‚ΠΈΡ€Π°Π½ΠΈ (mounted) Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми, ΠΊΠΎΠΈΡ‚ΠΎ Π½Π΅ са Ρ€Π΅Π·ΠΈΠ΄Π΅Π½Ρ‚Π½ΠΈ Π½Π° диска ΠΈ Π½Π΅ са NFS, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ вярно Π·Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΊΠΎΠΌΠΏΡŽΡ‚Ρ€ΠΈ. Π•Π΄ΠΈΠ½ ΠΎΡ‚ ΠΈΠ·Π±Ρ€ΠΎΠ΅Π½ΠΈΡ‚Π΅ ΠΌΠΎΠ½Ρ‚Π°ΠΆΠΈ (mounts) VFS нСсъмнСно Ρ‰Π΅ /tmp, Π½Π°Π»ΠΈ?

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

ВсСки Π·Π½Π°Π΅ Ρ‚ΠΎΠ²Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ / tmp Π½Π° физичСски носитСл - Π±Π΅Π·ΡƒΠΌΠΈΠ΅! ΠΈΠ·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ.

Π—Π°Ρ‰ΠΎ Π΅ Π½Π΅ΠΆΠ΅Π»Π°Ρ‚Π΅Π»Π½ΠΎ Π΄Π° сС ΡΡŠΡ…Ρ€Π°Π½ΡΠ²Π° /tmp Π½Π° физичСски носитСл? Въй ΠΊΠ°Ρ‚ΠΎ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π² /tmp са Π²Ρ€Π΅ΠΌΠ΅Π½Π½ΠΈ ΠΈ устройствата Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ са ΠΏΠΎ-Π±Π°Π²Π½ΠΈ ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ сС създава tmpfs. ОсвСн Ρ‚ΠΎΠ²Π° физичСският носитСл Π΅ ΠΏΠΎ-ΠΏΠΎΠ΄Π°Ρ‚Π»ΠΈΠ² Π½Π° износванС, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС прСзаписва, ΠΎΡ‚ΠΊΠΎΠ»ΠΊΠΎΡ‚ΠΎ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. И накрая, Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π² /tmp ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ°Ρ‚ ΠΏΠΎΠ²Π΅Ρ€ΠΈΡ‚Π΅Π»Π½Π° информация, Ρ‚Π°ΠΊΠ° Ρ‡Π΅ ΠΈΠ·Ρ‡Π΅Π·Π²Π°Π½Π΅Ρ‚ΠΎ ΠΈΠΌ ΠΏΡ€ΠΈ всяко рСстартиранС Π΅ ΡΡŠΡ‰Π΅ΡΡ‚Π²Π΅Π½Π° функция.

Π—Π° съТалСниС, някои скриптовС Π·Π° инсталиранС Π½Π° Linux дистрибуция ΡΡŠΠ·Π΄Π°Π²Π°Ρ‚ /tmp Π½Π° устройството Π·Π° ΡΡŠΡ…Ρ€Π°Π½Π΅Π½ΠΈΠ΅ ΠΏΠΎ ΠΏΠΎΠ΄Ρ€Π°Π·Π±ΠΈΡ€Π°Π½Π΅. НС сС ΠΎΡ‚Ρ‡Π°ΠΉΠ²Π°ΠΉΡ‚Π΅, Π°ΠΊΠΎ Ρ‚ΠΎΠ²Π° сС Π΅ случило ΠΈ с Π²Π°ΡˆΠ°Ρ‚Π° систСма. Π‘Π»Π΅Π΄Π²Π°ΠΉΡ‚Π΅ няколко прости инструкции с Архив Π½Π° WikiΠ·Π° Π΄Π° ΠΊΠΎΡ€ΠΈΠ³ΠΈΡ€Π°Ρ‚Π΅ Ρ‚ΠΎΠ²Π° ΠΈ ΠΈΠΌΠ°ΠΉΡ‚Π΅ ΠΏΡ€Π΅Π΄Π²ΠΈΠ΄, Ρ‡Π΅ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, Ρ€Π°Π·ΠΏΡ€Π΅Π΄Π΅Π»Π΅Π½Π° Π·Π° tmpfs става Π½Π΅Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° Π΄Ρ€ΡƒΠ³ΠΈ Ρ†Π΅Π»ΠΈ. Π‘ Π΄Ρ€ΡƒΠ³ΠΈ Π΄ΡƒΠΌΠΈ, систСма с гигантски tmpfs ΠΈ Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² нСя ΠΌΠΎΠΆΠ΅ Π΄Π° останС Π±Π΅Π· ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ Π΄Π° сС сринС. Π”Ρ€ΡƒΠ³ ΡΡŠΠ²Π΅Ρ‚: Π΄ΠΎΠΊΠ°Ρ‚ΠΎ Ρ€Π΅Π΄Π°ΠΊΡ‚ΠΈΡ€Π°Ρ‚Π΅ Ρ„Π°ΠΉΠ» /etc/fstab, Π½Π΅ забравяйтС, Ρ‡Π΅ трябва Π΄Π° Π·Π°Π²ΡŠΡ€ΡˆΠ²Π° с Π½ΠΎΠ² Ρ€Π΅Π΄, Π² ΠΏΡ€ΠΎΡ‚ΠΈΠ²Π΅Π½ случай систСмата Π²ΠΈ няма Π΄Π° стартира.

/proc ΠΈ /sys

ОсвСн Ρ‚ΠΎΠ²Π° /tmp, VFS (Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми), ΠΊΠΎΠΈΡ‚ΠΎ са Π½Π°ΠΉ-ΠΏΠΎΠ·Π½Π°Ρ‚ΠΈ Π½Π° ΠΏΠΎΡ‚Ρ€Π΅Π±ΠΈΡ‚Π΅Π»ΠΈΡ‚Π΅ Π½Π° Linux /proc ΠΈ /sys, (/dev сС Π½Π°ΠΌΠΈΡ€Π° Π² сподСлСна ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ няма file_operations). Π—Π°Ρ‰ΠΎ Ρ‚Π΅Π·ΠΈ Π΄Π²Π° ΠΊΠΎΠΌΠΏΠΎΠ½Π΅Π½Ρ‚Π°? НСка Ρ€Π°Π·Π³Π»Π΅Π΄Π°ΠΌΠ΅ Ρ‚ΠΎΠ·ΠΈ Π²ΡŠΠΏΡ€ΠΎΡ.

procfs създава ΠΌΠΎΠΌΠ΅Π½Ρ‚Π½Π° снимка Π½Π° ядрото ΠΈ процСситС, ΠΊΠΎΠΈΡ‚ΠΎ слСди userspace. Π’ /proc ядрото ΠΎΡ‚ΠΏΠ΅Ρ‡Π°Ρ‚Π²Π° информация Π·Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΈΠΌΠ° Π½Π° Ρ€Π°Π·ΠΏΠΎΠ»ΠΎΠΆΠ΅Π½ΠΈΠ΅, ΠΊΠ°Ρ‚ΠΎ ΠΏΡ€Π΅ΠΊΡŠΡΠ²Π°Π½ΠΈΡ, Π²ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½Π° ΠΏΠ°ΠΌΠ΅Ρ‚ ΠΈ ΠΏΠ»Π°Π½ΠΈΡ€ΠΎΠ²Ρ‡ΠΈΠΊ. ОсвСн Ρ‚ΠΎΠ²Π°, /proc/sys Π΅ мястото, ΠΊΡŠΠ΄Π΅Ρ‚ΠΎ ΠΏΠ°Ρ€Π°ΠΌΠ΅Ρ‚Ρ€ΠΈΡ‚Π΅, ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Π½ΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° sysctl, Π΄ΠΎΡΡ‚ΡŠΠΏΠ΅Π½ Π·Π° userspace. Π‘ΡŠΡΡ‚ΠΎΡΠ½ΠΈΠ΅Ρ‚ΠΎ ΠΈ статистиката Π½Π° ΠΎΡ‚Π΄Π΅Π»Π½ΠΈΡ‚Π΅ процСси сС ΠΏΠΎΠΊΠ°Π·Π²Π°Ρ‚ Π² Π΄ΠΈΡ€Π΅ΠΊΡ‚ΠΎΡ€ΠΈΠΈ /proc/.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

Π’ΡƒΠΊ /proc/meminfo Π΅ ΠΏΡ€Π°Π·Π΅Π½ Ρ„Π°ΠΉΠ», ΠΊΠΎΠΉΡ‚ΠΎ Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π° ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ†Π΅Π½Π½Π° информация.

ΠΏΠΎΠ²Π΅Π΄Π΅Π½ΠΈΠ΅ /proc ΠΏΠΎΠΊΠ°Π·Π²Π° ΠΊΠΎΠ»ΠΊΠΎ Ρ€Π°Π·Π»ΠΈΡ‡Π½ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ VFS дисковитС Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми. ΠΎΡ‚ Π΅Π΄Π½Π° страна, /proc/meminfo ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° информация, която ΠΌΠΎΠΆΠ΅ Π΄Π° сС Π²ΠΈΠ΄ΠΈ с ΠΊΠΎΠΌΠ°Π½Π΄Π°Ρ‚Π° free. ΠžΡ‚ Π΄Ρ€ΡƒΠ³Π° страна Π΅ ΠΏΡ€Π°Π·Π½ΠΎ! Как Ρ€Π°Π±ΠΎΡ‚ΠΈ? Битуацията напомня извСстната статия със Π·Π°Π³Π»Π°Π²ΠΈΠ΅ Π‘ΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π° Π»ΠΈ Π»ΡƒΠ½Π°Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ я Π³Π»Π΅Π΄Π°? РСалност ΠΈ ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π° тСория"написано ΠΎΡ‚ профСсора ΠΏΠΎ Ρ„ΠΈΠ·ΠΈΠΊΠ° ΠΎΡ‚ унивСрситСта ΠšΠΎΡ€Π½Π΅Π» Π”Π΅ΠΉΠ²ΠΈΠ΄ ΠœΠ΅Ρ€ΠΌΠΈΠ½ ΠΏΡ€Π΅Π· 1985 Π³. Π€Π°ΠΊΡ‚ Π΅, Ρ‡Π΅ ядрото ΡΡŠΠ±ΠΈΡ€Π° статистика Π·Π° ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°, ΠΊΠΎΠ³Π°Ρ‚ΠΎ сС ΠΎΡ‚ΠΏΡ€Π°Π²ΠΈ заявка към /proc, Π° Π²ΡΡŠΡ‰Π½ΠΎΡΡ‚ във Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ /proc няма Π½ΠΈΡ‰ΠΎ, ΠΊΠΎΠ³Π°Ρ‚ΠΎ Π½ΠΈΠΊΠΎΠΉ Π½Π΅ Π³Π»Π΅Π΄Π°. ΠšΠ°ΠΊΡ‚ΠΎ ΠΊΠ°Π·Π° ΠœΠ΅Ρ€ΠΌΠΈΠ½, "Π€ΡƒΠ½Π΄Π°ΠΌΠ΅Π½Ρ‚Π°Π»Π½Π°Ρ‚Π° ΠΊΠ²Π°Π½Ρ‚ΠΎΠ²Π° Π΄ΠΎΠΊΡ‚Ρ€ΠΈΠ½Π° ΠΊΠ°Π·Π²Π°, Ρ‡Π΅ ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°Π½Π΅Ρ‚ΠΎ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ Π½Π΅ Ρ€Π°Π·ΠΊΡ€ΠΈΠ²Π° ΠΏΡ€Π΅Π΄Π²Π°Ρ€ΠΈΡ‚Π΅Π»Π½ΠΎ ΡΡŠΡ‰Π΅ΡΡ‚Π²ΡƒΠ²Π°Ρ‰Π° стойност Π½Π° свойството, ΠΊΠΎΠ΅Ρ‚ΠΎ сС ΠΈΠ·ΠΌΠ΅Ρ€Π²Π°." (И смятайтС Π²ΡŠΠΏΡ€ΠΎΡΠ° Π·Π° Π»ΡƒΠ½Π°Ρ‚Π° Π·Π° домашна!)
ΠŸΡ€ΠΈΠ²ΠΈΠ΄Π½Π° ΠΏΡ€Π°Π·Π½ΠΎΡ‚Π° procfs ΠΈΠΌΠ° смисъл, Π·Π°Ρ‰ΠΎΡ‚ΠΎ информацията Ρ‚Π°ΠΌ Π΅ Π΄ΠΈΠ½Π°ΠΌΠΈΡ‡Π½Π°. Малко ΠΏΠΎ-Ρ€Π°Π·Π»ΠΈΡ‡Π½Π° ситуация с sysfs. НСка сравним ΠΊΠΎΠ»ΠΊΠΎ Ρ„Π°ΠΉΠ»Π° с Ρ€Π°Π·ΠΌΠ΅Ρ€ ΠΏΠΎΠ½Π΅ Π΅Π΄ΠΈΠ½ Π±Π°ΠΉΡ‚ ΠΈΠΌΠ° /proc ΠΈ /sys.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

Procfs ΠΈΠΌΠ° Π΅Π΄ΠΈΠ½ Ρ„Π°ΠΉΠ», Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Скспортираната конфигурация Π½Π° ядрото, ΠΊΠΎΠ΅Ρ‚ΠΎ Π΅ ΠΈΠ·ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅, Π·Π°Ρ‰ΠΎΡ‚ΠΎ трябва Π΄Π° сС Π³Π΅Π½Π΅Ρ€ΠΈΡ€Π° само вСднъТ ΠΏΡ€ΠΈ Π·Π°Ρ€Π΅ΠΆΠ΄Π°Π½Π΅. ΠžΡ‚ Π΄Ρ€ΡƒΠ³Π° страна, Π² /sys ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΠΏΠΎ-Π³ΠΎΠ»Π΅ΠΌΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅, ΠΌΠ½ΠΎΠ³ΠΎ ΠΎΡ‚ ΠΊΠΎΠΈΡ‚ΠΎ Π·Π°Π΅ΠΌΠ°Ρ‚ цяла страница ΠΎΡ‚ ΠΏΠ°ΠΌΠ΅Ρ‚Ρ‚Π°. ОбикновСно Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ sysfs ΡΡŠΠ΄ΡŠΡ€ΠΆΠ° Ρ‚ΠΎΡ‡Π½ΠΎ Π΅Π΄Π½ΠΎ число ΠΈΠ»ΠΈ Ρ€Π΅Π΄, Π·Π° Ρ€Π°Π·Π»ΠΈΠΊΠ° ΠΎΡ‚ Ρ‚Π°Π±Π»ΠΈΡ†ΠΈΡ‚Π΅ с информация, ΠΏΠΎΠ»ΡƒΡ‡Π΅Π½Π° ΠΎΡ‚ Ρ‡Π΅Ρ‚Π΅Π½Π΅ Π½Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ ΠΊΠ°Ρ‚ΠΎ Π½Π°ΠΏΡ€ /proc/meminfo.

Π¦Π΅Π» sysfs - прСдоставя свойства Π·Π° Ρ‡Π΅Ρ‚Π΅Π½Π΅/запис Π½Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ядрото ΠΈΠ·Π²ΠΈΠΊΠ²Π° Β«kobjectsΒ» Π² потрСбитСлското пространство. ЕдинствСната Ρ†Π΅Π» kobjects Π΅ Π±Ρ€ΠΎΠ΅Π½Π΅ Π½Π° Π²Ρ€ΡŠΠ·ΠΊΠΈ: ΠΊΠΎΠ³Π°Ρ‚ΠΎ послСдната Π²Ρ€ΡŠΠ·ΠΊΠ° към kobject бъдС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚Π°, систСмата Ρ‰Π΅ Π²ΡŠΠ·ΡΡ‚Π°Π½ΠΎΠ²ΠΈ рСсурситС, ΡΠ²ΡŠΡ€Π·Π°Π½ΠΈ с нСя. Π’ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‚ΠΎΠ²Π°, /sys ΡΡŠΡΡ‚Π°Π²Π»ΡΠ²Π° ΠΏΠΎΠ²Π΅Ρ‡Π΅Ρ‚ΠΎ ΠΎΡ‚ извСстнитС "стабилСн ABI Π·Π° потрСбитСлско пространство" ядро, ΠΊΠΎΠ΅Ρ‚ΠΎ Π½ΠΈΠΊΠΎΠΉ Π½ΠΈΠΊΠΎΠ³Π° ΠΈ ΠΏΡ€ΠΈ Π½ΠΈΠΊΠ°ΠΊΠ²ΠΈ обстоятСлства Π½Π΅ ΠΌΠΎΠΆΠ΅ "ΠΏΠΎΡ‡ΠΈΠ²ΠΊΠ°". Π’ΠΎΠ²Π° Π½Π΅ ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅Ρ‚Π΅ Π² sysfs са статични, ΠΊΠΎΠ΅Ρ‚ΠΎ Π±ΠΈ Π±ΠΈΠ»ΠΎ Π½Π΅ΡΡŠΠ²ΠΌΠ΅ΡΡ‚ΠΈΠΌΠΎ с прСброяванСто Π½Π° ΠΏΡ€Π΅ΠΏΡ€Π°Ρ‚ΠΊΠΈ Π½Π° нСстабилни ΠΎΠ±Π΅ΠΊΡ‚ΠΈ.
Бтабилният ABI Π½Π° ядрото ΠΎΠ³Ρ€Π°Π½ΠΈΡ‡Π°Π²Π° Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° сС появи Π² /sys, Π° Π½Π΅ Ρ‚ΠΎΠ²Π°, ΠΊΠΎΠ΅Ρ‚ΠΎ дСйствитСлно ΠΏΡ€ΠΈΡΡŠΡΡ‚Π²Π° Π² Ρ‚ΠΎΠ·ΠΈ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π΅Π½ ΠΌΠΎΠΌΠ΅Π½Ρ‚. Π˜Π·Π±Ρ€ΠΎΡΠ²Π°Π½Π΅Ρ‚ΠΎ Π½Π° Ρ€Π°Π·Ρ€Π΅ΡˆΠ΅Π½ΠΈΡ Π·Π° Ρ„Π°ΠΉΠ»ΠΎΠ²Π΅ Π² sysfs Π΄Π°Π²Π° прСдстава Π·Π° Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π°Ρ‚ настройкитС Π·Π° устройства, ΠΌΠΎΠ΄ΡƒΠ»ΠΈ, Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми ΠΈ Ρ‚.Π½. ΠΌΠΎΠΆΠ΅ Π΄Π° сС ΠΊΠΎΠ½Ρ„ΠΈΠ³ΡƒΡ€ΠΈΡ€Π° ΠΈΠ»ΠΈ Ρ‡Π΅Ρ‚Π΅. Π›ΠΎΠ³ΠΈΡ‡Π½ΠΎΡ‚ΠΎ Π·Π°ΠΊΠ»ΡŽΡ‡Π΅Π½ΠΈΠ΅ Π΅, Ρ‡Π΅ procfs ΡΡŠΡ‰ΠΎ Π΅ част ΠΎΡ‚ стабилния ABI Π½Π° ядрото, Π²ΡŠΠΏΡ€Π΅ΠΊΠΈ Ρ‡Π΅ Ρ‚ΠΎΠ²Π° Π½Π΅ Π΅ ΠΈΠ·Ρ€ΠΈΡ‡Π½ΠΎ посочСно Π² докумСнтация.

Π’ΠΈΡ€Ρ‚ΡƒΠ°Π»Π½ΠΈ Ρ„Π°ΠΉΠ»ΠΎΠ²ΠΈ систСми Π² Linux: Π·Π°Ρ‰ΠΎ са Π½Π΅ΠΎΠ±Ρ…ΠΎΠ΄ΠΈΠΌΠΈ ΠΈ ΠΊΠ°ΠΊ работят? Част 1

Π€Π°ΠΉΠ»ΠΎΠ²Π΅ Π² sysfs описват Π΅Π΄Π½ΠΎ ΠΊΠΎΠ½ΠΊΡ€Π΅Ρ‚Π½ΠΎ свойство Π·Π° всСки ΠΎΠ±Π΅ΠΊΡ‚ ΠΈ ΠΌΠΎΠ³Π°Ρ‚ Π΄Π° Π±ΡŠΠ΄Π°Ρ‚ Ρ‡Π΅Ρ‚ΠΈΠΌΠΈ, записваСми ΠΈΠ»ΠΈ ΠΈ Π΄Π²Π΅Ρ‚Π΅. β€ž0β€œ във Ρ„Π°ΠΉΠ»Π° ΠΎΠ·Π½Π°Ρ‡Π°Π²Π°, Ρ‡Π΅ SSD Π½Π΅ ΠΌΠΎΠΆΠ΅ Π΄Π° бъдС ΠΏΡ€Π΅ΠΌΠ°Ρ…Π½Π°Ρ‚.

НСка Π·Π°ΠΏΠΎΡ‡Π½Π΅ΠΌ Π²Ρ‚ΠΎΡ€Π°Ρ‚Π° част Π½Π° ΠΏΡ€Π΅Π²ΠΎΠ΄Π° с Ρ‚ΠΎΠ²Π° ΠΊΠ°ΠΊ Π΄Π° наблюдавамС VFS с ΠΏΠΎΠΌΠΎΡ‰Ρ‚Π° Π½Π° инструмСнтитС eBPF ΠΈ bcc, Π° сСга ΠΎΡ‡Π°ΠΊΠ²Π°ΠΌΠ΅ Π²Π°ΡˆΠΈΡ‚Π΅ ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€ΠΈ ΠΈ Ρ‚Ρ€Π°Π΄ΠΈΡ†ΠΈΠΎΠ½Π½ΠΎ Π²ΠΈ ΠΊΠ°Π½ΠΈΠΌ Π½Π° ΠΎΡ‚Π²ΠΎΡ€Π΅Π½ ΡƒΠ΅Π±ΠΈΠ½Π°Ρ€, която Ρ‰Π΅ сС ΠΏΡ€ΠΎΠ²Π΅Π΄Π΅ ΠΎΡ‚ нашия ΡƒΡ‡ΠΈΡ‚Π΅Π» Π½Π° 9 Π°ΠΏΡ€ΠΈΠ» - Π’Π»Π°Π΄ΠΈΠΌΠΈΡ€ Π”Ρ€ΠΎΠ·Π΄Π΅Ρ†ΠΊΠΈ.

Π˜Π·Ρ‚ΠΎΡ‡Π½ΠΈΠΊ: www.habr.com

ДобавянС Π½Π° Π½ΠΎΠ² ΠΊΠΎΠΌΠ΅Π½Ρ‚Π°Ρ€