
ΠΠ°ΠΊΡΠΎ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π°ΠΊΠΎ Π½Π΅ΠΏΡΠΈΡΡΠ½ΠΎΡΡ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΡΠ»ΡΡΠΈ, ΡΡ Π·Π°Π΄ΡΠ»ΠΆΠΈΡΠ΅Π»Π½ΠΎ ΡΠ΅ ΡΠ΅ ΡΠ»ΡΡΠΈ. Π‘ΠΈΠ³ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΊΠΈ Π΅ ΠΈΠΌΠ°Π» ΡΠ»ΡΡΠ°ΠΈ, ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ Π΅ ΠΈΠ·ΡΡΠΈΡ Π²Π°ΠΆΠ΅Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ ΡΠ΅ΠΊΡΡ Π² ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ΅Π΄Π°ΠΊΡΠΎΡ Π΅ Π±ΠΈΠ» ΡΠ»ΡΡΠ°ΠΉΠ½ΠΎ ΠΌΠ°ΡΠΊΠΈΡΠ°Π½ ΠΈ ΡΠ½ΠΈΡΠΎΠΆΠ΅Π½.
ΠΠΊΠΎ ΡΡΠ΅ Ρ ΠΎΡΡΠ΅Ρ ΠΈΠ»ΠΈ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΠΊ Π½Π° ΡΠ°ΠΉΡ, Π²Π΅ΡΠΎΡΡΠ½ΠΎ ΡΡΠ΅ ΡΠ΅ ΡΠ±Π»ΡΡΠΊΠ²Π°Π»ΠΈ Ρ Ρ Π°ΠΊΠ²Π°Π½ΠΈΡ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΡΠΊΠΈ Π°ΠΊΠ°ΡΠ½ΡΠΈ ΠΈΠ»ΠΈ Π²Π°ΡΠΈΡ ΡΠ°ΠΉΡ. Π ΡΠ°ΠΊΠΈΠ²Π° ΡΠ»ΡΡΠ°ΠΈ Π΅ Π²Π°ΠΆΠ½ΠΎ Π΄Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈΡΠ΅ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡΡΠ°, Π΄Π° ΠΎΡΠΊΡΠΈΠ΅ΡΠ΅ Π½Π°ΡΠΈΠ½Π° Π½Π° ΠΏΡΠΎΠ½ΠΈΠΊΠ²Π°Π½Π΅ ΠΈ ΡΡΠ·Π²ΠΈΠΌΠΎΡΡΡΠ°, ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π° ΠΎΡ ΠΈΠ·Π²ΡΡΡΠΈΡΠ΅Π»Ρ.
ΠΠ° ΡΠ΅ΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΏΡΠΎΠ±Π»Π΅ΠΌΠΈ ΠΏΠ΅ΡΡΠ΅ΠΊΡΠ½ΠΎ ΠΏΠΎΠ΄Ρ
ΠΎΠΆΠ΄Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° NILFS2.
Π’Ρ ΠΏΡΠΈΡΡΡΡΠ²Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, Π·Π°ΠΏΠΎΡΠ²Π°ΠΉΠΊΠΈ ΠΎΡ Π²Π΅ΡΡΠΈΡ 2.6.30.
ΠΡΠΎΠ±Π΅Π½ΠΎΡΡ Π½Π° ΡΠ°Π·ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅, ΡΠ΅ ΡΡ Π΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅: Π²ΠΈΠ½Π°Π³ΠΈ ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π²ΡΡΠ½Π΅ΡΠ΅ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ°ΡΠ° Π½Π°Π·Π°Π΄ ΠΈ Π΄Π° Π²ΠΈΠ΄ΠΈΡΠ΅ ΠΊΠ°ΠΊΠ²Π° Π΅ Π±ΠΈΠ»Π° ΠΏΡΠ΅Π΄ΠΈ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ Π²ΡΠ΅ΠΌΠ΅.
ΠΠ° ΠΎΡΠΈΠ³ΡΡΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°Π·ΠΈ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π»Π½ΠΎΡΡ Π½Π΅ Π΅ Π½ΡΠΆΠ½ΠΎ Π΄Π° Π½Π°ΡΡΡΠΎΠΉΠ²Π°ΡΠ΅ Cron-ΡΠΊΡΠΈΠΏΡΠΎΠ²Π΅, Π΄Π° ΠΏΡΠ°Π²ΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈ Ρ.Π½. Π€Π°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° NILFS2 ΠΏΡΠ°Π²ΠΈ Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΠ°ΠΌΠ°. Π’Ρ Π½ΠΈΠΊΠΎΠ³Π° Π½Π΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π° ΡΡΠ°ΡΠΈ Π΄Π°Π½Π½ΠΈ ΠΈ Π²ΠΈΠ½Π°Π³ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° Π² Π½ΠΎΠ²ΠΈ ΠΎΠ±Π»Π°ΡΡΠΈ Π½Π° Π΄ΠΈΡΠΊΠ°, Π°ΠΊΠΎ ΠΈΠΌΠ° Π΄ΠΎΡΡΠ°ΡΡΡΠ½ΠΎ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ Π΄ΠΈΡΠΊΠΎΠ²ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ. Π ΠΏΡΠ»Π½ΠΎ ΡΡΠΎΡΠ²Π΅ΡΡΡΠ²ΠΈΠ΅ Ρ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Copy-on-Write.
ΠΡΡΡΠ½ΠΎΡΡ, Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΠ°ΠΉΠ» Π²ΠΎΠ΄ΠΈ Π΄ΠΎ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΡΡΠ·Π΄Π°Π²Π°Π½Π΅ Π½Π° Π½ΠΎΠ²Π° ΡΠ½ΠΈΠΌΠΊΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°, Π·Π°ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΡΠ΅ Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΡΠ΅ ΡΠ°Π·ΠΈ Π€Π‘ ΠΊΠ°ΡΠΎ ΠΌΠ°ΡΠΈΠ½Π° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ ΠΈ Π΄Π° Π²ΡΡΡΠ°ΡΠ΅ Π½Π°Π·Π°Π΄ ΡΡΡΡΠΎΡΠ½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅.
ΠΡΡΠΎΡΠΈΡ
NILFS2 Π΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° Π² Π½Π΅Π΄ΡΠ°ΡΠ° , Π²ΡΡΡΠ½ΠΎΡΡ, Π΄ΡΡΠΆΠ°Π²Π½Π° (ΠΈΠΌΠ° ΠΊΠΎΠ½ΡΡΠΎΠ»Π΅Π½ ΠΏΠ°ΠΊΠ΅Ρ) ΠΈ Π½Π°ΠΉ-Π³ΠΎΠ»ΡΠΌΠ°ΡΠ° ΡΠ΅Π»Π΅ΠΊΠΎΠΌΡΠ½ΠΈΠΊΠ°ΡΠΈΠΎΠ½Π½Π° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΡ Π² Π―ΠΏΠΎΠ½ΠΈΡ. ΠΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π² Π»Π°Π±ΠΎΡΠ°ΡΠΎΡΠΈΡΡΠ° CyberSpace Laboratories ΠΏΠΎΠ΄ ΡΡΠΊΠΎΠ²ΠΎΠ΄ΡΡΠ²ΠΎΡΠΎ Π½Π° .
ΠΠ° ΠΊΠ°ΠΊΠ²ΠΎ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΎ Π΅ Π±ΠΈΠ»Π° ΡΠ°Π·ΡΠ°Π±ΠΎΡΠ΅Π½Π° β Π½Π΅ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, ΠΎΠ±Π°ΡΠ΅, ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠ΅Π΄ΠΏΠΎΠ»Π°Π³Π°, ΡΠ΅ ΠΏΠΎΠ΄ΠΎΠ±Π½Π° Π€Π‘, Ρ Π½Π΅ΠΉΠ½ΠΈΡ ΡΡΠ½ΠΊΡΠΈΠΎΠ½Π°Π» Π½Π° "ΠΌΠ°ΡΠΈΠ½Π° Π½Π° Π²ΡΠ΅ΠΌΠ΅ΡΠΎ" Π΅ ΠΈΠ΄Π΅Π°Π»Π½Π° Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΄Π°Π½Π½ΠΈ, Π² ΠΊΠΎΠΈΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π²ΡΠ·Π½ΠΈΠΊΠ½Π΅ ΠΆΠ΅Π»Π°Π½ΠΈΠ΅ Π΄Π° ΡΠ΅ ΠΏΠΎΡΠ°Π·Π³Π»Π΅Π΄Π° ΠΎΡ ΡΠΏΠ΅ΡΡΠ»ΡΠΆΠ±ΠΈΡΠ΅, Π·Π° Π΄Π° ΡΠ΅ Π²ΡΠ·ΠΏΡΠΎΠΈΠ·Π²Π΅Π΄Π΅ ΠΎΡΠ½ΠΎΠ²ΠΎ ΡΠ΅Π»ΠΈΡΡ ΠΊΠΎΠ½ΡΠ΅ΠΊΡΡ Π½Π° SMS, ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΠΈ Ρ.Π½.
NILFS2 ΡΡΡΠΎ ΡΠ°ΠΊΠ°, ΠΏΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½ΠΎ, Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΡΠ΅Π½Π΅Π½ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π·Π° Π²ΡΡΡΠ΅ΡΠ½Π°ΡΠ° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π²ΡΠΈΡΠΊΠΈ ΠΈΠ·ΡΡΠΈΡΠΈ ΠΏΠΈΡΠΌΠ° Π² ΠΏΠΎΡΠ΅Π½ΡΠΊΠ°ΡΠ° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΡΠ΅ ΠΎΡΠΊΡΠΈΡΡ Π³ΡΠ΅ΡΠΊΠΈ Π½Π° ΡΠ»ΡΠΆΠΈΡΠ΅Π»ΠΈΡΠ΅, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎ-ΠΊΡΡΠ½ΠΎ ΠΌΠΎΠ³Π°Ρ Π΄Π° ΠΎΠΏΠΈΡΠ°Ρ Π΄Π° Π³ΠΈ ΠΏΡΠΈΠΊΡΠΈΡΡ, ΠΊΠ°ΡΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ ΠΈΠ»ΠΈ ΠΏΡΠΎΠΌΠ΅Π½ΡΡ ΡΠ²ΠΎΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
ΠΠ°ΠΊ ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΏΡΠΎΡΠ»Π΅Π΄ΠΈ ΡΡΠ»Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π½Π° ΠΊΠΎΡΠ΅ΡΠΏΠΎΠ½Π΄Π΅Π½ΡΠΈΡΡΠ°ΠΠ° Linux ΡΡΡΠ²ΡΡΠΈ (ΠΈ ΠΈΠΌΠ΅Π½Π½ΠΎ ΡΠ°ΠΌ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° NILFS2 Π·Π° Π²ΡΡΡΠ΅ΡΠ½Π° ΡΠΈΠ³ΡΡΠ½ΠΎΡΡ) Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° ΠΈΠΌΠ΅ΠΉΠ»ΠΈ ΡΠ΅ΡΡΠΎ ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° ΡΠ°ΠΉΠ»ΠΎΠ² ΡΠΎΡΠΌΠ°Ρ Π·Π° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° Π΅Π»Π΅ΠΊΡΡΠΎΠ½Π½ΠΈ ΠΏΠΈΡΠΌΠ°. ΠΠ·Π²Π΅ΡΡΠ΅Π½ ΠΊΠ°ΡΠΎ ΡΠΎΡΠΌΠ°Ρ . ΠΠΎΡΡΠ°ΡΡΡΠ½ΠΎ Π΅ Π΄Π° ΡΠ΅ ΠΈΠ½ΡΡΠ°Π»ΠΈΡΠ° ΠΈ Π΄Π° ΡΠ΅ ΠΊΠΎΠ½ΡΠΈΠ³ΡΡΠΈΡΠ° ΡΡΡ ΡΠ°Π½Π΅Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΈΡΠΌΠ° Π² Maildir. ΠΡΡΠ³ΠΈΡΡ ΡΠΎΡΠΌΠ°Ρ Π΅ Π³ΠΎΠ»ΡΠΌ ΡΠ΅ΠΊΡΡΠΎΠ² ΡΠ°ΠΉΠ», ΠΊΠΎΠΉΡΠΎ Π»Π΅ΡΠ½ΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΠΎΡΠ΄Π΅Π»Π½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ.
ΠΠΊΠΎ ΠΏΠΎΡΠ΅Π½ΡΠΊΠΈΡΡ ΡΡΡΠ²ΡΡ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π° Π±Π°Π·Π° Π΄Π°Π½Π½ΠΈ, NILFS2 ΡΠ΅ ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡ Π·Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠΎΡΠ½ΠΈΡ Ρ ΡΠΎΠ½ΠΎΠ»ΠΎΠ³ΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² Π±Π°Π·Π°ΡΠ° ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π΄Π° ΡΠ΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΠΈ Π±Π°Π·Π°ΡΠ° Π½Π° Π²ΡΠ΅ΠΊΠΈ ΠΎΡ ΡΠ΅Π·ΠΈ ΠΌΠΎΠΌΠ΅Π½ΡΠΈ. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½ΡΠΈΡΠ΅ Π½Π° Π±Π°Π·Π°ΡΠ° Π΄Π°Π½Π½ΠΈ, Π·Π° Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΠΊΠ°ΠΊΠ²ΠΎ Π΅ ΠΈΠΌΠ°Π»ΠΎ ΡΠ°ΠΌ ΠΏΠΎ ΡΠΎΠ²Π° Π²ΡΠ΅ΠΌΠ΅...
ΠΠΎ Π½Π΅ΡΠΎ ΡΠ΅ ΠΎΠ±ΡΡΠΊΠ°. ΠΠ°Π»ΠΈ ΡΠΏΠΎΠ½ΡΠΊΠΎΡΠΎ ΠΏΡΠ°Π²ΠΈΡΠ΅Π»ΡΡΠ²ΠΎ Π΅ ΡΠ΅ΡΠΈΠ»ΠΎ Π΄Π° Π½Π΅ ΡΠ»Π΅Π΄ΠΈ Π²ΡΠΈΡΠΊΠΈ (ΠΏΠΎ ΠΏΡΠΈΠ½ΡΠΈΠΏΠ° Π―ΡΠΎΠ²Π°Ρ), ΠΈΠ»ΠΈ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ° Π½Π° NILFS2 Π½Π° ΡΡΠ°Π΄ΠΈΡΠΈΠΎΠ½Π½ΠΈ HDD Π΅ ΠΎΠΊΠ°Π·Π°Π»Π° ΠΏΠΎ-Π½ΠΈΡΠΊΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅ ΠΎΡΠ°ΠΊΠ²Π°ΡΠ΅, ΠΈ NILFS2 Π±Π΅ΡΠ΅ ΠΎΡΠ²ΠΎΠ±ΠΎΠ΄Π΅Π½Π° ΠΏΠΎΠ΄ GPL Π»ΠΈΡΠ΅Π½Π· ΠΈ Π±ΡΡΠ·ΠΎ Π±Π΅ Π²ΠΊΠ»ΡΡΠ΅Π½Π° Π² ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux, ΠΏΠΎΠ½Π΅ΠΆΠ΅ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° ΡΠ΄ΡΠΎΡΠΎ Π½Π° Linux Π½Π΅ Π±ΡΡ Π° ΠΈΠΌΠ°Π»ΠΈ ΠΎΡΠΎΠ±Π΅Π½ΠΈ ΠΎΠΏΠ»Π°ΠΊΠ²Π°Π½ΠΈΡ Π·Π° ΠΊΠΎΠ΄Π°, Π½Π°ΠΏΠΈΡΠ°Π½ ΠΎΡ Π²ΠΈΡΠΎΠΊΠΎΠΊΠ²Π°Π»ΠΈΡΠΈΡΠΈΡΠ°Π½ΠΈ ΡΠΏΠΎΠ½ΡΠΈ.
ΠΠ°ΠΊΠ²ΠΎ ΠΏΡΠ΅Π΄ΡΡΠ°Π²Π»ΡΠ²Π° NILFS2?
ΠΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ: ΠΏΠΎΠ΄ΠΎΠ±Π΅Π½ Π΅ Π½Π° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° ΠΊΠΎΠ½ΡΡΠΎΠ» Π½Π° Π²Π΅ΡΡΠΈΠΈΡΠ΅ . ΠΡΠ΅ΠΊΠΈ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½Ρ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π΅ ΠΊΠΎΠΌΠΈΡ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ Π±Π΅Π· Π·Π½Π°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΏΡΠΈ Π²ΡΡΠΊΠ° ΠΏΡΠΎΠΌΡΠ½Π°: Π±ΠΈΠ»ΠΎ ΡΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅, ΠΏΡΠΎΠΌΡΠ½Π° Π½Π° ΡΡΠ΄ΡΡΠΆΠ°Π½ΠΈΠ΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»Π° ΠΈΠ»ΠΈ ΠΏΡΠ°Π²Π° Π·Π° Π΄ΠΎΡΡΡΠΏ. ΠΡΠ΅ΠΊΠΈ ΠΊΠΎΠΌΠΈΡ ΠΈΠΌΠ° Π½ΠΎΠΌΠ΅Ρ, ΠΊΠΎΠΉΡΠΎ ΡΠ΅ ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ.
ΠΡ Π³Π»Π΅Π΄Π½Π° ΡΠΎΡΠΊΠ° Π½Π° ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈΡΡΠ°: ΠΏΡΠΈΠ»ΠΈΡΠ° Π½Π° ΡΠΈΠΊΠ»ΠΈΡΠ΅Π½ Π±ΡΡΠ΅Ρ. Π€Π°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠ±ΠΈΡΠ° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ ΠΈ Π³ΠΈ Π·Π°ΠΏΠΈΡΠ²Π° Π² Π±Π»ΠΎΠΊ Ρ ΡΠ°Π·ΠΌΠ΅Ρ ΠΎΠΊΠΎΠ»ΠΎ 8 MB (2000 * 4096, ΠΊΡΠ΄Π΅ΡΠΎ 2000 Π΅ Π±ΡΠΎΡΡ Π½Π° Π΅Π»Π΅ΠΌΠ΅Π½ΡΠΈΡΠ΅ Π² Π±Π»ΠΎΠΊΠ°, Π° 4096 Π΅ ΡΠ°Π·ΠΌΠ΅ΡΡΡ Π½Π° ΡΡΡΠ°Π½ΠΈΡΠ°ΡΠ° Π² ΠΏΠ°ΠΌΠ΅ΡΡΠ°). Π¦Π΅Π»ΠΈΡΡ Π΄ΠΈΡΠΊ Π΅ ΡΠ°Π·Π΄Π΅Π»Π΅Π½ Π½Π° ΡΠ°ΠΊΠΈΠ²Π° ΠΏΠ°ΡΡΠ΅ΡΠ°. ΠΠ°ΠΏΠΈΡΡΡ ΡΡΠ°Π²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. ΠΠΎΠ³Π°ΡΠΎ ΡΠ²ΡΡΡΠΈ ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ, Π½Π°ΠΉ-ΡΡΠ°ΡΠΈΡΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΡΠ΅ ΠΈΠ·ΡΡΠΈΠ²Π°Ρ, Π° ΠΏΠ°ΡΡΠ΅ΡΠ°ΡΠ° ΡΠ΅ ΠΏΡΠ΅Π·Π°ΠΏΠΈΡΠ²Π°Ρ.
ΠΡΠ½ΠΎΠ²Π½ΠΈΡΠ΅ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π° Π½Π° NILFS2
- ΠΠ΅ΡΡΠΈΠΎΠ½Π½ΠΎΡΡ!!!
- ΠΡΠΎΡΠ΅Π΄ΡΡΠ°ΡΠ° ΠΏΠΎ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΠ»Π΅Π΄ ΠΏΠΎΠ²ΡΠ΅Π΄Π° Π΅ Π΅Π»Π΅ΠΌΠ΅Π½ΡΠ°ΡΠ½Π°: ΠΏΡΠΈ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ ΡΠ΅ ΡΡΡΡΠΈ ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΎΡΠΎ ΠΏΠ°ΡΡΠ΅ Ρ ΠΏΡΠ°Π²ΠΈΠ»Π½Π° ΠΊΠΎΠ½ΡΡΠΎΠ»Π½Π° ΡΡΠΌΠ° ΠΈ Π²ΡΡΡ Ρ Π½Π΅Π³ΠΎ ΡΠ΅ ΠΏΠΎΡΡΠ°Π²Ρ ΡΡΠΏΠ΅ΡΠ±Π»ΠΎΠΊ. Π’ΠΎΠ²Π° Π΅ ΠΏΡΠ°ΠΊΡΠΈΡΠ΅ΡΠΊΠΈ ΠΌΠΈΠ³Π½ΠΎΠ²Π΅Π½Π° ΠΎΠΏΠ΅ΡΠ°ΡΠΈΡ.
- ΠΠΎΡΠ°Π΄ΠΈ ΡΠ°ΠΊΡΠ°, ΡΠ΅ Π·Π°ΠΏΠΈΡΡΡ Π²ΠΈΠ½Π°Π³ΠΈ ΡΡΠ°Π²Π° Π»ΠΈΠ½Π΅ΠΉΠ½ΠΎ:
- ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΏΠΎΠΊΠ°Π·Π²Π° Π΄ΠΎΠ±ΡΠΈ ΡΠ΅Π·ΡΠ»ΡΠ°ΡΠΈ ΠΏΡΠΈ ΡΠ°Π±ΠΎΡΠ° Π½Π° SSD, Ρ Π±Π°Π²Π΅Π½ ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ»Π΅Π½ Π·Π°ΠΏΠΈΡ.
- NILFS2 ΡΠΏΠ΅ΡΡΡΠ²Π° ΡΠ΅ΡΡΡΡΠΈ Π½Π° SSD, ΡΡΠΉ ΠΊΠ°ΡΠΎ ΠΏΠΎΡΡΠΈ Π»ΠΈΠΏΡΠ²Π° ΡΠ°ΠΊΡΠΎΡ Π½Π° ΡΠΌΠ½ΠΎΠΆΠ°Π²Π°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ°.
ΠΠΎ-ΡΠΎΡΠ½ΠΎ, ΡΠΎΠΉ Π½Π΅ Π΅ ΠΏΠΎΠ²Π΅ΡΠ΅ ΠΎΡ 2.Π Π°Π±ΠΎΡΠ°ΡΠ° Π΅ ΡΠ°ΠΌ, ΡΠ΅ ΠΏΡΠΈ ΡΠΈΠΊΠ»ΠΈΡΠ½Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡ Π½Π° ΡΠ΅Π»ΠΈΡ Π΄ΠΈΡΠΊ NILFS2 ΠΏΡΠ΅Ρ Π²ΡΡΠ»Ρ Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ Π² Π½ΠΎΠ²ΠΈ ΠΏΠ°ΡΡΠ΅ΡΠ° (ΡΠ°Π½ΠΊΠΎΠ²Π΅).ΠΠΊΠΎ ΠΈΠΌΠ°ΠΌΠ΅ Π½Π° Π΄ΠΈΡΠΊΠ° 10% Π½Π΅ΠΈΠ·ΠΌΠ΅Π½ΡΠ΅ΠΌΠΈ Π΄Π°Π½Π½ΠΈ, ΠΏΠΎΠ»ΡΡΠ°Π²Π°ΠΌΠ΅ 10% ΡΡΡΡ Π½Π° Π·Π°ΠΏΠΈΡΠΈΡΠ΅ ΠΏΡΠΈ 1 ΠΏΡΠ»Π½Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡ. Π 50% ΡΡΡΡ ΠΏΡΠΈ 50% Π·Π°ΠΏΡΠ»Π²Π°Π½Π΅ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ Π½Π° 1 ΠΏΡΠ»Π½Π° ΠΏΠ΅ΡΠ΅Π·Π°ΠΏΠΈΡ Π½Π° Π΄ΠΈΡΠΊΠ°.
ΠΠ°ΠΊΡΠΈΠΌΠ°Π»Π½ΠΈΡΡ ΠΊΠΎΠ΅ΡΠΈΡΠΈΠ΅Π½Ρ Π½Π° ΡΡΠΈΠ»Π²Π°Π½Π΅ Π½Π° Π·Π°ΠΏΠΈΡΠ° Π΅ 2. Π’ΠΎΠ²Π° Π΅ ΠΌΠ½ΠΎΠ³ΠΎ ΠΌΠ°Π»ΠΊΠΎ, ΠΊΠ°ΡΠΎ ΡΠ΅ ΠΈΠΌΠ° ΠΏΡΠ΅Π΄Π²ΠΈΠ΄, ΡΠ΅ Π²ΡΠΈΡΠΊΠΎ ΡΠ΅ Π·Π°ΠΏΠΈΡΠ²Π° ΠΏΠΎΡΠ»Π΅Π΄ΠΎΠ²Π°ΡΠ΅Π»Π½ΠΎ. ΠΠ±ΡΠΎ Π²Π·Π΅ΡΠΎ, ΠΌΡΠ»ΡΠΈΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡΡΠ° Π½Π° Π·Π°ΠΏΠΈΡΠ° ΡΠ΅ Π±ΡΠ΄Π΅ ΠΏΠΎ-ΠΌΠ°Π»ΠΊΠ°, ΠΎΡΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΠΏΡΠΈ ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ ΡΡΠ°Π³ΠΌΠ΅Π½ΡΠΈΡΠ°Π½ FS ΡΡΡ ΡΠ΅ΠΊΡΠΎΡ ΠΎΡ 4096 Π±Π°ΠΉΡΠ°. (ΠΠ½ΡΡΠ΅Π½ΠΎ Π΅ ΠΎΡ ΠΊΠΎΠΌΠ΅Π½ΡΠ°ΡΠ°) ).
- ΠΠΎΡΠ΅Π½ΡΠΈΠ°Π»Π½Π° ΠΏΡΠΎΡΡΠΎΡΠ° Π½Π° ΡΠ΅Π°Π»ΠΈΠ·ΠΈΡΠ°Π½Π΅ Π½Π° ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ Π½Π° ΠΎΡΠ΄Π°Π»Π΅ΡΠ΅Π½Π° NILFS2 FS
NILFS2 Π·Π° /home
Π Unix-ΠΏΠΎΠ΄ΠΎΠ±Π½ΠΈ ΠΠ‘, ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ, ΠΈΠΌΠ° ΠΏΠ°ΠΏΠΊΠ° /home, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΡΡΡ ΡΠ°Π½ΡΠ²Π°Ρ Π΄Π°Π½Π½ΠΈΡΠ΅ Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅. Π Π°Π·Π»ΠΈΡΠ½ΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π·Π°ΠΏΠ°Π·Π²Π°Ρ Π² ΡΠ°Π·ΠΈ ΠΏΠ°ΠΏΠΊΠ° ΡΠ²ΠΎΠΈΡΠ΅ Π½Π°ΡΡΡΠΎΠΉΠΊΠΈ, ΡΠ²ΡΡΠ·Π°Π½ΠΈ Ρ ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ½ΠΈΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π».
Π ΠΊΠΎΠΉ, Π°ΠΊΠΎ Π½Π΅ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»ΠΈΡΠ΅, Π½Π°ΠΉ-ΡΠ΅ΡΡΠΎ ΠΏΡΠ°Π²ΠΈ Π³ΡΠ΅ΡΠΊΠΈ? ΠΠ°ΡΠΎΠ²Π°, ΠΊΠ°ΠΊΡΠΎ ΡΠ΅ ΠΊΠ°Π·Π²Π°, ΡΠ°ΠΌΠΈΡΡ ΠΠΎΠ³ Π΅ Π½Π°ΡΠ΅Π΄ΠΈΠ» Π΄Π° ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°ΠΌΠ΅ NILFS2 Π½Π° /home.
ΠΡΠΎΠ±Π΅Π½ΠΎ ΡΠ»Π΅Π΄ ΠΊΠ°ΡΠΎ Ρ ΡΠΈΡΠΎΠΊΠΎΡΠΎ ΡΠ°Π·ΠΏΡΠΎΡΡΡΠ°Π½Π΅Π½ΠΈΠ΅ Π½Π° SSD, ΡΠ΅Π³Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠΈΡΠ΅ΡΠ½ΡΠ²Π°ΠΌΠ΅ Π·Π° Π³ΠΎΠ»Π΅ΠΌΠΈ ΡΠΏΠ°Π΄ΠΎΠ²Π΅ ΠΏΡΠΈ ΠΈΠ·ΠΏΠΎΠ»Π·Π²Π°Π½Π΅ΡΠΎ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ Ρ CoW.
ΠΠ°, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ Π½Π° FS (snapshot) ΠΊΠΎΠ»ΠΊΠΎΡΠΎ ΡΠ΅ΡΡΠΎ ΠΏΠΎΠΆΠ΅Π»Π°Π΅ΠΌ ΠΈ Π² ZFS, ΠΈ Π² BTRFS, Π½ΠΎ Π²ΠΈΠ½Π°Π³ΠΈ ΠΈΠΌΠ° ΡΠΈΡΠΊ, ΡΠ΅ Π·Π°Π³ΡΠ±Π΅Π½ΠΎΡΠΎ ΠΈΠ·ΠΌΠ΅Π½Π΅Π½ΠΈΠ΅ Π½Π° ΡΠ°ΠΉΠ»Π° ΡΠ΅ ΡΠ΅ ΠΎΠΊΠ°ΠΆΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ½ΠΈΠΌΠΊΠΈΡΠ΅. Π ΡΠ½ΠΈΠΌΠΊΠΈΡΠ΅ ΡΡΡΠΎ ΡΡΡΠ±Π²Π° Π΄Π° ΡΠ΅ Π°Π΄ΠΌΠΈΠ½ΠΈΡΡΡΠΈΡΠ°Ρ: Π΄Π° ΡΠ΅ ΠΏΡΠ΅ΠΌΠ°Ρ Π²Π°Ρ ΡΡΠ°ΡΠΈ. Π NILFS2 Π²ΡΠΈΡΠΊΠΎ ΡΠΎΠ²Π° ΡΡΠ°Π²Π° Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ, Π±ΡΠΊΠ²Π°Π»Π½ΠΎ Π½Π° Π²ΡΠ΅ΠΊΠΈ Π½ΡΠΊΠΎΠ»ΠΊΠΎ ΡΠ΅ΠΊΡΠ½Π΄ΠΈ.
Π‘ΡΠ·Π΄Π°Π΄ΠΎΡ Π»ΠΎΠ³ΠΈΡΠ΅Π½ ΡΠΎΠΌ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π° lvcreate (Π² Π³ΡΡΠΏΠ°ΡΠ° ΡΠΎΠΌΠΎΠ²Π΅ nvme, ΡΡΠ½ΡΠΊ ΠΏΡΠ» thin). ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΡΠ΅ ΡΡΠ·Π΄Π°Π²Π° ΠΈΠΌΠ΅Π½Π½ΠΎ Π½Π° ΡΠΎΠΌ ΠΎΡ lvm, ΡΡΠΉ ΠΊΠ°ΡΠΎ Π² ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠΎΠΉ ΠΌΠΎΠΆΠ΅ Π»Π΅ΡΠ½ΠΎ Π΄Π° Π±ΡΠ΄Π΅ ΡΠ°Π·ΡΠΈΡΠ΅Π½. ΠΡΠ΅ΠΏΠΎΡΡΡΠ²Π°ΠΌ Π΄Π° ΠΈΠΌΠ°ΡΠ΅ 50% ΡΠ²ΠΎΠ±ΠΎΠ΄Π½ΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ Π½Π° Π΄ΠΈΡΠΊΠ° Ρ NILFS2 Π·Π° ΠΏΡΠΈΠ»ΠΈΡΠ½Π° Π΄ΡΠ»Π±ΠΎΡΠΈΠ½Π° Π½Π° Π²Π΅ΡΡΠΈΠΈ.
lvcreate -V10G -T nvme/thin -n homeΠΈ Π³ΠΎ ΡΠΎΡΠΌΠ°ΡΠΈΡΠ°Ρ Π² NILFS2:
mkfs.nilfs2 -L nvme_home /dev/nvme/home
mkfs.nilfs2 (nilfs-utils 2.1.5)
ΠΠ°ΠΏΠΎΡΠ²Π°Π½Π΅ Π½Π° ΠΏΠΈΡΠ°Π½Π΅ Π½Π° ΠΏΡΡΠ²ΠΎΠ½Π°ΡΠ°Π»Π½ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π² ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ
Β Β Β Β Β Β Π Π°Π·ΠΌΠ΅Ρ Π½Π° Π±Π»ΠΎΠΊΠ°:4096Β Π£ΡΡΡΠΎΠΉΡΡΠ²ΠΎ:/dev/nvme/home1Β Π Π°Π·ΠΌΠ΅Ρ Π½Π° ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΡΠΎ:10737418240
ΠΠ½ΠΈΡΠΈΠ°Π»ΠΈΠ·Π°ΡΠΈΡ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° ΡΡΠΏΠ΅ΡΠ½Π° !!
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΡΡΠ±Π²Π° Π΄Π° ΠΊΠΎΠΏΠΈΡΠ°ΠΌ Π²ΡΠΈΡΠΊΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ ΠΎΡ ΡΠ΅ΠΊΡΡΠΎΡΠΎ /home.
ΠΠ°ΠΏΡΠ°Π²ΠΈΡ ΡΠΎΠ²Π° Π²Π΅Π΄Π½Π°Π³Π° ΡΠ»Π΅Π΄ ΡΡΠ°ΡΡΠΈΡΠ°Π½Π΅ Π½Π° ΠΊΠΎΠΌΠΏΡΡΡΡΠ°, ΠΏΡΠ΅Π΄ΠΈ Π΄Π° Π²Π»ΡΠ·Π° Π² Π°ΠΊΠ°ΡΠ½ΡΠ° ΡΠΈ, ΠΎΡ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ root. ΠΠΊΠΎ Π±ΡΡ Π²Π»ΡΠ·ΡΠ» ΡΡΡ ΡΠΎΠ±ΡΡΠ²Π΅Π½ΠΈΡ ΡΠΈ ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π», Π½ΡΠΊΠΎΠΈ ΠΏΡΠΎΠ³ΡΠ°ΠΌΠΈ Π±ΠΈΡ Π° ΠΎΡΠ²ΠΎΡΠΈΠ»ΠΈ ΡΠΎΠΊΠ΅ΡΠΈ ΠΈ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π² ΠΏΠ°ΠΏΠΊΠ°ΡΠ° Π½Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ ΠΌΠΈ /home/user, ΠΊΠΎΠ΅ΡΠΎ Π±ΠΈ Π½Π°ΠΏΡΠ°Π²ΠΈΠ»ΠΎ ΡΠΈΡΡΠΎΡΠΎ ΠΊΠΎΠΏΠΈΡΠ°Π½Π΅ Π·Π°ΡΡΡΠ΄Π½ΠΈΡΠ΅Π»Π½ΠΎ. ΠΠ°ΠΊΡΠΎ Π΅ ΠΈΠ·Π²Π΅ΡΡΠ½ΠΎ, Π΄ΠΎΠΌΠ°ΡΠ½Π°ΡΠ° ΠΏΠ°ΠΏΠΊΠ° Π·Π° ΠΏΠΎΡΡΠ΅Π±ΠΈΡΠ΅Π»Ρ root ΠΎΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΎ ΡΠ΅ Π½Π°ΠΌΠΈΡΠ° Π½Π° ΠΏΡΡΡ /root, ΡΠ°ΠΊΠ° ΡΠ΅ Π½Π° Π΄ΡΠ»Π° /home Π½ΡΠΌΠ° Π΄Π° ΡΠ΅ ΠΎΡΠ²ΠΎΡΡΡ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅.
mkdir /mnt/newhome
mount -t nilfs2 /dev/nvme/home /mnt/newhome
cp -a /home/. /mnt/newhome ΠΠΎ ΠΎΡΠ½ΠΎΡΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΠ»Π΅Π΄Π½ΠΈΡ ΡΠ΅Π΄ Π²ΠΈΠΆ. .
Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΊΠΎΡΠΈΠ³ΠΈΡΠ°ΠΌΠ΅ /etc/fstab, Π² ΠΊΠΎΡΡΠΎ ΡΠ΅ ΠΌΠΎΠ½ΡΠΈΡΠ° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ° Π·Π° /home, Π½Π°
/dev/disk/by-label/nvme_home /home nilfs2Β Β noatime 0 0
ΠΠΏΡΠΈΡΒ noatime Π΅ Π½Π΅ΠΎΠ±Ρ
ΠΎΠ΄ΠΈΠΌΠ° Π·Π° ΡΠ²Π΅Π»ΠΈΡΠ°Π²Π°Π½Π΅ Π½Π° ΠΏΡΠΎΠΈΠ·Π²ΠΎΠ΄ΠΈΡΠ΅Π»Π½ΠΎΡΡΡΠ°, ΡΠ°ΠΊΠ° ΡΠ΅ ΠΏΡΠΈ Π²ΡΡΠΊΠΎ ΠΈΠ·Π²ΠΈΠΊΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ Π΄Π° Π½Π΅ ΡΠ΅ ΠΏΡΠΎΠΌΠ΅Π½Ρ atime. Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΡΠ΅ΡΡΠ°ΡΡΠΈΡΠ°ΠΌΠ΅.
ΠΠΈΠ΄ΠΎΠ²Π΅ ΡΠ½ΠΈΠΌΠΊΠΈ Π² NILFS2.
ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½Π°ΡΠ° ΡΠ½ΠΈΠΌΠΊΠ° Π±Π΅Π· Π·Π°ΡΠΈΡΠ° ΠΎΡ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΡΠ΅ΠΊΠΏΠΎΠΈΠ½Ρ (checkpoint ΠΈΠ»ΠΈ ΡΠΎΡΠΊΠ° Π½Π° Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅).
Π‘Π½ΠΈΠΌΠΊΠ° Ρ Π·Π°ΡΠΈΡΠ° ΠΎΡ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΠ²Π°Π½Π΅ ΡΠ΅ Π½Π°ΡΠΈΡΠ° ΡΠ½Π΅ΠΏΡΠΎΡ (snapshot), ΡΠ»Π΅Π΄ ΡΠΎΠ²Π° ΠΏΡΠΎΡΡΠΎ ΡΠ½ΠΈΠΌΠΊΠ°.
ΠΡΠ΅Π³Π»Π΅Π΄ΡΡ Π½Π° ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ²Π΅ΡΠ΅ ΡΠ΅ ΠΈΠ·Π²ΡΡΡΠ²Π° Ρ ΠΊΠΎΠΌΠ°Π½Π΄Π°ΡΠ° lscp
ΠΡΠ΅Π³Π»Π΅Π΄ Π½Π° ΡΠ½ΠΈΠΌΠΊΠΈΡΠ΅ (ΡΠ½Π΅ΠΏΡΠΎΡΠΎΠ²Π΅) lscp -s
ΠΠΎΠΆΠ΅ΠΌ ΠΈ ΡΠ°ΠΌΠΈ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΈ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ²Π΅ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ Ρ ΠΏΠΎΠΌΠΎΡΡΠ° Π½Π°:
mkcp [-s] ΡΡΡΡΠΎΠΉΡΡΠ²ΠΎΠΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½Π΅ Π½Π° Π΄Π°Π½Π½ΠΈ.
NILFS ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π° Π΄Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅ Π½Π΅ΠΎΠ³ΡΠ°Π½ΠΈΡΠ΅Π½ Π±ΡΠΎΠΉ ΡΡΠ°ΡΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ ΠΏΠ°ΡΠ°Π»Π΅Π»Π½ΠΎ Ρ ΡΠ°Π±ΠΎΡΠ°ΡΠ° Ρ ΠΎΡΠ½ΠΎΠ²Π½Π°ΡΠ° ΠΊΠ»ΠΎΠ½Π½Π° ΡΡΡΡΠΊΡΡΡΠ° Π½Π° ΡΠ°ΠΉΠ»ΠΎΠ²Π°ΡΠ° ΡΠΈΡΡΠ΅ΠΌΠ°. ΠΠΎ ΡΠ°ΠΌΠΎ Π² ΡΠ΅ΠΆΠΈΠΌ Π½Π° ΡΠ΅ΡΠ΅Π½Π΅.
ΠΡΠΈΡΠΊΠΎ Π΅ ΡΡΡΡΠΎΠ΅Π½ΠΎ ΡΠ°ΠΊΠ°. ΠΠ±ΠΈΠΊΠ½ΠΎΠ²Π΅Π½ΠΈΡΠ΅ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΈ, ΠΊΠΎΠΈΡΠΎ NILFS2 ΠΏΡΠ°Π²ΠΈ, ΠΌΠΎΠ³Π°Ρ Π΄Π° Π±ΡΠ΄Π°Ρ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΎ ΠΈΠ·ΡΡΠΈΡΠΈ ΠΏΠΎ Π²ΡΡΠΊΠΎ Π²ΡΠ΅ΠΌΠ΅ (ΠΊΠΎΠ³Π°ΡΠΎ ΡΠ²ΡΡΡΠΈ Π΄ΠΈΡΠΊΠΎΠ²ΠΎΡΠΎ ΠΏΡΠΎΡΡΡΠ°Π½ΡΡΠ²ΠΎ ΠΈΠ»ΠΈ ΡΠΏΠΎΡΠ΅Π΄ ΠΏΡΠ°Π²ΠΈΠ»Π°ΡΠ° Π½Π° nilfs_cleanerd), Π·Π°ΡΠΎΠ²Π° ΠΏΡΠ΅Π΄ΠΈ ΠΌΠΎΠ½ΡΠ°ΠΆΠ° ΡΡΡΠ±Π²Π° Π΄Π° ΠΏΡΠ΅Π²Π΅Π΄Π΅ΠΌ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ° Π² ΡΠ½Π΅ΠΏΡΠΎΡ ΠΈΠ»ΠΈ, Π½Π° Π±ΡΠ»Π³Π°ΡΡΠΊΠΈ, Π΄Π° ΡΠΈΠΊΡΠΈΡΠ°ΠΌΠ΅ ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ°.
chcp ss Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ°Π‘Π»Π΅Π΄ ΡΠΎΠ²Π° ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΠΌΠΎΠ½ΡΠΈΡΠ°ΠΌΠ΅ ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ°, Π½Π°ΠΏΡΠΈΠΌΠ΅Ρ, ΡΠ°ΠΊΠ°:
mount -t nilfs2 -r -o cp=Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ° /dev/nvme/home /mnt/nilfs/Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ° Π‘Π»Π΅Π΄ ΠΊΠΎΠ΅ΡΠΎ ΠΊΠΎΠΏΠΈΡΠ°ΠΌΠ΅ Π²ΡΠ·ΡΡΠ°Π½ΠΎΠ²ΡΠ²Π°Π½ΠΈΡΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ ΠΎΡ ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ° Π² /home.
Π Π²ΠΏΠΎΡΠ»Π΅Π΄ΡΡΠ²ΠΈΠ΅ ΡΠ²Π°Π»ΡΠΌΠ΅ ΡΠ»Π°Π³Π° Π½Π° Π½Π΅ΠΏΡΠΎΠΌΠ΅Π½ΡΠ΅ΠΌΠΎΡΡ ΠΎΡ ΡΠ½ΠΈΠΌΠΊΠ°ΡΠ°, Π·Π° Π΄Π° ΠΌΠΎΠΆΠ΅ Π² Π±ΡΠ΄Π΅ΡΠ΅ Π°Π²ΡΠΎΠΌΠ°ΡΠΈΡΠ½ΠΈΡΡ ΠΎΡΠΈΡΡΠ²Π°Ρ ΠΈΠ½ΡΡΡΡΠΌΠ΅Π½Ρ Π΄Π° ΠΈΠ·ΡΡΠΈΠ΅ ΠΎΡΡΠ°ΡΠ΅Π»ΠΈΡΠ΅ Π΄Π°Π½Π½ΠΈ:
chcp cp Π½ΠΎΠΌΠ΅Ρ_ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠ°Π£ΡΠΈΠ»ΠΈΡΠΈ Π·Π° NILFS2
Π ΡΡΠΊ ΠΈΠΌΠ°ΠΌΠ΅ ΠΏΡΠΎΠ±Π»Π΅ΠΌ. ΠΠ°, ΡΠ°Π·Π±ΠΈΡΠ° ΡΠ΅, ΠΌΠΎΠΆΠ΅ΠΌ Π΄Π° ΡΡΠ·Π΄Π°Π²Π°ΠΌΠ΅ ΡΠ°ΠΉΠ»ΠΎΠ²ΠΈ ΡΠΈΡΡΠ΅ΠΌΠΈ, Π΄Π° ΠΏΡΠΎΠΌΠ΅Π½ΡΠΌΠ΅ ΡΠ°Π·ΠΌΠ΅ΡΠ° ΠΈΠΌ ΠΎΠ½Π»Π°ΠΉΠ½, Π΄Π° ΠΏΡΠ΅Π³Π»Π΅ΠΆΠ΄Π°ΠΌΠ΅ ΡΠΏΠΈΡΡΠΊΠ° Π½Π° ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ²Π΅ΡΠ΅, Π΄Π° Π³ΠΈ ΠΏΡΠ°Π²ΠΈΠΌ ΠΈ ΠΈΠ·ΡΡΠΈΠ²Π°ΠΌΠ΅. ΠΠ°ΠΊΠ΅ΡΡΡ nilfs2-utils ΠΏΡΠ΅Π΄ΠΎΡΡΠ°Π²Ρ ΠΌΠΈΠ½ΠΈΠΌΠ°Π»Π½ΠΎ Π½Π΅ΠΎΠ±Ρ ΠΎΠ΄ΠΈΠΌΠΎΡΠΎ.
Π’ΡΠΉ ΠΊΠ°ΡΠΎ NTT ΡΠΏΡΡ ΡΠΈΠ½Π°Π½ΡΠΈΡΠ°Π½Π΅ΡΠΎ, Π½ΡΠΌΠ° Π±ΡΡΠ·ΠΈ Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²ΠΈ ΡΡΠΈΠ»ΠΈΡΠΈ, ΠΊΠΎΠΈΡΠΎ ΠΏΠΎΠ·Π²ΠΎΠ»ΡΠ²Π°Ρ ΠΈΠ·Π²Π΅ΠΆΠ΄Π°Π½Π΅ Π½Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π² ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅, Π΄Π° ΡΠ΅ Π½Π°ΠΏΡΠ°Π²ΠΈ ΡΡΠ°Π²Π½Π΅Π½ΠΈΠ΅ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ½ΠΈΠΌΠΊΠΈ.
ΠΠΎΡΡΠ° ΡΡΠΈΠ»ΠΈΡΠ° n2u
ΠΠ° Π΄Π° Π·Π°ΠΏΡΠ»Π½Ρ ΡΠΎΠ·ΠΈ Π²Π°ΠΊΡΡΠΌ, Π½Π°ΠΏΠΈΡΠ°Ρ , ΠΊΠΎΡΡΠΎ ΠΌΠΎΠΆΠ΅ Π΄Π° ΠΈΠ·Π²Π΅ΠΆΠ΄Π° ΠΈΡΡΠΎΡΠΈΡΡΠ° Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅ Π½Π° ΠΊΠΎΠ½ΠΊΡΠ΅ΡΠ΅Π½ ΡΠ°ΠΉΠ»/Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
n2u log filenameΠΠ·Ρ ΠΎΠ΄ΡΡ Π΅ ΠΏΡΠΈΠ±Π»ΠΈΠ·ΠΈΡΠ΅Π»Π½ΠΎ ΡΠ°ΠΊΡΠ²:
CHECKPOINT ΠΠΠ’Π ΠΠ ΠΠΠ Π’ΠΠ Π ΠΠΠΠΠ Π ΠΠΠΠ
1787552 2019-11-24 22:08:00 first 7079 cp
1792659 2019-11-25 23:09:05 changed 7081 cpΠ’Ρ ΡΠ°Π±ΠΎΡΠΈ Π΄ΠΎΡΡΠ° Π±ΡΡΠ·ΠΎ Π·Π° ΠΈΠ·Π±ΡΠ°Π½ΠΈΡ ΠΌΠ΅ΡΠΎΠ΄ Π½Π° ΡΠ΅Π°Π»ΠΈΠ·Π°ΡΠΈΡ: ΡΡΡΡΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ°ΠΉΠ»ΠΎΠ²Π΅ΡΠ΅ Ρ ΠΌΠ΅ΡΠΎΠ΄Π° Π½Π° Π±ΠΈΡΠ΅ΠΊΡΠΈΡ, Π±ΡΡΠ·ΠΎ ΠΌΠΎΠ½ΡΠΈΡΠ°Π½Π΅ ΠΈ ΡΡΠ°Π²Π½ΡΠ²Π°Π½Π΅ Π½Π° ΡΠ°ΠΉΠ»/Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ Π² ΡΠ°Π·Π»ΠΈΡΠ½ΠΈ ΡΠ½ΠΈΠΌΠΊΠΈ.
ΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π·Π°Π΄Π°Π΄Π΅ Π΄ΠΈΠ°ΠΏΠ°Π·ΠΎΠ½ ΠΎΡ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ²Π΅ ΡΡΠ΅Π· ΠΊΠ»ΡΡΠ° -cp CP1:CP2 ΠΈΠ»ΠΈ -cp {YEAR-MM-DD}:{YEAR-MM-DD}.
Π‘ΡΡΠΎ ΡΠ°ΠΊΠ° ΠΌΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ Π²ΠΈΠ΄ΠΈ ΡΠ°Π·Π»ΠΈΠΊΠ°ΡΠ° ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ²Π΅ΡΠ΅ Π·Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ°ΠΉΠ» ΠΈΠ»ΠΈ Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
n2u diff -r cp1:cp2 filenameΠΠΎΠΆΠ΅ Π΄Π° ΡΠ΅ ΠΈΠ·Π²Π»Π΅ΡΠ΅ ΡΡΠ»Π°ΡΠ° ΠΈΡΡΠΎΡΠΈΡ Π½Π° ΠΏΡΠΎΠΌΠ΅Π½ΠΈΡΠ΅: Π²ΡΠΈΡΠΊΠΈ ΡΠ°Π·Π»ΠΈΠΊΠΈ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅ΠΊΠΏΠΎΠΈΠ½ΡΠΎΠ²Π΅ΡΠ΅ Π½Π° ΠΎΠΏΡΠ΅Π΄Π΅Π»Π΅Π½ ΡΠ°ΠΉΠ»/Π΄ΠΈΡΠ΅ΠΊΡΠΎΡΠΈΡ:
n2u blame [-r cp1:cp2] filenameΠΠ½ΡΠ΅ΡΠ²Π°Π»ΡΡ ΠΎΡ Π΄Π°ΡΠΈ Π² ΡΠ°Π·ΠΈ ΠΊΠΎΠΌΠ°Π½Π΄Π° ΡΡΡΠΎ ΡΠ΅ ΠΏΠΎΠ΄Π΄ΡΡΠΆΠ°.
ΠΡΠΈΠ·ΠΈΠ² ΠΊΡΠΌ ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅
Π Π₯Π°Π±ΡΠ° ΠΈΠΌΠ° ΠΌΠ½ΠΎΠ³ΠΎ ΡΠΏΠ΅ΡΠΈΠ°Π»ΠΈΡΡΠΈ. ΠΠΎΠ»Ρ, ΡΡΡΠ²ΡΡΡΠ΅Π½ΡΡΠ²Π°ΠΉΡΠ΅ NILFS2. ΠΠ°ΠΏΡΠ°Π²Π΅ΡΠ΅ ΡΠ΅ΠΏΠ»ΠΈΠΊΠ°ΡΠΈΡ, Π±ΡΡΠ· Π½ΠΈΡΠΊΠΎΡΡΠΎΠ²Π½Π΅Π²Π΅Π½ Π΄ΠΈΡ ΠΌΠ΅ΠΆΠ΄Ρ ΡΠ΅Π²ΠΈΠ·ΠΈΠΈ, reflink ΠΈ Π΄ΡΡΠ³ΠΈ ΠΏΡΠ΅Π΄ΠΈΠΌΡΡΠ²Π°!
ΠΡΡΠ·ΠΊΠΈ
.
Π Π΅ΠΏΠΎΠ·ΠΈΡΠΎΡΠΈΠΈ:
.
.
Π Π°Π·ΠΏΡΠ°ΡΠΊΠΈ:
. ΠΠ΄Π΅Π½ΡΠΈΡΠΈΠΊΠ°ΡΠΎΡ Π·Π° Π°Π±ΠΎΠ½Π°ΠΌΠ΅Π½Ρ linux-nilfs.
.
.
.
ΠΠ»Π°Π³ΠΎΠ΄Π°ΡΠ½ΠΎΡΡΠΈ:
- ΠΠ° ΡΠ°Π·ΡΠ°Π±ΠΎΡΡΠΈΡΠΈΡΠ΅ Π½Π° NILFS2: Ryusuke Konishi, Koji Sato, Naruhiko Kamimura, Seiji Kihara, Yoshiji Amagai, Hisashi Hifumi ΠΈ Satoshi Moriai. ΠΡΡΠ³ΠΈ ΠΎΡΠ½ΠΎΠ²Π½ΠΈ ΡΡΠ°ΡΡΠ½ΠΈΡΠΈ ΡΠ°: Andreas Rohner, Dan McGee, David Arendt, David Smid, dexen deVries, ΠΠΌΠΈΡΡΠΈΠΉ Π‘ΠΌΠΈΡΠ½ΠΎΠ², Eric Sandeen, Jiro SEKIBA, Matteo Frigo, Hitoshi Mitake, Takashi Iwai, Vyacheslav Dubeyko.
- ΠΠ° ΠΊΠΎΠΌΠΏΠ°Π½ΠΈΠΈΡΠ΅ Amblin Entertainment ΠΈ Universal Pictures Π·Π° ΡΡΠ΄Π΅ΡΠ½Π°ΡΠ° ΠΏΠΎΡΠ΅Π΄ΠΈΡΠ° ΠΎΡ ΡΠΈΠ»ΠΌΠΈ . ΠΡΡΠ²ΠΎΡΠΎ ΠΈΠ·ΠΎΠ±ΡΠ°ΠΆΠ΅Π½ΠΈΠ΅ Π½Π° ΠΏΠΎΡΡΠ° Π΅ Π²Π·Π΅ΡΠΎ ΠΎΡ ΡΠΈΠ»ΠΌΠ° βΠΠ°Π·Π°Π΄ Π² Π±ΡΠ΄Π΅ΡΠ΅ΡΠΎ β 3.β
- ΠΠΎΠΌΠΏΠ°Π½ΠΈΠΈ Π·Π° ΠΏΠΎΠ΄ΠΊΡΠ΅ΠΏΠ° ΠΈ Π²ΡΠ·ΠΌΠΎΠΆΠ½ΠΎΡΡΡΠ° Π·Π° ΠΏΡΠ±Π»ΠΈΠΊΡΠ²Π°Π½Π΅ Π² Π±Π»ΠΎΠ³Π° ΡΠΈ Π² Π₯Π°Π±ΡΠ°.
P.S. ΠΠ°Π±Π΅Π»ΡΠ·Π°Π½ΠΈΡΠ΅ Π³ΡΠ΅ΡΠΊΠΈ ΠΈΠ·ΠΏΡΠ°ΡΠ°ΠΉΡΠ΅ Π½Π° Π»ΠΈΡΠ½ΠΈ ΡΡΠΎΠ±ΡΠ΅Π½ΠΈΡ. Π‘ ΡΠΎΠ²Π° ΠΏΠΎΠ²ΠΈΡΠ°Π²Π°ΠΌ ΠΊΠ°ΡΠΌΠ°ΡΠ° ΡΠΈ.
ΠΠΎΠΆΠ΅ΡΠ΅ Π΄Π° Π΅ΠΊΡΠΏΠ΅ΡΠΈΠΌΠ΅Π½ΡΠΈΡΠ°ΡΠ΅ Ρ NILFS2, ΠΏΠΎΡΡΡΠ²Π°ΠΉΠΊΠΈ Π²ΠΈΡΡΡΠ°Π»Π½Π° ΠΌΠ°ΡΠΈΠ½Π° ΠΎΡ ΠΏΠΎ ΠΊΡΠΏΠΎΠ½a ΠΏΠΎ-Π΄ΠΎΠ»Ρ. ΠΠ° Π²ΡΠΈΡΠΊΠΈ Π½ΠΎΠ²ΠΈ ΠΊΠ»ΠΈΠ΅Π½ΡΠΈ Π±Π΅Π·ΠΏΠ»Π°ΡΠ΅Π½ ΡΠ΅ΡΡΠΎΠ² ΠΏΠ΅ΡΠΈΠΎΠ΄ ΠΎΡ 3 Π΄Π½ΠΈ.
ΠΠ·ΡΠΎΡΠ½ΠΈΠΊ: habr.com
